PREME/G/MU322001
083278173777904532983924779840981215651673097108250975091634157488545634210219217270324596043211604244563572198729104845375218902269562628860897914461436379025337908257431411415705584919730112714401057306515290889781194810663600121603755118991798104343689089702529462642560410627315629917862347605812217414474039144450455024625095539544789136771995683458791262095873171282251442544709658690548341882228929284333422147359585243824112861913290455860892673448160725197183195555008352428791007841311798307321403807084048732090338874088637968539294085003090130739694949376737871686616533177842571691762822225174053903289830188995395404103919300197538026687505720801363471401224017037821969776987086692600617368475869977684270809096055187132554586986843883607884686066835517340306647437812480748162596678718398429609392409266262328779459886523295612764529751155989605333530406866715580398320623608274914942773400052026662473708341532721150843724547866403459219805517772664774107815562188007971051674479623234021644940799285446494099525792517301483526380981859811556612930134850614532094118055328959233332193807927633271791723611698274098231977575585790230432899036418915208772122863168968365393345364449733877106172714027199466294970911602699855051046566173557338834310276504856233591622200803522899120203444831747691207429708709466524635672063148961968658882537731617474314900237217427647302737787894086061894022001329603441804250374957288495590905259966942949355542604196022431326654051626820081849633990451280060873253430616930465130921417002650347982205195730271097553094154314447352796638032517209242031896445889442409443165085362603730511900373875871841060702455528426190824131344881545863368195664351053920759477040356541464281100710318248419303038559331636229105006790486360964606779480620557983503255755661674885392198226326698068392575122419211254085863910294760661970916112580351304851195456450874900097371307460089195055531834884371355562772074204534200017777283605249629501699037367079273075115310009540058037521504675821567013164009742193882327983583807150351713511577168962829171254027899638656293564918239971993962134712248293708222843232324936811984415887462595917744444127570986902508659866012030055658876646042367868709456718202343630180707696700391517599208893565327449579565019079714418500541877134643910430244717219773570351324698386915639620475108994137125251530647558408642305864788237384473488788094739558954389117133239923899606857574030131369975040926560966005562489069882853194060760130697963252549058750239336276703182702067704605125667221975776474725992353820365153446016848288484851760945134571097170568288183240696780433334906134263696343203351186692044498995395523673157246636542331249540777211482363560488149297546834564988628670216941738205616906153697177215633845188928025866094121652592011422092267950545813741853879734550575663405965735934907659895205899912037170774209263137200354509006126477558067576115888411334894988472668446080239254908791868334467731179225100148062264316121004000069024538744967919874723031673742429476124260828276232781946742285310718913142994885231816354585965726709245758401762412752637054387384370277244569252448614956272216356370619799548243198733041283993711785403199530751297221268867784785879819497178182113745850678775498332252508378036086991070994625316466766146886238134465760201313558859214662328344910815310409034117463220754130903308395495911828213745941315145022622165974602099981666714803326424818590871623746107300864705694004399942529783998688973607358992035138324244170969708042798523908013297178857347642152183679112512241759906536627043975133300220079452830982387409324153885890842252013619545479024614807372146844812675103918130779069985481899782654075778018337825646079012750272441092754842193460002884456371458183982220886885841371120368366478236056587562266472507173874584453559097892966543123816406592592583826311076175118147006257946765053473337849743965402012957599479103371273065718393127584425989362245570096389065876813225130864987171519593191462255682802174621395341482807721566065853276878525133283928292230351851516869279328991693868850443272089944497551229966078747462026667464132880814246285071160020940013446761105997440899097767917409699049618616632795216504892330769873178571154875099879741714361396404114917221312342171009176207560371367644872857297332105216630906381948546168832059881923953477269981648290455380926002169552196170688796798805201860171109806968512777675971009909659940092629252060274054405587978087475608734463783190966444528895407183973339518081736033807143260121955239379453532834250343004629252474459591957700573980318024702585503123829827713864830141293139063896779792845471671270890654290786398156078228798861282206823826853892812406533866517103983066692593686398945187964468703355394139129577907183418128491311566401680539185867164136119819701376345847099746446868322802702673594499418062828177845173834967591799996329367787403073177795349812644997625907772465981033346833078669527878297610433164581880183832033408440706534250572629075186095336020853219050832464536051521846261470273794895121894327035340561674970614499848714208462684220859645356702810906613489240073476436656387539334088491300678233042099977170607327611029709732121123723675776486319399586688217380190033827645116111403552011855010786016216090397795423015220705090730651121865749395243632584582234086351367429415437361301539762763589053725299372423319565436458867193055298270675558496416003071606214274886708397552464435616491823970747667702701957177052833044260469292221118080724430835203921830658257980826368572478354697785116964265323211103620322573782570984884600837226808936499778056597545265029761174510049329109722462153991801740540095776400926739510832110753012391498345265911964121913719368298436275205901066327055982220373745232180714583407265547799677302753014949397910877975859295323614018202736746208506761728166133879213442285557988370427804704940202302150661386266217169680568635009976237587097542395791395258333801180706549008282149494472758862267603251651487017709085692217591435635622587237760497034268779587040061541382581606860443604562448799214877153828809831840150826829366297712841394819030741973664721098265132296080285480087959341876655322408954755230277568097185429225946968176050459785123792968218170693163803641424980782351469962731457359948535246995430597314371093729095832580646204899454842352674486619535558379586723995486714139942707699391294787342306946483155162946275657294839696522788846512769697027906086598143144328537369164944014911549859898245679543055787821511075665203834207150809583073780473714839174127652705516300736303990668216145718041700985678159586229888634923198697003396821325707114101106268704980850832268008093893541689888336917842965390981204107650470288439237366142508341753371175998338487915806951899572614335799203400504019543386711739319569852984466971001610990967264960533511854250829306194685209975380308470989695700476448876544580105020699289665819520813335488408344753633328242676307964051076212140371982022033416339654898447798922277057708581242196958669384096100480817459628408496303151155878868104764515233109995728149617846308220383339740917199969183915683707272023320365278101439992935329059950020647306946897022528495562860784368867215747930534274675882644392174080271859154551209726839078128692097331225372005960684596714354564530934229998187477922826930652345708925726921473776725978384366543022126822366871996310609655405263654430575190353510669439205786651997928511917513633265102378642724551518580513022160185946503571684127051268956399108087217224149619599778899450113536338812684589836652609292712885372785916680553617149214250671247091883897785283429637597640856575277797519843072138549557980545971939225483151974242350818081022892415806436597084805083350727970807484363687236132839685947559667666251982152723248752219303974620926549374094332921798982716947652008065996288689850005247253459821862828793323157685034400747326771968614558216719284426340820478376418828040524820238344501545243929558127011626787557581780420168613383642520273668442811862229524653341177087861991203598942748456970481250000371216569277004710484435790326325331096682559968766823561773164307394693553800505417859355444791473016414780500352476543354745699887441220149769534683351700378776547621995975760653413687396575911027589175337798384460770006003742865237707828600274957404732474759383676455616044537384629921017237960215700811266773913664844326919134456625657174120411616602163564146346063930308658278890863266734822874945470075645511263197978933989611097706436369762184520148914524349802959370775496504471362632352650390835811288498682311319202872295071328130584775779609084936588428937137041882068315147893183805592912969695118477430593609560250059215797433170775529781027023904439956314734511587722745395314007157920333672925022179385796970291832571531913647831917298060608391567459948995143229520412411524548596350739300159603965621912907995727299344253593425945814661835697028427334791603889445065121745053577396716233004398934104379833711551680314517705244017355104191728122585316633655226378215240604696737700175845975403745524047340324959273853702357240881232304719780718553399821441850730446871871864888649554930097664702671214169172595426154303373383084915535204612281649619859176480155457989689685666608851367826381781264217484526454579137914146876459374271239528995584443070023203768775231868204348241842243602868583575987853182876696576832976670492483525571991541194130713741383475128290821674036328610743405090405276722648008743316565778563013905411647707662436949146672563904662106277927938639563329384645850964417902295010883888135272582920307377033432533483793236462318019031157453734675399403691233823564966479391994384766520315513332235577496649922376213593700938059646210154412908175575500558463300560680072069079796775484448173663715501138224794407852961240689008239421216777909599619878356603820488776797081937141054934113538814471910067189537917333087153631573123892965386984887948384943804115792471628632112871443461607848644125247380498227359378972242063056819947283795250109329887069228869517888055316602626511688477456066755138180616718814978406454529102668386864789280263674297762833870295090961122945833220237280473907840979564415364563200585342022074637554950904213757612641004180406750083688439345357354260693404468974660670717379548037087977672268745549059792049420561518561046963974223977672545194318755606190686384057670970854001887003651250574476446056978498677731262883849075683721407249048378376544518488094618960948691747356225897863144386801439773822165961745618996067505152626609174213391823877324885373799513423333510813457823815922162229446446617453778229413452449149082692283671738228170983867233091059823316034129673155368540658177073808309821350283517591345919463033491173487016373621055965869192915245237863648679844365036773001890946956182646154308787559664220437552468951914432657792711574785239223626536969374921933682519506467012409584388375237813113136146187106359476416359343493136869797681507517616481596426514323565550458357413074551330239627711388510267590147030209569743452064462220153481071883249191285768010883982562081885532440338540753194582591843010164753538808286233708667204091673592270224180882242222893741543711096788143307043773251243871059604867078911966291671029690592688138850375678689273722397434747074563352718425109269351652229461035315266392234539638941084242907282143387560222370244344023146246565342852637903040779032865252109562665423828000838041066189576105485245311201343390906226107140372401898284369917629493927437428158095790377163628076721921363069153989772424661890135510214081248047139023394615927033528885258659424943419440140724286278029996877008701454256352173442878679164760354673978882101763015404675774026255822525405566013061138229465293228134604928746904076937005439356297503037791343275677165119505334721037863084221903359760813766781750379548775166722227696263171372777431217997118470856101793027276392335447422392699420499394817995245027709698625025648027555950741673477854435799959470718087288626667852677598656223626144285895431148940401558377099458947082336777305797684547749179491819706906105737356000452393315320807056619845034054951551913547849883557309378974440472308823483449261599814239429910286493384809653019624743729687552577476497495666785193278816644148787708916749914682929446290301095620553713310977614503970937275942175277208605624793558102640757436594471028228570606744523324993241284914314843218510858326599368234500339711165114234783109448799273538093935222189127801051488437332976042088096055124039475198542623918007505516820313066774846055672956379383901679544812881807955578257531103721278664373686694194985675663156234029670306943174044662692399289735436720815172575035065632777829646513560233366402803600723741675854490726436426672922220766854045375369317785435991077061027902400995404822849205160091201720362306671013994659505680157708713084002483421184768258972683901668256651266162216539162516278130667445310095623442749207610034353694955448955935911222764064898995476215081791352385414730891039841977890453506063054968082321780635703212577887636006090642423549707950474598383898816494265317683820713540451577146298443396473730234973270522783905706382523144433834183866184046923557628111451576097715959717669259436164168039151510530904563112281062180591665030568610693036606304441542737456532462197521779667374128312057933394737797068038374895313293672020240737175740556096550413714193709215591364164290043711054450458405233165486696658628161909726975043891496533059435785886723597807739977972521143768500586324754129850737060554882839658046815170255108525200011678571292064350211571743807466378916551930030668660638833162772669162014078131668029993953508617569175184233274575313061368301504898971564313468469134045165852501943546515366227130295750329095827255993090274067467142459009528357630859870386499060776791493903600882218267230084859986536505219904029827248005374347982587671012838727302757147615047782120326770227680993340106093329926562210245650220965989307117011399272638368334681599625361623068562829044563524659115606154560544901241608701971420044155773056273056593588865692860850200236568271013189779148186100599191167325510964395295565445941655690005097997773184395743262350980128996494567567540733874641882125202747129485254080492949272365816798806955163638437388073286767352882538267045950448844366020266431893753082181304333134945940354364644132286081346216843792923083941961383428515989892694580027198635607326103786539625955954757790841521579138317717454841758988081277621064793427382037926903330308771194187679941310852850877006281900647584310962342530478725468424275911925566308944367925022163224530914893873047231704752331335576149963485552891344235018677893363111366996429252613798305878664516501373395764060641345617073833201122710533787015375881361544885999518567845164966361720552698812114115028455711773769463457405704025879264386023782813154197872525796288430212486072824538920236178692372584624850275308279380290607402716159916414347415463476561616490842594457444610171289005248259225393024125816214431633394736056588102180915099200627369371077182841305031436814864941819168064096547344325336085056556294312011024731364310971096812476255283714058096695193327717409509530374179267363692698102536302162780318582485679774099792142980731701721906828803974757569012325406962936939665644938473780077998915333699253179742018441866424192085328457026238874885877014349398729474739903922886222538182155895710532381316613153687390870760184683284424977578358759724773791954028411619566151955952946913486871795389954392997719955727358536280023368179378998991081744691518612661323338066860988437372550023322902813557434234319059808594239723272673482308418578194025822194541906128961809743545111537712715388105830078369169331582271075012665873624200344010914356015159577040096963317950187554103269947371978796982807335645383336821590843565978550844761689313923921780374284931726249686690529478153824027369071847683431345513876782653423384866714409451003894418877951338838433710650998429176299484543179010916888611230087713469715946239459960880560628117864547808709126627296412558133657904199798305504373440993084798532500270309678802665941229915201578154255345914584091336674859268141524551672166882623577159070060829111294983829273420702525363952258059778205086442365832427373154478444398841064472066890402686096755597826593619231980561985455814649985450676015799612100593915852745655307744613527308054300794562818655716839894481320049606834819646778828283716602976072389278477809831553515247442458918602212976815813093283811594886408038164105942489071653943770103560424008077615394359456679850058828529582735246822535326416204037485445103678214068881239893465476622494969327959945284949452508199243388436634576540797321248438679874613434095819541393339454186642288664653347054677359385633768507629747696578761005666128310047942984877448948040369084438693206276188345948972396683172818297625117761696382834422712938500435976711986366422019941727803306855249646576359164813914415130471999319086980879543525764111323316813483426413065984819163020073298396210822726771839749163933197264237607914559127706643609061292895313613579667241851737686714866344062350754987177443276559181235346394875554081305720178323133258339197523670200756255672155581371806424302616994877284139546309572452685152384399184036798246835591919309109948712579014467654384117513938007975996139633185090181945478990876546693745463107716118139389351792969018631517060406352666105508288345870593202692295632296062296726114543214237805217624283214215350509511068887106551636151497362068602997376685569679907896796715778604267900453686656576083920776847292272484118265574832105695292113327821309047417111559123067731831242618407206745053833971863998578157822236283601052888080463122000325450321377779217885305557325288545199997702342121388905761045071647179904686104492406977319655625503128678029174973343399950605114752943138489140410166390409738139246234809503472618994213077918581948972472827785537849748723318906300407281843760924623746304999865915526070063195946663053544857809109817781481117416127113269300461104457633116275203353308519243727228015678368602238493068907284147764533669100456197420654029151538876417610339646278142566539216205340660207213168752239058432555946356408984510040610195073772551271754883998622121716369699609916064794767250325818820533370205337649246375468887144467288344875611361819101080187091049750477317948928604870703819711636870272592573244440027179399824269652359579342737501886915693886078579515659478450169075482672798453789675319507440182565359555815545355026884084162537023104666781445636162983059180090374685425605035042205452348023187884723051245790128175351446045185385148509463184697029042296487197949870615305308734366667583781500026836905447812183838440766183876515763973089586831774387169288976527866180143460521645835725637492131519778932123479450099107346343603733967874352174595879940342991431091680088970219270315888435124838402038857737807602312945925389905281657486997692852327597417454387541833446257374796946523354325998964017672338876418424570895022743144740208567928175718210938961255855898471103299392544159254485179066021401889997160972014565605701652219216056077553461573240312665917297532702336511830499273086130368187863434231791987808738803460744855250462433710589167363298185701469788448803770658481587803617862595195914067799115569649929245174889245377325194000802636398807312236945700820366389740787473132516554189605397384527029631824893235324224634733586057535799230659971553954826023610601655507169226702272001488187984676266075740719704404829324445661696043883347141616815299934689868790459948991717696221400123503207550248098406474751497407345183503741771668410357069069723354549309695790358711109446411641083513117931170884583388811850915242360418903425404186668732572653577732506255213222721737683056419426802378308177387242796661221866239823150594608432971749961122288739649155744231980198264992247254356166438673066220260257792205727768026032374052698747097059265940764490708683288284500534510138327213106684710291033367701581558579236284102153279107967883086549093288154207137653178599121050693365264103387945298062295225140447323492221534536325884127419887254810728436822948372600623672011158672151661693313296349632078338453762061132227878155853104751544234857465279995623574749638787968465397131968804950486233005857623322513091911688283714001504534602028905509957773590813261522646437424781779079567565648403038597197108306528496656466125215958970550396285177568370955228040159152305598406941616684705599705577033562959086795599439313698733250431891589240778656575302494277803630195885474191347441696700758451413960680993162118040244869288047631093025730688777609041361182454348837159611713139830103375990694573915174774956023812725429734609344775663919869814645343055545810748294561064232530262067833913543733317217912866692104497244080197374325695777844245758691724173494765430159702140036241412026954499160710933888912297874209829379047441500740845308670643393111263505637892459876298812746769165225089543221730791108993666213907531279317597009565329044943666389052463156716977270301512614331045867607618477925582295152537329141081235077803893951541598648807787344241023481271287199978512616919996607599419925482061467506333656975681282971015816829936046036126325584791655443370064688067781647957289994763611927205206253066437334615530212605368601035164925643563238869281765669676116554478908267075758528344128849854736154948484462056781673187748619775189662030882774507782584662335103662390043459904801643412914123859766116481782005708843161727636321158312001218899884736921288643795635596136648652502438680341359021175872779775076476510694322279582970404722184380732204179953625821350560790718613511601134485830283983163749077917661516489147663605724025921135204529949254652677813917819689694696453700696444417692438299050015044632589967490498988205429974587468404941157817143294416313695670828072797125383860376550552335238823289272273612202529241978109043191782233083019918915776145547460684362998242927934396316279532116392219686595963408890853262945507363967838651007239426523881525029276680643636770730217411321585585037158459626286146371354018520558575134522701228155191588574103346438603186855662822236031830717899582561205574927978890426963057271604929656671534810305598572456243542537858345721083098462004137641691437239480456414159748240059913757653854862528376518297169492240009103248141364275740375227614103257165030050803764957831807313575451508469424584302193122908473905362340726779733973642717523115054860145126999523711656551145205344686556603963878949944763268933546346345536110178818554296613473584237884128981278662079922900851291063150671759719292221957796159466010249447945018146491347559545078306323751536549370497013020867592157991808711734540574378713771425754705016809830107249784200218668039194783195103865929911022432006640888248040561147989225926109813016091523684227016452118873423447744669538935366201751562559274309681515000756059292990661460669383347389836356876997807179764577396409771191677397295879760401969064057488326037466115675026122577287029200428818247241533750782670015958173448547889957761017943998106513646082065024998631850506746840130339592778986729203766726379145938112835251120083637043921627136044246011405499735558186883864338409279715743277008779092784702263770019811189023427092163521737172756944131882133085912758750801349626792072342324194700923824852096448151737981192107227515377203727345784468888388927040386054905461516467541600527402546283180610695881707208168077677202892831775503475382522050737515657822399349535909073531711616551177797787919276961297850392198455653814897205874522245483284551220112709037677596697216969073600317286503581264882440159713224994653596829803123557790796315395701280477272024601973356366842506789881688131757097804187449955564040417854449154115174619915244340718459830240374873529873692209643797545034802073241943179998518181679872104390968022560177146184923259314322571638216739960118443597720482630299882930436988668723505720628586205768811277314390096469743141137827400199206760523904810457010350127099417654211950161565865337878395546666259627313143068249634757628589605914939488042678243875064097988511901880534744786580218922928110545379386321764479176272379322510874751801720192262870623908380204816802840001504346337217972599774118204141577954628151288420117941914989288117327542310555100582974256476545078427101743073460767108720330070519363305408332440235902305279423904578649697092844435963411371617393847824514695520892893183910709064372830322211936222180747356508979505689683540509798427964200320836856059708924945313296572672453981700160153962083817081475307048952529891293642795688991353368827364131868649738800510617731309960712023761900439136301338647256676089281359405657843517782551440919179265405171720074605713301538304409802378168650109593524178749505112044625568752722617669039703721411056946759141753239102216025611736034275173296102212077753646335595138873197368896178664918919382997998889786266881564719794163400087043051743458698310625740104192402518079802031573206415076402431214257509090788281863383294033844124583077908396371763195408828153348338860739458172520241279325791064192838610031120085723114664935913035278377066432286351983966547614658054854524448138488972441767985971499260025658359171678610442025370043701120561196497185063978092247143095314677981740754003221299967342186764389874127044536198466373568146039198650894471327378482302238179898210951233146070477888136856393649114230157782977455767819600301181302558252440828785910941542763363947782790170636347780066320166348781829694542749646274645147012240535968826231345263589116376319315080505246903149684059150477087718817474996808013189997141443253330093735534721254893413180205603718656038826389557512136107481957477052445688270432803748019805608525580803281111214571659580305534591010720964874226557230148053089198328951276835916023257535264056659423321783758575827458618584717117804615850312058673193493549355022107456310442056835370380328977070846518551473135779549973053235521368366214172939113856282501014838939588764290730769159479631519764456027493292352020497066354251338662096814406020576738542946056352388666931509363726794669053270989546209152659960596719020106447977106063087339092489037125859352551316883769326952383894508952577741103730682932799883664868681357269840821529193621165668814153257838607210980545283642226469185044534256257242104740906160067060953599181277709749292287313194581861280057059206195224641294983210452831449660885733228522830719762342586007831878701006229080002972087913781895840177435974691260317802960612521037124044543893780639315249273310460966269666253322433560074106135051988734973780738714446477288836336764027869325141072887323927050368251101693499983376436434171954808804848253109386672142046382941549345126064477904223194598603268537793394737856924913282899346605684941514299427251730585131427135077855825487063788619510049027715894194045511404504881560222923674161381649325885851010240823860171156635381205299457100429775021348302204549669815958835074130305594809446406506105488501900218630457214363638389989665773426606700294324421496320541518437774243328172310398730972698586165058922240829216434268264154105838911455251167246004099077194679815249831857624149796198003369224863735760805171001586342074114143629300877373237621486821973439255674523577110553790773647435127605751957553921963876604610224196284236278837349595482154945044013408917742329593553629787986144463054184504942819951240049138333200720818296454390107581263821202963055238363973502051041371317422303701291128762135449741887633340083154721475811322627386861057357101246933069759824372061664647456292581584666748940004179547411265132337820370904802697485349364636091156429029778610639051099677702748822526318024699188213293754210432875644657221697136054684958773185384539245923343424456597584265106318958347219672889739381962661586632212475905360406670904374157621457867819799338784795929651465792638488692955871089928202698500870295043533200515878045952831056785353348190490821131354241639157695908898974160529397046437076626032619758742344674252427875624172893428141260970174071790647680544168203140160766433479710253586551040038114223421115229148901027686593229265369974578682054125263232266865983336874907855942067249166077045329221385179504311801102818227894195202497966172520227981328131124484886448351747156171702511518175901884603123144289410469275717818681786354530647410178314410872007354746913269359229663794343688421339092713109936879425692847632563827791616282325309695678044491506581473759376676637262344103847695829035054816578392739010239303903549059299529958627301525423567819041611115105456899279037908488137929303469119557790729833777938343462913039683316819233549381375602003121011641783754801871520768453634101057034200587218371431506747509419287478976879630183642987102620420056112502747350398619610830000831014326606458612008623295726838453298795401482856384713318287527041028670203786859767761334721527889510442156527627208225201941821964057327902514591379293338726796285355584791357731032644899852881158360584855223851378576876995792253590211078427044715113286169088721755226723606504134072267870930145242540722626453228743417921133281001283307359847142784010166769109660473165968710914543327411450600081588985693256010970864374604143727131139835814467489189471322930010738758072898343165028477189990289485680457086486277041078949150534734791417137757337432671634917281726496677819241717213157649391821152596474973537659800036865895442373366543843652687309314948171505686124324088507106200534472733125811227144195061956328931840260591910442358801466182095605020176532651757317325857404630636365819370359008545768803960990033017306058115745779979564856585083550202804711724863790831864635798891443660817725396394829686859893885340462789043654687055205691014619206062504168287635309877798617344782806560636989522544918642095189375176542111850104566148444635331497442844794885145617618115029175519037355071292255093947610811717875129890240045764352441802558067119561513154174085743428710449186115108653712131253077710577434281239154607051006716947619399564572029570813338355629593919595689896028066416092937623849193395154682935026888909356293232493914531893303065768752126944946563278843898122299549298234170530514750582251693370416612520561746403299081274105127033799758706663370324249589908117630075766155859499311619140140342643477486180455550955606498406735289536458897255184297909739292812071406965940852534572843166551980059156582185137726608093647777330906484916469731624484963428307646868755143391768542969226278894604182940822230261480614738973933307695133158636974081363532212821707579209451574949675484708552212256733221455998202908411460287197734890819156772324483111905323213034708833110217824336566726214258575564636265031873001379062736156327319192321847276193374771860746919302418608480083587195792225298216837774875288172248216629555124530970672294025647621133607894820033928444005112123630423663908550551303077697610483654471590591301466171532181061377199922854290203675050240046610470025780107599875231204974985452068804160586347888569704417822206695282004920158097591268453284830866702450699150217296819229600394174332884480863181829317983307471906863616916606413112363603444242463602370408967206500125527896580515771263113907262678089706370624540143123858931455116973268310647750001869755527781971480304932291164022212353643812471936368061579218618490476128741458312735946350020121996120084911657736902464706497681575812431014276247338111413150128701866596224876347356361621633338856433531744914405110166666929164389538575419843966172033401754638026615089491192334935231564144478333842912922962437680257661996528411083763264092950606201309629277138280406681064009311300254806686102942286096067433302186121007500726008418394306482019567797830109437758215952758182883906832923049692942940700460132217032440755157280464624010099294344045586740982333765965887463413733515828560859815200246781075690017391143933316963542594113634837738858350492235982184285334640775728575560574503273774017562448302338080144836638751994509731356457159563245385318392441005386818344931651643481859805493552887434488932424138912918647727470134467488418698047232336825273249978608317692455147631481949415954939734905294683650951830629834684011176269772788271375181746048728285640318509610688471922269638034117330980922741049331301882096826620000219697503633474179785703387782858186465894347230822779137179703543647568254076035045247913004252298393523302170122014338108452292347718668432873035732152283469908223260251706639126591102019477200589060047942789254755164018380004491920481374368872778125139157335766544206654816812075501556135152384585503975134256590384349076373965453665081413711260627817811343046813740677677107881791885329600755854154342844315386768205105914436947877613223749941973474107149776570303254224635923279457260312343115505098365074450145348976354609658196739200088905020092804895315794039510005673328319825881159866739859039304556165937432740691610656795945562931086067203061830711936087554343086054572563646481760760888993474705686987160003307707952221057741038080058871342617321890144336867115098789254496651323184609341496949057862247092177585767945284952814324775941621119106468309667449060960504751584588809124125011562860592340044176390112321737914434081614494323624873135130796000786166801104539307141222293312419098465056297802505931815985935733622408741565561262493436645859619116270642564955598594377121135301836716266430769655715008200310824677590244866997154912507568583014425679065709783299835920043864476973493513117695647433772680850552257118688042521486235796977681761190423712315017942607607580061548851984419744779332032473117810578964184080230631826543063990137133154071376762042531215109368816533657156470084778675922844367506698886459491997319995707321138450522341670733772163825190380643546588030491709262006290358281305085094628118420922566879598568286400803198362461795573436320106009109262782992602082610518692662343631633989318661542163215358066485805471872697021604060618223241998642043332147939315398160648682165925239691030766482995180343699787653250680938183286889306520770341312764511740600279862482509794618945183584386233323175189244817511226234029900820919821335268940558351739692607957880770492508839598300578238098435410422180029161695759578802402496047163455725620439123444145836221720034344629985762715604745489026961430300831165934620621120623771162316547820703171099469358455403176050152973205474356862697830637081854203917387360346636174589989552902796819281101669592187828495260025952360937006568131203802610565082484610252745472615402609856749636497557931748046979558309689438096309034937531031997406280032858920122130959492419450248371694901530706099177381887853377038138597127346554430974391750643599841463020377814548464844333935390642660408999620066850376447544742016324247628821299347305549022394822793362204817242206796714585824418366155738056920763682184888191990976996628870224454388032575715483638518782283841643654004489011220790560353640367580130353979090090499763162634926312788259444976558262862129310509854404501318609713367839461515096543572858910863057075562520503371506394228639579851388377985107548305516720526797924306622467171330344178000814704388873054086280522193823310931777705163460822771640488281689693941541640621677759096445537296042963435448268878862580257508677576919834161213930858645463535590779963347026891131604254213366538619611660240479694324659194684951138594715609854531439046630474559083762920840468356166870506759078712635637837930760153037163430621864026195525496621645269646627202640926257984451526045017116001675626934854356465453117029254285719928987159082293620524396332092826943271117591635566212652763067466299487971329880985601861692672276799212209502211453751192757819210690966461682462038866361830900146794391371443883082364706633974490562894246893910068741108084658436424727964008176997340899538055954924299297346714480733523549689649294656592031197695625410926787203159944290597112804780512631921118743409507354270946193401216284628583545772178616513045803889596658278008981633401037159226218951796101617692583071262175001846987862367121175254767316273171836802583281085636936103017160070383446385610876357186974897262428666646808211746354118630697808711952681757241520726780323046621814861442152308692964836080114173192637692569266265590919360199778713736303166165088843009099543862168986551475117435078675298133013529906628180495686904018121628323883423147904263063440154661577881631588392738403692891197246740317044687813832856580305816380624880102482148828818368561806243469560924648523092149374712858990314576008191239364074288910390043288197545315061004033959537690901544708071747123304786609387125998547854459383607467213045574112356407934631490018584229903324973667795946680809950574813883837386858337165356146611009342727944958169267093391331095069357275133529838718457124268396075239107604559285448487720952036801293315414540125441922418998940853465492386713105958150700123210642785131429382501897217185693104662797568849640248301598264016014811400878939710718768960021962262998125151623386747414305290839377108560574828065397865385330764271915383255121356216792408099180946483572158255686102814499013890946168385653678505760227899919882214605192564923055431004447773180858315028853616673879620678979588029835913688493191291345594056752666776218060613792935172924776903147710347802315560368846694398056488630402346383746522017810393141676728040287480965028611170598399342839941321260121435980754101863864233658802627861512825118809198285991752080692378401888739726250355193250834722158523942074613345840101569078357606550560433285581921751392230932087732620136422665663607154563396804297245382740744518523831699447697404389303344715189135091741251215731647657121203101375569404757864742485566789348708264854714628410102974833217265729522029564028044435214901833027609223405777221632124085316235737310233425764795736135620195629565361832734673997608020349437719665701848358437719170052474128115058074783176299249142265731495838411218672362344505954795103613312253727422442501866915072926145223956717883504382051809851825353275318278283492541412587778389141725642921060563430966353715910512193038567645238991925239215974652877670635238927605092005339531017783020127909498064696027239060385480797389807256601961303594238804998975072371644079558929654610295659221591891451581913899502932866237872294524832611162920940741318695331185373405711253451417800203797220830441016379969990387559964273294654677675079961996932054588850230930578961845278947699305679031052647688968534757193177936182378706229553243764331386772323014792360700486841297587563305995068912664850832888959106331333291909819105422191422405109830089454594220186929946942680347839212093197437957788927919720099800745748135347950366364563365248585091757480629945358201280606624792237955356962001468194185973895501466714507445859325841352170926341897084812026416222557759015661030903807400156194708596216815816056152052200789969297477399443327723654341872514708398568810493841688612066207626257486562401535592515536740809861656818040124428513221294575387707729506985718713263548778927768855374344081454214776413664882697240689817948991942470838594787128902517813798823450183302531838665665053736800238196039274092046573142294363476619346929144046709392737566195684920535539586477472900983751392564359241139697288050892952738889336345558894218473596396588830671970664904096402650025068311053967119359914444999242805158118655297437633119498335218495042889338315210281245217614968164571037897704912726246175456727446484228626130779327460452579793206665165173160600117402230097359972643782271109288435638390003916000419073047226043434744091949687692620284746863140903323464683698197896415108379945512905605132795096159000050024990171540955384274193980552746150119479588385222260374955458237564724836821099065467707719376041751361361758170885153538660090104859239111587753328685815948139472880516392000271378800292004072894385870277240357595700798060332237229805108626597881793359347284632897518849026034249389682095964980220635226420823813768684553996967280713928556569050464290131050958582981245479327649252226269490506012141918344644865088227492669407408405690146383972850311497015050286254596285990805674599881906645204446070861339508681908622624009342651916192471275611654492051308623858597941374653913644952999704820002108622380889979257184780940050408757586721575161951982863033536678593705540855541913913957549475387563669484341967840679546780227191398676613907840583065639429904579324653645047053407932534601254871432373499366046383551483317346812504352106887382684477690848189684726670745046758399855759844368109099010235095556950870797005429752058690500695260110357464325385746913483831229821791784147221514222901421795879382018771909915354736323816914651398409192462479648856372914469418406320812455405136428847099743562632952106855262448027352290135528832253559457950125117145569007822653871684529630504299976060652249170162515148823412067564525170063735050266565622986317075918699076560620666469459935110730529389110861816024402121109767455721951493331186458159413438819987681206445276646637099167150870415356171962778481571667983230594743533644102350030582365605087640577850523761050730049866986958621994995405446375523481278426673353051661005726611726471703149055372825554603705529905804484600147355048194624677273545349535583436765931235263093516782064195772173810748296359675836299294670739572760253701747204091672669356975652965471281592944040690669895147824074631941308225234706967913969172072900997106403720104261586297643648029524083661843597571777869010699415126590325410499813582051644554253106180377430076877350178240333726478267419859823683818797648929877940427582096438562464405998510014213167644086976422925264808611684899161612734639534399027748390326697683774475242837675854011491137187791948643882018570384298385037728806577346398528510774483113910871360353593297642144176397104114606717819987375829427011350506032727287245310521151930889693081526868863785741489210375898981495277370116071451537174745765874977586756685909578759081585552625889536850640162162250430375893343045897207471200529516749182863552334433732880513346403415618829638520485481283810765215929525094806997668277842956197518794457134991379141359432487609112512006696182718494703905447812056284821851942906339895745824011831102133488897386739607289565969908535658767150187515001281729190217306629009839608642936558247722175220619986866525649620062941543723487313649849400431601641911436978251960231287646104287789935210375492913007117055104359305385985137781841440947915295955361304089453861580152533756201383297609149057466668299453028110250102893839584877461947790554255248106929004433748108110327033500326892077043906108602251740599052565498500995538019209667381419922374976187288818462305086012036601033361060515683374001951288062829805267325428832266992874885844281004339472801573224692948165278359244894276863503725304216246500253577828469746383923695854555244422969920879219141367103592474121802922407015598322716727715831495120135893489866223109513637944360115200382064751510092836468949689252566598702868747057043749942594294037343439958343836855958300003516374099591778641010956770779434120287750748646338306816837621545046864312978585839320011882503061639582276904564504993314421813436393013426861358328863985831439409410206508301844253841461380151906610732920098291999168226126292541341100763646289062165132207646185167649736241668880506097706105574370727307041220841220291560987743520076304378709803182422647817340696233315115071802344361728412659625111386222203909795339645814727101370265948601648062390545373068648515307786659670920672394734758839055445969455888047280322164024063600366548290423078096277935418514807907434543564019054973651690740723907874160756243882533922020432290583633350791716113789971362264909122041601893962941366350361182117673853196469405954549555589949117308606301538208070474037154394105361294720424088165733897345106400774797759893458791414312363882218420965870519064992595950334660374069900452004640114912814234417461172825833371096856134016466829907678672605083446556294459813313005323043754520771967947288439091422894789565685207552142033373148652067291516076709557182806071000352992733099599787998724032935612491994693362613747761914561798251983092586879349885815680252183759696918059585627526403112232790489483947981364754559344183311546249116441203988042457244497248826490991040032471548131149917068735468048478515692767679842019123251492908633494393828298390199972600874748057038999778406098868333186392000321014247563934715911009482860282926863364823886020248105181892300857034937389388308292212440825681187988245359667673929916729483796434766988120022132614954109763114967194942821779404912513472202421996749572874218649729015639592602172657664035495044444003370482076106479793379420484810678401928538345043032262124831157871088326529923480436997386072941158564292605395508836425632545393578418187252575000871071274617037574294977749647268903970856294642446069266731140715332462400147193990159781386286036598278565645524654031163900235492564293958539738780056186897732503418307737101519794178628090797156524132269228152178608943329085937829484306395576360983777584595367259358531321009791648980160233873199948520220694888359782159657188768388311107331429932948577795320356391729223641070911774809322094911279026380472444416808945025300026476998575115939052828752519886827498981586741125364205187950019581201499933729673855003445360259219070764988258885823071121628440857923962224445925511354694463992398836487951702181464679429130109131232614694805231560953922533234638580936267260998264937508727922717253365334667878308362600335966491631167137160225723365472515686021154964784819939711339146589491554055849515585254787328170577776127377566252118567462953702861196598234413339998993250528709450760918529949964511441361263870187230856644472082692096304349444383817554383852743315080407107848553835171708340083345280339942409265725361941059484330391883077791497561102656664438465922472129148622544886732756203906213102452922788826352819332023307129299156110103866052601412244053995421145182635610938208094941728868168924176434577228480835552722492387317419052284919102406535301889654913832385638095140915594954631798218059091110582609277012532269930999280748844785468684087608500292793016026854432333963364617287635591356346721125228992466035407485133613935150265010328691446484728622236556979660175897898654634140484729748520369453714144336850262978187159843789573040953030862591038012337027473044251155620922460383962284099433338604289222976309714016148562862696072618873350998203367144287548126551447982961420611590650430966273632944225502762719488624142296122435840061354000893247818662802335069563806106098069158830403490288370178850693128343823960682059346556745460472414911552634455722454948540495822944343710740920503169366073567973695818069091624087836109418905446175221520140498027591390624384161371711105489052771043922028235995466806860814315851655183232027254217589017519316212024652696157771627163572854306811655080579835017193221607560641745401631848082436778882481564547222284384699903247855605942251865674630382293008841337404061937075560870985874624181898861877871555305180221007168280834252381054594720701274579772785624551100477650241695714126434214207898718484941912432083980328970116725261468774268950042112304672021215172389659592422758487121114703083486449223418287579005119117760327617929822139007318024551225984148965817338756102061302042950166967962126090471884196422275396120889126897468446417165898273186019372221345286385949431980585266236741944656171352030901416681838000395460049304983715843953760129242833638222467020658748965706670535590941609376718061765295164830165719979914060396668537690925533478529404703053211142667641920382303802619868655364537820407713918285730636182342957339635743413681946874991615750932628746585574293154102759458143774356923874724473314865370929022215509123846647378087337144560319467900713452314306293947553341700874135474279685513462855366701892165938821442689457060982348824235575145381028957698444899541059117745433830306940941549886292020515279484643809522344077921882840321748150069364384342243848355249587078964121528313818628036196601582405685648313494634192597941693953171249121581181361483392025582290172723774312082439193877201231638704533923055431926884025945205519560412620050942420715314122383154132364143574769977644534058599639306036592905280189134235872809278253962526154657020740389927405045595376158685279718256890614034232098047382803516087585317749946295589491777423851530744577023984551712772903359417289614901938900391568815577779269673292529801971330605004881126565162836770277238177960523628898605032451807918789454660170691806632549984992771292505703851026552430251988912695470552375648957119502002873425666876994425437658309261394918057286518762862540364858613609086362873632310137764942243646931419109826947224533400877920020253707886445352506260789266199967060569933870427427441055616723909294499063114960892104960857060832075667837697762756973536298259680425264133111651999026202738314341174377974014567666240064274504204799880794702243630063388632725301207597771162570228282990474026424048205382742574883587408076983331901491238984522035007639763881657124839013225623777920499655422388842128010242353263308668490544444645298813074825174333759285183730237888812016924144570112402446008311696479058900536976846075418663802393583994203971429497983765359709864827199056820787275317330429552622598632771733863634577885700365057620782972384743289334628250096406510198407197574198328382800288711803669915614622709790885351765248362614970851485997623440383556930846526546393721956798451641194183956458131340005416075298058364490569484068085552030906785459756267829541016754091653647013747750982155108765547375934368379132835250488525492856149049159875643497179021937323632144048709732115405604114341016388822554211491505553239531055503927909401297930690049347069512272257942764615357257011174892647144729726069008591927042320980768116569125605993655004237968877938078667672112281075696442042623398968245288940970415685291989881598138991703174931429802672282974357554309545954876439241533806392910878921794327155817184484187971914766106337856378408533679986120384551402321886488181944396206741200210325669878507680449859193233559347695441860546267205410132724885983571293119434210037520122755516786292713767853080772560590384041326762271341053491074800228739363517436183790548903804260704725642547154681418827044676631493573173909509176471396444342874040223043891613932000801723266761312772627771971007392326898166553599072238172201127050745108866061426440818401644672945483974786985032131045818133096537163678686640336108314781141974204650094785357710611148015301262814889023373135331930136914992870009332803910471753516938413866757263874618854044408609974310998011528279582422143495052636790838617125795465159758266430313054570867417129655014916464274799223403309315074892722784977954513895833268292449509550123545364109450308082254848808226383792616032458227547681239218744517638163217803966113506071753258555949518406636704980645052466501661818370272386535551276856262430145159060749694754806216965240021956307156281110626433193249505498164126054273211622942690760463747173613129082960585157719517998569168187437143690078988716090854081755666583305140684305759106230940491532042244174763972581480627733460978263968209955674730748801487842138419608688085963401168343270357561229276354538901801942186128566545697052841111276256955066841149684411685111469406762743311548325591774039737071318181445329030210876754012824689733351691103630357144531116687873065517232199649805596626875921933403766117378680496478067200528137567195592116489985252838777918255740245637740347463560951314290651498796795777776802422769662763913993538581912575696009036791889314129168746571133715575223412255114504429203748456600070625662971634419114271574372668354463424041111280354893738784377636276215533768338831094113441789701318661965392114651853588419385059725004848843054875072359764446020638535214448063607818252544634444138274484519691489469937984220294739131385759804249634985933629609304976508722238294783578036737626461243675285276478118962899732817740625184269359740368563067156301661225353134887354648471817528356399449178705189754779670003389677282246268593058055312222210792327396179144326646883001163210506462412113649697118615740595147663762447019816046721532255572064645275286939334541357712011078525401465176368464291392796870039972604253516611803477593637111843230744651994323996375533547567834746268625998763964258048652126132493271911537194353661520555535881021273372956012434255050583061073981071260706113113359134855778638293964212545988996437491835562271648816262709900810906174630145778205219491492395171294428522284344769133450498121343319096475824881420457112092229351494876117573175471019936044160408891061264561319547452785026157777401348694472936156150228288949220581748098334052222317880183821254348409330543121259769266430893257068201426887147827509122847503737868159312910153879481643966738614872373351233670499076325885989396108958743838490363580133065207254260342123813061060949010683674644151349389689851744816966567075133567485096301754773582471916480463378527799530496351236786595261229214147746426091611806392162736161436244352196485627676922853883680733995207225371901994719938825536955001315193341912617439100644142306009813397346347321837827715675372981770900788663997767028863250082692827610367398651279264211955191676144983875790539313281545554590536576872787101586045667353443896673072684477234262708443333308846660448787665038166702350858933865714286417720740456253734644889491216497057171071975383143711827866060554737974459887615736047702472485000086587164008168721255344960487910091497901162524325714906859425104080045158249280951169924866317236633449929550938196165661282479183111142779371051552243769772458542496543041401018882249388750607265264106790629068497403485879196586073367858559484574327503641053134854585572989668707701069273262162133334541270761076813023798624857382954407108383819645538686883985487154340251029363610295468098093717093012904994443705531819739353324212808675203863282025033400944588443113393633550371963793041790785814516479440687473780892477759798922836769815197787997810297549209202482862333783285204326640839793373545447810353436030097410704759580558474907047003683930672095784448749843319387361024697517366318772095486245024141674727934799020359069344418148427586984875153063595411167017966211453360020199056610824504150919986091589205109694735455875516014442064323194639863129440148631002238179246239090955252634056499932659693897973684700921957785269974059055440893803547464442516291278479886355560862212867033410624262353837571899917421366173061824815618119227346929832008064255926626892482819842082164301238747208851911021726711142018203294844856242001191191911518170671075763840565560555576879785568248503718962425414908410853444784618436310092642205149245527863177417908950633603452590910380696256974608297375281872597506161977798035208346383449231260882073916998976178864585230271713006226336806648691740369869594627062514849683801910134586362258591327212112698182304119542717862674495063793305508965194780222998295034662379305334969046183818559937964315964279088776198084319560231519150741877946791844015340793375554468498785464411833562346495198534041719808190004441759133584693086517685082368190367434366315441162100568133672413808628315033966764321777094358560693179406009913338789578334294294482577047507494119030950139243120152880466872563243592249797076118284039708483766551215709327673451676051965895784256020942983178535540108211174518387195258932771790641126771242432600255633771798611733428463534305134604229310716787750030040142214540984150825686718643737048248613388070192405113849887580643628944602224422189726764751984223096585342236750417062681635496327177675888422910099433415371946468088866957054073290714203762181854828072065279709551513399445328097181434598096513087171407301759245410497079922787104603803475002011877590906457244144168549535357928025177819461065249059603099006174043940135176598151375517905394264627937518091114986096104572250067399118236081401074389109836946565696881636141554077372256937078714666419708461298492873267262632234032677357964090794101690527994282790356631464288035212673469252002169517508485156818019744753911470282698395656122755779781614160226479397415866151383368139621746822692647955035509135971334612408576457757604874672298436083866505684762539892812398451699680561775024153771561799092147101621091624496441674275400683751395832194887984461352680117131836265381622019076320393655181200220381489217325209992983695536372964301458369785660348362837421110720365223600568510485362291984799539764204785453185962131472324893501945064644447898159208022183798321279869182672065671924710487060820972133316231936229996523028113104334586530068807904539450215071033675130528235497863617666652734096720256252256656208247924080626443207206928125526515782409284532289906344701714429421815593777358522734200626734736256042711018782987049687352423974418975667587908023111159376885897768400795627428421300431587996007295713316600099162383113262896919506204125464264883936704986843910497583131171102706653259602653298341990165286709810021247078191862252446553225633283479220865304355300539590600212384366559291749250088248999160742926283289147505074437884261547976738639633024475687566028970245861467584399381100301954938838410505473851292690875022752167024814289343160872688260573546945087081046015535345324720597330374421045685060353734561820755573363136584642789082062980610448033437013378873571914840972176665116458163001807683894857036355459110522959759839818997078878994432332358432846379028650014385692616187041343801921238247099697157542086914756623597659838731184132142945531946270509725061618452038625315856459973009151076335166344055393993291653768226193057874009419612644471790096801764684064406926021613497724313581003944333257543943173643902069814128872580284833896422701668928571230316469212454497149536113879379703265880577374889742437330519061334336994656752690892247161962866487000277835537349321499946850066198434306474476916480481434323009873964812799786743630570801225803589386289323987183041519271836079508900028758136704023481080536573207820795200918156857965197772662427057946523149121469906336678588271861413351286069211589653346455025280495428030441741818472629512518601372485746368512184183161259977589399488262390639425416824136155541268070613297374967147239250206826985161270220071025129295388886794076526856651216937373569633554651630935352586296292047917504180071839631490197118514301172813375367371727991899050943635743570975159198898873802263874885087446562442524557352327992023356846035882246226646512824783171652241575232141928115043092357527822917232341198796742331983148658671820531908985593636466296206533057018335334643441887551137056243205510010560922205691511264139545892847348272029455384279041442691474774037347424800736173061333773671239762539788115202413166725285731429011852630725717908678327480800552099540966265047588093848145397794635925009795641647094813559216806329246152285126068068803170632185363522574959946755914730367195635306269076062876154414194940754018922895822118931829948550287518831830745217757890956876697462959422154624290769105937732262507127305611899830981758910588762862997273739093316473800070466738419656374692074510042669857927268218130825623115257838444967564336042804498915835616141022556682926890942456664811881181529735892029132481725173104931121131006825948149291995977757934216863920800821248547040293611814002199608158914677178325025730425651657507147691739870371442372506328354328673863530510401232565775687170030168351227436617667924341712002144054505845319193224900911034031477637657727963158354934014541223551376191577523571411290614555977344450905162372913796504484484424948577329033797913235343864918183939981225204956445335914845725902759256208797749846137436852490323799665163724650598985525349329416664779757951868215865114725262101544969644155350633281784904286871509564886508363195746363568484931626571769805291705911301077871564728162152583876896772698828293751428948192397055084706797392809375898863197345007149214918765153680038928451743787766462256715515164905778965894303964133455484567842739590382037408004511396056512734848621685874862965117532552032541076066382757843922807616270239924876755989969356190140551003012230817531225055016093441809205943863978743756039304848716140004999518855842107411308043477692276488751100420703419951363907251008763130900716284830179749502235767509321998446645829271367819783055368363101303603838801304207481145260255467910064680190287026590716203228291037884686785942493519089573777468774195136037433134954168698341917080295042601891449045595610180232151940619946347761706333026357305452040288764965794033486509104363921442424972877480511150833024921711238338022661004359837986354290895837005466611661412352793366394830649625622603860233508435037640983497776747303338750308494869728359352997430550846935446847575377608039849204936065919801985248380848476439858224533159233301682191563257139898187768762577754337581010943839820555577449562377858318866345375539131594146130313283345622898730035933124785152415149663013753761832084615517805923441124195083841138056744296073018924178144394774067019027115914862234714387482357044122290105979323923251486088053702928499947957953998478270499296781035764457229745651562726133915580809548225709395371388785356469815662446853766959022669759376488200390459160492701872217820259426069482354372873351862336957445957101972752104155730178559058981245771326191396896016674721639300982928353495761186137226352836462288817945774250297896242323408444290366072682432801265406557134315700716439158573394724405244989763861484239740309057946218494000310819817581909780621725516289665683622952419873720193120809666435628219816858358289535122918639302428651655669944574779208627898306481418074953834180403537345021285775309807574383499193089423665225456629691123984840083096682562533340885575975411374828603866249966310969197063150691543146271140874456765296909653087484558739705998160015920705700000700368917905723627373892846741303482721174031714005097008671174118757466454027797570766065257070207136794911205158880143516882934453698407318174262371872386604003087005012665912996900483763081485497003207456485976701698615643600792756643980753389794894055689748250744697339961276840723141164999605040996201929358451269744617917481583849781804984573430822338348666372409195632042520936326199351105352721085090853345749157572915825300540686954513176450360808950986050123676458883773255708095482979033801159081239859520102865965932882431306781422379397761933537060641776789406128860356663964245485425277443349401942343939618651766884990212465991433006454431974304351543447018521970155769901839587443177860851348171799697064486722160096431030730730802020550312500276941985077800592779071296844098310257704768608032695079831282401289854359084241252340945838912020717343509799126060287039259318607359646553429910954222819998835115135000589825412842338427519481462826366374509370182953270709009235875734030371507051690870680639286360800070930683582941736269622707883621079517311893022123644943999978949680751632017204688947327690944164532364656211879436481695342173421857699572015262355991686535458038445701371983762781413717664152885154815284482375999052099460919957199738784923894529184769803635463124407851673347655242667417215358427898071000466367906559507284710412001853108441719653456265507938445708366753664681033341607413127673860045878880809019241513688605924408639846963683881558979871819428663063330742802835863138537988760135706165482330910256621640857371115071910302066597476881325394824970557799755245612869652309284423539587010678645254416534273049371594880362286312258309900779316595337840446510338917685144690843097236964990818297681564240388594731889184448236881054499920611474284837307693127996105420948620426962106417636572015505924510382085074789607088342729105174454010518292497631011836258418603590903613615301529433943119437724607403677664794051995190558296473633518439780755054973235980821768823964269023226242902142159034758606701443835053851734689191478001026675407963567080267809681333788048525357754682861844374722985102972879972176480911909004982557600914326385239709883080878001693985222822545459685544663154949081148725129257847745571630583254532358189491606877286095887105920663299104653265093790856063847961948190346907401968976992413218244844869604392213356048753863486130278032604615593820391602211893905408268429319450810763336940441017666537659809343517313370130888698534720376107914787026672691374568379626279251409149455861705886893557959844661729581897801802905784626652905227469580833337366175542479273162631301923208134066748218405284318634860047252930358447430455152274864208808753729467133681624353217559863004010456013472725909732224123734631314164161162475292451006293105901524232792687413044627123878119954876821145886655568489375502273743165362414707862282093031664415199437373291178639559517914612136244864514897387120791547397107965839389570014042649526122524683447533417952312623140953264038369248702347814274472384786179680254036223823527270840094866482313524506280671655384512312876628114280834990487836881553455411116471301162299149042734829115654779097556800211208058520335239385309590837888435634152153173183159883909584728720239715846414339780910215419722267709044466970769250586595800169564275573807663443554313046180482021343032778288317073385046724646432853973422166348014199765418168806304860914300509884756765354247887004463830944272355729366757461360606018533195399476346379025134380790416861875171911705890587759957762637200724254430796820496495791818245281538274503442648613305053444337226086719479661636579920800619579708992345529466196266839002899004563692330507260264637495556104966253182950809199480108302265692114167463422245388601880366005458162038525127910513550680972311540565722426977595938169716123846301286921216654586547358112334038800477844538877464867937170452393728730908587155083764515663555973710310846307475827575855712047091600132026998039708758184051442407009847667808303683331576854710581483012829516143018557874392720154352891176023588461850263976774610167262150186706199958356321667091753898720659883601013940199359815104566657587205172867002385601034671189593638373374850358530326447031631101180162852924828175505419553309498309584968444191699985611742872049639139643440317325093202428752157745375790579105868490069540216956707879703791698717356756556764264359810969057207920204052966169696215602328303458910874201812231939504422038799135239857492651221195813013140673128104460254721463775998555195297383808489663354703364716042182597671304466669052506039802114493072028775888980723876966754030243730584567164353640291957662408787217644239969680919306604916713261517033571381297747087761485443285048916182871702392042072710547820790044873605406780223901304498836777880929953867019348453141175396595374653105555984154124022339064910142524417035257972473103929732688784769871294730983456646971185631765747226205083437064234616414337358499979282699933199520209785646497590421930127084053829318637304763069404782933314411452754994201212070673606821247222279193964943778269957821161948708132596349014068050211851379086845521969759601886471512732293004198788725264934779855838107115681754405761717426790474759914042415593175069531120178128618536971373921515136336405026703617315036334515568669649085070534288694828111818702289121987882750257930123996134681385799657125568621318279009660728913644306334682839943622671866520068307605061848770354697850845371456542484465727554500024481173502230150620186983381121318684486365348210683930629598793071872611136115456998173584744655068888859208882175078456141668162971612194835896750311543439892169154092526648856532519277279162773998913087527254678052820359067055148075533738638322343221882336392500111634845971468679662181257637762946662856613735168907533456417935783674998828084274173336659345160389201574763087433663635898059486796109717307296873532340125411383388399959660908931427906077777682519361003972219645762706652140368838731195204963606916046129634719251164048921748331059943470681312651772675946224136236128536439506803016716834947345657734595783307704805243815708534637381946202842425446585887759897529426419298554487461404262408943003990413963567612064638572650152333257373577686870479403164441292797295515497969368892711339900284979065665469730447271873936288478714667011424880237223653363490182056967945528873987175797263512289908979980015270880709174076441541637747093572409449499649462621901931669887150606859230893834549146839279969281824716845120196734332349562024596885109622228048320735494870881057296484932873859896054573031556530231518331143547620651702702652172888336570290997339753763041884442665114570146048523093413210233634894447233282004382923526513167466279123635278296463655552095183281762451576234233631522480770579381299551997926771350963904242612915242442871188494039772035110238759492238666517026869035602936795692119174819113087784006033707674014298326158858840240598699894003345179320336883326390138870322103547686619311085547716511987136101456949654775161831866615086461095004799733384441740070235902590623379201995670553156869791683565381038875839045091474689068708048384390847336614564974183111905043603302316596565641059946330609768661329840069706472885902745490169692375362155444315951868733968441455022240725854292588242215178093735796065999414729285764787229396917179077011107742029634591877804178767666295461136732496776322937145120451564929834723408982609695944618147174076353617103198166776285598887632728038447805675636635217803271420502148933737354388161197341706135218938050877671621723955569160427005897243406641569343442602334500055973659831213727575286110984070382873157724387550475725676699000879303731571337404238418990518192445148975600457142314431399690447905952568019040995395618427517095882122815366559127971049116087824248268101732119121016805968670051883670874337957392758087060054554135010486319202490024846767913438065777828458491951349232512917918236318475109298060038682304088821352191868579780271725666823783844289132781743417715980276840117826284589541512001330237102386117291724483308130937186296680407656184167059600804322460031816491898429356823095994482825781098879864708839206000010259124478313196344950959820126561770851333386041578889512317201038214801321062302553455838173794039099706532478220277065674213990328237624021988108617610874672713153648332682409070887208456232954193177511700897295727226676913495782131702102373675140724530096306921776009012444335579878992230833558352101242548546220067441727542727603549395757674704352352063710209503676268452626405303924668925869541210461417322207656228663160501403528582240597510025574062191119394539911824537065481966431421974937156833248348736882402149132236832208786124109645814141638996706985167951583764236951444464473676603035428078565054867199418391519990109699244736674437685320943667073026788629092614847526245628245974360238828266648088275842774147684662543388142861534383901161557366214682882170697632762379722250638080644943257032630320734788595627719207988155923159134798913520420620982384324215541139411956724240330749724108369360156866665304143293489165637787612146938174255270092700267206095172422789133926767584607363421532111921665432174532257042983453135071713659995919872855736341624076881712480556501969823166757293194612082323175692019801643377945437431781394247751434307357354373006778450236444629702837852020317227354901632580071178472671916162497526925962488973049693408270062954613888594445786828265230825370345838021794502357912473433898607069951754992537566903619952734566152586119842467392600886660475966408101212800533849585240647817469184647262203116688528413154896559714548608348226425992237040317485036869979399982688090337423177294829637605555159245159170258573525687914305209083960100360115348343456346514108465337417314242763142698389644978958832898266735239822749732681743601704559220194785610489538610642093968232376153458296022048351007320592045950598181177820327618867208724596309501362981401694706052527627628793356274021711605853439430459693343190889301584230220020351939688699388633327423628777068375831453170147012545956462008560882384644610825484970548347821829660411160474021518074129051434650943973804840550715534351099160942423292414388050317529918793012275579790753282722670274701966144264686448280871922453566730628048075431894844961514057574038949116589146460642190759546712952046449745424022921040473761236615265832234535526930919843949238665842455033232415322135549447400256727994625761417919483782978187748419433126701494656643697183282942343388002895622689331473905044568269949730808019778490547868794591273850342238323181601238312787477479341642258974777431048242611828418413628305543339845583702420823672680591073492853626265301988184573764401078614478802584816675797049906182287327325103542523039404612773753175599838331665474042840676999108524935333576624444835345659145541933270805658706734673131643879145793531485644866302204567616955634520196875669316185249377157777786817167077496191360266108212537609151592064609395723741131581179413714440897229674385647345924474255729633097187941328241006686195604339553216411698357067837965602223968330418762482349566533400225677234102332145769116890140805270460956788648605667563669817543487670912737378050017662076553989512152306388811368513157923950898525474813277323177865407378990643148499588559898232656002581070523436585018932759490781279487499189114613587385466430290349811324405185639212154818835742833728097281505495906808655305900675041288369946461895313207174342017872104204706792088158003709260880729430255292744935703306449488718384442295072563207268510598109136887433419439277073030095444685288527085667792924138218441505588064950342847894129266586970790944532480434130591806177711285709990163758225220765272136331070205821511795905020448023721173337401067739883177902028194514231566711524460489182947864039147139897578463204211143753867957917624523707183356980242007337041012032560820261975619106326595801434813216890381176073281187998460375087216638488097841353301827763364695546528870500443530673683213059414445906468673103508347765763308004103938859186076800024618586513793361890253888237783480023887778247957747530287066461832853410517063964362792661769424849159071151206852854907320892639009851729150406421863623414779478146849580568118461966636513863321817544112322048693681387606489052346260392532764051154298137650884291684828122347156690256393810954054374680783179715834514474343117035297256723467550107809977061420317600903154327093707412339377125257433032814928614578097285687861587959236030217197279383550355350264097989823897889814220152189068330696670610486597112840170841717696604918691726417711117308102883901023578605029597358619141390978768913314979558272815741533915458368885084842302398091573183591075230847664375467653054354359897852770045643983714098499834592923506244119083069542857630093906000198459976827935571672001416376746067831310141814105229662216625744721955393304555886419435540816256046917480287586036288383616728263519669022107187969034970371519648338003557443599700801913137994041531373012241260804598791399889175717177470723044253314368989729249864635747706169422198175811634841439592473925827496185122234351078626533097836886052179750026221231708292903422745853895841648865419794384849475984117101264126034528380828327098446711601508613196112833788471397385343125147425800325975971078712253685091797119939064227230574021875567884387655642992924590216720867687118589601135011721956387411593972518254704184873769980747157156348079396233396765680672920794359457733131438081832228942357580593460970244201576967392283700323782185005517478523041762872896333821013158576708862761301922622821485345416532592533609840351355506146902470142980278946785884123012355534858118898652796419076755883473400052992050819276878764913560921710918756896150066345699326721898139233819556892498497646658274326880736363954033746403951387110291422370363229080138000797862756359481536823877565944214461500235354165849511608940608821963284485408394264138085444387831319152120314265645815499155379483827761848711201194839525021652696552579338278774781941480299760160663405544104718988148705293628796613402476819329652627528838062300718207467769093311649129194257030161408308712341761193782882955876490781920167164129159523564278636084343379468031804125401523383401846454624360956659933915054822603889619330460436242108663516564748864498984380458606705535055909377990527747695718826431818633954222589329888820321682904203559780072997262187687603288828086847212587905321531511317927334711124124661526959404341230770993751414879898854746658213220711415593406924111661680087659891660014730868945394763612189628016680812316907652914845901627640094437507996624559319151820670685013141975708199164794016421690128364391845853416949437632107969292508422575401643376531149800934844547298640267349218294416477855488768763851935262501549863441749979816306475423703622298275672574187982781446579745925604143027702940724248607376480189275143222083475864993612650611502575180342665744178288853723423677370181204177630812490403466167306710339186360435078653412164353400269376220654321962537979010017654062982445323039124070507696334097969150707853780769547532979737817905477937886943454055546160547160440085019016096364267320729246625762426259790127670999376373459454265001745214182819510286923874992458049027167815099930039107009560164060035251397088737288785986425526486149786218401028513859947242060067833102709458297007718319991216219997373877377747239299274894118833587552816731092001494191744799843371681898068570034732403888082392341595401583383754093385080796932014918500401554994817973516784447027293565972681973349513241934640654327997974530289087802114246528432175408058271149562841688706423094085168552452558409420584295965277592151744808006001648842002205465038576502673288154280545502764506124767312923235227098723330579882607023438684707033056145754826142087089847731328072824411301089740922224489704940053225417632050459932919871800291210433461668520237003245471835082215370962753323370941184725858021887984839908343330442374342927032731789237688531308529901610921550910676058158737210738495976238868700974653559449508580364226193127303576294669236023443750770069385214421806746768541395700471643786305469599800493054843833310668268462690476683226416306491428260082187591573457176960334022674797923485207196503261490044547217315617217811079012079732741305472292368916766390268963188247492813691981935416669413061894800138805810487812396934822256268532334893590461866719297313400756103367917181164934918873910966423754565356567554595228784939252227124401687896108808260147233200434856512564780571371739287481955892898797286679889445963348880133158338274635567980449862873244131853732242929112605985603341164258234568244461685919314863942739718987965170693753046773306738628734075335601575399663494734686539150877512271341714087146938469081194109778887389991083460374991382616741709535861116705693589034641646953644479578945658802804566782108310915920195294983499254084816209932551397023536435217622795470822319134506666314062131307099081861274557680509935189384368934971113832390891517336643760634384165251289147933691996195663001459954773790068776458749047360764219153997678333841672571806091717248688748104398318085957270224984951597912281401940049531166805339166362551844150889184816420984205008307632697191833334308399162095836865918765858209854925588019321550270126437054700178138752259120114976000296803576735481928674370731614722642271461325753336526043012864249068980514674657112989026289898949658264800659578980995214252845298893961391512515565668138452470947754028098368941958157019218593018565788657922466616513251166175854520823109850514782063742570753197081027438982668225853644591803736769862365243128394444470464778039917206132924382409117231163329922565813030270574285120590025440313855947604084742679682415201460104423425847258612818101267896805299275120653650459780999242241725495899456212699357846470899076506132174168950022670370055763969400274428924236027911314768640846485025126416967996802108442726654574777351034276481497845350153232563289703438877810686981442742395738659883721206714082383536185235704487207573270957954831057388835451149490151248526514433089564203023206203382427743709581210295654472012664591973587118170299464778030259185112884718233386199269575171268837618828662201512701195212273927015662247863896364438694078123484645788201263005924968341401918009328218514032585138646391356383460188005417695853984271958266442115547667857971873271488102238379760018904550258777094270632724172560102542227556083736702822104834805031686411965994487697242996257757911319240186580096449976402355395573811035119682480034075247314095031036451483976416994540917900285788060194959577303176912515007811844810269172301034931114931694211663143479632910627518944346656672786084360195391476806164709624229730913021300520094741097934457598746680551444955050843712710719039371411089605153196318770968697006587793566700924011117755430153983541222145747629351031043567022406688895012226873073334684155849129282605209945506761954215246661528703944397690799408049624115583602743718729868487940483041564039361727652696750652139625862423239093042456962867222215642875444922052778989022293815983483276077239934224740966750366779576903740511415208412198421872047105001953789256752230459800075558167472737677781166729783565620710448067259085398598561970356570593248695952231070081036453792732529153502741947150954136913204793687502353198707579630801715479210402992411465071732185525266120962892084283071904069806786517149382782107419920189757773647467157971498040576807539521969859090961843934388386666146079977866589918660568947439479718643446409367909988316996319699683796831283588869536506795747729557179551796672370087594929769447161677796627912846542145334944902030720513326836012622923705567576453218119239004304647606303670782820387701178355970080394924430318891629163573316991262046403652844121301542832039966753747992859062978013013354584123650432485805957509504342134276130439912836740886622635481870671214796473574295792981522007146340328920615575904603234999188881044783602029122801850917243159032151818251742069891780116641357164214073542635493468506601983663597206475394163449015847489692114017655328184057981163754210746653967014910208080079856108174057736200589988113356787411525491294543910010005343267081004214959866875157337653835713997260328207826514605500077885809443549770665760971161485282020341061105727333232086024442498164516735491384615136510298322387884155149801862439101891171335306455844030553425707679834609941259194394406643843055287673792133214382606132195720564861991047866414779923122753356719218660716572270858296508059983645307513398964793175728613342461987359899716019105370660929844179197750327901620341748496672497424800422290076463439605386871220512525591662806116804488766068166472654276403967846830288778879276504677111246263516881405750579444281207954572585798629527585703029752308287341665865086783110475835178985882548031001265217719743404735875987498328653487982254569999149464399860625430749131050102636034051884961233683707382773172031377646387998438227829168112473574957129745245741963371081013802339466909327251904515695812916236079563866184937255625599011526976330378412527148685260679386960840548887193352691011182494403618253555161721314751360317701762564907064577993547263506668558942421907802905459920879752459084744197745540023845368151628052424739635419828659192851214143006691310728239721282770398169596148915804771208838451677079361479751963264009443973220190626997487112169813786655344358298061511419229049169238162717494238947189379400482104164921741316077505528169905147153670283795050962462050348717258218407181405712906264274916592762247159013721900209273695866984527951853550411859018178229665535262140709679649315438684901789410784679477817406177764065393238146417262158959475483186746713940041181213250108479597143423053529534770704539750588644488680574863087478519002804984337985425038671207367009003229334196541808153477943224546025018126865503314348522955908181958347632518269353212274585233924279658720699649271557970055453544919272155496315504603386505673613429658683093390744739590775832250664162323736955810830000898579605993101175796201125861079826104661210934677719131599990852166190319508240041406759022563942790070422721894365310894848067463532298674622507290228169155584451047520992556489440853849888211405661723767820655088185145730558703578837995271838891318419365962314786570915987716220687299071625424975366948722689263111228435880557538369419710040339506013715607321176888884155871910533282991383341924849688698820758640408818947302116322688563755024587441173687026509906630224427123972540469120132939811044478128066821486620031091635396301775473628748355930761211242754335370284522913456759350270571087319315991031913094003573818219299100828403322201156118805256480465026491196915469442598552867281939465242040141408549359542693501304184189915538794952731915531015806496701148004097529037468051483027019121039010974240457660921959061939358118624726125306685394979680660227278218324326722599891579794495995676107846323807011488773588806502977056834588948584752474127578396842178209527745279585781217201742426961453965714732362633251602537911122928870677624424402544208116578471717925183476112932925411964783310850537906827915975487190937915839734546317317197064385186174893115893715446236096904990232075212889600705188478895009529856042426425683554873962487305039847330758564083162843221576347112997216645378380266840474074611684453048292641070173844365203435400759818201181185976633206385551476417433638603815524355283498085766945702690181333465569646021287435423035578913001886728153688645019275146924387327654262912410625666891686107979841785007780196304434697331041037419587663599044670773178152335957950200997138835569769884311996589606160103410523918044178679655106998711795094117518962390548000620906356788572576623928178630921597415880724284348920671134574860683913067891699838000209441579900405011460227214501930332706223884568406447933753790173772778571490796825076760014360917718783911172829991343108738794662988278589821961226156108100576943681250575690645471710754857196804158689417981595304600441282811849247976846322458850790862312617073582987961891341300925015725355847201526708959197319518198538080805941911919032206937178534434594278260393723743304296891427809301654985055893703252775985302557372303012568475140516662614262683535407896852133015176020905078758586057402424697451322720865112919614198807826314974357181828430802432521424321284763166122437007458788116648651961757997494298678991961590579804325760521503504247571095971432463629804625501776553134683836965437564186611202717554681587716970930146035681412452448294659021194665654261360642510418679963296183866588454560262993595073942211711359586075074428533017723765597867761427847185809286811885098887455368626472175546305318269111953919372442947908855296985225674147981128260074042393444019415538608940272923486922743926851192744582680915887644584909503926048942834544546897703045418652149649337346544186728983892317773607824623560838232093319805729003269115698657583620641545364868859632075645330833246103723118970570883234162663043984862838314931650680261614629074308273106319711067497278303276065785747524728100387277409541255303710994651691409362375540055670911646003434915495547066994024816455775615219821596462189868724176712726531864304051194549012601937419332661897992829682121099205911218970994938472617157795025771941004412748985775450025453214556299707466830612035074941899720936285292458825779918965338271200338031361995309770983721435462193593540714058348800857823130884396674689436656105429491872869692728303892798272103120664753519283300144853994691688558031623599915596548558052487703157961091419142484241488747663324339269215767640454167131848499217893831576104782081247952405783221167725229236317511316143767842725432999806879380084523263339322825528794687846105288587108201537372607785002207356984430463845630455672543206283028717702526655374694607629443287351005807167082270790827373770012821714973575266162103146397531799571780870564853092889433625746848903395840821806828665983716415119114065587530584206243524262151674860129642170814730005972868662162533127931288836483299119881416904602323969976298110655557138720341883794780382306478191043533108552656927334480890683353050092972513793873139609703419289143025872942370300745149411015330064783972527084828266865713609197173236326758236067908071389277641447374659360166393896284380316534986908678345853010233351267467457272946172157099457448560951641370329137438751690856265081962865180423625977000695213978019371785452495020369660958427021546166721206757484496584424566558204465405744761553721774136889930997170110779451321190690162882986222144552432577901653216309944418056019921898254195235828111833170838863670801688309259472877657159556974120579151379365091035114475032058481524977851923943277270736400826634460364870983589542031338236532164956072460687057513685910426136124930327738293462068316522229083417961662102955439629804512234267043047005044739476132205063588345159886707248933633468127380824187204654777189716690600372719141676547279335632556179572427858879656549325121969907294531604783265689740375884115918364762186305973921278104973798090588019772699102714786518080569362795071845759462405048198373108575647945356587651495707784912648897541013427973375287852764200263958504177917355776760033303579830418149992688894468078806808815006981628006257687387525272839472389506324957406903584584497392276431427755719262788889456471764689358984948993314396368086172787598604158463642831918414013778048079870194155401674484698837383444248202357477337757174178377428020552352990760597821268709330778611087046614945492036102578807370740592384521380022450615379383992317090810352398355372419692155628968509746233862060173231292318930132619675389723941559846010227779360907063509380748317884658698319562590175401966350029898853439563541790813381723910289966976417368289635199053854532161536453547545463395975251894439412837614280845110168704523909982249351640641021264823110963629334856344820770421490423201566675344726792841825813514963055522816585489803994306227297274990489839582498296387057959625827618035878222141202341835692809551337912540019683821917706219145186346500799335156661849837523920189044941177214428765512477945159187138539465952685302087747454484531374603269048268006501698622326967762266038407691033575679174691766583662642680121414853585423133260098917775967573913676683839837472559339834773773657502919636822085528205411988652423261307075392692185679735036144630113203097979490366876217306495550248398193545500573236131401343995204938524795752859028726802432512745188387734612139113866924975284881792885499459036706038810843832717043010007947199677779774572544232000753139043581642260772642873697456280461445678320198060401015930248179350473955502407732364931802284998313256024311446134196398906517075717313325199280672775293165693719010427371803505198914771701733643323314410790259120821307533679958276801545713259890446346467949342066122991340040087068968270663499006119183537383634397361750187127286865772405825496722093226161756634303932929023247584934091510359667339492893469239017893529775487658636095591890900667439824521812369382695171833859430150696122943238427327182116489630988330900175787693625979612911682114591935986794337819812297266259229984377442542166835218650748138432671755986423848613056444913819639869607326899333937797042473232271237292732245610277867220131555778446972948547509345970811985564265942675796453002587863493766684228458601978030736551627104104388392093511708228402337166249070344291531997093019846627661382948990144577370594926646271952367847098267379938038400152464859345113575860350297176572231706676322080341758706677691649343360849837254509822248240191253663174793948706552954548672273314090625847576074009210192174883701270190162131694615524681366428200901401645100451322367175931665789194331798119185460988583920676783509472689954785740223646296091222048556982112732069726595725515752177334266133658315346868409712740113733222982970053429784821199309959207078739394307377223066062182933873106272583405376014860446974236504020444631837439873510714546696659767921326974674897103652795753536563204292826400334673039061596106201809191841158732546916050987435207353563267469134330793434892769182861585490937221097459920605401043771261992921122229161282769247699173245594099483889747784520129026637136409153248052787739740997956639895272557406566358851370341691455169497339413149676684714732867726713749214058260616782195884259970627986259417833157634189747219048007464053218915281297585898171841146839551062526201686009752072078857572307794028159545283504648436101808853324426932724514671247019155083853929057120712192357853774497681201169247787988993748404049226528527714087811938050921718956220135867976590773753548689616723967040152530340914271435465875336273935038984817709642806027951625963366500736262148842517368531610135880006601358960662660764192352694117755542635490262842975992528784098484331086249578576622572606615283576973452791922032175085510071398519470540773889039829663848945087647037953669413469680111392624189683704656154437720533664792459549179375348373952820325702302715712027974822316514578356633685154229846001574106091418561974570396589085629511379667137624975074270943491506501250132603645308182813744752964456102733693716220509850077725841596104118810316646266163006369210742322335166030424721122926156046943647791705990162237691304131087353916715516857768553546180920828938980545418532116555528349004396376046943458682331016943708263447639404832668364526488137596538280555846688438490811516476901762289305193640820982751352662941209830003172810465038333155723275717891639120455517487646883385380838762453944499805346225016537362801701157338172120323545452070506557119491675681043300780050559180474296490386156212849889612931756771230176590021077515025322770765913347575927057248878992533365384871858997996394194066457642903087603305914343059634944622801373943342639546161941537632342738503100294901669545717165533321763758545697397908842705133187548461420883575007546724874342359713848387338327735550727441908924998970494284656432785035001210628257374092130122880618177819981967639139701770520357806933335630718608075094019707370355308362298284535553889336589612021696967742127289172108866599997784452065106877328652494010407720636458378569734027686071232105078242054293990698856732310381297594505281107487837331936607621847051473732474920282106778132808915187001108291558873429100288175005238666110995285101309224624321254745942931761423268480412488874998317057531210174710537912178223302592798026704021055104966790455835798220176978292577394312284677426990515401879870570532186520680709496592815196351803141581993181861565587174509215233372396596510077423538293971138781522480381214115327526084196094826604632750890557937992415208823590268169140217591658547652156100126267083827477805662479279886887820538372011516249089397957488529993918107187501487554310228816647430581923242485127777307900478404593530671243673112401075033819417875955974052354504123732889222271152175987382165230181212302492938088941286770343073178138280128021674585887498034500126410812469105039116144944981173370532586920112644881337281192978311227211833588244010554094046456832699135552565642138691109635113875904773481162167570049716660075802357864979077235758409788651647970679803380367681351081629269772724700704644790174769329944604470744544958964224475221250079965852618766867190987577195296955303710442607765945480277566379901253594896974548433441826895993504955536278712124221839592304537431600938522579718206786680375163184272623135970059032995817765163633819974332523354574703192993837262513595966763526357004893174507985453687067855317864873611459730716415149829012939823594890641991103828690046074542193584992510789432078248544083855916436560266397865679119119683687880592477073139193333996273662445339553589893026043880273128673976816942476170790476861810912125267429003256174338212978014845736341625798090921484490459400111486505287368608854271572266098406843629973902653633400253244855292657826531038186274152198569083158755458416218319874047616273221147590176466020666647285403982209767208084925656436168349727302159360727038869089199690184447562907623986449055356766094275048695463328196401798855396836137701358789722340001509643086833253718607169519533791261982445848489077111066944374418435158653852531658792780212160350453869036326713611179066804237351438202261289456975558052837794282832888850706054133041734259909946398992857404696471262106527896339063609297671340676397759813681128631614231109906546797146858760725625471999170961044490929152398744436681129023495316839874837154199308775742039639808748881726801080690728599052426757948048663724250683217096855019328429087890368508564827430559773382518062471722197163450984497314024135383775181651775403287826952554279506920294169289223506539322288112682306921709294941378318178299378333515404754251998519037390821795289191232729763523030842457191030589902638763793276467470158069882356791975464563057426221428865969330305901605906566486918231185107213034926315159246541636289803035554374179683901473798409435428306699860137908872417725814452492930064879194325095379962407862436182223643009303766715709165792992256945900024692682299399053521203898041795110500810116880018238288480410281081028329145599783566344585143170724933001229713568725973400927322478323319563908173436256968641982514493089196196879663514144136153587522071504249376439528983779095368227672804005950436317876777241341236998015381134000289251384489057333169612860581993858250190321588354109056048887075886607339202953537758251707146482533943786888619012229602143690367359315209078430112522095433821934159197256109635853757806987689321188369731126196916606830597740175729833194102372540123210196568112616125700246792300598354138115119521105932394594019839838263368359994215413870652497775577928654853883098308133546695959391993300062354381852453137563642436251648559098963084695937451386895737905092955560626731895238363784809272490260236309849198805585233709135311337340250435935790840789099306635450109364489464591542299381049571034435004066904217790425319602181218562280347723916868771867416485373856448833233587539857336376050408242363277844393936803534915556852734420850355958373953324491551447165773565904926706193456725723368087750745804527132281611899552125210346822870158143465905797612010091927788448351210592580779516723584646377452760238767871611618869038385444371173056611505797874802575354973795019289111347679647929946404658409150515709114320655985093543739965686826855272730122628752267837430719025408529792352808616342155667423136428063133653830146189248868163748621430337128071315309904287383173373763891308977852795104021694348411423304551215497597363173945744041348157319823627410494319215450928529152901450939193298469292356724136157482551418911532596754752496396352419534614781295428394031435520705533963122375696692371145476877056034492388729602049824295127237758787816127865512647764227470649321623671377943308924024837449519381835186957183911366324581647321074279975679807120829577729744268644199311691370680144306986511914143502411764128720190315549368032301050414698800695309203006026009740670635958843495556840567548160016287956792991271898558853166050388670401525463382724134053977441970735873904319891463490674160118306568949785121339484972799958995476295958813131315849095764587028225225866943158883979542486729867211099408540520700420401761009611502103096043823637295490229941919437141846346195293443363272007127652554535818141567381513696046656595606461597999854223273405017044089623634165252957611271132001993155624694725040224003573661575824243544739172581188707559811247094978018385226422121254860126866680012360387615885921427466003745898489729099063293039643331393337248382030294679259813534389603540617562331150032941102963939892216718574318293287171968544031929239704392860044010262668605555085496262100401057723615226497238433176389642653241029662071998819894011713119238372268868322173561702900521547545909283777362998928564565512165388766357337389482824646838905457827169692583040387163244893929615230532230257234190742673688911365621573705991464617728076973625486925333542890023135118108116366883853693891405889446295136185478358883010347846810359353543368585103909891463943220409345892449527932813386555420284770446391608184607499185484356393295945372169381628213938080623379248101576328451490967857610951798456130750293861412300610965976892241816318217830345493576773900798649184377496143436445771244288644975917676791569934005989796694571119900163726986305142232303006431463063824614705895301720569493123683053550219094086596869782008791810801016394182483539990872257385797177260918737947257304372411898510625366489421146827250205316847477337890465986368230694946113138939072661919049697070864465191998398043738991815798280769690179668288523874090614602568050216831058504691180513819702813649764360286734342477710607907532411200874606523794615694054488041900250578782759021989453743475484886148362392806749218212768752758279727111669351846501856540206824200970997939943723478272170092561007982985618628570662312234947571541100821824212648911672126384940243690784081043043796694303228178141388872715659391726731595791775102369645725790289482625513710631964360182657906333652493625843547440841732930978327703216967676198661309332110987954365534575214110330137159223046506032699351645704410294732002667360523176541042308609815329616186640285728914069617438829541172367667778357863528972961818064071272133425416632330435467635416235562459905617414381211617913550694244315364880563552937683048855435394330354463705103881008601593152351642744931098174106533851511031442495335942682601133612045009979094631196359116117434247570972653325499988658053340863597772553129665095242085023185591439788981008535715911417814152999988866291852406274291737636255328400957007021556606543682326898265360614695351326575272446677222963226258281008795705654473591060254353009133310889104832201596141111862855315024839031954676450135129811050392722749524944606205025122705373458111206775497437580959066441690143154490654849613425846029521471066469842590070246229611286008824184602275882544156546526136266309014295841025489572977454739161340832340173019433701362900368517843854074489987311504585430580996069524186392195265336422420426272125257393409191643402919627424339838078834201529125723326091396355368789051681933725935461171762375593458465432410451992131946736708336344488743952959759499161063848433138870801152032237313290660103131871912211199728521563352933766650240064522361684978247933546340142025671964444575032719924825067478353851907583114125220602644138049253887612624793389842594939197988083092409838162329266153882353936999044038815392065044696034178841653333078965495580675213858209118786988021016710950360194898064291433153578670211004612900349801468969478032902382899536589308286888000628408403485976400195028776941427070084988841265095146173747755076779413969110470759767614013081472999483119118109142926927080915937681242548978978994240218752103343933181621836426568512353349326049559553091983566068797057921432369045468205025292908480325276707730950891570450715780689407664958005451328511776963210323895458276900697302279269259594852535326309923319231536587953216139361300995643235980375187864491110226053028870420357578767306414031050065800977794229666148396805044322199194560437621581350021186901589182465410946643600516683650970268282198140238124459619267586782509066008168936316695774653555250598216160892780152612399852042335371141207699906748442086605748643835689967987004246376893762889670825735444792215594398214638975136736853158447344196637567163447199320376075799817029333641432566437956561906700691676484091868638607280583491319170300458172156337319582400582852348753919907779004116396840801451980270980037851534289160503199742309524869138238972747118365952228726099228966821324012886462492971050106320950915988514473363144241097764625287146786616793186669975086835722519022468834540074721880952200206387742827075077177271234326724069830029225268615736646725699890417182888981676090986733254609820256612532145357159025883056344320198412236139052163594064399789408144457106368187435335673538396421306965060491933224079642316259774327430895476961092860101421969391963969204823581348910229021886430843798368664058638875822874439729611404785280121679957898819100308437119060212340512285847546394598981516620551338712761693032571136643482098955625624435123914306453223647288314229463001718378574561694872685812547919388904485675601706378811957601303737885151366750151068421027547724296682309667723064474349858266311323655215360776414705365402096260572666154901007246064140286174866636805774107954595511946989147905043817493502603959523473819464963281429164333324150234264569082908041903101489524270528656162649032957828214385473418265866641315749785491227800586529447906396687548807490168856188151857618134120753984841982923653602284599693062020829925142333614666923707431887662781181354493745230547181384735100806887029714153423933301276242159011725057091847843358744394849883897282557855473388557678247817831559461029917389679500742186240626756147321639943020338197056959412981178977801271169623415067378315256180490820977280124298377327212097699046127201529804418639327476865198219389095141228200856962127748304690813892036306188551802168731242949575189167171122657791215203339475338122618202289039848055506203013311746476649560173820001358100741613664336586120478111149513359560096799862250627925378678444791562943752711700384575260549985522841226043664599528226348362896062017877679234374151389170965772631494209131604932597924389154177660129930044776863545658916945767576524334203226068060486234975848332011362661688834991500005732634183246941293643621993517108870680266781261465761813371445409225056541032184163743943720835321748412689727132727333386915263167022293439564831445286820975719142115906518148493335008561559623435220253410205791010653459419685961317046670932531375906559247017445465111777849218703822182617236181001238823839265812062391249623860265249224091624523983931625752328054461515789797189077255513700583217079341604728817687136137572718444901329612322063194754903167234542707695092919547458068149236431491190632683958986701644111486861524806932332017830812548742384260223937814675384334417830645339761151467303768358680067043083177772077118987280837770536157949570254142981424224099359666562477235684770540900636945813473431043019021498295632933775610112481865619566315321301454373821094114740080105847603679095125916870092422047853118306884630785771638214474772005007696128533921700035853399714050533213350247179491060111141017298699006043060919090535418855961749337700841297378158093797526499861164239115464309452715707053473310377427035629865626476646389887065005112881125184044341562713624299728128319080709605379485881270239120884513612393070321203391967466071511916313318236004696482908811484707422474011452620743520920598360824096160297853053437782533924650124633323551594947455073931556414568239742140309581019036536067000242907381456021743468216219394119204861100370037797460946497028679416408284706402673909600659740353324364674377174490909285134797886719996445428325578012761121885432783769175129125380839040518699880111865900104576021678729295603946096312348902353545596328728224389906741189130545897090459262702252519885667882119907311474000455425564071899066954219635068048228656305791051947973437432124485662534870904581856585462115987028030911776453364664492482893717971196949470186044581515712016825902723248139818692549597657557734076452824945126543734987827432584897758081740085155039207717801153220705272832765144274689791835268429391189316533110619847757259411835277666062953583057573993659278797427586658382114392346710949976533675136666572618105583014650847151306658094828108817927823217672690367111886693493169713490912388234988100060933721414137205604282382304482705391929410146595151650649956984059188852766352795936840748581367728328853897323099778242292522196714479662011026702832111097149511715634223529929395317249969833627188658428475934505488629483341672649362522947326281905858289835974622215306266423188141159108666400682707549298000021909651901931463973269016192935590006660340825986075711970456807246187269949669774304856994167098159586751541807118571159238708313734199899413241936510652119050167771602334799228245202343421272093836610899465853259371185819814844518798926174245462426812775177334083694121846863515326877043434437437055620184709510288246727297386290805173065814454887156350409483959164294386905123931357312015365729439630134494476285373841604820459348357688186084174415787105988317364074788055879754427124127657484409099946599858513412985382808681710594265943285998123207582534874814911182337859680748543717524216594328106671234767748117322067016420243798856838832397285317178134469255587242371774487382505476780507156191702950772499783719428157229635771607442512329489152320182576377963005946941895998247817722464884815023075466701798524680452989306764029432804616269848382705947541419461767180734430789891066153173086868079700825263689973737036598459743145882674390481369455100303373612239282728310909617801086498029528079560602370115650466881865586653619302705193781027779728319807800419778822716338084243853943284263550375620898371837228154986215358422111704204040724001350123585475588834597247471950221377131168757380439807916560344769707803830503654559442679171048708034274091451492188333349237657575097078262656587439967917136019648398072888355099510367204504812262569197340822709364778825394441450183216668401391332654028837262092015215170780444000916675549160854259394890658515946825215643996879213602914503393526163364845822514722030289719917540676142327002715936429913237785061928677061537445371326348003631614350285778338311546772578945084584692883189269133878409356559726055211414167298564825536336874037840157451638008741756336827645896986534225521057322337530514776631229592548078338870511106030889296451066039984994166612677642747474539304664508886685978263059994925322320777083613047494701772399952499095785053772231589407828867282995881904891945015500557872146661786586650508950152274807206489791607637541799323339520160379371902342563436999879289095125290925479617992700724898388257606404171826602775390158189769243646652127430095049940283868666724727121656345280848004293959506559106566981056512464674475595155189994717125915687165254537271013147794637842723857986514785866043877607563666449816108409513917126114684252886849798698298685359405456176554787703461740335805180376643065932949301223150981250374602074992988618280589801646666691963200992719806656883234375715087020471759307874641107665822066893302735083496495151447495941751197430042881879849939371099282729102082965984445466554631582217896795319671833895547639423651152883623429993962712347301427808728950504488873164135763824929948463724219641353627898575490915942108456591837947404720254917843727403025052876761775692999071609062284549317481146802357837095862144976069726079166161048604586581924755486918780286959379999020262671588866626154601926482968664947796402612900209888439422831827222649634865993568393578611483196700473551280654291720451215561892596956904521238401515117715643223019210523693523199705856797177323528994942664540635893977259511590604858480203981954279931788846657795299443875375473838955011616269049622378670916972349425463541046103155339953975999771677701775296139704100934700481472371972917414776887774730381094880862441173370805665821057752262516751430887881597169978212301971482099632925014717799894771296664507480013439820140388138233419197630130411197399772926267011847105129428314901025564914216571375137643906373634666465956828919992232595076537617209589072126653229387842808216943491761201564189587357331267076832940155523525711656326161980727593705626986507771947713645469628883102856452307354881209252256605483592389501183645584820235631611407874043050111267472184153172386409808860578797168519199197474698223843196574814480152557592378435004113398721957300065377872578708668156633608279482209350159730420590610690832186028491158182560089266723124696995828689330072611397702152929731123348483197763614042545409259761072526108758938977180617911498673994604097313446960599542428867088283240626023304621610740575714340369111840438253567922580197130521758712688750121819811630543869702774049687720998761448809705978663312810338683538671267568366118940444681639665446078939562093009078718835158904343699687371707263077493799193560165015012451521405981987605541640650136653041800545122672211530186097726992353608862334947115486963707185060948875722134889376066832845948688475340610679170761552066201970015769764062344371550800375096745486551908185794442862649437665343503054722673237009723384662063387926930262214410652461404722893074827728986066736436744554588661762965337698844921303545361051150730271494968195841525789764804004616816564535851418793579670870722547405891925279221848013315715737486896367436356790958382322369796021695116118561263743839539032192567889966804664703283734848305256461015034276740088660373458774653700147763842223283156498803430787008785483834293498510434722801708667476053245185813763507946266544038944467631620183357441301964331694357660272114710731810600450357286119364528126380294671722913225924718936522401456867735625346712274013431408505737465964444085840380703818883634179175093866792763257313689567284246702828340663529778601267143075059118918184088949089826570457386273921086181634192061687295955001909072402144863959528271915715319161801909319878652298489104335566215084951112870639098222009986666296167445306576200844506008721620875474218878842978838574256960122193675203439495084460190950428096268299429541154923935093512432097769720524166588754852925648182461086872738768057019520793864646938824302364401281937479951019237548442737619904301493156656313141449792175238425743050892943677855743712556680933682631934814460539386411730148233353285496967543473365742532921366719863307531860883045152773194935438705012559099774083785337162177612452793790986157950444642728805553538082007216166757410991717484755820991242809321430692528758816722494423386482334572984772734349567836927755563275121947822422017494700650490932500128665445561356381140836258889943581929175988704345150656763621525428123888630044595882674933390317800808155469279367802668068589123937732665225680176586560596674148997324158740280340746064205866175429515689892886940826262720960959379238738111985094546962957524277774858705315348141636354449371991037601824380382717756460636097029810372570607827777401258376353393965729557849091232798491959017585617546887406166652166189098102600906364647810271997933429231683626737701500043553842683813100959786871842902290060667902111090140391675400796253274983272934118652580389198837490137912880214866389974600314711976498826956968062072538087487746285544032125452263590380462032015295625252646062649620578391524624012728603451031298249385342294809527937792961784236781628392419977312932989548406003127715293213570897714677115910814287048695006752732849234188763989674024352239581074343970117640452833190660240129966906451003890154491433231089253837434402077682063317091961265065376516078881440968055768766199241944550307791926081350642552598311021364404013132455853971116343547496538605083618886303776696068274519197073850235052518080393840101078274969860271511247180219383986075344164425815818544144206897297658034247788729863271884125580395293266454567055502915422286973845027404513693008983985763304445447030246556694389728403297340884169464529879222571084010078887142453016964211070103666161823687204383696463987876345268305900911794467513305692829304803040199001181243585765393829789067058297545485398461834991610170908265609349731937447140499120054515194585235740549374803422590373331641417367376683488942109863634112209561342446111419254691659793540958159880602766462575770535672943535305982518473570135488455558862116843472554183405509172192516871483737296654276053955638397191016652030418777813114066493174265860262306342514375300321597774476741862610360473011090163294098986799630877237224514550770462254848406946441297796407730983837994816174108542164259361914479942917595485400891663028250225548686670203506388456334773531696980832394608549922771403950536437486729902902727388348052056352744710769977809873293538925417428525603707499883868039745090759815818562187834356233022918510234588623028109595222156603494668179339146646925645101356697458116271648188727360576771298278054930362494785843690682794392226488146568080010131191920739386751731781081875851512786721642794036963387887884614595733006830331046806016050551709580554170989544357439197752081031783380246807004974222055523085356315390964620625305113118153924548317274626376312537906838305259003028099563184745520760415464737956760026431845801092767743853738422553493012281263807394834078008200239623582524972876983438744934016061297085809231310120902549565697323817418073634981675263594994798186703290102078144840179081012766920783510513059918254279062000642867649067541560621892053785562795477549710890165009523186172991219428519324812559090358087806083834160921674039448312672920125111882836857400641119858496242062938782540022129364407455117666530438900430961799810623530877563138897941186649320214173175537211355098058399622159778483067080536189553736815170506050036063807191481551267888506492224892255134052443442064373990708054564912674461253412566157276837586918802093429104744433406579531817368741072328156990560352431646972533849472097274844184236588960392835761635789513042777140487846353425190889092294169087499426814050672782584296095482460661182291230707380225235879698751740854843076766876367834273065501961556766541729729213742516744245831642254036320139778172485719650177387035168903769483419684564761401529342765184955143359434615924854894258026669943209616406878783452389549510269813485120984664143554763872727854776163603837114993043420393396509889545434393016653910004854815869061478665324830102467985055312048405374337299538003854238552655223599428541559597660589804297047291604963398927006948899048693961737885476726157050415346944959497426847875041923521315005783150351014675049063580550299766242041030104031292603360580123816072633406447224064755045765424561535427821529212069753426784367299905544678821128839312843776567964680089877065247519641976856290111224514175350479155575853644604371631628544431837327988843619953890136456484858645671154331958628781866494426748760455480342349752498316827822988494473231593490548955371541130201567837489340830608518508277962055688108573048688486725711999794472596253622119086934543024961518355567823575061519940926401288004368833400308216940975673795565106428451907064311655967502151541015170706693777525910648285827289881406788699066532084045887648665752537273700919558376625053842337921650560132674468991840189868607896207481381008221684144491873794372281120226586108288138954765511457799270958510324618202984342584502475819002248485139490060293711257018285323193417225376003077578470223421133470750394214917206314882584182729963763977822860408433566726934239804333635161761505072972684410011331949946941046416456346922746894283490061674844067457850162954400500676516198924741275895327551194864532686094140038560986932100821359404259024050810434512678551387309461230877952512503606280173332833664459775652929497906806588577921020059393465492654389658179983432588949027482642641193565055967027689172174811266997933221648014814265338438140795597338027235266192573949423459834951954676269157668355412474127223608750162448142943896460137255496416520210483279937044996291684530905999208666183200163085280758893378782803492715922533394422896464132183145098209101074017358155348985199150686677750199066250009485160806626737234221940642081772694726866839725349090688046280876158809244279792087779155761157590997124032407641462447777181901317056777097745458126397579555969725118844235600185327458231950523026301660842828826991217206575907771586689575244074203230023642919978428842944403274055186375076478840210786088493197128235116845391296858159210200578655331070566905016520994036676878197683733649814848969617086836352710262915565078498506472115947187072680638923314675323738413461076739040833032697410096733479812686745765063467714259759955270620088731166146479985594341554251183724805440620875772796009404744556181909357424347206253380898952711875450393288024826386425594359469376939769635005406269608947101662418527170482453747052267589312062894509289895695999855512585879704702125753808227616060283476096329668592423267653801389841458153816260269742493787559830142692135240181780784277349301476981909885424053143167362915193229413616304431868390655423848304704386878660614455939193659892584833107870007272089448436007769183639345911341618000744791932349592818778660388164521321396789609358414814677968005436753494229985221154070652267377336090560457179347687003348580627209144667121684811640579941045017790372197675829229591334027952234643680412778818799028741962371221120513915855973504396341647038427553969105258858698033728266642744407962399484670794858983775553566039923083382746085724427991477616175662293532903992690412601766432290834694668588054118416797024148420575434380020708199441807364716539428841690751880734965885035936379951514074770318859271469321841130031723635088369000516599426983308780231803062351424194313949596844596648295712915260166203596173129695422654154160833615578048871807748902592650234942185241288463718050461857292481623959649027621641858007752674032732591801723671081182969159593990196452990209288645132165613480476888446416372841293143890949365843993979590023318880799656282975453439149755518208758700193601324722937095226643433052172764786447446786597082889479498573474831233867087791075185827800431490356757235289395472261698360534663765677840265506806331874600143608596535135869381004181540402055205796556469563317234332689460398995186430979486380592923669513573297854928140783340373670392107297954813133074506838927579105495108934049025313295226087459635945693261043771358231220992650450099920299210170296593395742996969702156374541118599564441887821169579754856196065530065784533587124502539963078224252451096585716881744476619183250065535427916078031328874188103660287703132007780998625530024237237372914590460060144889357608465782088396894116083069935507575959906231240098286105461251128209478542622041556798513668162174534765073690223084670632052337003144482943464912038008646703604624107806323267151399356611313825132804922686424875923342296270210934069113989763273389255061094302104434262780281852277278491631983351742475919612027626839179313670976428271735254548743539151488391702128892688236084782361146783616230019345524175203336126506705411283421312013992685587616191084786476637307326884636073129555740355197227453299792256147691371525225391508477274795635142386820331259004794864449695131556908040766742083798561906136368758764682152103537845265552138886418777707250591830907731282077602298926420216922102195530189427867321674348924880348833024955258529217398709004146054837324970529573261756133023968402962912714894172831739209478573670654677656561475462850853391179470230836378418241520060585139919415333373289709342199428895845134530987057628163963786484182751585294769226645275338848988099591492660245359010521462550146901287872919538556687102508535004099988786370817492469165879039974813288894173055175161415823142979902986843485691207165024953569293193040013393766796704547133331071976076701582390210183094860697737781384212339265862319626345149747076869808712895563620707103110671705158137227311327533202720732535435522603074156807380650609508474404930581850794862815781358963322462502642393733048105221712743369382101666631321584416277683345902475784243075930425871329924611533980027590773972710242662618683331838244901894166989378538509694885166874596662602319358695028589347446041732792899171711749550707423706171319858134292323783907280603876363902156708026284467535303953021575140173768102801201887243367579874509194248620013143309909316751177185699145089333763330465044691814929737478627550188961285220725503104438283768406010172326433559281195258710927262932431204596916680896220002234528638536842397619283126382644909840517541182957942849491813965959920544017325996868541023750398479508941043182837908246224925247196735442136461119901505338854462114720336658566373179811654872180356488908551545244667955143767707704154444935165050791320071415254056611854138147371853164325536241319861855041224486073246957184934534130009370963601639513686678658752844775651008212630741532880770194110945587128053295275132284380580464902953483855606687790608874323612646319018305079822762308307934848080504772981866960165609294844108393799872527072010661222469408384720756662551719404256465814419143726376370302518525156945992435461567143901777401714537713479180656476490732508503486552942403454432466227119220617881852780875963963798721446158223287451592979267165962794502681260684309454913562886236887503211478343807828539705615558063160246357519578103755715480793803367991951038275565128434118252500511646351040290526031816200518608487665398676603170776839025224852642741063535320614636796549561035655507366923620333275545143002313934222329472243142531594762378798202639429533753757006527744934205196993934161539720599113195120118262031206535865352464235684889825495521701584301899645047943795948003832909914072383753686503149462928980824070205877861616410448020750832286468468657591095031507836253171972737039739175246909507827799636031647738224952336583957999745907224311156619584214591564163835434781614956372291696608999458100121257641372435404858067274739920746769690492664406738831940766565499482957850651287188473107895708385478141756149203646653564340480018830617603772951662202547566441869699069609966155055510184958454176098340183675955153543954814312226861392774919147267868840613728123713540085226347427757208687851470378341665101266435739441456056178088048595321764689662717872095143527828430818596876866807335018108618709312813516795713321183034955062164543404336897958945002900394937363044412873231591391993090651673909664958851424180420392677100791665240703724129090524721917424268265382821191974406554510468970484136701171138061630613861741923172403802964728060166332935013687707701036098615187187037011807011649719876359100801643838569575985763198108794152304541994461746370732206631470059114087657325863661834713321482417971353608757767088635206602907014654919826797766893339388193811421906369476053393383408767656965323952040725644721718112504112512415803637520596096961534241568505025900307215824677702360205343708971877374078012493459850376520248167170482880029611915109628653536694870394899934987649976776612548625555231859620720740380335300061978385436825390590109745733572823352432238766543383253479050419723485985609504707687977441073828527171763120193268177164260443706164875042047278326377138937201149296672601688979571032223085164607652861948054628364299699938953228461964544159707816769830905379080008087882381745485900214494843746854686573277501582456548143385254289788128669483090733900561786771369607263404941322812350616677088665554590730437141636393539478735399796745603766002838044864056399859601319723747344438085028916464712152165384524883460211022270239774959012805293364398268821660343761382311183444574926810505606501664237419367382700574283050774892578779702005466729407475531305925163515147714142695449932973362641023342280035622313375929343147057436150477335776054151330502161528183162285709676930298332376985835895521476547522468208025089760545993999269000210852004996066168138856977296603615892057252842793235426322596275197204794993316611172534329738545855834376549544879528353664752995993103901210362030959800572654837512317659093433506069291417122882431726693645916238879486972758435838084804372436294123261437875172117291777250831787121307245518125572242400586701301917342104026180906946791738352170839934936497866667244291039594203509441920443952800351417261963523691126701274375654411882901765678827814944462828845594064736029273198188944154814711425763749033305149179911197499611508414243443697157439419748839237277157244593924548103882362814105271508758906999523480438941561860019506484329608722430223172559394805083739265103403061347404522818362570975925192844739657852201014753736645686063271294721760169254751536559499307784301522358648413406851057743984201986656711582732040576218256761466619201799873757678330572802469315879839250642472392251404777745020101255173603430951412374447661211670584855965709004182274300774292330830766056716139040472381997571134590749854210470942518496618232620894944655286297979291983956956916352873490595381947796569774567166003371202608256932971004629821990253764453567505620049889816815928495356042778716891870794970330490624448241712413757520666005288229829705306881941313542769932599695568811316698801957839557225486588892869628795647888463684795059390897453548846655956146126216055337137015759797319102271870972449806528747033067156844876868524887701839108933392172850514313179380946037878265594619146217011269090468195229969614256907721567224166273641587560393108650095133619746351698157476683420555129663434866453595300265073623152266696000254581743410945671587395742811175088775148062768692810663645187760831653144016012604477305954978053954356749516139140414916489570924389672069536541399073707839712325480300370227394465448659271512587782013471613348339747901701080381224066138724939108162080329988207251358464136601561647112347606904435513167750889670754827497445634902465257809241473105560269880410077589883215853776798239323404709983980906421454943637172310356156485034158573992594160906504137520947500024995627280339425883015903041859778912713161984777267961420378678593722524362926439669907700083130866064642141960932451208476371877999708923745168581581213222746759201126774446157546321851485648996915282177431857949582899676712571358192007527925407729567407798230773694205108120746090959253772902138791626514555914783110576134477751840861886393796912739371115837539406392106051131285428202740584614324628941559910435777521495813488855294870935828412990983584571731939178917282551722991607094459689721699093678510266921058356752120295147522501709922640830997141189088469295349702656528690564635823909122541478179714624099646545946726062873774579099481102795529989303401758287656669677191874620097041327343568305344693676559652388731753078713869538938068748125231740760591697538619389821432378774536567172185648051156561409619385971019616013847353836645477758470517658179919931087300888806866437185027899290169649069294839017452695704666463312053888218002141020145215292163545611420717915794734640343505543848061970319639289605828274492412830690279290689920063604061867842238054126187923596626180938995532138855520995768211526369801287668091610603331634192091908682515689147090910733578108086856486279724877650002476490289198524081379789767048325189913552577241750878216954465149899197128925420600462259727230323914081064829893928947114280831278885206446060133574795187857996753936535178330764779207379662400522043221048685515899189531800404052193022607387582099376499646151006602288057528695285798254130960726677959569014435736062724331366022583275218685671465109670574553178772698674870967970845060967773687373868103038760048694411378661679010609631262705486902574569004998550852128521215831194239932100425294389841286260523336798370303268964740569978511521400281207500999995765213487263496246130744715560325590645298520211612335962773355838145943629613744840331639098961167659926922731847651326245999813726991623778490132052846539701957890998056712400850754678429351083198115055481877937181739500954097833850922545011286568813352079696242877865057182322241185834413959914086291873821527370983632506492971286111985751741021529667095506264798373946413933353621194334443143129915714312976883509563140536224257891282355901057706314864469229256959113936139815339614525525557541113003586029864104780470984135805568202608820832520427013361390591008656777544360016903172342250946848288191569072196217634762935353401669203491512167235486140676122782311754072109784704356995985460920286931239158800078801354394338514245057835192874720898027618328145663756819433838948684762840701210896742482435521860404301230434631333866487437859550027997942799368814751986477157846864876939105852712286801197313353750201117869111174890822705302031163457067126769771138103494496152253258628416904963870460297262406918606617473787879545607449544867657914945492547835718575514563860011668526954759349016558245910487405275904424318934542743807758279488922601140962191454328892648454811770953195575676724600529842155945155241876683461990968013603283471922594196762935898772786878411229663208017604653720260243256621039614641642193650445433916916551715207315858400886082905018605444144850541128299585315754683392679586484032953381081786972558780586225748316030251941663638659199017656462832119462603411932047477143852447150442585994451639936656893271158617217986618052374096474453578626751966074968037966533578810537658159114712311097170650174273988580648585301041163927860712388066473779722383695928000176851559851102261577325268632102767769670595240115630827063078957510504155932150494093605150423118614597447127679665529437337677148547004177139400165048656030718603455317467855270851497917034996100940493693222690840613160450753141575295224809038354174302114015338582836353250706556964500254196468924020377269793152306100010429818032659326124185741646270986677222224216817159163449795200995312344536072192849575843504559388905395385433510779203717390954577347769260565469162762268748321320721518101747894846690093889173572197293583415500002220295397912446918732010125409258602410271230967553241950804094170539957377933162334923923913437526453774657346815028571589751691423608502482343900713436975640751174045341912701076765239159577634357754576081151805318017760109152419876559831433020820011765423611833327254909001552676212025648241122133530743227884923858092778283080970038313241922514254949673263847979629451337336464207370904801362990690399713441315550304040143893103369789719562190060698710203268860675556396125991295658487496261002714748292460302683749809626900785713195088359623938043828396065477136851294923072692410437533317816145270363601701351883908102802420009875269662485843908380598743981372014977212649125230873795357714107948206996145357716173332604432816916169545355527112533446274873223356391210597716603077389625386085292701021192509658161582402999286573305477498913850957820921543882682551118991539006212571295866626553420542195968271716580852450065327278708773536114178742543733128289988228187050103654227049312503924964567273898829938405664409324990771743298809702619740895968772737025303642257377714840661131374114453433364556320001055066434699889689356796903983927724597244202370925378831799713127824989303772376228984040878045373616097538541739150691708052029044513649052107431501650611258069807133826324267317570986657535836784649687127081256381571494767742571205550893543986412443024753894380523684959411759346134312564755847843550184584555518637814793781294627961357139359515605680451101040674370460148541459408488140452736801966800985580801720026655560442498827001679094482395602984671909393155324197418566509554656088775798091807109665997744723695755408744970339890288149470821548302990362668528601740390420846310328876163509672771961046952660160735995039213344008691941810696024227458401759158690638899618053276066165711394126239301077509782892895511455581229176200020410483236204865505181597313814998589407555460650582676967785088201981563663888817084209416929623783794136699678177181863759391637810587465275321079248357683214169209466009773265915350005950530799949452675288267643104645261487442942635572713011343837448284357835454881769746911193440865117797299930733875973463508774370043527781482094991174684749390499438064191918200114148820803086519119734165098505124644394157902367621406881349267995931513504492423912094753879693456506533310653337577743660149854649731406653309541494560653617803750996375248356746015640854333796092714523371965412599486260310012985035401190681454451406058211426190939414525590896758997572669073093735996464335059431220172057487531027295176724456035771875623369860128730224861585867627235808975318706452957598567319252543726608698693626672413949010777813525701037395641227679656073531628469839327940496119816935868338893199290672057766438391369839482704431899567316254101843955824720040269690617312328652217623293794464138660793576298770761779329345450780110285176236480405890425422890869448510405374455356714974636381826056449702469704710506071763665266104001601700772959148883476722523151096779593390790169423598998193384255222717740491253354614085731188187031907201198012838219515863072674550981520394047332100472270050534396576332475263539917973644377841783576303063982518265996996441916652806156235308628875809869301662842487410365182675868400100244250908717053711285110258691856799949357296329978126510786222734955999588297874295949744097960015679963371783848654460194795072571461167691176852990180967844800154823136593132073014131200034651697688620128487390236591789437025092439081323849683748194309949274919274519244990269678298690811261380951632111618625975661150676718421252172296636239926067019522313168506291212663429926971814953933311816854270083182791197466033903356911901285338828860416042068144329835277615559514720491130869056503139567778370641439243765672403015264962932929525645402747645656393665863992190030085809131964845220296423223279949796224318418289564754747512213102478239246062018581254165790774565771209189472095269939824549174519913221194837163587654823118144221666767088549642793986069141102243477921082396801099728395823181884202556299461182149532823185609105898013363150262713412696950183636543646961770635547304470286388955796603577146228244453323963768911977088491125144738206169633323843802366803757333421756709603222614467855568859854678985447106963101475194439677544620939702985776347002289095196102670179207127791215134690998827286032186000976183562140363371354638598828001826249478433557539137270328040308055782523192696100038564081785987570334676728707065968448309414672402316907053902250254377823031979837338526647593467986714188299097820455143656096389092071453015001514580180596310452610400912887440405294971311580432243871301841160308979513735728763426839906709409539297100385330684953055716581012126819116146473051373200301688192889282425822356573136983237947401892588446049483913012003546623583497991359620272430429685955146081738540958019835718755621862151487075959567870081449359159257448772627358398218389656945092582082105227917223986848256722672414101650976738329246258228322979834716908743390028035714931065989484561578334121822602116718693425793747399580325316618223965940117430339290874342554482016163098678209256582445759382434901706617354348661147732073178186925476120646199830845360458453574763829893049164474916024316430747322669232213630782258797644870929606278604721794735494565440519278563494710241312874962440864754480415091581908551672753281937179735214491149345516389414438054084234979514115376935196119681959381650023554067034798697380486403815702085195699644581570431154218629985258807633353457602657592572681888240295402136597824522678607669894836514745691096090616090388800388039164326126467921586024226343718944309369843772926912769271178514474012979367796705965617285165604049308408037057043451819071913135816565209797906605565921022777102377820464725025547106635816983614646369730403441403110111659229187900377055879548684112694532514458258435478784473398993321310421068928568567112586954604174234704462680656348768873725963436573562696152397262221155779308517483929279888159808763922402423486158205641866901027956200701828160240532438915686331059974559668770514259341604168124983099131428205579915897100152595283237124376512193922702248302456921540333416124644262434041473091467031310618423808334660760664932400762837403615048529943465668346512899459714321806185831018838814318613085600553090260928680051991626062503922100540628736818845251004953282593765297397376412955938600840953098768828694630471486306061208760422621117309940226583229218299996603316111485204060860603347380550090041562084828822116176705879204986954892858871048967990120661141807063840721097702650174477023946180658503885141760717546351350819519501517730059970351843591891857877785687915978091126333543289836204163306625673452516109239020218878194574841776291717102268819478705622968793378117089519478571124391977946557347818901784965350507412531874926558466634435034143474727531813417858538391882029781892264301610963803762886188941534702703893374081109154532210713101092429532044903588172220821641806222365957796163346185148971053884438442665854321726709919042174533351018614626788284682021826788138058127689939842233106357123265573432436987958721336747135381927257456780601294608779412525770679571999620048889812081270140960774505715881660369643743591921897375359753858412063000804480747526462982790873882675606607576162865089616423729371218363743122822327868646122294898817405665678998480298465612395487402366627273814553889681377073174617452319332534545341828925127535426830016652682507703469662837807306833227415465062843499947099596062903834123231219059322618516946067231184382286110204153332370756866268208584214045303911923401511266939044421149742994249044954857811494752030302027981623415563413887569187875552273752079664155761416954232403501980500312991308625590484042133858893981426770380342721945029420624656727937988345859719608646696301911905942079980910132868685264219241521791907781052019054186025246144615861185595757039401554312727658690519142422255763447816979681623282668411798767514366432880180077249024035990165429616898528142110833568371874925988661102568893146775897503017780561691418066551768241789680659451558452147738218284616658966588731116785474535407050591981699302683499689788274981176475172396617835909321559071834301910688104770353490084005011901713533047240317867776867200580865370707444088356367276278371465321633626492564343516858355907979196583406507670394124162271790871170361755979130978330179008542098676457567574840151648698242742431275596095929521237956180661080255329852986842230301939267475962656334660164565221690879153305313339680731341304487037075104398290141684987965657157421167981592931537869959576449630087283155981803777061286925382387517950637833790567636284488510136960041297025270359263266295560374090340052755871078254691640521054255217557580921824348343121710187569428053502684534087066052240478214023675742540360041573917009008640857269899763903910597168442546214886981728689198974770934303179146923226530275189104198968287889948346551830728250829953729135770648859701223200858324281440947983532422977756428396182099399522922500132541087427281029309045846619608372066816887303309134292714996798120946635707266728929149960846337208163464130739848234775777364347209226221290245556384704338051394664702761938145389217476555667643530222318641848917977143058875762389163461504465002149070007952660905817069881690109706435113938172561613693938414739774282436201652700211262651585443888073545933037220967496661988002686834692520045408010573228864990698901018597322539445381128831050447747649715404172476703251927809587745149374910682556533528869946976829765046211191741772509824761718136595395220464532630687473197560957207595873228092839709874553178483349573820763822719803023274534070258671625410810441343685343124961524957302244900195530578082570210298700351899048958950946399351741073546525520156051100101310327609478573616594320754572589144132156055291819966845731280350457446295010338465399478377420191629241701049245071188573245548769917376124069770780390869447125759209634793368433248777871918478693917375134335969160391847702559913402286011153570892649090640086449137257206819882948202386418485214560450147545301994436700610730506256563407518476224936834022542391781107871225223513189613385295226584857731003190610649570545102490672728297830157262335357653287072058049009821687247791573422669758491100102800786792712221109580734711253275075016464718122456852150014213574360888818745767823547815304257924657859452899389582722361081594935122535270606756657149184417365370480444146164634565321741981536644495841989125188280672586897845841649431494607028794447204255560033465803636849011019472743303919554593618312988231968543036874079329806570890665909745225714757774896344059797826040789191737511009409242607461637187550677215319581762146771259444808047690363674672786855800773275325352825961918394330703106436129571234497740010871381811313843291229522055082711054589995981891479312295651483766962526750707123118944786417968933232087184127496529235398114656966025501243692530546659589343487398183137843597627029080190842307096522179875908054815289350125292036110163056467340245812549620349426428993141978810325757952177728985560265700289816059586984877811672229873232733006608164375437022322160437343703929909208595801209376123540253327928669191437001181243815528938488053881815640953362690100061068501217911278525228509692170326195662848227284903951171998149351488123917404908136598952868622425253933143456980675031663578262713488051496547499443540533887549266531204959230563416449162720916027927151155698616463088151055446597834704963441783079083193559052313084047535711567582656487549873033402746380011319634305964813522674856843972178196761489113890207546942964501343191820109835866974443436045476549648986269438332786420373832998522711197352860694024712763036862743292635800245130248237946303662453882996853655282375326900557521023411447129192134987178057173285037132850885591337884907323279837137074589492292702451426912994294914728377881962812970420374831805147957914764089142461486175463392397594213311432931531563510594071826027476878523419011805358793012573304644891415478962103357894003172021397635936096473287757134430899953256791956726623950949295973688816023986200242763000961445316295959655725511710704336474817125194867997901464358081660321939225112284944279890612569429203148975924646213306110328166197790288379727558682226732125434738324333741689007306381466370457671066580370378092969325945765751301296279355199664327168964102165949140809637203415126884317415445956227775349299726272484130802355954020117091827686391918747870896374669653162152728373565755931475968392845407349388077169409487368118957072886680984113652722146156119038256051950575755719491682810881543824090321873043377616243665118080877124064350636132173195220782723654198647612312191410063017499205888268027729948479612694325395370199992703868579369905389273174010434159404676518307111097117566475670610546059276301946291110012754941196932429657375683917826741166692658723979379868466518206382875969626511864372334124736462737075571877477125191240232456356521777420162016065450603734411906824352842540171263950807265874374584441806587624316557165446329787841216679353476713086711975735795271113261511948804328174800819100691682136308023261113062971400899949204866252849138580359406028082255376733559520892679344125993462634764960497285009181564599019486213442427188394523943570956397292964928170961639850284139914624841067785044503694081851212592216529707741931518846726342114832635728505758581497727098606603902540259296681471794695450520426170481666395858836651056498932486293164289352022746292868215642050363037359998932592257055230815254154157290879544362665816682046213559109685560843725024090089980099800810138596554885607318429132572115590274715411378974679052196483164239158030321091092807687108426771846384557376270626084932325464736099403434162880311706605922683887004828654062329863100191064296869734935207612884662917942705749407965540605102086450595063310183487912600603111951008366358194543995612028340257284502624981662884131504391697766179932569457134817044575207752185072140558264582135086818336303855823624182533827607016599507843288934789137590757554146046869790156452473683661182089719119186093611568355508642585288128692129998262604538145853375575758859087732050706244218202449421124675000023257641379236401337126883665186963230574781399063980751828970094779957894271586940257228228735916259122823447041677174979382577629984354829169877005850603582792008510239507098093784114807247712433853100345271325793969396639233202575103358746545952028482527403274391601753971055759707633519907614504854954432979634861372415425496400273143975502103717854374938033009582930872242831468127485721546816150733904411439898606961871363041757761856223941982483372591267296043399644039665993630100094675132607004178596877498777163675766221589784987114476767467509079152867316881348923734482794955939684589231632920382739787670232966266854898916078272802362955746318467010744902592421892784155419761039669871364851861376392248795756006516479122364799586294654472098876565025834965788634262080693408248866677855085897414208621629022323371215860707023540214907555581692460116078943900448116011379521867812465206265400018619639085673999203931021243466098570396057363901171368380003240688793882532584369808223318807106158319256148367392087029631377858144638110321943887258814388526480397723624204373274191635890198891324471695691739744420283593170295291882150305102170153203867419863354101833651159227194749569018315043972836235979230817292075436750176165379713679443044911619252422728732606821097331137082041231870254093908291589853074197935393962499418316985818421274253112344125911674249808293724736164309022658530382745771432770898264790752477990493496320115494034219541663311271985212770958516745901692898264386844802580264752913818091886499810743768163739525461595335186575385304513366128597054269963314389324257708476451506349262909569355643523753858034087823800653983184323576655353557815824568047873668714000382716714284509787375938096104047561772944408226515057967402209794846385319232348377053473762228269045360247556189156203984604654343496253959583919864217948107951437897885892335375241991519120229852949571144578933989583929618206067358351171384958109186697296398392076514287236197475715323553491328195441234277155203050822564320538737755450585702901202507640053987174494301090909305659141489962892987083548580394363106288479988477871640383665158611514357263430895115190674218750100649834659630319770185794422601910533536534554101084990392784517392787987133109163713525005654404699326449831139650111405352624327051995546476287271922650502587145728757582590081532400843938172910044131954761469968959331593544570776160255636469003561172390929226726456628565954536381161658551282164920760252138744231191894576370113791847089227039029154695379038170580563371494740316180426115673029610212099992570961011928980596567985318746481295204694780806816541406846677076848836084142332938191267588291264436446851641565696365524039089844176124736533594760286934530471883870526290999056131685929541751861904108713672925662454186752770751882122981237385041709068990348731867974253053959388055175540566422604316681035353852445222473214666176807220988307211691630128575492244903096687078503732851787697760240373009344736458113814442310879476979340078037405880727347421158763796207301618281510891177267382855787339683615145703205682404612673948633483253161649083373903941067713880877348720032018253455721313492499093182177184938210532219361835466770332502771259602819701087315394514835556279556128318736418807625886280557819282249724412653760315254324582399393247125294783896343943383896002205895866006851718514527744574339882531696493648206814636907428892462546926826968948436196406056670501322152371660854884170194439549467016308961273420759140333415983272322786252877882616222872783475844693948754865054720395630557521858599307766412365964581732984782918758994260968183548903890312383389681954094152879533484437675383358332695003736945185924173974744062035581516463812717246736816642551024764840149264598215389639459776358655789150691200189944970569987181062419241798259851716188495384719950470807817921204388684523769293595167746179250036635171813127043281415315030565196921242929697657440485004574703441019626306235278670545953785890777416504957331717337725555063643130410405951670546951146253177496714792021246087772160805725747352299056196592940214308129354387107441147305893842809901674842041276600310408480747372222959428446809979070883526648229476101800815509138688234045523626291644541946408841888052128834042446181830122941396119991037792568166250688921920218956323555027356053462495346099915972458422593761210119264598100491553703984202870567430672089631058400699084736124767368320226306490984812958011941254687528303758560188872215961498499326977002906209170445835154379492933161751733390459654621554194912044720671596051326450568266358570613364160197179513232532373912066134187232145557124626097644166452362858570225548327983709727947165312880688476534177023509116824396111076845666658237065668727759878698663974763540487592444684466942598870449319979690194238035277250520619572568066394007011191698007062412511619508333405261212738317943316941025594680676030066559107023943292455272693591110218866526939390936455013210663798176697874076375275817490692318605662132022233911298157405599994877985063104793366102071481956234118867125933904377542699646447339350929174347596085290033199010505515099185184655173914432288199127224062770932484625959021812908700107166341413963338584618535876120056194213494345040793529108822857270350337743944528594919755500071492670190014780387125130142404621152104600162635006688512718193070548603126388470696072505286869577813473507292962584109415778462694436365204112199111191758966825893734454768134057056864725175225722597392012963074909879280378714833320456914928241304324069498268276844006818949440346236620003252537882153774492620300988765051940556282713925416550151888940973403672630514139714848127549915448163674930752419787465193542674121008044724893091524190679923376727537043452820928026830140110679359412472638420907167704232564138289575489236859135338269574082991035759884440290363163813420749441344159527051058159971841184774881943648825364768541724422403845512233329823450007648408214823390361353692444353531172309671673853692135607986390175663989120484507936096981714789214607187741010360506871525256700730599316307864071487421598321959363643049568080006873963940125478129737770930926422409195162569608256368452128740778408840566704525168126247146523589355320805952329570961902664557509695905093338686516030403746827047330084999558119907922961582564049653891667589286912832407667885137078090473637551075641279851991042146905910340602222314327938427277396872452232292128349755273737843950488301624363579548125182584758195042907410282219058783030706450701805257196115239042890456218272851832461196035515417904693047199104228841373689016089408052203329542987969283899043036325982893343303975724854021681132974733412741572574162694953825543213468112404870118983423085234911502846813917079183420511664942866989345279215426886219115380084977548143733915461534946692839703717967425970727207690774736375580600803748096061025300143008177461390732418894999176988418008717419100726392626584757453173676705314079702002073862473996480367800036195788259881861717548662193791587977270965146629200391673556079892259846286995713256685056165404289498345944308974743400706116931391513371019844100750342855087584414613361339662730895497764491308460479942288718409959636316380587275779257611376450186874194196777273346055543501499670763081393199578764469277335038952118418603266544465540561284451714676410063096728363934390483632740100279715208557288783496316387361214983501003665253106246925720222141610023257138021243945549527733574304006649891497426620363476088014975340669694120419983886694695062318141020880086864340166392518465704953971580963410687618976323813255150041880175003134710861146564191414407535877928106940758925874990659213482778016512522414315748425159666590509081149612995538936920251480205252774034616151277622929770268515917840114016195343631138977267405942312052549427342803643651120889749802879111609220372250949227630787027357176051398133089418045597022316982217384239598073363149215888677706041138363808289660741247563347929940538291314881508948171744949277594084234585300104538325116430328814042647187813475809522406896657541390342087116182844146379158914150103755180360540573412052486455666071917492983764456421497926829523874215531589014690620715500399200565982999474764209112646735977261554407640057207583385314814791626664191071794120761894324099053868640031994800864314843855559522242870460404724939686102541473103905857359342287495217219496786671575860896932416906910209931888567458490614102856934542294578950023666506321562984126441873601371757826331297555132630060556893906100665561772242298440606972044816309111168267546670257384973846669830026691180100711472918446832861120110546890090812405047003031023192199797778429265778934719916610784552226677805069530623228250361860883207035973174569712539036954188223833586106814460211609839614769676662746477260181216623605349528304792090136738541592700666257350829391870580634331883348333420210756967426009487771510413759365290121729214555565632418170044024640406218543493532070012570307014829832335636663254076440072996526128186257768793287917605638962376604775396201674939096197949695140043013135160973583470315180459047818418856371910887858822818631655243078868210437070325712108573287404019448491969387864798888806222609113541256498114773242545744360795691599860978521698911974149466143633228804963260235178028780762214695248025030384632037215943567912492671222687620751158196772345667763799130913658974240643155554012690742082310312271621935944958655563497693401772903797508176050360548479800366539621171729964939890930335753756104806303791828437825009657455810452947110790140300536320814970154222328806981710912842939638837036988329796807046345946580013610013704410311784696848076407235623468750315774707991294604511884577806456712175417702131390612254036474903661785247463804943795432078296317826083846549604818919302296226303023675434812332899802654442827627924613372580260290417696994705226086145485045997249354042788978819468962881805658853650405700683888865090262582444521872644531860848675480728297521316434157059805720672160251373330583310552997423554878878190734945056628348100081639370172869250269885714225435520515490168976725164621126305976587955888513566890535041763304371453504896550743224620437941397745705999084001187910741403015506109548776305149038349849264895351049402815448984641738527077221667403033874987232082885486178866995755566655837372984745752772301418708629702007620878624443864152682107827246326093729456148143640064827418580832242395422270320008563978423593267688749332330138806018291094732837884574743714979072430215488263822767614173830438382525496239235235525940717606604399151277075740252247161776651614112479901673779470425391006231518978747997869530347817143259563583415265288162294431089973287547797764784978243567579660832164849408397922983673114067338400061626891605401219853111837543694911048873169706356407854743335552747663272463400653977960674006123749922435602248757883718718657939772966004858828429652006148887807135345466625323612880608209740115429678371851428711458961750684764698918519292891172558773261994940378860485956640557415883440681369697099771428918672818741216562529854402156296704093482772132613953657012874553148509027375818341645303613325990716498599347004795146719501161092091839434264144766156314003041323190398287629370920609175168109258468134068677743639516547637109516716012692873020912556233223581000686753188364400310135635636957434674888506472729226852471123110169004355753454487681036107538900581221861608005800792672519061818332068117635164008333925810231955680809800012201716341343612332492113469259387913196687532221957670095644161556767297447178868593501186239604464035905687575659907606073549337492063004033942190671307210256574067200286007447507657823055311876079333715332394028226996520510126194317129875347453118781300149310465685614887805592390815699854296109021886711533078978829605975287481870673737182757642901180489534353816827362386704480577326373389565202312619383149775516180406021531235872004462274526818944707867692920469300208691890305802338933706784593782843502538714166894069326376498565541584941314901708108925622223041504798294617490816945334284233515866244311005805766006923806308500711763439378473008433243812065934710821831706695857250201285244807769960598111671558975771878926099927027420395870374535160819498518141899166612720445486489425646269342908215415381651640024934679447169649256165175512297399533023286427169804466544901656912610771770140181941793770784151906342086258045648542526341417815819749061540036007575125126962497087116593494531193474183794194065345597874395803079972033958062615184372278382797469568858689196035897266182066310156782087204545187661412771462856419643848672232271017239113785495802565328981216682020354863870097349778129290503669460714961986473137891233168435318948214513586668850980323431032722111481711906403770534739585307980510824314286517884335903349160020626754682187458122255442784189490230386672267933446093886232465505184927445464789502075022587949377683645838928546884742992483247790493374884944365440317933380049653739311335904761975694796234955745243504340847853518702591605220245143855284399035740324778787687983111893207828446906816355267971520730123494269327665289952547422325194181084873988620456521713321737991139215429396525425040254782055613925885732748254504708614012752592219249936283618479637903809935484569877647662663956534685612338123551405667270197932585712107759632815155016209041852379096365627302856467095081756461418768352619843630269860024972175019980840149844983742583492918493005611579681073332616967491635811671095316409212168911312863354238216907558513393510064152936619547040854438193562683265650787612268361944631232192231239531008831434839508103012061969925939674751664464133190687819532656857137366035650979987009336645963744443927486152852062478278010471393716731313210574026104567518426140808181369541676495541726735875489478699664148205177635657669660765555579474544174731154660172266236850341293035660754689571434665833803559044657506755706047418735805591299872255841718309651462721479938101663408916364989759098521693359349479810137343034823181739239281315661855242069527257515266662592962953218282034976468583302381879621402409654050852357320055370717674034972403134939719487563122975727798341340213206501279129277253289120469322935065213814654528405149389977959020540400412621885712602306161521732181294071232568287939981503633866714005588269325945874098117382764338969557234002160285042806655886615835453396583382013190771200700934810555427452147832656850677634598536050180928750330529827844574897776487444436468152866599077360847910783194504195719091418496159701699337420851970556261502705682002027498043079723239432723788940942351854777923050654242386469521917836060497963430648447197238738130500753697955234574716710130180284603412480821076345781427205283964300408964935402282893024444700659169017169158770531860809134634105830162752479282024501788482623992309336817871316290962624339152326624812066556051441355059106774265426789061125582888806453990920987351380846986668200294968074362276159837994812857509032035299107873994933399285698896906075098186279141638514550552421926719312281140736824628279781363257694370894649327053582250129211869606788021748945150680734080332129080697720750133379122751210767893606072052320413628740513504046810290733379023248131791480357445238344637660386019322179500348259093668440237142519491444297498351502369648891936867633895253976048530797531302988360776925609969837694814674159498887818905068788147804767928040979030920030896690916792110796929263699637543687874261561008564101756662626393585640981894563359416576375777076781860401192551165057740831026937582007444971046069418900840347793176721712991623873023186067178992692182451487217294647584207035216319493123711891379635915793422583463523255778449058147387080626550861500366132931095795854680757866837557942203746865254421831690038933734189160632833046771608159654964977233356251572543696262771588829604082620270101576762304251572124771556929416055567038906754294282884524870367725213463658156686549118204982770018033890363910320213537811081607626857343023397367018273260454293341652196313331663929484107171704784944605880945930374992683048214041642295281636428688712377336713112259383135873462079917308788343924580803608737724736398338266203437920703448680544973413727740681986060815032380624168140458581995050359154648930855092445366814466077862781653914380873216355758029378432135552615526008429861648648480150374272055999869276807775224511668953532168664273305751910321324573113186761367147893403575673189157295315955629297777593292911500935768123654449016685064599706495060532738932494274943308111486083566067712218460531634042592464987483351360259353175440166599230817331124170819867762023947370232093520400851016404540707016010586451041771992011340507953197950656227167800318847008666840109541106402713937639280206472922200788530054629235522207329933806684001580300757987312475031699021081382626879871127974579041797164036555116037503844381436506244337373942153920707335558742904412401017859225952445780858922658988611532418253938951701624384710174800481107686755626009912720702322999940759846382845687954614041824279358381388132236354484708577992953014790319574496317144778431792297295604448078879001259000316958211295786862900409676322417008557277842909007659701842368181477362093811198528476384230587710519883829000172627201879442412999574139316623882453480632779509237837292531369141916714736740439152681659021238964263977527611050052761042136223020149134376213858628909746621131251578185352419816540438093544362987356749802638489868564431826754940742989650228365869310141701761954816468649704311372702406268790670125464234415997433775083335338222445793606888433232741347685250054647199028214381983358414107709722697499851043499430473900298061667223057254849257077769207138884718656567739339208143842721537487707433533431356717654079039587782917365785850055598562973535507381357527282758746433209819716333622713448962676847647104109725423148013881295264915128569832837521667067408259151286521929838552210266645209038431849014872692361061737116236720547626297180816367786769411992849604562904117174018780151711341899029438068617475347899568069228834685629946766659730503896165066957583538344331952453340474785502607458927006729089484790485344089088893872519057941012124036111307739440397118721536249410036897315095866014729610985404151075847795629432909913125397108923970573584277213123478676584627525212317920246969888311272067594045991484063035740803932796229564398539272826003035254201887506545565996068693120075229867492550450677743569593709979725495082985635706833313582139607543625933203917856646269230328832344962571097770676581687336511176552887079319905682385438421457218579116605283771059428397412173347329060880889725614471940128781374981499409982408003265746753074111147220820556704338125921692930913883323395908806587044965757710401169642631659295311982613009122978379833686602574913345960528514330098139173273019629345302034691192592221158189963571641310440705197212680304077280152504540947433062380740649928248426693717786815832790550263322821057250491736673153803882412546477960985050888268254470253650770970937952104340555233665190712101348963411049811531083306918779254487677463156247972310385884963809415042789322318015485852161187378507529632755664283452645528120433299238913328067341195313978516258355053315935470683245961814840466209709727529017786860754984010578860413153397661405615875874799467959375414134702160893563979671724117408835368795758861708090132419984444979445533554321254435401107810529803252460443661095880587517981067127634734778237665629828639636610754997759779907481604491654710300536466873986565121825100701920621326335486963440949219178885156831549476623880692002899038847491862819491784775865536760982138271547792605877682849791968062859605044342608043889344633806861137327755134758623714741712701220942134315096550594768627585923258284564353760403096718795816051404356308354399610015372991474614974445775508003897110463501310466196807362905551143602238518490976836654812850329434984502538232297387243747050356434605697685664779182325526166774174850735471641544077650621380929579566022482077451887889992975618938754658523473838235200458766337565776677775787632594724158496617440069524537368575937884603363063013455821438288781618592415053386881381646098411141312038713891653485525921934613823690253304700868728538258366956428627053622417444616629050364969678993436431784117414136970515508486844395177726348345932995225036324989222236199318691102009186719929474309167169251526643208343898169188304131829435109323850494905236438958598277977236822072336464742566568344425991156931427296258505835741298314106318559273319940536012290742485054683349481821436434015506238058087244351348940009967617144486534790203916972397819687363953782165726601444180791345786928677013934277788236343483769806837831654612136418019420330634719425740439315634679648090331204625549292240653922105305053275093059234047179213649633635604760915458769622805521410702069056237819897873153811623281239690310146601263269200483480778965846490033527235510851628615286901295594954345451028325721341462105308522941338750485954730477561026994853902687309611848007178974521699511167753689407877982808674949531678643776193305212938380061302387723700944730414348158781154863103584110735643181790009911936745283546104757612787177154332434370401635405233205178970718862605945713059692816287551629273196894858740949201241585257566653050630441417554838835673925658139991045784100940068581310909025680510476685023021305593304997536400989904791698289530884813329248506035933897012302212202442990283403862890495117551139011224189266486359670257866801952588589876024672098926142123231003820914488939199535201428042557759637727663406156700192563829869954888628729140672394096019772287466888892004951739521451332956309217102578328599491146481427266181413322039180409887742381330672354742811460895625795226001308419638239741938941304030715958530394387352280340085601276654240731122906502491115818868255291644048193005472009189040287692168370386257365898976327599521323804144571470302391435247573949581945574391184464675959716746660240962571997277653655750653533664484127727213891033591951896162010669183603638109885796706488974133398842283573431027229081499537975011063691717862986850720960007632819234075461340210937336024630748586801427878844236906181386834731832023105778699363914620563700308869639697169249091581511101040037521300857014727437027133104354489761993708065019911288332636355685359954623078066650768437248866016241506677768184172067175584329117253112661773852526866910291833743934332679662596619133524868129139647552713657552179829124134248588082861504848877981360972318282749771829106264075907566760091418239342748575691146343300410221530340283965406133260040465634171576420097401647398520555210044065410767796277077642240553701855842800849693014550714645397092743794744697146221006765359283431550156234224652896604427619416984509862442379746789697398027042398472614424525264542058958205615462549405441076726943737080530782172948427704444760383071498061712537974215770438951691601507911433922739809854729467103471453457051094700461441499284094038339340957725645223737885173494990104480453934420998383674887789634963801735366932412331953704119532004561214877471773942447988638606010845148279799546748480271101422144242799406380406791546336830149615083084044494231782223046507339528975866917855192901136111002822963183510020304496639044248544874225310870607833955994381970079773628746432371140085011605721896173541249565597069490753047100369950470520284737244409301755823530363348672661094297967372845000222472789263790996832099394009224111096503546272229868254004131827533827288272068135826244848002200208180467807948096670946988295737664839302444783072251865440230424876161530444574522119489375516995515862317690579608400586182321992743228863689180271436689687448714379583019439402268060439590298944912917383798353294664802659042704630604845749602153426809489484958372682812283173595455117639255040567524272126679309772535075422000078818871191278684351129025177628824903945413571018875607187122274526395466642481057448520406340127179429383033335856067785085592563047572230232048574500341071573127074242401827511088078787425890382170426599204663859027544781643362902739716321387160833474882134706932281147958391155800343539492066528705481464044824331821398685369459966797334630384635496008797806783221636010888096652259220060516687173314394387979001271501396949745138381135111385793230074522605348993904618248379480590720505860575040664759671318964703764694073177304296007886654047904168631007017061133937240400759920136761269479662146750986988439954507783955788669528281651461499899380652086982041056073265846982684587783685430514593204555267053009152168071714230578254929570341264525632069560519924587141108475167103847742310039602423330120562859397837985352178266188803012960035062336132994083916322005443072498946389082975598330628157404644795463717135393607475054595217385091062561848957162476436641252824861294472485998740694568038852738397341129056427338079022598243805354826374292302088299174306430745624012681604046062664521556256751509722377734338923560369158209900089239062356916932894140501900231899125153000491721940855973460861718093819952247899998351344760949550590712032591087394810494274054927927950462420622574150262190291485404665641366341460418264218666132018733011820031479148110187519962404114947037072337721779550660282800984193233481511169753970596474745911912806798246624223456950767878524067056145486542735009736679180337411437512624749618379025175940160673321995771002558297145078333993040222519112941827418678240302540638443575664793376495919169251632280922063227487240843347349646000962129949115519805419241724963497620593972848655882886452354512444731598044462752157768468372126396060569822121469702960053734201492115415416069689533700997591219783445252083282565483306650816480988511527655637015201651656149596179492763186868152784508156481738195180690153384619870976889824032242617034593054977451502788400442423348104117669061607411917090931260164527843261594068195412112789635673140500562618080172342464108528632493892720796431862158143339723117851992478297006500314896164612374686416905800796607196728052237670234316751887830403410246151048053458637789392002080428278319871067958390277514581757851024113253404565778935810322357398739187911528229800421956858480931051574380324302214942657197371553680965053898291865562731226953476204011912022929931658868487115791294872959078065041021247019347169748912087350332401920129064819279762495186906618003897229923495701445396412337436627792545707600856860745262098218952885952316988574110417585670691816665427157729139491182655054681568732282998398805358622168565347198821401089763778288719789589003556854812316419575289229675253483530328985402085093469413294064758771724582988758514154150287810389363307456362559518855184446774808586584265431906532488335732272016523126781572904950934437299473137055416733290586963377278599964823842758856126972414965490536456796444143146698036053350171007742539193879327200493166681083343465302430420739192687298281666609603147590521699272170776731201211785779567572926273513483732330892316551639112469268697428763557201267608974645958099479176159424880153644327194102377271323300777898680344525720494710793699297125655558175197870009107868667821440581025201461688002140687957697457481189523553306599180285333225436946464899660208057315582947219271790658556559438517197758924314410855092125609087033532564167509642721538387997442279609804680210655701054048723705960818738602162818932874345803180710878903740529081963815308679747101662320903863716559297726294803716406629785252106789087442874627985465730306147419659969190993548208496957640428244269037127076636131924295252716232789916597801670321614942070449486125082231800380146496193687390597108793871623694444530347211978454858722530758134989880839132688287235421602136343286368191160933860028736444081071464570947702970382271469627271612143243651047157600603236510683847257296909792822350629326150562757434423500865288842887104636824203537946995419900857598609073948217398983282140846998388782167415426308684140817952317363364679387355146405485775441474874424850822300631973963289639428763405026167401022988460434760833903700328208362302353907219202244201567186378344881381496301978264288850778387671208273013223951496902823924404135536091055930182408055977727612079775583048326527020612297521025618542742010583185135893492765076950110115980602173769767254186442422142879466252121704151033577778343414426616485002344323441960936045990654488290998650422352117748359296663231548164959800865998507890570250014632511822096378733338731265600100462747872239061538827759197352071101642996617456718151271085717737980922868419419963912174368017495056040206814029499594933491630352449608338915341197161196158502064164717481933300288410444291285075028329303808570999224103445651401735736232265023557780964806465921446437375063978629870909061123575573766674324579371548163661315557377641613553003725668791886354653416504317461897843835529371945366554112155196303348740231644968315283263953258860597900864633664544681575168529416456290121254264792292827257447533317982758652366833711652893166441743920502257520394669653682789567753384375008956360329814589350980084162826542084391341644637173180485003418327051556544380365456320840279467977712631572741314832347375742877470040202532173586366916209556550524614001741827638944694631640175901233971258884410230646195127732023756382894351115045204829010143915787858317421206935923331411391769838943941760963515861289226147817080561097380206355929155374009755803044905598808268420724979994088943498597378479952595369509021377886786919973627715334401398286378383279008083863702622146753970183101443501771882877697519957790736344990057401231320625259740435174569299273402461793685068269965532872371893217485468292214301536636109516131265269946902981321059736939984244871360429502598227540396771514237378430649862827803866180504297018073050043320559707588777463303920662792822838925877052348809432340011669713701160087954687551095957822399446295476571502727367821013904863407318753239910894634361333343870236392148458941333181490557893114343294480304705077691842084046550301654497221420536405330356307832653222927079565647253933021650249624133846151368992733243990739425899769212842186552545399873922145656237041826014595717409046501115267702334148358708157529662792200555843474277640020776032977641125092304630449861589798790338333828276080800025446297345300882297791103670392177187256453781264880103578484546903119793967102481456435772177474655088248790055083122620057649977304181953037999542642999231292513563930974295677450659533602864163166747219550349224497430997686815593474176395641145452179797989670411754909780111753434115324804421682441314129452287873368968471784226894585935984300227039292017508626799827382731274757918268203116617281368401824616084804056356685422958644821940061396080690685944109952766167199454491709673912758103423654104352103321653602091173940805231457293523672107781097058084071249385588732770020863478753379177493014002968701981719496663935357811231971821376650655770252686257752769933961439536044745334272221641212394880428670316490689118182704243257133829325175775329181771086135252052751352974924404102071236957728929781365773404981491307806755839807206633857473226606179558805292467717997023703171957306709320556623302494798884315497487624687563344337046783282257780534350967602320474563992915589726818873648261976212153905595133242945179863725771138932976839622573750084868585736221893653761381235961241359634145906490344325440130479447362670580370207094190564441108299953460298771754667763238025515630381446040354899954516130214416735975871584587376648035715524050021598757273772796330556360311994082782873083662604806520233823506309596875499375504475428118206769108677602046510809566508386216181569403131568205228480717965002439612170640558966465394089586154380788970286688581731205324350681885560624091673693342616524265734382519203253527371107736735367114862510742817041779512943303415296401587081377800606047050774174698975339993489640337820858189949251491835255720181212531710678101655434246318854257137599858479306752030564895011310427340260942543299765551556919658500171674387462431237076009769719970731445489338034003720405167060603292630157142932135237861810154345121579823132524735222085843240600947987103450842747645757528086094855533936001426284997002102522934550376516880684685344420570815136024831377198031272512011227054298024491042714804732938875065815229390895079117365827449731866147261173888778664116918024810036213980180107517718396764707783517931048528225834805332466519473580717900796998429748969484621154219253044385644054111420699641234454381312542533713724592227664368872187478345623167191837032630672127962775096440940445554768725884275381247931011636113197136529016283797174525143207083866850433617898823608335516100037119010058098497499739945259671076401529661343211902248832470934666796916093285183649212220692188376823103554589523637674218604768625112873810433414209493264309682477788711508347183326041769979878027933633763293551618176657364277308460896201577330748030410116562709629618110478867247232649222542199749360187866324094421077749239442563081071292857025187803495693904942213770090212902206337047887725366299212260732880025459499437116100261807897648950258996889207323635732695944173553638143262008907609133761590364741138519192288272547586428205867738846263726918618139784558613166025467651790544206671583337994705832169991000476192288511008431800001225480351538370591574354408556001196083330775824582698772763260807958451482020900760222558583126916805498336839919879677080528068447705240459994871178086509928641179575045687972492614367867327232921247786364303047221189691156527503973385686282957904560744972285360150842533732329235012629295150383903163212730667536792766174455620185095729789277483161516429666478980631001321645460518707967658577136194689484453858733444393936108905749435309645109925937682480399249271507994186604355529149082023322159503528811664427010047481923232182753787692208032099279594101555334740049207718757969996329692859087706819151606024896005359403725096989022209184143389078882618344862416293468449857354305605438875047686831365589198284649943761580310638406385017199267807181228331264542194506876492569807333148770144287340456455077023622233527287937942763969184080097802435446726084671656930722072317388198744990055717459643971055365704575362575834925633577297947454080844953534696338409871553256728854804058371465819460571882685947884650470965685031071759010400312000623596243480220185231792430462415369595013843599559261483122603992980785940594436499229822014481591155357586511218128529279476102653483495337887082915022246159266593920610325594147854423590020162888538919106137703346789068542021202218765182846287032138892030413869910663017931305572661758018844603838809862343105824581051083914597326607885581237223077443598353716498275834074079052396399421671920234715055512620502605874757175122470164621397343658819294766583585998056969697727520695173103004032390355088839049538371392047851526314314814851881501519211453314002075621495102650389504440114430329649001969859615230230066678334756000020650424799582792257792115784079456260523122582111702019975987600839559084199281430994953387412913526276885841199364647898408105737070943363944283149692868768623995379296372983091318022189596446711722326915626804226205725396516798655989255165587251317480431418488131081658248106742239408670535814087793622857891555498253021409078983482424071188598652880757732674607209794716478932627990556044048647639956578809999273468704873271265762489761523612240379367559497659389122452249470313919671764242985692606748440630278529538415817754523277341109793635283059311572901472408329087634547580322770315522675480144113534674292512083292609022315153970164405290042196769131898641596074796218204600291692339768576314149637418849464572773201208473745101653063991760432931394676503254357205810367380590855444992567293568942167235945386375073583531469936203487320132327137205664622025122425599992467365776649727923567452543845199889490675244822500302108420060397105096306032605732808211577016638879775953181148664827438715696497304533954428793294741885299831258212258850810308335203640007209811380751358176580064959290887603558294182251770807667402692450538752926487652201958115041048132753893550117924432994200838937848183771574785577936819529630242781193095184499661770294487904123147077965134354252938999081257556717151922380570140670276323242679384994779084195549842218133873629074104214950633226940271853078440599318499574081259220967013338244136236348086475390241551151870542823351592398531785791295219177858532673193709242428170535549913209913571018148312585787328976656577807525347733323359931479042954292539193126700162480018717026878673281135954083531151463078503451621646407155555605714943304041171546736850261647820546161736723410947214558297941728979295193399109675684436603865833539961079128072256061621785907335597051425720434759532999558665283873713788689429591373706371953495139853900815812475603122097494957548114990234395931311289564950780126465801227314082341631943065076727829464487393203656711143862041960736215251754936769147919737790672725849840877124397440762927980277502533294611368143230523196255129204132224691236368445084495468666628181652964974930752248141358820470463293321933334661475732962171507982246175214093610614220460932924748752074922255066451878381135160345596967978197814447048749225757211318032636510380085154104292743557505305183938635618229018291136046959148977431628330430869102202339567176262110323413267545149309948164308988395725065226771856954243012988828114928457129014716980824775829336605246827533838483755366783762574779053301860320457700864643732321937583526910139753508127790999469428519189115603941117650782641015991871417673365711174147771362121033402978296161921266819600904579543083161674403763359845723377901680286314226143180205271436398952455223089021993456616083190999136138393137410496499190688699927439829507658832885926813069259238459047080595269889186107272618108173922346584772132805390859084702250441726536276794228447331453639765500370512258770993659083230900183346242647079708022014768176244622918802555999248357163153994383364645746365186554178574314378140088797568237157335854285154131584992065313468513673595991181551960703191576703695797092736106239611753134165512062551440057617736004976092251425414079839127560573620206906726201264368175169059724886396566262254703659864217977527074202745383530905226951070833458724179458876474130520369377850761432443572267402661944627584257781337054504091025811620751978615988847644142309138292673455458292377511678726844578437725969898159224977268140788442829857230792856271110359104496677443613707799894978467184050475170054462790524942670286341806682979428692273717353769361061617729071508388051493088637790666120996949735077109033037179156589808319416039910282933761975930762072431769645624428266282950926405182498951003609246015778048686742895915173699467207484771198846369321493930188628568807527010230300058028578182259036853627149934531569602399783417327683764719117457563815250418302035129978713079762359284062062976055139171935005009513869727135466009742645989699432776420639348460545159907996093612620881815547587799641716148720078531275031098316268435720353978798677722652579472436486133806580762597820951618832253552508320970328362616057816934539937522820842083098092019217256994267840318673792982191698576001008110393083757477774693714368531280979670115361405908756740715698056664799105700364103433855773528207514059260805569596715377154748978488043274804989416552359396375135344712977937170445771327828811386263588363760812280116503020095083161881980349748359589954560801853830110256184897196572082475569559024446985051002702477797372614065284362129732798166324195325352972029209842155161679947493947140460158586634839196620724488120811675273260883989278602955462385919806501853359696961197050537554817587491697451670339421405630449382590757219593683676186640652610726042599909228011552239758994581821144070944204334770863218119741429373216743836530052717429863774466239605519545983079104186228446635429096390364430021086320598982070256638711624614528226002724313204762417090929384198077536519523229294708099584381747014911150038837458522638390556081914585232279822434531170053437523692562280040599205164353808840081322438614725203599834377924642505667255834092209954128190849163773122791494827441172854344239323676391910698952897509872785851942473292817091700664928448182653214339872397842541726264464032079293963915283658214217023033392096157625188125732395648810204997115308694389184180933004427913322345108794499308337779527571975271575101520803724683070270355718510975434519304174878872219594364505178203262331003713049104796634501434041931621598754488367090423688938501792853735191377186529959973635724229403848767334262366084301543835070018797698292958652545028300059741459309223351872627928390241087649719611128235723866747827943783105882583468650104354208331469949095840157026593271932332669102045773265249069476457064820951483363857095042673391978032442708981523761994005870067161127178351026972616802029924031236149923410185355946020647929644286714019276466735707216015156080745177006417908684087005900420464297089575266885399101691116346772774560160823715339456411771170453559513072142349505868452723918776573626925752757381491204470861118483589598122897349257384324396765069727749504588243008804761316652202207674449673194397903434451924551686302638747217880564770462215007423177709431034758921694087476112808963865550374963816798953988100560959029541288183179379445425091624360975895372748904422277864632720502069209417756694098467532996835168758581243486357831143075092412986189183943408894941554213208006529436250648517586547194935967138955821980859200362784313691863597412921377042800415510878113182402906071001532310377491164393070844626205471678874362329128952443317076211539856838867610089055720717400902074987457741667138439904911734520701782199055531016865016296929571506914420530673593669227524682352198029096040320178021168144842265727299694288805795531747582041595037613664373323134814499345027755119652798782673001111497419776592474351184109543347932916313983419758713160414010395930096010387829154649468874319743469224137592940348106093102093411235576639358029841234399593379677920694398746111334003617546362961136958184027644956801364801581829921990188755754024894025932350145335424534935277965553993339393955919836628741549360640028262510695659941459795659650305395502080897427535228579406591273126224426607245078235923974529564116989830069719308550297918080943523009668321322353829289015057563577613322254270022544449963469509600209502397438318458068339900963450658904437538995265198923761692749241147639305264129346142009115183335916133058429843530157147494015098569972444243992399100618275118447425496971537588655604797788650784364548224900145341127645460427552320094932427033381041993227607388024394532983976469556757009226487442669923591744611916594632381535746003685379550404531785181745420233641012394874016569120015476802674551192372114410266942759694367982852206632900105717537419616103949805553077618286398471738630614650409616128058253587115320124339919796305082693868020782568989035740648624719365641789091686282007549191830975361933539626446347523666398634241745628239247378604060417258348921209237608898406556825753842946213984257274405482840211809665426614837313926879364674515799336817907695945618522042129065518533645099481255587938443498906103236320790445619983011816957171139670424199078569474043184876609490325787958332335703659190175252996825550986661247005029650537140359335808605995408570911157606105174099921644418829833197787157607777757378975865533615550288193600389364243752650219592877071493619028552973856859256397910715305655246292033670438053778548354096733293784874898328503036409129410162231602340430205180215887856847174454719593348335245058615911575878470689805865824502045089503582933581661993596861556763594280796806422973823499382159585881350842529370743360432561812406432856578342977310813577166735220102748424071548463752983674711826660907971837202269292605064563488275840757645898890186043500943610293205684449108800424394104938731528238941107734576525091322977431595830258688293000164153141216018699391796440374542504661028134399871994121420577749787197526428061335119347996139039829940116403987807549812727017956891011765090139541219873018384396171976467443972295234852630960975376029341209677169519894605454010043269205146596258448832992478786719008529816520546881359567600357541661843412463971791187347418958550157039074759015310081828614220962416555690055582973729347759629014871362055254414645556373666000168424938809501105696620063112987568314801857913304181733025155723734726196250853153046490432367788400839403545422948840299610567748722494199207944701672255311942151433280742523027107113480083493063985705621951281060644364578738577439743506341600734240109190583963508614129592449067738372271801168850067975064953591937959528562357584407123204510807268194903711342481208809664604599382754974816657893088115470291797557591110320958189400537263034327474791965749637297749857879964553283112312371606153975258931827290902712831781628847438018653551893704667720725871389248199757008509398574968986743116864799345027321152083092776454088260783305833114236682436070154271231972141278529864763679054744662022281861009367086800738109716574528215122969510336382689983631721831021801445626197218851761438639275749910700748430633936400601555885078742976756077314170525984632911302695426108041859906777062037688951491292888201147234072673958089829484138808527896808836342604817478518576227987200138410835363424043778621207079146198973979097997942639152676291153045525192968350003410020556108443922615464829683136169848006010019830168239819714345467453932133826660659150334554942844927089652376825030535066099036499681162911732889284271062029490252410963680268179131376186949063088617755062919731603315024432737251733629675533565485081647448740055568789066804968455973262078945716659761013652760746277558241801790448902749281074215421517754154242411707818951178065206077355019576772882376000183549641870655171341955566689239651598248090024860612846566814414481604720844459386959930381501986619553032996215814097147385538530509463930333076073002087338497732385089314473204754462602229280071305682949849522897832871460047917347957046090429484198839190771902192363674868038330153654306036162254282989319870483213525200748623123571719870526936127519590992621784185544674553305122569584727495774669403334519609906106376041894944186196158697834269924733957482879016121742246450595473112070573783423044634685228766557272310833551390841931090709118589860672207116389181784151334078456644463226311770168661511909652729495227498823704784983060540107125568675287581876214606583588534103452338711679196533091067955692336724383626247932965039768657630142270713763336955981261276997446001436904240559301099632709979657979624993847155622900448246015050381439809381131824091471685057511140010927380517902084550046472977040601383321385934389112677711471586072586413473858188121588331016594429709188489145704982070504499385908238827232340819580423686278616649789534939854135526631912911623259521193494056106820459307853893416920532808269072728807711486191154341899004339009465732732133989417256779840305694645605412485109723710943763464691654523414694532896856375984725481991903881120330458113156144551042893139387995174803398040185824100682453829814496415934503003636742505269580344160724493383474967974976468802967143567389466303401405015108705279063840474548805211032951684109163880923929894269790192634136700546442919326093257592673021413196274791511609160099035126007971827995537834363372845727856521702780929641809471792702226039444008009815543070488852972377899743972373891066494231110173412984674061527282038494587972155219230224116558499277285033830451640153633943894756738742868131700143791647240479997625086683721455046233264284432878693741521124467123634422949647953149813943614383796248664912207197273826956815900781039681856444352659166060335166406764304144656364603459964368591646441933157148397424829728022371211387514496965459461825535654683208649795908793340716730324574934312806448506869360592318776442983746872957258914240428679337187811165619269885973416954843744293850806916531206975424216909032616989817728105940756241327243429471233967589774546394234394211979516167977819042649194566287632611307082733984008465360007207057795393248934454380234789808058392407936586588000039254387682066027806699253781810865820324380883815468782008254815755093132329406644053348645065237576679148998584463041251565586487986136147190201036926461765061912356478139959712016094657320552501164459809950668975427425032869948709259747120349614086943010364411567145666092711710978295729328895698411646994110233955676635763704784170357799799603705555567480115025492586955358945633963078592109634439627224615153597861868037035698736751746558716806677473793894593018202183773823648780953570090000909611238955707669167967342499297204689735064571937199909759471069634437998679749085343789380717462034839828014934674949519407927002406958246175001725738170726766685841055557122429036448089678387328604851748728750690024784628005822568390042893315345620613710000520694010159659500251483575237556887828262879254550505380120504895440618018736564258140057948805127544660570309944475899169873434180863483720990247607261253116855642721185242381502238484239363773325977054596632259218000760842057584706446489523863533312699417150398698491767015240488281724504038514665377960839030754177218260220546646064480782210811832101046854301570208259718730259798510806764627609414780021228796143011383598711134366015277190385269477919256320642099577925623239831774580182622361762955519172683133859561239880190862102228055289110848047487708856533246761669845956356541460113952159805225241513649505637846431560625971872812655535968496721648147076108045424863584287059399715196471991612592929494760762351922470979760435624752984648698309032268110981156217842830930231873846306402130339676117128288729656681132190630314786920737277275010215614921034812076388287156574099159531247029875723628762759313913485865813444257784960809728060609142604449180886076370877408724706631975023973155947114173414638383422916898238319999760044075038672521694911438043246048521722296802864616064940493310006434979310128209818444174103681866203379182780661606886391653460997358375648437467750886891428865476134120007631321805351890295998595118816681094157923110265385728277916321447350383341875256504710517612803029860747396290427017117781234286893001278298203892453057830353822944997664562138147449216957557548195000451226355542225896997488363657969459366486740266164075436811570552437052713691441427374595955737362338986899547849051135312132858508211074784575652248022312851061072684354730699768949668921590161276601674645070258536521857747804238859452484537259976657002651246997428551608210276380610692788886657223003577262859853249098951750381604340383872517335879033882380476095453272090256993446297307368806522854449993726621135712298257494475604238487685391177742354646622749964998170247379708713773479836803390664273844555200171985856854177510711547792653580626022686723237753351955662338026534114094194980249106215716783703892877461867307017270184844635479683809356456878500276696636638549613164472260181099019282575818575173418020267224319078869612538570302148625634507122803857148971874072168060048270804509239473721359470303381713347981645753391883306184541645416683207383485650114830886672449561568633581026763028864648203786112297172249746726867337596786054016120183257959656507521724863773803495162882472734439616008352839666179500189262344855771396568208611770807700297507359057078500253721835628683540677111718953815037185921079512093331799468382996576558563880411671930687860758084492321404017057196526911691790711077195792983078675701292502650824141339961109874306588052842040834629003412271571351156604447042541507547734989405832650884408005117456768814513899829701258310559118068097230740304858133768385893967529481511246243931710833963284953681310138576280759533458357841707885527443802512369632367449313425425979531823451449232049924060044210334651512773377799895011092635441313225499213102314356087152212207112652784912871772693131161779565368010480673455684663433177055601640598479274617769900182309271721496219633385490776605907270986111524952671104923974665949231942746792312049415323144207326074666765236988889341553669032238472357738495328351415116457752048692270109518608008512603500587060781708221254750018082027449632183622963331537845566496043025009583383449914814257109012351300948487920008005458558605111106055001762222630542125260566232985062917548954539345124738418240951060641503437057147596543565987699535879446006741318893141280286394532449912638260131711446544829135130524439540974958270964207663031692467724049429618021060007466221608820951846808223078057230924666093995519894270138725951496044791921880833619839315732582965415326889759579096098749499188931791604379069157183721412118880399987096644895708238856000293458674183389731587730830512409741746205796145326717815407648178247024857516937228566193492393071707813760387904623101910725287573471343440147695736041015131147553004021711219467303854141376293650868619689478338743295309355401895855494404178034226753528758333765545930549475745318688959180206435126951898755047472037653269270965190974622092671189989471414993612310563191427834809283806313383001236924049184266471797160955930467066012060189943195597661218917853737801465283701551250781618438697188397642429664112237747156236828839580041710283353299331207243794953067325358375091819520090258868871031136879185880518011904117545406978356151865039015265210599809974018226273207490635823250981846869952885255509876858338929582529195429139077481653469612615677641583952627553903537418957594866666041602088297515577267495354178520604438108171818366588963645289105062318300431160265420625747860492449093677334812181950325978581578102812995687882461722771209062895932773643090299682088743189481304475084455716439347462112527077380724313093186982811522668681885769133308887653656885087476727563510387229672767200419641811782682785729774774576390483801711976491169557242733767853007710644446975121825298588929912481883222722907924340700887247005358319205122619705778474376175027568732882957881238999336520869535625098132524697481628714315019696088142381596298004876111207741278142940285972997823076736286166861912971691857658505919513876999300969676519906561193980302157817708309004882802381809207824345393770722904766333978183159062807333108157672560482032217697187996646262475309190063643772398074025034437141876693095971427764918795388351276324803364339713871431743423288585770827166360505974942825616468470891706455653045604964347345344285288284818236787037741896968689674922008654103108629189426888858203436984970151453509832057296268626256020933926506636422969745252069737019366450252552576037816547705137028552432596299791484066069965516844075704505864627918686621905627058938742989832892057348899218724172593670099154779639497487996034189115713162412154646502907670069201136867564453426641437286352917453595057969177688191032668874611149986445668022603464620363752481267012715924865191370628336280305031595937310647844639835501047033733714918781481091453803209610522013614371428555894328381518144378975882906005057471372270084533628901207917853317726799097674261794255716501420231804110039800124128237731522640836376202196368640611007462540308513075449782759065947357130697779059558788934113116644684612644794828687806454989476239994544239313801217742592325879017415231790988984088450524656268259314819917614364909734038241826569783851331982631801233279651566211242173674934205934531059014542572192195044364694336151338775413695456319655005582154301508808226405317947260033894231355697579864932368280281906019886943575822402504066214994730172442575948337531192638428615702568302915576301844318292164206474178289477778173003391011531523045612081452174744988794039467710977651879714244322569292093878378975433851963846435109397638436877538026901142521448554090228167995495908007865929159972236452379037056791675018669215119284832383534102607010678267748461648682257508173504983014816505972114288545958282002302668385913773547195733236719568499729262410403591639590656655508529914894285390528240639631353207097254638443036879043554004855349852675259382371588329570133730417579257075021685071643868172802067868180917048328135082743793067800901857339745775246319201723929576762243068162640433968618631627148877479907319198276494229627982778802804549390989877151977998789377575623095505763797049016492252841333992799414079232519163622132482568048689938532855572588873629934638304556505822713432906167294025543547484596450779460803027305898586290598908774913771120477433324843238097158343480724667483599251259991827417512585925978371330988791803281620081087081057750685531122247105978607422622670204513528306378020064418332958444201671774355635957717278113886328715214336758565915748666362329303074509836506051610531038345096199469301573861191441797283731919758646260009400409291595226124096277326689325745407368079767920491573082366149762528680086080241022956439103637870696329501677607674241168013186152029040438824631308393182732865772610841076668922158588373643746993384634396841490384687487146602897542764915144338812274474230946667705849783354111321140493040518122793502886822222298302621672791329380623307525990550618061697658421450779863435951943308796324438657412656897368110041337135634798781302137338174826412385967753298602473657697778217300480541359409376800401414963892658760809004159440695911141821176388732897946164169408834314199139760162989379062622423492545589248629307059883077954292715971413889430405209781040369486491832914422834954658652877375520194787339512698030745429164850269713521150640342349231636911331871049411415234271911073171069145103085519292831450208577233199451441285045389394976559851496159277135154672278007482255798588987306931215865340623598972111195068362564405614278491903365940935747203092720009696026069273929969916006641334838696733290543961904894689372826002398432704553903737420101328239851327920836215794955299103378343126921974862902590099397123538743179003872295865501209806830899687885616674535634274179693891818766743659452703059824904038412423418311569087338624162210650041089059741750733453155071970652946996288072142730511473716334356917098996173786967258273326408736905368843325277229411513450898948212099241785296456565471279612022406783366414336451548189843429904754510369110234092876590779024626304557102697551415344291624683121032618252884337894959927851186152105613555653415579189749574917493216374751936662164327255071036959291644883921090099233295292957412745599495218485905368063656691558772042250838529677138907260693949616373330858272979738822125029002761240896025249727800235289161572618206675424774970851912337913487835781399141050538521833224411845431042514379534282316571493874896502562709805432849650717773967587603545439697638479620633588301567108507918037390084463845061269227914278154573273142566618976666909327073815318665960354917019470538138402986344142278200224710622442740058917808533150681815552356093179680574022827751646690361232820571393324724363634232568546606906914367790028649781872664560748566311106193768404888422832680153108339811218575050277729994647071637082696591905774132707049620903296093347688961921238457992282148233920927779592127443493106620463464906361030521206507794127523307651736291482842609069904106831939492580897866376985376045165627729123154418491964508017650082534045028158939458573720156869722485797563257737176970847918837687061583829879740986037667873825075385898784241021999852873658502856224086815021272236659450499862877206523104248377828875922343189878828850941549436697859710060279696797263152213626089632565952499302066078831439810399422414868814517942943945726413876641102515783968407310412898895150779055046045873680889362739086414021373196681779484800394756676470217256879421187793424517149854727981030193819902277301874210251084746523545046333000576355973819878967132912268140339645677965945775181435058258342948731910126047017180514589712762202948082055691605161176962571679926835351467314111491892545093965349164146531836676196003415093265491991813838727840525036206778081149191220651215991360156350074197524341447807738519567538724025115659207350308825292686052200572474257108846204280114283352327597722325571785136240626821860109460841573404432101467083785631053590043980216384058743601645088792852854870453286774651478622384518807708639620285091602688178420649509621533681097245281677559021152454422978057811867308723775895184980286627717080629447221689684298206538171374737292970640893183043924014821686224833159226661345367305820520939265756204716910238112329838855184382204751117332050793823198452023073537623479311278917404358323227413100682484013107080304645046060879755577297786363808027498273290450933282454411740280130436101197494509383349228583471800149841617712521742386356898823548624378516747458305828312973384945068475380306359478617855590965377868370308004683557265219865416413059369313714532625615924848278170215436782952852780758174639128178652749354469404338263804746153039768245023006932717412208967254347716659112114123937643740919331485223357082576228042078564125280245354574637957987338934769233913991781898639635045117966269346290820217334673340259404738254086476262686151986262137459179158138521781719462569596905573870074205933778099620348460743221582233553622383256925610546925764706674635828707621019701194459181719993744857756470331720153192612160906301644437796725285880444239554558217333162650401399784421198414239200664499483629582191291485143466398233712465772563348236610762008849941350492356443928976464049759872928799334838999590543257889317586933715222802707716321097669157110738945951321037999822469465541033236882988216421022194960705962558959280661176710424535301807088145399902237691374605522921937081743870807937146269115135280029124234334192588906021198431558890957069999112356051504680396203466279601189375646162943684394124614555677791789200166668107198288603519942648217124281452048003565903165618590292331457689731830758450594147465556182945798797696967035126308989641529237646655396970813199884891635270269164926579261891631360565712408642736812598541186133280564979655589713884313990591860762958249835757691527572756572321514819024948601414197466853250861199806966233761734956182084026903184748169925689501372387754311205878359980764172044347060128824467242981856461678978303283380122158931268929284350280602540656013614334134083400737600421333155393433808461244176726049277206268770913394289982320684836012623730768636539493378607919078298947790739306152353073789105730900515928572127376369826573286124642915854794103589281012043091747722758156464114119917930659504113188975279803767851049932880261924170540255047648379837257860833886738101173910952740537451560603563867734317687208115058438423968720035589732754045338935410887928580155044454918651292762799327971369456170369720548589836033594592435483232866550011661643242508677180243210747728975458482858089847748561668867306964501174128868763070600003348159615482875569253525714445268992754537890631717193851045521161871307324278456050449235121965854311307656540704714997746327206096981540978492119657874404581503141343274591719994800315122048692119451224582840891565234485200076310944640343321679966702238673457279790289409665939798792886634678573117404033970434672506079621238560376018371046208703026189191774160265926243094290673155786309480708133871629521968589998604196796633489650657942664984485799389928985285209055227100514748803227424868873333385028810951351701657363054107722168784179934418521562056508771708447519620771813602842018081852531198893815852530492407985250712852184303150557302756013444065718037448050028731684260862968643199577904937792394524562307006934339770799166740804176589108805963266121997453182766931736496568239602444237201556351399498452814057878233138944005490118003509439672996075760624064542297464781648298621902493448384472651075560805799555480268202775694428225645967853277164021821512710878462473244524844491717766427730352216200796186849786001096007986670673803053375478931542682956788457529304179242429936796734176056312635071948875346896615089339488356472531766195671001008032083791931494515011738633701436422336337791255796242757133807679345649604434905527915787391087515724768087026525585111426049524329958628671481479171818378900055551697165847562898863073856347292566549228421424368906032511140565881985587095779666010392594935857748122758649664722441769953895658943620179679458574294071998048391805784756603849939971371212389454707819383780453435623235886188362977820338687481856099036213947165643818714545583467566204547888781037762323287583021853367633700742541165532230815944713008390968228194494986161165274081125598521603327473922152825093672412711702335474703471966404344360869666164721872932448458984898756549462497252342034536054241171724392882768252265281866852849815568455106048985911975402254558243834684707726452795072998214765659640019490531083611464214547010823972645365029767620262173499926627520794737905570707151622884283504182712902955184154942731953831512294092765657958921539317145237301234652383954636403195452690963959170881820710187890806357244316829833036945927536039928981846882487943335293397610456895787014873818585637546028211354302546411137956421350579477676034589943604105315134033068523226354301130818466537681785889893414563200364397700408759715114801871014034909989769190762986154651616583236232779360139986722256728676309186244388423925999362406773732581240322699226296414590997964496466256789863221326296768404468602178992265959246837764139970086465503180283908891986215015078702479424930457755193615224161456631558380475284512631484236975801337031003778952548497648213254347589656150493868476782744765632042751966830410883088944874942399270440593086688928468636053225155188196886270186078125080530332732512344906337135708906356397896148969549287848643863745652329699765457623006872542538495567173171267027126646678056388132585234311738704045330996429195336659891868432459140050685588258143834333695004839313801255078998871294225891176149501777589775255498071849958817835833106761603744688844584999029272035353298062294230640906316704111492237129132540015159513958101425616659383984002989531286275397301037973729414213769864055849310138194597602251311607373813512939709078836461934067925216457540346950665548093180209246043484165241016356084802165051441803397224722052042275774719515149916488148957891226307184418216954301752808894471418716599906813942557995439074429111428670047506799240926182083882121737868270676622905133000895830967293349061820264344965388081471600454341589384230284224167773819340948516907067665159064392128357449748893061450992704512127963910085061774754743314253998398155445384830864569925448069848899307427553329187055236875475785071584637680647345898303874209440321120125150759916135756117882494323018237371983603900492887608540834261137373473151277320980478230316650265540882076701714202281788048174166156996581491811488209114235356708928346879302512270035647912019907628080381226989252771654146132121844944898997326531788725686557214358807734085048282361045117823676609748983406023388684003744101176098966981449178996362718223644805504206725247744949897655706044923512767023500620901572927725868212719699943765720268778659673026624771683748909235878780839538260748353603250047806366054267802682031726570268530757042415102345852684420953828257917391557796875050762001846824695560466673293715552738524361783450406065958131015945074366523184477846807931270704366215566158172762270817242572248379898003032897509224280546756639174317823353601661852602657315834013164214085884229189960325348748343306177352171635034713771467046275271267709895616330654676658330318635049903281932647680355753005990397072182603447942633957941010227526953274714185572731091959511647570281766549000620468936269889437551341886166982652011443239143956097741768633943954261596864108669371680857071954492701292061566165639097450256624976994393000394418238761043584065151817700210166361681848558222867931707676595936066233618986878022064203360159281747535424068862831903930487825182487951464801702318487858740467843468042648434228714734088876920836645473893085414627473021803052616986743078094980867042742158549816881620937663761070265815536628810322852012347068499934897558357616887815334044752249438764372372634610214216571488510667551389502964006016857806233710908885408229002165696461642215225810507565458572870724805862513924817391012729241161431623293718980548625017329136194475766193831921943539527518087574268666516948499730323708437804243846047169350979476985535812626448223423683462090259981470706767737513955727672459135425425520031968700283410663567388425182089133259986958292094860045461249070851308878820394158346100174544099792746424338079628036626491501848606002695759227892248379907607085945868712988057319778193517542870216858802140960569481118578203124544980603445552886693876472003797276782566750007492727532182428693268238658712387405981442694358225722572801067009629817303768658070366539932719908356614212793973855569627444972217931418116629792470759218710824875246513828595523734968370371659336879635071043419599042853470313726450150709560901700484418682628424030982687724135027004979300163154095449400144578821939675038200199767146834456501254949093963969898667416139962762618922934300438370226611522720115524249684748610558728011401434278178336165685736263122183815436466617504525109349466004507257456437465412152584903456471119920865090579799795986469006270143987662216148319424445173615084558210662637807138169016716140372916244544261146515547262540433486267939391884725888573281346749620155643411558029495184067159010134312989170551326014208731820594967243394488584784329873486129751735880022487413629315363261968317259991138945743044209649351335048313902209952566279793020149817670155740104219951214761258190338549273207555205425831463510876902500371697819304367863845644393293557360452878472009693930328934698052581768201830317387384278034198980211593293267039370563246000763260915332915344801111052982768332058226971690533193351601042485659788115361970227022245826026670473698841938810329028379301657413405364455357385209432168865357788943808467386933895102976435911645308955201025448986092686715968936749367606544345784624891335542006365249858069652328849948703816002578835655218542336580477085106623196443239051143188823610587926119388429725242919873192643319957891724588566045513356555944918723200931390847377624216579172580961327972046909729617861215789142089620696284691743262744193737336738163480539568631249358288681790555568186244278611483675948965572758368047452118013728410534374178270467023666378991922916764003484889502842441571479092496292542109173587188342677227150592324563398291402138061542742702471994638387438238484009380061504017993738771403977332316936233132552105388702600574233472555201293835700775322529809765918767789340481603950850636835146489968345770668488648366745430698026961069863121617985553615179838055464383821272244034569903968611295219781156240456324170239765313391911450035828928357734282394362996500183409341385702616118758400168927640447558376188710424638371174881713769401295107373075349027350731070112366844723250974612847807589276996735338594582272479442489637957490260626722596234043850832231149638365904256804034406283280955345259155806659244083159419975440140272751573068839939779787309404040556260475302486570414018369281830515558889618449702538215709812827897944896208852848939692495787225180919563925858438125251444707591501532589292383076039389976166210032941644153062746700502234975608056312332570748276816602562718521824009151167884305094851064067123109346256029184667058468142740184065283645921908423356475348864521356178701802135307911513024269784695238119707356599138590292426179485930934039347086906198711576775543016439473409916548643799919938523811773210214815549546689735977784986490860052652703354504808840138491484949957796567805549369945731350648021070519909606943322336653948461575910242270668346863410675689569607793040989319046314934332428401101941618174191502547568171529073611931047323033603700232387366673609699769349083800273995275374431229768464656761161504263216591353661259810156722948039513575994110806698931146078473029271821051640599231923314147569331244131473587208894646880357682198732892566143637572242248170068841975775961099756762415113325131227181203805830042234230911700376268959635792656168230264467087704205685501617666734972661769764766658980090553284697507317477144677863447232548821154420186181033861208494822902061623781871237903969520291070218274521998148798223259496687128827879306788146323696540382388515620516338656102638471429704842858687697846385656081572971153758157896603852081166946963774530667378108791549943599448842603287144228084367136559832328065982904618792275747850314331016428044765219894537364835031037277446656962562668216947919158212128827740023241603439136401373718590396971618162469744878302260793046469585035170212606693183168634538472685104568275282611787637741301189428623393798665945118083706215437740652032785072982906285438066378587100515320627536451727193908477235753161114771768330608008350789900856333963217167045269203383078652573070624172210943985340549082988576275642374832240734648776969125570775331278229497448080441970278043971033847835755296241963860237202067693610625803836569289805918355351350970904899503418503003663653331116290141576706713310090590950754774641196701009646617392555511812471561755800801963468864421774358998260874906646496674719806397473329204960732644903877892409266433007850643615289621740399697737507395119575347950652731212527715741571245255633004342225068149119436965930722627432089192696646698004231531746096779631200333803325134147659418534175475167279441781661868477996335251164747545322272312875889377295728274340114772518237201842739672887039016028617526857379803939973305776489495383768663290354052518742630032649481821035116999866617841699712826035839066901308031076512337356546388532787561660616922895805435617675077605852512511661750250603896546576909971418087334677874182162991123858843293449805702577820059418556175943060189249184612157939019365665671406280687255261110898360169184980700807972800995025270078241586347654038819990269067266593140337862742403847184686046366240507646125492892378417443898830582730775450055578075830853594546253380789803790489498140075479647766366774541140507037303546078241020501454219355819982418949919860341316214255785575194727438332189158820342248220919083506716606783515684151514404363524401786223996532769874697793920731596514672148644905749359603335313809676643543900862327281134811037044043139024262547286867851618443519605305745942729119491641304311036327350423688136068338436342765431227927021205628444013317287806579117218299299714233731447278930687611365406585939564483207841741725274759371398831181153184879627565770809460959389546512371100139483963124611945061229988579787765347761919480005049871176544485286476163056469686866516337327445000895982966393976401473685214080581465822936577295663449367353970179917692081229523291882684474618049889972646203232057169547316586104647096659169712039071526381839055732125818966684006628114546807427179787720066026865728969495219844399352506935019935956958891973956709783135611014034756407901317027962292399082034535669744509515301561712330878910261203842376008817200900328398181552700954186789693383215880911199644246511790783777315824364076586020338456237226149723180530825301296497088393804164318075412219440452534228013821494426492846262291544250811240396048750173323288718388644112050025879167583779948088952196165351032127505476091600498263785872494091594658529753255943240252343540220197712917255192576354633903414961387836086845958590251583604535227240565956789718844881039097804003777726325183964135277865856211249711052445359423787866305984260067879794002661718612569631324809747258075653755390227693710964184879076961089034728359254361804613957767237151254669357326152249929980854839757728913484156993492607194489402334510156342269544482064495933343956774384882321026091443138227337361854237486609255459452230143777599156939889949730258841674248302976863686590723546929945258517485291138445349331131184659851654349778265860761304361583002301117314198799311356504120594597575236417764806781190873277110598602910326112294468370930793766383623873991855949597436790927166026412437759692282381441075242626433316187074206007127823756137548233602273890901855146343233492334473636630793493839771561622305953200709315260046319850501158468023655184921714115507923110410936748223180607328219336503379194238695670839167093699777600631026900921344443723159392559476292432960102771103337264343150526906752311204784046392517857788390935831578706029813318913396023849112486467610007226601603342087147539561047818293181129210614206543136249350252513305692900329166259023768834564212141318755836329903045009735304487888251842596141490433086567548449735203306305259150779218471692991982038224849476009888225174264868776677165698575514206491227778647185600961661678232989363596057646984134565316285421738263767987003723715820305734662365508862058002203150072935942142474687674473721327476449478843573515220040318584909463606211289690150842898792929099008117488436048208666334735734481004810486681997885082536016887662586274011329277352188119729091574440013799352854104359867074646484373225247243974899819453839295670193518073232184575770445910939134633416797932399016067053967977474789142409789591270375927517296050631171772887716745955194031498348316083259152948824174247007342181811575733518672224360811964725955887044152233190172951108946972181901146057582766467837110887161336092045824702190048172752284681372147100663590634565072569581093560452193374009660264478406638311572669188915767545743375539128878548181580182736172329232149599921661602340624967305551636318435520961986268218222275308686979938214399916879586831921378016712579248927933436156248675368815540289011908639209128674133990748353860206663987121813120185801271746268931791747841478343951405107050525550035727274068122492976855181462458556912683349395959112017473913226547047402090907486720848460809726465574558243359462159727810308484663211298476812687704104080131477060337240588402399865098649604471225354344390530638540964105480123546173448128089477628804836673334026570706734593277239973722058993910973874498216963670787622708546612033950214233485305835505363065690597668695925710506050068777670192828943985832104062970309660001722677369521495575214044702788502334972222625535934884710459266794425494553341669916525162773270552260471027525957521242976790384537524416389496192120585124516101481949392418080201719580329722682592679368458755504731833647470095625677796804021286583353679511541419284138519015280878787065284849228442673591175074499458963125648748438505007778372657141889804387465863349501400390118166740180616968471354658409870484725177647334615000238786889157900656030141625260647241754957188088732051972020516764366737707209290186113937640804129222590854831500521870940946053901651733174523626699609595077221589194757354024329337986963250853893213270164559043433081799075534315473378212597551309880810552989777655609247358309517036808159970917861561303696083900928475958946341141289020912171506805284896713084026038550609306572656359133277362236102033677523266423567524924977611407422359175747510809999522285061794224637012506489026395658734418063275532130541023726672265882871205607624687728164541723098715916421877006987859424136816275435013202610639804474278430078783236237325993204345065657737241785810802815819924053692455496425899899796651523422849954573236321130511998461500365754179252953775263310802367970371830219292810330367925278011978523412733978228255102138386582574906446444950358217912030387423214159955848738621462520419068813205055737995598140365568852394709026766085584576046675527707885022477814372703448533473110822491229362066310196406236659201325741056974111282491032060179521598843383775963200008212508545073505465700960007330985046499393803218533255189113406579883995995297867577150815418968867897840888201743615861656840731141404466214943218114889405151078876516609383099350725384033927682070346054419146764779811132911438059600719487364558534006457619445288606141612306245288950438572911039887014228990790505140582394551325369392277070190530755216759435314966200484447241054525056845533855785909436597607914867699274187731128741830268665009132301288835884050951208672300631329926635358104359917457004801714305396568561926528212102789034117619148035501373362967188833078850015415387067523568698008719554580141742665966749909480092130123535736191516388209304975986065019344471972962316871219541333173055592693928159233958798687520223699951444125551163291701000646988762445328577919885061719565944700548456795346150490310314854169529870261427345552173663887283543791745135959990895695759796985997497715230579540657552353227947562031271250299577344316626020644163030668666430027951021108865140240847243763696558118552878598893633078024976929829105005492899532587218464342306607145906989354509541704505835829930017843008797078891585833458657393734969175085988091866105409109466477978457343643926341399873883466558335010311649886497141313505662193612572924553078149597445996663221723377289751059858948075575517031052043364158688752681866171381843562400099356314505867398063075625631412347894122867246020304265244781618890585072412811684197886856355984715533209098343020478321885725791783957383965504572792862675596688757536686273924556100258524544704957932272126522309798051133227487099214491043228736292050674019931701767709050969398353040504880440824921829736433947168646343323778717322623439295996955575661717063301497858044077394539543757584287868181230419534722008481894432734816721975560481039226836454449620217053451607645488501676885168954497685528371127899728927636707584898527617702759992972935393709981824728585635332883182737265996776784118021185081790938101753061084492295955027941625228599238636740286646421992902162719067018387297229644306277601001574812773390532332341643471028898118534642460995354066753570238766671269688622346469131643754336689601802461808084549899412852286451950630737568626641753923427376206462690730569206590803111731284007827323819075304722303965688049846557314382719716103192009561266162301038000172993190355295090809104555822702154754394067941645736255883537115845934713284601674475761754827484174580774113477059839117807452123080782742498766900870418601186735457800879099971218293262859203009955613222502587357804656915869154643087819658638180122624557910163980514919853657095942968153073181669919538010980807882729646173808478105414586299189049111730250987838897048157278559183121658549999300892660012675681268436122591525465233761556358585982159917477182017095131001945773490657415090992827413033486137515426087251268851342363968964002022708619752228474099980198241249179957370655986278312361195521754840771232119273538157132795975167171572373013023496696469731492576006107266520822792655371418936294327336142427718250195157150018820003720928751087227334568790601795765360768990530263533820208187435394457065988352985036697129695524496398519382862837136203481524103338738193792197737235500893968580467938337801940952244191845365771273159928046669188205282352154139620475101265049447637296250191725994062696832460698927854441417402219583155345586320344605898213149823972791444311509830923631271882515874880351943912526062097603172418798573635748285144573932600183292139151060648629310744346547858996412001117075081340889662814502875699639318514705022360904636230076942247312242259515845322937309145593223446955531193294940812433791344111038597676438904751074689966460640228818285293110366200223037486413624692454224245324041370364022545016043455219370579131191375711050366171105261234580595092703151129159811175332999491405238050254232212682063132844060472226828529904854721509238783092361300260873304466897811095279283916712976198960648087363701821606751068628541288692340817203437159732948009984162703402225493393800737476890465705406710981751943848656310251497108312976309317705617571600640403420753585647529943522890598644434129277324123269091025793784800324138184664422308500549909386968726621871198821782549857528064757273775108746280582186896227543659685336891708789019845954531035130299379761911593800564419784267897510054324556706766868887825598886341553584381249187820471214917693631268432739564143010810403406085853963100171908616048128496985840132679475317561478886172814899219952030667554689271774944866248513357047140073350048593943427577904694318942586149246465510846308453969877168278666657824950197666343377728832628759878591744130124429554448185725127624662089998356988146811042386584568939068921307222076065747159465444856127422147084060701361878147170429880432766667652662036572558188723405778603292594846651110326735282829345233960079831004169147902478974567891894353280249670256430407914816108126761817991786500627016812793143949665785073235685208717267842496424839302022125756579068423499328311624546703637949858955301426735731270865149388360173370714927222767959606127550607146465668520855051984256683981969645314693147134502818609385406602089010967715713785857439729496694403587142780597490751401661690731286891412659218539655791904002756324182240191087272888623847432004851639316213341997850681900762888476963948542937984883188242797552353639806626715101750283901808417214441422227382758452626032043217242661182653913599682544825220533886136166309174205549653608493408215804997916742527169908249858902530182275570404700226173926252555191197844861192501679028591566388815699268985714452506405611651951654684082245232308090478505627582773876967923947322053467223387309521776009738526144934559370324326155493791442412614691178819825830895434622041781482668165093843668257690867668608348813575834554709790544902193367013056138882621657376875723218926207600136442944317831330755488251075400690118777218335182206153009743846607168943037287781119710588249077089905377388648777738313214197190572308229882260451956672078275527580203502246660747137892759007773594123892810102968852285976782906877773352044794074692537750305440698969057908255160228868643090050612803467093638021706168626357361101050082478491127227807321108400761629361011996099347668861914509055460344046771951495785046999407055014841949130878767352986884169976530327285362540947265748495102409952383399831544389871335448067509318530347583281403874203556169148723582844015430494600676736774237374752073814944572711737210384034756803443831335777291118284454928777515984577756774043113067749396571329801869690088933681720460601033635616576062571525260394017310053499862174521641374196726447969614656537118028886308385501549892498170357110513173735165270199884723477138823822242845079307948551171903251671582128725558630728595011760957884407571954353099138483111631728692751794004829844545494153678426537415963858409345195932481724960860806563322627655729775945264453224876677341703957079672216548026087647804608266340827379099175753749016285693778892195855241603890871287650127048416329460817245804810176760375182120285068518742393984574992652545186561847833392018246568483995645999295118464812129692608223190947065304565688837715924004464948456422203304086853043055701301608703446700391623770815373944631307222268120632190245992232664513860444835071314687341082897070990283512366149596795539460080005562816341287510868785474672397874018238070874164103625641074075051135938195598212500172499424645739605952016948480958207130526714417014208567447654119988628990663795116395213943044431934435915583015591475841437016945128693954700975354144001826884474235994814161029062513905165429916948047126317035751868598520630373450636667288977015607718142943361046486077299861097505911084209457688973499016706747982636992170636853059782849664989751547423406470006472982779883785538418121876669504519346575273112712625136454591449366899435345956238632581407925039309293075769654199662860425918872625578065918537606978729967113450578579722932284678178053195320887992282242122849800263248276584118293974614386098978541536507824894696776152322970109462554670661706424604784298882518541905399409985843579974927765694922591726695667574054454617248594219166968686776348515252907128580188336967973651710140893072498060002043204434555545441242146401397422566244328361712651795181770705354311640134754655227589529768254085758946579398868946096323990929195731447385244468371119568002375934463549965354452221564947949379951479849982805390436814137874481382971054147086352115514405791769198499499976804564537095938425234262426018939436091431846547713075641994969174854132656057406191023407722492037191634444040317459263868115217972317615681326052690628259076605427002460357030264035856688294853428400763668352476837013649262188388876572015820186027355715258002706296046665678479621755349081208990955382562427627486142634324774233303171888592359677611555208482536620791005944395641089043041941742863594894721033117378365067370179197038457551263847275916234681177782481907321249731349809068684189715473704504492143415231241842162514344327789366515257736010556991000574114319359961690811212877791535015058469895585342293006065292037001185622059791128782586843263509403210669343747959143883709411900161153780097108151509503045329634049425876759099339838141528417108514750791762869629290322729237878218941890458093425750861111749799307943692008921288017433463999629816059201450347872354607450339271769303463636616283901830030601101123100658557813925523418778466713213993280687982846535319687944683280140180541478784119924700587851922492732041215019057202208967486533927959488546395657201624152128644954455791359008953947686165596378759478086338976691645215388722909239281110125887808518078100974167920687376321309623775361235312172738468955144448074251324833738598686382772900560124978455988673467996484764770190142884146993691766037608015128994865374079729390509910015070635592757301922563419312890583602489053164542992588323386206049895572673169195969548250907365202002397747251022186035626340546348807302443863668473025433646801898425489368711920304138567745676899405850512046278153174500091661445341016646948569592557438037665613007421420516064772305130652043309085186756144293127214337833594707606124153758390352375083301473536602919066228802088942650122245194363046690139723826519272319153841357317646545490418847170329590503025931963935497824098307801719341828211913852180504348882023008488047863042881066950340855030258382050838693873348779905706878189324972180045923940825271283966486835959059084518502307432985639378330770516968138524932227483448075165849869315693657173600112677780579648782448912211806076533417125648217130580952199793569077835345952036523556636593037626348237600538003053750556195406750935547654603850689808930276994431433672751194214287652343912174294593389906040330886258612054378587670006776199062815473389783222216128936985708693166969704485574908256623063441564326265039992188672748893159631572251521762272518407695717790418933492158683701032860794067272642959865375472821011211335684105128780092532550448343421884907929533114544607445607678521776371887009868133293009714055027948203119603163151666976063046337500586337060745625009018293022662139561084527117245581847761616187845412010413559882082250644690342901193888457425950245819766711877186643212267548991859385008035215912791782075540799379769126611375592887177373896769638578642833495020968069885613397007870787755508896581156154585461666103157945367617462002311409672450046292436730300676299073052965915805458732166312231785644525791796840848444477450986475590132582382598830671763950530896516847624298631132314777434814642290453220514119939289357161684722551261967243388926416427330947936002235128838118773629343774132045726860063479920273369211785836134466882990954008973432270488479793654704223898017264194720462955741394618980337564659724441491961149191220582143479637127830620639435650097395433348399371770454753981286683991876134948960368868533315773409643180487955360771405732402085216307654740191422527821675049266535707147413709049400016754244366297520152602002219350854142355373000856089946380793643943943846693344801965354009034311946502095572333247951006230912136468765726317010542888622301963692781984658211214446047083488340019944237300423591832741893632054025208026974150506660768097814109110849023198205532908552837105947292389230044805108630638747327205318130240311877297447843092608550931727737944990616717452959521121950553690611744557990712581525772515217244438353024694593549179977871622198672812254542377295758885997712858441982929097269882788743460783483239056604242081277383993108243102510400764966642588891067452502182083285747860556936829840614345541241485062724422182181275921611817158935184323538136221195135102369953465670195372504680733212786329903853025838032647000951570245072611364804147984967160128130507585884704899753835713771110940665607677471689708388548803246947821473369440459274848348937824202484554451589336696686042428609060433247323150551238775328685151312857040046152685025089529425711982368086698514655973861814406227849763522729070001098346624337018411484188167017749746026141828708152877219619784153467906273375525804354210793219644145636093305091459070572319880359370082176938856457864705292279196042377068000818960199219397303310518415993670893679523787428496734658950191831155058468835261331323845282556407990365312645081547922754111316399627113444896250991875765762497176866735431193446573242476174867249114818704449608272629523509457585692940369492709445874086823307386797817160040852528169578173542549970729417435854923872583330724938180174991752669878400423803105423669871661998187253577307672027262854417277069963826836196621533904853736849434172288219455468277819212519313495366469368348583071113248002164181207697090128744220839936265756537542694496514790155966589433061077792626984565515928206894113142358447610625089228303963811590449386356183279973560544164688741345472080539138696031785703674408438658426686986520849968844455119747234188948052935894493691613396068621273272373923453626157104342041986625360535138807570884093310406223842852663550859101006901136033849160259040709285699084817703216368066550330805017146309943245072182948410478452942145665326365503174504660297203473327419839437087636956116747858425867593816159001453532235838517376611851331387671932639525854873399186516015856256066139825890059262582886589843244298790792398384714076773491035578815196921202014767249768552418997011086704902222390170342426916090737489031850664744384162570068356155576122619305693823176669604878445741869777573040391577360846599268949837693272146423474125357921281294165897317229249612404189693139617257670659966633209492654835559398925909295386644521228476219842839405727488275289100368720959776198255485876186097288440169986893370712476092154439354232397754631505381385869255677000142296358306130715034957239731804522894877874950807440680217040750495681223789366785801438983064791839486883084602791707068056359240275202696724171235468262259216589525348324796630852927712476405162880098464627136209538935706049598712722832303295946593671158791330846866024547787519443817919437044262011770853379156324614832297582434745175495120929320085768869896444626897990046811106477819514364936287919162114435727979119490431673424052683430702798860997865994086011136905021665029108105558125939855011377228333914264883976695055756271404044462858103540732937435858837871657335268581912718123522257192391267525789651399067543994012667377920577867235257554736084349238831616879670707037450101271154117855510181878661132638881547441215531221078882582593302169267148803534952716829623095181206125628865524219566374522807470550119332671769640117129376295762099508562244853760076710170297608902258085189304207161672684507337933049462370343485025754810501204045841332666170711639453257902154799597430531613690464675866995025402777257803309748862268712201976946258428129290705306712650993416320310173255822504610813514238128592227446638341896379921993721084545780609536721831444164242029715187060206398940218250244831298689529011088945243093757437978036167442849652663717793202605843325343147744529422505455353813022942609824221704797551190308621398969062167264056814067043889603976215540562747939373835001741809314793506087093989112580535468965948775335740438345415257825297352847519604665448260482830984159861359213119370051431914124114179979436472873913210792473107004362860726997491182264182864395146790351442792545086005322329474050488267832671210895887621337327164290967452862941260109411493108371724597556086963633492541573594878794722078977275076651248067905570480554107543781557587239738764740396995771216380182828239016417183391712637431450621734610445330311025089944657062550131074657934856640632154118257496289863137025098498138159205224355783851381796845893436558289004036032818720810531312800715677997314416050811389752860251755449624022568995700373600686052990211526854174041089940490104923435697252201274655392154313568386493157246729159395925902769320420545690711624368829258578738640088402167940833716037644759093425279622737162190981706432110056919946154911815877312653493646061288326929431133622207260136658394917440060824026936514167020649576123824238180615830606883122001839230013886629370027334322296975382923013833267109427474095322301425755331792198804183884452581090074359103166902269058825512130808542317580785122141412757235859179144854744228801790502626928671290275541013920646195298900830258565271885443467474022791849152192884791225568530641615152949934155839940550135707567721148559259951933942162396808971859459125185950300723872514326750800583305423762083059763175014448440250607482842997601355197433731512081094162060179989104704027793527796795427172669364099550912603578346077510426190919910934943010455496003759847374211051762486375798999609170950915797105367541382708171931750871051076020511781800525145667512923019701037810667241519694291482195985320921640775255834480574023561705510418176601825313913141823020535654460251486067818788355084711574231625770133589785219651451346781573834919605105799378601727674184290344764631911153252441281037948299736849209069691836468404597394546918152181935868386071742458993486989908827515182792786768116099928313694604964661052342035077134155005596740987651905612343500295345738074555067254324289369427011243048289181107716913441209410799521148215025626851385502878603832336820725982248032856791435649522127736730571937333889365585277507368778397705159070630691646922015147044180376985122851477821783714667489823567288477292024399061698886327225690500213956011523892491436976779076736565374016782834466308826562466925091827020036140474109143960801645853179718685590238129622118044447663537970700651444487606023487853764776583899833801552783763925593770556292701093760882472460245944908160899726280139835533193873615144800889816114779394790680728667171372484934449186174549686722060872639819047131673193995413107534977202739168308613368548585549185889738128142866959375093160320338261888350340417017909871430924020248175536189862337479677012428861682802468089921693043770528121005339860764810260624655510953185943991735776178165940055521042314901924091352598389549395076188702361336194964868197500897326549591226517196863987661137330883000235688216832914519193092131491684972938947274708183296782555914461287411754707941556228049120582525642817183467018900414781080110789601162754960326825261861889266336453153404559475005816434263614864580683425888052918705545645901835441091789231609872709341799374977301686741178447315897204280183229358316224701957564756522211363080808869915800389953965490098469474256218311213264190916340377690846861562247195142560500580001894495422272543005189567161953336367256301635547132247410353435914038729925838059881790771142773420855409388837660869058447364953870221499461217192390884272960634423352674881857664728040071811889120886001554399811814590533172685017436349633008317914797444760782181362975991112380595762402321575974486657877585121227896461979999747771028772969526695240771444230399779511518671415171387910319712648124047083298895816510991708752164645634259104062729414066951782098973568258473494239923769399332667304904489953649615376416505543726782204141646102409088862836547737131596980510470311512204519510155661842230900855052220964022438122390223282913852160138889195154347235963106903147028156602890541212436526849242447500214128988079933664299578377249634304620752541249314311570583708640403629406399346940809003394634564153949648782133131065058425866140954456773025022155680140248246789374130613688155709946107910991464876840099725026862352412264167851911029861004021525078690710442648819114045195080751317516754831870016090822565736753220161375189301725475833989385419372009720691068938797064006738820425657032652126823695631335799017679081733070151994422096421502898337731631395329478409855910320267403440769267865325162729371703809212131366296844160794288390322082778697192285274641747284583931231759174365947643553077114051811045252125081359546511234680751841460879218674255582118399534646600028027570113908250548559168092645117005087877034365654546835684999370567790659001300619728343856494133720182798007965981651915715903887195784350061846291072836342042028428097187117533276547369954598209780006807335021953137087901638027311650532178872919731908300740069202167086985795488309209828265724283393151784996127547357262730744791324581151628984632402870597819842264507768766251287248303100087310309714412824853266307788190710444031639416497857270683293128720024230783544104436049623400926008869196112892448685189847575301935091539375150007000415526704203627757288300318593139820997083843935447414154878497535668708515779767247200255828308942339493713129167808650034463444389410193915392568659644897844761492312313567743700012164696184714710645101755734547942475159337878050492815724435608584868340181240035178052198196637005807275964570489488178841817708641437089134271263285944233765791872811323154170002507317817901585139041460791435314886982559576840172434208623249034054668762150913235850970232317920657979615876504092417893206955125816076338458262028800148194317099699152385877812828678328913882474738138710583260484948269504697788158230976529800775528751379597118705724241022854648975550851785379499540384217245700975918158243546359185938389210162497076786637855142210211419784740683802961582892787990151769542910719772596960777514528566486668420857731428894597402509507731080443491644095257958833858968865445555253810995502871262846571219282749371380305573472003766534070675722653187393343621818372757541627794181780877510555439686779585694631068746008445416253920034435712738234366561120938125200564128659958122551111013751478730246897162980119573528916103391147474376866112079619420044830610629235635050369987044154824285757726355208949486409678950274357763912897880380329906574352189476262742184177597535457834562807142803093828048965508806118205461269453901601018147390809116182780311457034228184942057930948722478468135202924006315956443745464227685621496796997607418791399213742659463577109582178674684204007203484670612162265616031284264631317034457288712637555129355891358798169399131285581203977833683934818979126459684951539069900656741836579794843539717667541679584341285675567329089933980134022899944839222459023092642284234710663096996638247047233367862086184399779735520757912437893866072531301521880584499987616906213058121322071058483595221541977915964611408569237321366561555005570478165431050210400728775458833710327141516512595582102948638240180824232312510056917897008358081955413492886820133949214289214735588492944189994461622501503820700703112924177239650891236022307387402569763353280079697962342682624624828671982911516890928701287662011350108511993020195414020812926538882863608921040109495075808087725099872286099775945533828586240234786759838700468512975593615597679263060791573621385310347605866271285307332474460254876308397984349339287420385797060188047197672036560284943573354924917414254230397484851031199536378928021204905264992369312638988321653544452372104059848228379706685697605751653631827129871360424806600234232292707708392346927878044331181046531025835926193425258753473071620545218386597746369024069149724159305864655842091395639964775990552109963871651202105714874147880806831872373314634205541435879591895067085889072336571526552455771840729978475984624703535335886140752699380517160140309439548766360514437618389090920133811724636972415371459622799557928542834883630790119387847765909581708075670859371224793521286427566643157280220104425868569569025256107652223383773745256665253219914733784319962787581674061178840749207190660223710376207012472855944481325336251512766093489228796644400825664752048689085918532135161034364714941772979097865648248772687116141040308160048483935575859918294224115831126176994832849426761468760946625500981801460803053728834204596611802695005842868058938896473201314263607690496508873564309345903286252777090001619594733346901927682748193191887555740600780173918711565110681629023419462403692413758713841087823600133840071955156811734007041675090195332112902883546953710217628808195245218775376541985852030633837525161048056233330291483430156849428279144099257135170573677420497512448908209631085193954697858636193077722267827813276922303883234143485584818180522973698259200731131846204328720936669748786277867464316872585164780987261148859485102872926756246672074343697453106081147780108054786948249518345689075791983514925589457306528938018998174663529954643767567693246445213491520075382241635818199769148279410872292933977054482219690534677551980602229358607472155983473168442876826821864964786635617319165287489967360325831132168409827308486411643759995500543071834382431339384508763517982077990953301453186762218275719743878902148602892498125897696194712660658601164438877182621923378271352086964640168972173040354347860819091992907968052677551984333830594000349230807002608246084110581257440131042187695965727449378227559021618738325896012590659307601745433129111321428619854397680419080401538772813905600436579805037605473075734706527729629335527823281188537773167714805956450988381051291359079282563696602841040323695956388547348616278808963983642342401448482749264978572731805794518813792936797198849490356195225756017500042105234815118195858087883672640986417383557223619620954984691503223112056045027613139765301361482145517518201610317797098826968498331784896683388116695860575429707499903145490108701255632680477962245815459887902848296719818034061455898362688103149825252442494109354253411608904103907918466562605257922268765907536270116769867638839237053990666485087962417097776591489162791695797874775842344174042208551989816327330425212552770548905263387058083062514089179045080390245174331224201346866603065833026370539345057829039959376141329362510931021500526665574663890131341022966982820013245482725278776694030975356481818272263616222830297502983737683342470723494304726424461787931665471189175681787432988784730414395760733326147670181922609643970483966721322221574179968092705911693172914868785883288033135014604240762260136759502329378066026623781690593096614975070566670424058615688194178787418160216021244169657312244309734784774244515437715033603041913652202238929987085207140858410481290006477108064881465780556077723075122274176198857129209069463259014726506318498863266898701958421926541007665713052499284411434476514248588112781309973793772106426262049855454431983529115736492984946772277873639503206749253032809642027032719521627394463585394434079701082154804514471446952873928508899564900037549731436145208794920698604427798606183755934251722175741393073707730154503222312666318125770641502604071321075966526018867434427326104739016401146215122975485217991527149034599996859968618810139463830086240554641243879305698631502239312691067852475205380039758849547774871913635875047653870488946212622430393477691905535719911315552484556574338039248312285277043517289270251275680738871321837468552684705102866465452680637401427649802620840370961773429892643938858460378963924109573087441771497013660977899665419144456866839143748532667660607996446088850738828219477669068785214205005004472560406712522693363905614236993612096373624208029923152576918807062788209254691988091061344366548689410644846015390031842430055470202099090774654613161441956028560874765524093641517117865171550772001506118746515449086359626901299460852087937193977228693977561475854493604426989513442260481625005172615246071998494787635403818171096268629586542060544018085191829242080121255460475429155901828248192193667266753158449688222578194928282602011525009495505024218533504456116731622770405453859726233048590775269163152151437329426909557024926793253544583869673378535440897134380239291246974244204080313504216732357508962804881216700013005753169780066051032848612615799715578382691986636749625326738971962708875267260805616346380081899613096701505785000273971736873887811020057471711691627280316698531979348992731695478629567771549529124473978056356659438482578608087469001092901450749049227702762074640695101030426313314637278366513490253355713768751203571314777579162429109789430518126783457185082458596745726055268365661090970454012287900818910048631137399753059270410901049714273611630121285528475797254719080821792910548881307625922236487333695264544630655187837615576890941649752480917227377504346069534559394150286055991106029261567786788869433445457563246472936362794023575015653531107450256341245980670110688108578862824522475937352041640065321704694209195726083747835891905698698293894662011697911140351649346641429956242442531587297529134917159123420167061990212064620065054142489330156480250238911480969285230809794716566295449836293491550297326298614762480730642180644650311480654252758408518292568961201547599718809669091124680574596957047302033476308415511376331059462634864595862985395619191093746940816066522319947931127736058765537762673117204415555922131548615375849440277261971074634910445770685911187583859435215659087640631088023104235450475124448048237656065217328968557407626706806093997461043987901853478871065776902684285248733657086099601148421268630961374992213277815575591700412452708429315151831822096653720755089252373413768240367996320327041933041576198151006871024899022413224689652115108720576169902677474091753851290329397944506022098813857507931010081593564391371496520768008519748122468224160657633163843921761854416698981826069721931332053448805573094782543087633905916914805400468764996476932430025042467862607849219731062695870042009381710372705916939419436166502954750206044282702354858558842908235373708345582916306805121476450996731297587702128053983977835760802012978003115947345090304122662529274148033346278696762990612076680502752899260065466836626421245208949599471946894960703014196829433498995737479509627484237921166046102441262021357946255411335454525335322931079153589132224538137575992958851272979538004319628820898983797726293289373651440536629720653005808165041053951168645076563829939829258168409527657696099896120135659013257022684100824024885158147069701965918458589281060038819792737196210287018801503583962645219881939749083038683252147583013871601343102882752054842166125143285706376998284028811542718756374614841165443889934183311447890945409988775269657062806575120569359030057629549705530155532674518386441347225805479729923703556668308732636331774113778451646879533284912106795905587477847583234913638486238924161669483460225171993718289924042397029311796074220272651134374750625952238158018405290299606328169567297722732186915744309090073677219093757686109731828792318276943763545397388088482369373668745531411172876762422019278432903874930329411335025414749143990982414233856642495960935342606125093600909546226768899794837603786684284519465003465667171300809088800028889246843221402341105950029367992724645487520481152691523826600097978391686166225904941371398988655147024004178348885177171999380948411426013696491199920418985268042377677386267371931415207423268423174298534042734451886421290007103204701919987889033046021718423237283416758978764701927841250545329580401767022228986114127123398828243078807161804676502860709465938651669245483244627922250579316649021411562658641153284874470655243815912587668583404736919288216896067326981840056948266214943529965180146968173666400315098490525566146822370307631346776108967248619606394309826465592720729680626918677514207174854725023929789662785066922250453222104095903728449300207458760469887454958343425542637076226774481175937133649207951067013724038202587752749918709094280411015487809853628725379481032842817304914306925214625831562802555878997650944541109366776228371695983377061826239247816280450705126979381969162626074332665995574741659491059182391348777819656503913878799084488004292663342470692227705474208212819834839837465902260293693915204001285320983648053009212538249415007054313179312690558631752097782648796365757705479760515489157723493432607370191368850146689166827345940982759510610454639799894642010181220283570162653528193435225604134407765836775749351652392883593582165748550350158215955894487990073566135849292582110867006530165201625151814323742437789378974428811898906241005748873820333622554374812270198384102337326293607018498297037627208600290590851065920526262314286848844547334156367414718285888842514409138017597963759640901785964550693042974517654646646352401587038312833244682222390206842957114938763582046973215207057809665261847027453891678090509965704566095359294165510079454675175571216882011706627733009961781118457751988968453632809876365765343991565101867429623820529558606571234000516046172787207080155364821581383818812442070356464120196383059298193436697423303925392167138830850657426777024741788075218139872713521917414064573802622040900020672314014105691069705592711929957334325265643223534020767416480149980344408426978263724271100148946937971664935775619952619563069067199015267815153835318552262926057649315284626525480199627308978345298467008665693158850941289021641362688178798531366019803980103974647002792889002043848610703066237141984494983292482976420178959001939429760340510870682927483005618059887833287772107764003809759788238410282159034735896264163563322509324771451256394914524067147256829594637312145272521939192992448947973479277160046613293068400165243197683081369810195607476902247367137787650026300218831618253862434190445288026836187811890434800258964380401646880530148250336059800465111686302416584631717648109372346056752308712386929877692121262477326755267992272212929134186932908466904665591238714009545625207870065924766405805161136282702625274570464292825283555657983906345164153869597927961269830598522949944564572508874859910721012628351003347821676728659676668672233927068131864578190251624503675885198193618438737907834780508659570170039693565314716005371143378664225833922088770190309478628960106316490626018679346163251740011205298656605201946809933434852301611648116150985358077964987102442077647699144772942777694758344505303563118915957205531782740287959159241542651219439379627429250177906955732750457604081726242575445475271938777570425902006442021285097828271065911374767548943579593761099764472289319121928471336485325238534039189684101849915999979156317921416188315571972262852860479951926191739015782404382378156083283293573819958440808417567009867518018657955753207816017296200589228993466333175271000520037953825654776596868812001037278706583047405194574155546611726620076129981429954302388301276459379853760978459517961302701043619664815203592460746431881141955851661746385046073752449833538389257867682699012228273465517159801558701921234204134956154377057285033690167307622893955805551417624528854434408682165551952830848117139881544752982260991592809090079381528750241873832989970361128076245465683021151226308596607795623005494963218567795570787135357309913674227642780685189033916892204884782055773600213026007443524794501902002256947785279778109822860439656794669189280445727132461195629752603373711552992264714928261015489955893881669285908707950705832967367027990456393013597253241183429641144637303434454276117965037987263956324509825380314969911357275808541228419851067984107603407656086925119607728464440166749503660471947803601941513011898092482134671287265724000755077377195691856552091335777991484802299842356793692327101304272344959764757537876111667634756752389873469687756520283214919809286954688193302117001691645203460277268414555953323013270470001000135536724954544511700449008362507964116149025549572558039440304816451889071140595089619994497498468470974230890739000949512467411695027402842417790458096073207495686194318812980726274680185410923720573261195120124577338199735235355545004819940657282374524260482421796099426287278775992497109705167588532910328119755157536997170008567467463593564829963946496712246033062999451521807860700866920088431758575760655013675399731308466435221721435358278377588836305889936387300047498833103703563296879407166792837921373306294528028643113875505535472112171598123217997177769150598428660360902948764166876429564605762042930362265970769879934242729923536299375719923445810214627828016689842523724907522540546234911335318901575310431839104851539372205560684992579211983675721149436091996112329296490753072966583385087190981728951261875556355599473778743386175161030426053314884706639884832153809690979736395981526610355048962180300695615577761317898964261758412209564022575143183178491074022881223836059737093843086353837113711103880305034867764044870375870111521460138637229163890486681457352835196564347119885838955718909279236426405410941736561084283199292193625670467764796145799990696965892641785967532179176646081517669837627131762076671314029407251261573418501539537086118800933061715151885568092758081678665530016851655703826176015350221494363925306901095533423168801212712909595574067024819863465699765254362782267225881589938086737065224937085520491233952056782628749730607286903869625535486685142454185099422736739760263530269206304715589403028625606304446937771113334344851142624195767110550740569430695991032718960778810530719958007532374904485424217851515215641767803894965009241754391596915409457568421046207793059934326663648736405406431453949422439501579497174725380457007018081738083361857249733993114173719309857954507187740698884520252349822371526302207025711118791086253397860288273716375964434327487655986996150154099667745831359530493362603678237504114343054442240991047902073722704315647914116936453611982592918703491619925232016740576280197093744393764736145179786524624262696997211754910963279463719359535302958945857234015558098629521316362115989020806111282811482788916312301995799069387327182236135117943366854081302107066869181868900690445187250162360827264872733449545362264754352915714555393807457680520564741438784400088053588883715552792619227186186212127836515943194026607133008512557468845173404276178084174340812077712082200573538742018336207738781196129499339073544656316706668379266514193596974422115187972971817405159423231912357643220746748817019682575328387608345605333474163425128696252395685136947362773294108451274949422210652095934599346027663348145746687137477723189527113615829811572225706003476541820934427925690949200018647900554213215487958932536599258837339001019788295344813785153658464049775437489025597523193182163988917974991043125661016525716959445782409900291582924745569420425154092294242410948807513891537350691773895218783670747833261598742247114759366841153558793113185918707293538950941748733196957592725531117043404023155250226854434938920382433314489095428951564508181355663796474343703936312998445407208278029736685810778644711984350272053249515162646706954045104469124040185291600585487354814819484579119932883865326599884017056998676004918527477593070952307332387262405912504063559689521027215603196207147736786384398715204592693696515588292735710867875359676376215250308679542062976055835599350348043718675479973957165628421459874092224530361992945563203921898371103842591190651127074518294322826193492424031880923964091355885046160656264223374897418752987495199395424613664195430628623604180942929029262285201766782866552949592392171805186450747294939947574973697131860986068650370869039130121288469604010138057651988460312123084659826136205819254241665280142572249554184967852793577998149418568664676439751755899982265792266040626523932118466464233214220549622497814634565135048277166163466819588958548854308111280083068192458269241032728434662504230890532443527904119199807586956632846011068667464643552814445750754440371180984471522169200748144860894854266084779037196807317796931558882265722746586149836515021079668857227466207897789469594230764214832015936065075160218799994132301697608366217436194918031647767443513028466001632236464551470758997931365742049041309852229535990939618142583792813311551256366903893438744513705587866320907665501441271817087468737319487658110424091593467724057456062945767886092525125373295334744327318238309013752815698133948216179320325417272198072816611161749933560274856448806377786092231837396069042637290150467517020639785175700072847439189706639195277479812801240220638615361712200298923303849624578292405703237284941916949867012271520667507594474589000151060367082311109100033622348995317675454907965163070978837300304096654474323500014949226689952675678931542723607654627510620039802960996681272304306559584940778558619890889148002592325004933274015027676216660022807696604213027244427104703884919187056913594923459199341537193468858822611489885980146482668837239454739191150069229962986840606658190485455972781933841917365155139542718644068424666074914886466306247640972934260004273119477411053613682061260715514258394986898119456903828699748519438339276194274022270549105659847337662768759029303979204948888120458290603116999440477680004899783774990389616712879554617002823329249818859598217632738681854097758508405652249984338319120338192041190577071561096853107761500880811493655925882120287687841605236095990448675920870528348567257668922658436961880816630734299231913321515655835740410643262884928501883283769862406261929212133111984344870596451405112855899121622749916554962665932576421153758149684822432489906374031237551994322255943712323721021821298576360268889033239964348845502384650184414555767123502824160609802590978463841875553142148821889041849613018548703673114046832461168851886261865557925033482652819542392942436032264507505884377922404014515579264170714921519713665300959559793762222555663037965624482476346096515545749086442089713521023098126747168756790537422084612253850158467020896883830552650688091929126360007762303181913875415455960357815843452489683349908731481517089176471122172776693178899528391631203138441088843813120099287617284484751796325250779667235445596232672473098157170013395573460924997571957212419999449867390470793250149990620223174159671859007596166323456324942080480696097908676639369670141416617788650479905172106356197978815363260117236226079777821519439126683185499609146260452887902165121849739327742925791783149929193030345391698683856986466931044488536909482506099548272906132014688592103341370996565699105424007383084242219378128617045970711563122506293542285018572933634377146478551500178869371678327313668980448164827317712903609678775014552826833803516701139068407110955653804823482844273429939499333642722030800651755749136486060504720772050508395677478459270787034330579833975851874035471008831153435187559390854086545888415348154178756699023364470938915390162166141928190996152584661126801348279705774328806124087358988494232283122867120083761209918977038585550839200381015685399308119452962414833536710453083126697218425971445783409307416885177051304701962963438325116768805049541168428366096648535096695756736254650938190804850129699927621759063198772277894641041989374194768297949599384387716980742812579191117753495852810636526081329796585411600718999783505569538516285749837439807111516098043339176079510246256805410667260705365947314578537723016621011579759859084903998447971270678868444006187290531861426413233618661321747751845923027765699066229879180872484384288983897258263431456331486150265422294054504816930533001170331996979730180664395681779998663101347521941157135003626746898358419470879432562913820950796186186678389722280296592946616349178602522364305290706990843944276196761325557682503583143164090558667353478252744081774964341124540739600418623885607273137815700734880231191888862187979618480648790188943326086022484030943489046936733749081841738517835726866074554948655900830813620646574390146093563432926897394019238896913095597079990088224512863871319768638957364749984318072222974951992237901882290900482620050800745057054393412894941578765686209929231309442767279529094809645492741394270757641337616678252408958296281519787833941246778226313755091882803968375754884461348100586722262633617640800317992900399295340416339912126444016795159603799481257296274804044763620807362673468658733368265749866656768366019358220169211857656979225335459832008782322183318551133725316281151219090333810871947232803465680972022202803614451171295944137286362822943829501131620242624383001591674404459870671058137031986259943894948894195447072369063036042093518594568588887702634886857635522294870042704575457292535488655259195715267748355824331352596455437268076491070127498532494716534713808548382564012086232698048483982075209599073554498147119035937073067404593052741095135146696455458558506248833165818946683421002878270696905451195817253593018773634528647392018593182392252302392663752099093332153789621846334838566962440060195083637050067409607116916145941053812584377665256068426020111043241993792910203369174288342623796560295443434069016637359240992865477333954805899558046716488812671313852520841749868264469838455694372834201064704788484900852057923710353696054189057264836195742739256994963009421765797798673997510856823889491405265026618439439335731578922845977568122155746221121071702012025516000161852436328626296421070520939247471680991374873349343073003628356873553424457258088274270207375789211273223503591865308967537645899612437389094218039903338142717373405670315627294180079729493034426755516091251570584628215972251373596277469455156080221948375817910840902407085081160265207264871303509249012342375030777281215075189013286756691463383723474314863178086527791605244530651848517282964800075663034387425696085570323851527154897196124214133874077357276407554591344551172967618772863277448142022303358342493419615404652498011752756137570671722195753176849850101911813073862108076097787484624316652723476694630062937622146079302450593138804444472386904167652987831120383962481849808979027562363424124969111153829092421064408235863533595356416245363622319109168756667807680030500749739266870148465101701604204321165500998600833672105861786569033287969861519962278085437146240951402732775282780708411194433623988341101061148112620082627560698360774314195974748489935992230556483373156010049480493541292807826163522110617182047692597976351736648084802027011810121570441378232303407800038231596202456377392205382275919683283630648408842055495326442719906695932329174307203009410325401028895409199299553518565945777134479787818834799937146283292782986853885183969641203462982020869321545339649369821460294793935901950148445222555934025870595189699957433296854212233577020970100747520632282825682229192542640573375241200586219956365968728600089305023038327524343883741141381810183608565801842819501683756790549589025445453045962590331736649088025917829482718812073117929707135460679568273677388516233956424938657637015111067027680212293063214415518163457971179327158163440617849233884745946857567730464768736179402041408874918421696463722961537363215954502600380170764514255426306002873622007974603314646139370676135712233176554743576654044889104361888496887427071598938057848135656553416166763557645678732033415263620296251755584150235069033154053627367693429002581983187540721633930673960031965553012475564990540923777722168309374355451117979443833829930193316672810099119797943781017860067650302047702306318197784721732790032742945641800323687631112406763853508891291421027104550262175949395458768848705885219266823705384493940179623935655322236892237957111166987439044516079112877878989112376758626351401239435867906662865887993588510099666596624658190426781212532811003431220012021543930133072979088533487660612889493288507491983762966569714827849644374583380973108903940917868456076813404878888751374090579889552561150969322859568297092333353346834088867357267674812328645905368618379578524631926853475322322909683955776200366965744975510781786182849013109966722160101536233777325253079498951896102444423235765016861852932199976681829638628441045086707021949720404659604167929346588933112650235448684855844666362459852295059574896418091008112631720881649826665935783871958451539204018504135556508285524872547397717131238996994817447949870799271141459683281900068248701900454925555664716827257875853716803385506606042078804045047832358750513720625349922031306044456032401353335239311241583567630154526219528144196375435668663874298018028600872757919918789001706116353986629594550703788341335674614295729982949700349471421669718113230503004388219138455382426598037779980596024584306793984148419982904781572581278435580848976967777251265393467865150488689688758505088550517519793804180545048178576104108469605401952259836493671515487773189492794316722353730141063068812904642036604764493632487912395261628181388100878542207533640997874298043006937580843069016381410502798242134633668427485151435118071514930052576156709099534597816928129261078876578372956697038584802134940932465528433966647417652177434612376987761995512164055327007053979065386788117242135389430512772956197949618464184465854337318602959341928410637012492769370134386960323386675582198318273777645923436259384827996224053894920521060818800185225684318360006316835441213725693603402685565481399735608147080705834323712144933101819013745348757380339518610363535773954152351065679291000391049994998901130903764413329463758856513559330011804068967498181908002520992297984689057660911168301525439853376920379877074031759907614335961790958147747290653621091781801528141581664246527688814463296840488432525336513478561210094601005228686400061057768538370674022646808409614484233213094570678766977483458121166987603323818280196222840548775336135150448747215327385247704466611887954847798618324959767177498937977215405399549137524615195224883613124210525322387311533462322021202000789998470610900860301840524121004740502097794483295180192772712471634538424847320428177936206751202212216147925169936676796143238275011829550000967647849208624127327014920192692733473590989949817919540358061943615382458951829291185522463187103657361318974248423543124966587690273264170926580250337254868824867070720014532336566052933682374783165894589906704990680100319570030758912671942896046895754190218425408069747429288031446358086430042596745283957496363085157320172021725016592053966838657346273559303083228447384439296016759477296447658367709158933294849503747739948056670242986919552674835163059186991716382933537552579709653597035454358345080237975928106203767598518674036040421574510999155928227317969319321551806967295944874270982615706646785031412557212871511128498662674534962728348814536847807192388754481550021853184275545855693531653218393172618464443719502099855909471579112387639811007459169960707581003164773902657795754465785650387258443712283012577986005677153829461686011060760321680594276886643918657206590721257573961837882691187264150855415461172556345382142783592260995630644649499703597305015778282033077718484496492130285982263864794863250136604612754985066139829937058032359232696968620274867982174722806251125854575505713588311822582386226494724821425649548138200872628640195455227514280296589891758339718488645008622700931526442890538219157791248952829071375456156060692893190626968703064202515205880969187553665670170248477892184108671778689494816279334913496359130034326785367690851639746744396869671817107404193728905287363874723384796400101339810465660116538365821200722080669471799775675078787677479598733953634641164305189086464839478336009269592468401156293609713470768528010688875618944093699373665751367786361109411727552993139883698030999953409574834370240553371685610207795825376058824601085621285455393977698157067320487924803656820129670172630138737512788440847752320525135679803901402017611527625430554502608374928451391592025720394077967769506316482707680665854893259219773390536125000309793992982790540316924206849488167406365017700619301483637184018938808012462606251335307161199212120281176432009232106332963065187287995428041895429926777953253411244613193968669081924511780701416925735661957506134408280875704700728311895050201888893923659763109535232454991014988037870504476654672698299831674121532813953690476106667394701737481033095220542774045816868362422884859499531457608142648423624162549127045853664880896682999479544121486296835134377543637160177736435482227198523485381783563626250332817489468333076113998367113255681128777631474616563926937705709943542150590695824948139601554772590504180194781467134303897535774959313737582734586069838694286872627530519859278296765436649807387063053544932557809614297013748230467865251947129307557378213238763980389540690092302414009347776082238886033743017925087588612329611371226321657393976605971733691073311561807767106144699701398146735380261089601694267049433865709770322972599185352071473721228463551126013983290814365338490649804417976248072901540656725962278107072228600925892112220352208478542085294661571426866551459503253932359821056009080731561506683678890857860811674380282131225877818526535540611106661960992263924911378448811675376876225573069629307510779628064345494552265105254179460916850830057511057055133635574565589409499349879129368062341932917497751865319861891596384684674802829281626511854098200934432967291795375265171916100997888101308324910576640631741557236852952596278496356836965986773567402891205364147295837659899498203085117097739650252473516683450241773446103789746307104656314404707605046853603382189199197237912483857371983690312397182097270556627478217001671815772425292037215501153089264008435201433028884723172577080137857662068753593387673215463702592454194485656222199232475879827608123529727287929366571081805554060529237102268605899013004295700659635633253015491027420299674282257652127740243658783872226913933277649935300583857497213564221482669612403598245788458430528805390539281898646184355440390359623320425102093384462784987960815760109929504661577991025401856916490948659728185337210469445334194880263182416653060147960664507710157488953336252770325177092405836182425611832099306987018138971077867535068988346134918875679208421901384152281333074294408664065877196560679882555679433906265216524849505764443200769811305597022587383890613862509732706846073468686591500308654914512296970941591445879023369154388031610959293019474783088089922244964987514989617382856951949359166856228153377430177558350846024704699402979618698910374103503795332442014024888094617177914328869640596035184609654100097992377840053151056841856068513141976934572235570908460680225447463415903258848639324410960866018477863249341363576029193488474842272749047411442970597122772766040043548495470059097625471934375039647633886628880808232230098445146113176770491348585759196766850405169733055422782065592987843238008248604501617948897879135927479756916454789079667009186622389753690674946047096137552451940370891312449892130273706816840694172809706570680641482915697053397537365337851059661918752425531064307807306324970226408701947673904088840268108853290692293529283338325167200465709396731307373717403982024277855028149241400787963653768728334033952754311867518365507278566955345089251973694439428167014442261821525616746447193602501340538220324006423477138347096376838045198180911000242630275183793868301756534862934922864920215344264436125107743514970837101795495169329682946975369453928079098580912872684584651052367521144213835015141096281606802975393771793648476612240989861115565821472750890311766533012429894158361001860767894182404751693068117540224845636081812876472901132602030344739468467623295163863777134166681066181388169517568910094082804195987301288885871572578411103284038994270090200189457225718060600883865703827933706444485530364188750078891967685953263768268025862568717871039482138397175514117514632937574432835029565734556048187223886478381759824659686589319894295676982518517075813880801468426904869141408467147410452767264090123462874183110157811222567178763952726738790687649810990691004075148552079527689526156074097645816275315764049268005413341940957335126983620152619737959085289337600485274422038812727638817553255086892756353454916930958151886962957135972456573833911239720706369251246394853929981404527091327336938740519518034847386358554419260552734052272634778087741271405007007880030025766141632557578199189047329277024046304354752945851733961538596017591143978242964654756856911727782490312694187559530825937748518174278416786729214125347264789685918519309089194713134686558713880222169954466309837660879331040248006952285796922088620438430567780435800669354397127395846163482426403195613779743761839839633648493040058860164337807508795213659709117971231940742844079754939776950075980807134723748363383007837428755025253737933598563505906804888562905922797693233577354385278676187352394351284629515153054009632652028768676409113405725926197678023179643910355513357158020237930481208734339008348631741442328390021726662496620786197560373807007399720922571442635081414142073774841083927340224884512511017989277122221923497548082130271196901998511589838012059813012091040016708722593363679716353767288254400054158109973469399306215862053963717946488652832773030723038865766746558266877502470068288600487914761468256564661606280049159897233098831536356886229460913318548931618906069647161574827208222590838227116584301469738507606801081126125825382899659392696167327341364620833775509562143876130032496742959727087540117155654254596051359090687666585694236324801525478587399451978745233934188180521829398324634314836726160277566643778173164081881691926079623026821532836476621027481182654667584598202399235481531849638426242536568303380011568820885875323688734176964902572100319924437997715695269642815029305882040783396425642680105470550437807046433605090328934736069014015853043210823272178742054672432960489695605736798404892148248253227773370516584071464552370471018310705286927525629389350811041914712730050824819034525048283369229098211706020485952573765114251019793582586235190899848508949601164687668324004928559998376593355367232135247366209406942495743815400757861889953087202823982739650860369487708298381618010736269322660123225667149726540403642920120770160963713538021543331098438275632436121584497509748413416572815065272600710105441867334506761883558408770762264249689593860640451115933576769337846928052619016189590969376863478312566988540112409808142447296559677221356501890682241718540813450675462807694181535434105644918495054639937378947382678772641667988550821195399015971247668161922330356917794858176054548486315882427577789835881339251950212022142029137993883645027197550744721307867138862578918101162399157030898712054708956186848169754923386778547963544973903418169182273090900842729391468378337247456589077723487946245231567752157605060762888994496965203811309064401680438484725372224866185748869880112372203455172353384243361947574695172453230452295799827658898183938000159298086115690455064819967358936839125877025787209049777998891404360195218826206889946593225415760126370979959036504875872141927997467357771992502185855565126901012599734857705330124631594999950363227526634416136482309616941457575923936068112980087521068508878339170629446577630816473270582496558260202638727253194490726972655385012817073926810285058119587256630430000716264166068349024490177856761702626892290701523791043182982971085864552812765923574298117948215143511123118401435223933669595817284542080795374434075153847493831102596813323911902481864557314601639256161769303269407690005634392582265303092235337522660753240549769118305006800807617956930624119471856541367989263167845358918783357924814768251378276390256267056928704775591413859424640438965546192654196541365947846515062559586385116381160658957216044804328727040356221303244511169642393033132261686724271712952039782776214748076391734196683778518903241340680177036790162524712715444397848632097520729930888146724419912848642326826071855661099233598159236861220928784693794583912355258171198581739935583002835592773513101184964005286823117365479900235980720543412164822913165940330516621370765556119927112638910315382618720849913836836908630890706039930660902844958416730989614862117579685531321508505504369060104188204924708326134345325747618027081353794508646255961440601839726132167298642216836701478705213444920521351154448664012060136739482712672948737404322939565780164224391648385806264049457593099310895182245087064444657067215467606601797533729480642185143361747122611733584407926164702135728553163566471589566780403964609788333186203616010000665230293869294715253738384563967877980273342357675805951870749460662758798329455455190954104800301690596803015396264533544645328521747429929107907793977109545416416234784479187200486705927439594618115206322204463729495280973262663607318058770937923514507755482702932455084571175071469917038690312732979816188917856870623281437274953621583821230379704670975990880316061630073310695683611788016387072704201454214903643415354479005836688846057413212290289402606585435547487212961633527212175759825222962157238965857436771172101979083409434325067785604238013391675809748007492246205770755998402842233071423135402232395497529043397716690377112946688786768933093276347156951955522737502400000349786692968155182205966612335492069151924922607303393965407070906442973359515955204628999896415365955967312621600780823494993824016832931276682709049644111782314565668590133702177466510615284333553711752105810903753983234990403798741462436263110991927119669572953036175625484920382855696215753967913526490607968891434078726311507516756407172896922161675188871799393678898289848561621609774131979003105503430724668720723616338884424567273589833584066283538989046267563954674599564748646974849749021444005222030312770825560469877059083258868487961811526761170127418930417141777543884929072733559199884516297482866840519224112878723942634909420281395528764887359108214511312550742112249472925371592468459663811983455703047052255338134644079678995019714399526431174649184298858978000539772502058896590440572764599251916225254070043431896876799567518716479643863029516378704934198031418737994250369611884552176821925443100334861679814632210458849486630306870667261773828528427555118760000403748335029021141111218890712838293483908991337838932681146441600434099425719787891078630545786802376720136505225401846279590654576659116758158926692957544991443653817335051640491478888678556914986213049080604988280612873413702328874631132940409403115625945512788959327370699448872909964530542912286816097884723630731307482785309057171246554949621012965032935189825188324993561866701768576015975903985791602967427437325377710940921482612975987298682601400891602818104428934926688774472348104339544812431920426509026393514065095161773299376245158644272482044708074241302420346530491925597329044349771240416196712506837829559962321110275718142643178741592081628540377124597352354229831424478799098568211222983835298742695399266823658260877053138022354784207905334270344883625038088880477942887416175412220408228753262040938088618557785972335552665412351267711769074761522488398224006982431390158227952505214104281139579077055185115724731891253795224983322522611429386157219079132789165414682642243436535413805010143795483227947917336225225963688249502009136952113038657349797240065292851034261734194884970527099871033871561314542669719412935681816501912197195111352969719494210481811994331764777648515892135111153669318134016046834425596343294244892095786456406588021268250306334776162272999468916277423937974928353655464387737075232475190479610056500913849346779074041338500730956468400201591223628096323800515578263056898382776045311643880023270433468657501746100777126045390333948456463640132978052159708301537348462303091043626531827236939655741977556912964147692466661230157555604974687116143834271116650651803735051355771709485840064182515544848637532816945643066707975166997053211388804440057590674505643302515002818190963323395907406072704427009890101469304305646517382180011612249655807132783580557136183082823599546761316315739000655190485287685864846504988396040582584198460220457818918157674063471357105202623424532130340709480872751047476502375962783409427160870690138418692251599703447719648836986889548139526725781831038300814246380912595504968810454056200226979693535021173807078221402042374928435577512437494311682627360562695865084015160418409514436334039490750810758246609954008507933471852431264493652340857262009239039004235110309015296533350267499203880565894044591259865185852432361477940289257864469788092288611888483962115332517120740861867671241698833474817517290141260994378002661494553735807496953804180332977903804023419541343399147483793722436529802805446517417619843964383256333445455755163404636806547730733336714940808861282822798644380229730018012866109698302367309928092651747084496909911978608180277835527324352038702718177963298006204034774536098100085749925048147380611180065622339276900344366962176264643422572904218401095150023366117474085785550916809915055137084690921381913887889537719499321997747168816663075248316644351479976706736926138402397919435916305030267318966109038380678540522899808390966708910067083612679374349519731026032851359138414685759399652597996613824081248138201921019581298129635605358872713411460963614162963218800622413796194009229928306648730345236065890975393843565434269660429153372631060633494138532161298324198830437141611174468327468092915484383683987190948725102763771520431805454147976080142559644186754661301378854327337640568369989345154985057561467261886200763251168872261797670218738058007675271243475949259074256135728202961601793761043921716752864890282192698830655254512216068272289745083739507938865121200740000265282160172455151781418469379394193806217510567600928602352080129036281462256552785856498120974203076149525054146241851007324926699830917189882520142177591779608966632667320029411448073337528112576224398638954335925594728366910092161045227999906034462941876507038257008647680197664978964225716557470259331888193432182883658744305116786552761964030384889632924871795144021694386129495980045699876590346070979469331027750246799051251608099244729650155113053072111650887796630461104407289781672333419805171189554994631262121830587926280506883423173372996365276110613279048738898144197917108708514176647800957942875705756008011208324953738800121254532725414906698367703907937514272054588766546141593055174309711632817164847572429059680674575002237471210538469231522093575088657638486431325850876627071968786714698878222767381544521213450107024754588473634065454313869390207709667492080155382724370788322025299248652756603532991339057151977029223586582757397709315214523422591611991710769261527432320316787138619078561517041950879635414356406503594791355803433815256740996670920954235726887086106927616514287776009143321670792326062502824100568066512556914063736900714114835477055352270555788606417438070723950066068001052176337699351595287751855556201777499521458415721515884092872101731063565975896086181385883147262953565718709189662028447389562261249869363413040854376758222497771877709846746178285744652885012372354840858104036970041161722616467027666256516997687411926089489916500772850437576128857242013589268284013583710402414529172167018610529912897274528970765164609531579275176138375818570707813908518908831249561154625093299851466537639771361638924663409327185111629041715232143460096237652749544069704764819984210420926877514582882479292496712594815059661954302211838700534229642227001457678805495719964055019644066623979429926315148704570483068341275525599826075348209150008580418186965607868416279546723709969041947313473814913745984628271229659872269354800947499706008153917997356003198925448676574058224752205106758359873630193429578954125793954255055441015248280221511162695951824032690549439548855861851734418178596079790881408247323707476538686143125382368471126891118705734709362408835350317067507204340123546781305627057212964000462895232820423313721509367483339831809882098986551556678854206758005672413607224799973692095163601206899199980943197583151001566429577494453153366854244869473434320639211868961518309806818563032152867575752196888553185103754821995050042824814443180170252838693769026748410917189619188235461776163575924493963701707228391374886096074873446064943767878192539295290444425608335435628550983918353471960062001806661028722204674641960597251321019200060054244339778101756439122464353058094349488943420707497294188249841348959747275701046179296815547882967585825144659922570934153565459381741939777405698031432116411779516039485073036717079713815553316867950755930681307965866525615210970467664864058468385003963084835077294900039897994550026962771332665746431791182803520825860497294835395806043438592298924311837911415544795683605272987959212116661820543018384401538974923586543029238972852841255214273070267476374409841803801606314955691758663195539061853156431512202807739586235845399933213820553134667362043039831327149806195698368639880359701462313725484725156327956322009254686179163751586912004927797708256025486716835264524170706639087041950521094754520518897211481046813893178511116144613951913668137097532102614865441817587732110006286272636587487676881806018931093221563860284753031080883649736458274599624442204303659324081987066159244908416251241378977266180214134092723129382947307841792276756739046879609342607756851305893075721999940800431192581375311915967587869463934509250584276896472470199976705686622554140485010767213183157941266667099897997438490299413443364302305375709104605262194213362274406929447862931722508755059473278059759205123801782877610202080805806214518263925189499599911594566407140512604514133738488818837304399985461236037508163878403858265742311618279759955822070648751431844979606354295784335623823707165333777710518629921162152173614613721136840396261931247762926530728847560733874154945902682190748009872355179009060859734527625341177502979060492693443981948891912265485169811161626881273502141117080437320377434219295812911431281255667814866097466749565159855506431803052298758522588237205269098193621057064815832225814688832640505888428781013167001884938218857841713725279274987928676425459066503431529709053808891305486958814632750020568008951671130986699507709189537244311531047953139861532398983466095792427469356032971952417060542356675300235063958405704839930276471595058586370084574756412321800674870499573976765912248749583051617373595078351182412716220118232270258968267970712512148490566001811726621897108923739301846685730017305975805360027909639547421919389489757544004597531934916653633324353790060784223890258391626311553603433487283529903041480158988826876831044429984957554163818751610076552865081774334195349319151434701458302460819048999137275892910407359243126611196627095557824323248370022185308388759468324166540588197234548086837007374872445520366445026090881076383925872093301567966200363714429803629537179828411227345054229354383464151626723200368036381920282780979794332589866814206907810089595347618962634891880907593459162619377684540306025147397617573508405223694747516216580577518233486210588934375579987408799954866347051616099599026164935425817120799310885849046069079317219730486357780947918143657566377359028259621398084328760295312690379485025285244656018621070298881484010162014901954957732024091859996389003906625001302028574182917123572494656516366730500119711682454847289889979371409369539805706523424563980743920109505567601103703092035481568882861869950172762288352744516364636836058350277863961229767106421173731350655826562140292571617835250920245039934442412266674636096213846905049020568788562020538617700850956957465650171566561420358795463569355681905492905628234113860642009456979150593060019418584991404162049139858421996352427681223509427464978050885332505078167686019160999138334317883287489499289372255232782388212263227608846843723314648244261605852024651647064881268108874272156313422214255490515273351814425886111631172632143925764030098359495123990099834616818938902135120599701609453852824092444975570480435215472590364975966912072554755572248162128241094017716876957910724557334550321290261157093364490416039740615774415565752821861737929989150053034432696190500691146211365824906246067815856144379907670041036630505692056267604196715439115567029954440811983331320985859911861150843330915211878959692651258581524598348382383086155088601701947656021090897098549965163304567691063833944932405343752366175550067187826552265391073288902412647996969192265740030656611748188469488313307574689410898355512346169512563183023232101332510877773481760352422416512537812494425292151037175064067073602398981436907118624014153400776821645776969274029422803459378474457537899113402811150299702936912559614985335924950687970677477062312810318012988356079517020891380614577217769807145472685501959539336660228341165850767342161787032975679723303159253646238906228395200688545302656220813605552583350157588140586919701253510528226821050141382401722543340024094965916615845470509978140992263489902082417855265246221162205405544763581103154087241954827318374540445893124951674158107461356778285239109619530891031365107979390323464754964703461388635253000856854029645095819587024139424685329110816204093407745744717095219934722724921101633268279395406424387311697910283364462841260801787850387300971112042247308909665116988290613919034115227321010713058900079527540069913116681622640966906619731178058395394688137743883762339974512508063930061985288277396584576649218501861264567678527152914011681079613444718594341065020353252967909051935788499990898307676585701416390568777100574157151206742862386559222883742527878714908677158981973163376350591246335426527290062677620463174282351522524366244258426252694809716953406620552251037392742870160093052588281967555786709482670682239849323774471582195540004505955561550381440365294630415594995800283034353049446244246790238150498467320599469098209390557457641359690336603152936077919263408831119505859493689361096299707880258305074054140601299457076986752930964538112897365856848964868828522281493878195793827165457142526363667670270282068502936818373788254943990880359494265179032311924194486506528293113380062519103542426486966252463849140834482576537819843631911955979488378442644807901524102450914168266319262136558213232459032814696295682696030419723743822898773055164488057658798268880053316476497897286346093388209007376840905675113420209150924714725802890512819387744834729602665473259425533067123720337242570422314654339908978060239712186957574251326868281455432680855046133067616822094850338620737149362255574416791515506500794573389310467568883788270867814869037066999457985437348319604531530287002583682005874150994553629241611549105868496489514197106152971069594805770761011397219973392349218491037645246203612866565577224472364959921600078075551465796387461559670414135839813698295269322562406349663505645612372386925317655164146560837862628910139901944219479688722416102481553762199505534276239896175261172869691283871677498619992050491159826497488303712327154529828514770559685491747225768110107523179578677551614695026901746319715490296674480542075077488778299850726965240606633285080667300528248118786858494779026543075046384945664162424605463414015554715940531490774243760354213281175845322068661523630127493719195713795063160165831946777411560404207108333261004950654366258595967444201620483598543066663847030963817095797658561968499519065564944635445204317693816641660343963909396591346374044773685487228336237506116480533178561379697072257390330105699523848310896309668894951027369569525643968269441192291785596447727702670388059690242110242738656528161795372778182910978303444229986205136280485571144239729693210590040483438346848159845540203112480727525378536438038163237605529975218858592681307962152782144653263273554260694772686100639980309693742191448652437536965143048949087070151958456645597294218838918808889820673462382267407082807590735796529626213352577160090933417932723987285238056887531508848413557433986529077021112174657371929446528516451718233480175682568196186639233234185956636631486150080850912642569025852034283925207604013097736339670770987243306916642929160289721333749142050086899480347291692716119916738929170261368910460335601263335391025235348220438739989836718668656504236492907240607812036513948324308413897317984865239602105627203044256075971347050050621284646004537674426315630714476743124994019447629468247464153626627446212492743474022016606192164870595212833467591948998122566132192274116889931260721262177975537905217973890966185531284733002183434232550778077273015565268735999013371636581325224833897156069615504552011796838656784132628510790084779890039237522449565572871375881300070152203267769329650326450805764521129078688572564462089468556583383950603143819078430844454651831875563268078683276822753035615731407262791142797923448048207830809789003402976828732852581255031676951606686844722718873612604518493518104114417859895848890834387441231675034946671049574895129451286586900698977368526771292372450230877735243792392826357851634938764670688578670568287984277881482006908237255075668761753308232831410023813223831937638159004038391442998400030654704494581803329555238133235718441725513406262494564440510286976571051075243799907036576781907028014345125012924956164923718897139229996924473994551650276176141754206721194636638451346904454901410331492022057361933326072475082329511548938979066364572119025234482605554472282706632787024712250278075052779480369661980857965429145501015349812147729229058041097418077008850938218607943885458250392963857197604486406787280817638600686885579280129360757105762057712574494517414515088578416698134755299759989184656670036945093488660943065571639437415734748000402220451970067019420769585031386975129571458948503918706434485137168734852197133308763295156474817175714551772202840522529028782196371239201099000691267229214829948655239652429159073526594709305300571749684907477890026294822990468510156084405503050036825635748415485952695744477841275577005002740138280696214966185306943243386006477506653377879105708373094970230833357149931042784516784358650066506948302661044277648965382531660529990063743426943810145103152215241223393555901573603663940352774137797263670784751001055643318293766383919285636853070421960524688901988482594687426079704985034561982354985767586929555852573161209921112902087147676156130935805303753037881179207210822243649422990684813954194723922829965806867171692891036938364807069022189818995582709387856012765932260821093941254935263975587172327725471815233293719329643007493878191393808666526081417105316512906274540007194711463026261812812330231172721861791061380057357028360263694232569401032559847015684102610920652392502230522243869758810297885911101547492196354171336268667035226377717316803627736361818229354028397963661041437432778578625475783756038679438575464144681185982173428757396643337154179447623010535956521648427822056014911359941330498809145827649913145691094517292153682916619269500165269774001651451207497032885334119214194337872571400880903808227181336642333883971628239702782472396790425959236259269825411315373698723077771487508839142765022780556849398281630900755495417851033133946417156081631644538849065121856965447281072937632922458873909056368198217425219181960469675691140795309528839834047509383078697988576938347264020623331188624925931363158889552977858428132270507442313381915246249404599459572941418067190530396920695815354122543996467468208541979143979024675013792613644322963150196573128262610185941260643174872681867327511363397932873223515052448443394486322956647370727060309561227186880472188325862413795192777562496406242481261170043153127752746170830119609008269916488869514894155043644445787723219768346992173660237886958892840166973950663920273040444545721390720024453184769746207884442436644917134639917341465813658178698255469528774208843902141143210490328143055055469398387870804170924838963455508101280035242265096970315822387573849128937852051251913504731737073477968328494690352199987096459533523252416676622925228662297009304294722185437565437197856264710065502096981533879162846306007503699536039603803415758646943454647857743537541541851241537619672707319825718328271514785048330185174326799153488662741589715934099744987360357132037402928713526396472013197238118895928530281717566750368282588094315518979163883024119967306954165129481669760875518118412338321786434249072966441722408501699415954438734775442467534931779177535300225705052200271407603756634672096466046818503309607036152740463672310974771934368226394850954007902186957693719890365114078611336228102248246007722043469696961328540364128730137073084703490161559155391977835783593245213992910360626422913447667523934573028746905144350471956947395458729540864555696934809656948016329847477419433270674848825914356373180190920861806085347148541805803131171137780024169715205171308444404149480864581713709186114358179637670312352633235874694908047727138307621992591482160880798290488132718485588330921506980268384684613125159481853207230504689304029773311392857977827059663044546520653966045746769813002473032853879748539659459028927874891930080266347240721963406697362840460436367441397067279101031668746828818065481380633372028864424663667790762366928785246859010030322220619013847816383310962359280663216836619997168079021678068350823439959467291134795176695242259271417861566781964392345758249548756641689325190043513395617866049233470111965127065203831247715679420870041940128758656254446166405988800784265370872130781785329234967472694036913934270074837427327691395029372054768926408012778715877044057836210398667560465735548566498564888829965320260090366829470583875221472195297503963666238165716317894022331045952361945808590716057518824630606393150930365581606527440234462343851822895717759064856843638463050189034585947490133071213288270428560091917016017056470864671525259598103477886522074790913961496251605427675442784739951311832599463835176836799978491174855398527587883707016337582894027980406525204462638611114512121279634259421775624939891897020897305612867657861951038303564886649793832233980217909336995311817899628900431192128946880931360185882551309865490529037029664226949267884549437404951809217763707875425129313926627170930571580105716347967313469521168930249076247838134198038533589515505812169092697946011478494658996713921626243326117672826646316148056402878934696113440682908684103148642417759052635340643551452258224160809905713134448194694643295916158445157152808817392670570780171300155095494881196292435313631872088660649620925925699408747683937867458153721639572636481922417740707624298803069645920279950087044270497022004333905997022055501806871545552532638340127658478797167286997982720008082767842327163697074294818860614247135679550470615234431830793750664851426806833558436787298222939493211975086240479737768106708637678058843083798000960080081910390464289801432780524030329696984386037025485303407368661338857709295495437268684931968341035254080468357748142364159378855241010803359472722456542071805207843268423561353126441215099095219370030832128506398296318729536881571034021684338102991023522438892255313411159398855304870460971265379751700806968366505554073747708675249666316434037268042286721825174560641608443442377035623453624410919500224745511324559094944113647798612338813604987019534444402936029864057124968380516464779822267442231940480103385105791457350390950095879323259824714452192899267555757376562337601290284264100741664553167905006365926322486878265915211286767442916495038728956331852847474325033805171738480239769398214172489661644007428876349932739554987582720517590583267374986479344464882252850360064463785736186103929886428774347901149243031165393804986723717591400880313076537580620794687799480761262374334145470619491312322856432709426859356329587248549377540366970655203058423596838430625025121177969295130369254693869684254624690132879593037866290177717626905800602669407887311115309582755707088631024926507198198184921008391060903804025731966369559603250212863031406169732477807873891877668689292575642767608137072322933404499569683858730568902039034404511817456919166028983958527610006770257635689973276575856075417250874334450416656977615812037691055653770317532508598352235132549880748619634086029262516624296824938681277619756335415791890174677345129601028281425821583906842954083318321502114327414717648896929170762891503793227507495653227697560362094634217611847614791141818585320828270607837101222263872669049230500788030660040198836948694711079298639011217230483201699084245259751825204029036806167743940560361585786487688702114381720486383773862587890753089168735930551884416270524548790631610959239617824271851854199459178417721256932540210731193199461837833796946598536932048871526672252675671323764494816758961215778626208647902082569289051541175225812393542475207234401669004530897113815961671797152918008747213647572700999489958625243868804913109714060734563937817563789452648875114597360815017247544751767772981669976118218487933338275477771625787472754003844827643656779557324343153868537266598177582830599357949096148249938194503828525503662386733614461473266228586508291851483420758619700852647915136083090767695888264799887594345728849041011491999268273365526231869843596315124875049887998217750805278442694314512160536980396142369217961037125809143498769206838563155055236178204845254008618630447796586305310525669943272522417175863995850085064916520038712116027365982371731232389600614174375899038171976889902755627056835471533916964292271344381159877241225426549026543942740168801166312376405011208607073333028874264591446022985161577707123061388024413295752415803770772657774332509802430461230776719176951773872422774761576298523716308437875015923866515633035082921729530362384125065691163969579995317016845240290440064824493450634078399014582108775037349390215079488355919859165688771273095509387515944632765072669658961030068461742703726751383169272943408477121282231211227611982919071333432635171557890847773746026689976518434605912680348490842809824812608008391330214894144793545691204760989213850427799030521361894840116100390279048670371004892731378466794782794818386672511327534926508248197705149590791447365027905373400854307676511729766715294041066554356869541486322459281395662149508365258354112461346611619392784196222959748839309502919408295648010597183834978695229439390462511544835356405783162567160070710464234352374071056933025368391485995607047314710354748906691124046461373042146336912255559385880054377315593981588364238941319275033747954308945808923514083273084905582253569508344616023775187410169143535655861080681378900389642261790087069224174851099275317541860962349043862371936246555684482145302779021998389068952041210151822927153522768466352354089018985411633444678785251792166316224895665851863215404090560998828817014907495098229997328462463910237240191902409147644770340821535844137647462864062459062196942269745915294194700010277460105763344455296009293397413588266913288600592089440766311439138236629564693092457513187233563531733729008487202036896292009585384535228485602413935337379691040340435140644988716061706617394254142537864245184046800916161256038249276116117312347701510483325139516122030247305975835718176167353763359062003792225675674383884067145172387560666967770520764195232494224667656466025623593153246476235353190822218540441911317545413915243752610729846834202802772599652854308451576814171994883342394786716590412691213309752174141299116778600004088866953302428860537967093760283447649990612306096341806656082403870999247874060781868453659630273640116355562147012759072197199220867308196391638308337345376463439895297285149196005412298870046088950255971952811788109669560753332586400879375451491982210017888480305792650622388842855588164366366345691123435916270178457782865373253283401955993234366215473700610780638522820368448576218753959099108531394900840382350983823084079351785353954892303536976397305954607003333927777314088449928016352354728085307750170308239244837427167727643934201132067955257626947241771343453833060464866840226625196958778148207161562204471331016924009899672329841273362190362270026403425555752400645585548414042999887033174891665170873566459042831460495162820588373784013792458947851252638042881844774238996757636068346463496367654776088368834775935870974737944830279145744794707513448588334700067175696331325592053342506946144370128518025859016594896822056002416215945518352000789300336489817494544358215064801094294649116760921933773275572250704657939497554442553234279384810928657483577014004923875613163051845538921755787060647155130381172499463512595917606625013002089394387138900261438855979897167267574635454914446188028723269610341462941303122967664621167400130191355092106726745998715019655892176930381621252093001983640015855207932277972117721521566342503398344698375350027788928980292984088866099335081538983195840497440762461756994237865058281131796124667238271122291875912123725670894489525225601556651780284470987831327074626793028565995847816722165705400254709783846124276527250597712368499592551948585704852869175261171142724029034183797067017401837771829748745165291164446985941217230114648473553835395662341281635258904224172681752244035185577808338544399530184637309502722557397604916359300961347490841322676819026699352098740021539849284923543078948361661188386201736707699223039756998903529698308950538264957123307632559679906271066833598043531704072228922541419272167599003233451204552522078766204596857527094276423111230038570142924424672195217915502504578975555802800947583618633553939658055082536795364889036389590028865878142827862052893365137058868174208872948009929993935285547546135583392189001781250764534974389887207576580767325909390128799590906436871836791967930527016252819295402896055727470258676116055292634499251226757095502058311759265427616360694540039169977952516715353910274504500411363163623834375242121236503375476923604680763078127436815066825386504129803074990182375284905246386927873524326763915604675851566877592455954843637311098088931946481512993754687529161334200562205959096514152419892634499908664356553366914067953733581251011373435335607852478852836335989135347737235543220242985475003382596103166630792667456057520858820863623929686613596325407205438651026399255354099616346648510331175981876579130365055883197309653789993162648283608881474758339282388640967939510412359604798288974418006108466947490784908433522620610077884254612052184749053124794670571019298595951402164407955771228109111632163157445476642161900001559762535957736998799383894248296017869365742705507549010993928125418022367102116698560414356484790023182839635496705353559330375098021344063456328629058371076148678923063188580583575510172566986659046835824678728352444787377618066814378377003339261699496365214841204030849179497965205835562857600090542269685840198214241464387566291713186122824147437518331667369373201347859900241000546534770943354030297564001732280781959099188409401680037807947626006706788714438572015934553291825165746490008639445343172708127521363634067194976151659113997190457657770928310133096177332320222509972682125452963811094100419642533871756766450296802200529183625353141347807888885220374394345494493509119924688445181271377244611073745705039640537334167849829855295169044134612428836306698398287555959655606069591382337376647700347400609186365445009882892220837385223228632669454096286236610719502724423169459164919336002231470089527672807029175190365990612866781122238324366085103974074725440341931754668192161779225890654148716486099985847771291879697693203183970335306820737192691916459733180848686032878001239989295017182749639001463409510617685883574317237279398915938667841867663646191837518694064897579020975293705622922746509159369231256178443609681995974160827199287025989566779251430936921547457321168340343847632158199165247247500256886401130360407997637902366402315034259062567443418527171615981797418851312658522377343362291956429009639360919201094301272748832048517015548843092312166251277435080638831699067758980686492356614086166499860814955891031274062301407287193307235836684663811909225026881733735278909773412124813512398782752960010320478474299874121853869309480293130302072936935733950296516379211228943246520764965331868588083913713477606120431332955093719110876664689640663227656083507992786161839048361692199501675572463400334115536396051722799011698829516841954824954772767810710575822024654943956100456801147925564929120010760985052934554236831853430644686926723401702164252082474538318228760671261483122606922144552324197126961356339799734922993753187092998842886301586673505360974200312130015305957504161459398470463446273238452178021315561152214014746667827466966206119330411424736506203307150008924394306130042307400725443083873735725817313228133192146455294440233200768147092500371439768524288938081224153607208976469662064607837764197167517126634163186987477602367091363040098251733804803070856056103037911381434086271357553213769885754945153881848679032923958242677976721471205171084704850602525244463417765345502032492639196647252442637256583685963639560585188612158477093944840685717183952575977125978839364933409591638520436545618274026748114710188850663050295259215766941297706524340042174857693195954676081002389231205990796689706295964669056562693654801630694985500935456581090105820567257795648296902786924608685113675173143555926183787934319339001442720334745150994970145022662295310696025063348382779189358357764292268104305605557812463371905044786797713790028500574292238476510083735262212405171962480354569149431514851963676167335562055962709208962487345056926544234324194773295208701790767911454999622462519420875168421225981419792583512884441234702911988444036513133427595899938253847838383330732017961154314584844612624306267598030946513567164261733276205531571001590328198082946802077134322058701719521190152789120297254164167087196777988183735173666718821977803472905818494416759809333756920915040516235811009205087373664217196192966837909589813655184719314328621408299952375109587189520642621900953862011690431120141158104485036344753071409591792636863418904760004038122212417651411010075622778292508218283257357692729270389390868105079829589448572607180782930305817120760979868048476261471651969910940362528447740473441806001768529099674132124883347755866260930929445308287317342342997901449567530674551664040439709147800203185039588293713552115323034514213904483405636803876721539365697446510774027866896038598401590894677264107800359414582109036994679841763529001986294691209548194299496777296980695897049371740371785246405397000854027934016056134289307699317921370520440327399322949564465924922898653622219700915489017963063404930293618013790809829141591076770220485947909896634132501724351771576526998004043879334086567549246201832288569600916899585964359165063621073187254013368559878006040873193589844085738954053920830390121874787480721353124796896545656437639810005748775757261465682924437540897731632778086309717386491812380986367697504514100334684467895917295294325095922603576392660913280247460071728622402134961901323628837949026342218273174989404992865304172798587045348694744686180156735244038820487945578208926505266432632765455358392261935755859526502013874173939165067135833760099935338827716320971792494102836764770598265934038263286319532769728112589426313339110701866218859437067766733946424269316871834231496132804008461481826791892792337713862651929133229528923344946229879284696301760273745321393964951634271442355248958215670675709200389627485934847004825653145121074351644141706540810548277994055703181737181492970446007332996879441130213203300923704549910443197343836235168631492598331349479753672672591366748838196238123750849874643248509480256254868211881207296967202181736406659401395925189210683806924196675597077978129766356880763072158076776178713816474063829113828004594346767636279703903248910497072775942281114177728474842028570530140674846212766193616931204176674697131726470150535080359541417786241179617575802157148718669930948129887532003059086437371124073129460315390591515093232212497148446274475276427219419831758208471896674251097309526566052994213645968041611314563701934436299369395475324343556964021291487943683010480476473167734166919189550481418902110018041830814291388847017125084812972764626996122082313478766540872053731413595670704904643515841598793012020934489707341482476344623460555456856052054010162881750018995701509588051780469943702243725281757622582037689599787565296573587990739536353956503596540341490407594285951675528300499978257058917928430107737750561836916935725971069134124754421498732132185636373225987591900316789027020686167829695101742810220238271966592553673712871906616197720599796199703682465648527921645165163047517020814530967971135907182423144686582784385090858880937375142041229877637515767101413767408804043827273143670618322088512571519907332143845424189283341824534108468967158550130488722794614344642813444161367267272948061496000326593990877346451823356887239603418527276089487129193449725386938234051579083786505874546744273284076349369052450645808863232591387807227205014141963787372128675847369491583541199348153132873856530593166421517537316324679422606339706382700226703820949631379837353442560663820496931597124956316229252692922526807732385520031037443215139413588305882983687859496134478435551053157165922993528740037011416577137280494471223721228734164746404197729541515342031093686826984515201192547501935055645805502596898661287628980716511824989979045716595052298839912920114345763049907195484921158640316017283789172849004106439731438709348483317888554007677021647520625290388642944182820405059903139044450007628792270217127835963282050576460237566753656208282546999591123248246382551039829134280135887244246551712714749004104768343850416844411147522797223125128415045430630967972740702176070701290875511697414464042842763526204763536136465473078048022359963609101961638846193475531719182734092183024859852347462958518581146692293109661402289694686777531447207758366550894075778656307977303404534582029030224407560586629911897318668669245771236014263368769351323481521217026951763822034059795447109921477837664564754220175294448760005838061348442553294572234204760937578858002710217130368313267104010651618818953260667665993759537887776670800238212517016242520546287653537169844327131188675823879945856700080933393481006424921597657685548695307417531015088977538170714265169466856583487212970937975596253897335863581068098511429727544948617025018042590564415705795180119464718400805404605813710320755710229688779704407332530262585545804063844177360354394309187005435112745719092364629098802691735275332166341501608956647128763287090361930888165091159265597873709407682670499385404704371569698802372766094860811747070557440267032851232064331796719505214736896921331199483858039578603798122115601720747738402962810382922363282431547134494175058105588207747798109949480781492684978696800145746677312805981376354038414361692151896652446773562154691089006466871771701676668110320605825402096002163349354476932738969248245678633477601341443300771674987885541363738182299503757681644079054650316805006945723362445029192142520288268386409163823523977025461610141541591046537478298445804500790624346143782594540651223224219719255115771473011525197472645126096753360156843962967660193720157710559428009105590380502383253176239601993595968138914679977112906526611235513540800815743007651848550892554092351799071320034015731171715785029233423380400637807889720646804826502683640900524980820397836251326939787705613993094384097882133056252413018737580867482455137709110193711071904062577511316507320025308074141069653732305720180886594231200152328692097131986289436565748503336548350898471632052248075879051235149713530017988918496137266347929969610237327698250521239794704642838427126239330450409909065742467701982116428139782131855647975491560466290610032730120458023190315266733776379966099682419617747055059969462698539347032927868384505015452287208707486407844955690492375330236007871494941984161629175852964886301601430559419157866955194315945607272611504301954422929986811161658041509404922685932926987519658937227120114411735885784379565415029360444284188188384681194619671861668085325425772398543119082095700467450812145390132657404602578423248434164346686823758709975633817925891996084607157812335107005014605620681457853383532496820638763813185317192526141616324751182935663368266265595466774647466265561827634835031360590129885231491117500357536670229442575005580955743589947436023082818074800053924315037528240721702709820555697208478002185538691207855723423557965568953346346827392207849820028452304854715019977236462085863572934181187019195870896706909197241673026884560784478702004136337075049993284517568487275883383613284303534440931898828685683870017054754454087501204352455879855087646043467306248155154765242758569613803642400002507546582055728178883381890395075919132967708183667579904576131627856988698270992560359268062749261599155595101355762680617064080028509705548621190492867873135085958799872570400574434545544097641856516647110050710261200077502092188532024824772156432163440634016642269684248984026561950625810979627125082865704612047486184307497906882576216551988010430652555895461652458784162467199766570268288982125226950075125738706159948198571192983375395814334334822452990212703635038926214199971456652406256232472289465651258275956154406768556644017890495727862194309964207258549964096543122856758823473537572488539716159196161790780063100391693701699087912942163353979484788706195513659608998837795607146172018322208796495335562307037886432720607105841274501551142950866713124842408051567919688845551109079722170700764140163773686992911110606131821606159075532815189867008517547147208186394023708108377129264403507109151290327989906022719264803747007425909601370073278902248077447936635089742855850804800611537701327078611277065856776784008085252955851070486717330633216351085626439492822316201665505327729943116267229325555500089690300945979781843569090883838660793083421566124692525720600302878965472912615387527579397344595196934214490217540141985418538340901844414857548743425818976273965585963421606989201384957218494001057562033324505282122697896808068703502529870210514339501196175329518131325389134919943131880489320374371238983753452463385031779640068030744922217877629337264717625578975809595649404330768491182809473973395918333128505062539290635529888112008759833805964248344321217039114158994801073564460612429646940802975572811436011118059017569194013797630564006560593578688363815799831916192268760156447066445809968378540708572687262159158851536737211421429865440515440350519395850862846555056616313729191695715321046266934728200073601137282670869136079216498329720097915808967275735064109862132790675582138591103935515848617212919769957211590586720057456681705806080978622393913173752941909216684758274746386722983274563773201122190330771041262862680351622920343084553607098002317473570818057482778426632899061973348628119578414866421361073664669669196531109076496127183416679776856409905563079186245388016895709582233659529199292626867601282089547905992890864906506781099893287108725334623970904705025128588699111192027021830898179083704031362553153428286210617828466468220925981799159296496883312175701092624116968245883011623405758894180738894452071644768271539471569767339710411089404235989196452851628588854630130055286590209684875943268643887463531649931555251522727299932813692256617497884094992641446389570995128233989629100867354933616344605541600993020683181182019344078150822807382105173891823345680155584530092569549144495729045921217667349955285031651836283110163685804585959145169650484095784905348360079965589232154863327582284086196177128803590554991792347772852630865709684957910643707615366385980333305446709999983763182305276141645649224894490479788581837810262270178672038225950642053387532198806214582074127426340760491627831684564976017063239660876949714233496413522980601398990144287182731883291113844572553841401548530923940538541645120547635772039272919396123282291085061059303687439512169509368790827410603971469481449588094839532554433566224676907058252432956111078360490894277671522917934026916048911654762548115975989973750864581090420678851051169982497337609711255748116250136429319767250571631320556755587416553818109556065987334474490553016054324621010531138405123327269417636746948828180711381523678426094437240939775741238008349309890307564206527599940448811414612215738136985704907936303333855560268957935323043088976835653739185669619004701422810943032446548023739824816668811165486039574223454207276084318087508311958631952786087509460899607166077726708499265906687793500641042336448573030190109668747591050634454128666090373471957440176434915987900570154084257749964480074626850025597931541621830889854693000214807592983320250015681437040516042247199560550203411113885844894151992130307158552730991511614503884222989167796016034226559442874578212266600820118807997234020247798340751826794534910971554693584034940125553945240890729230259130550910342276529907938854174469377387135534174949317322718733293498125111798849408825648515409825216343055912595390007567239412609387031161451734880812526284570400740321742051302846018866760538577827627601450720792396358824023751335427356822418647732287406222106699539796063588044417866797714259835755565340503408227350339621665545079396024575778258480587002606607895535796401386631856693451652401065146504646206988229956856271762681735690563038691400724687713648924392462759408703090788005795299031317409229766970475424953675075041173712969382875958364370733725302512202606196124465473493631544928851789281359433377033344650189067604648585810684472196875089323643921178174179601126165998929853166705515535485955478518827536411333544049744374351864025287659442100599779275334874407688327256677690009574439618651170900270815037332373109077487663023169531801164156651788008519518996202321478883889979964039500686778683025065524401473165743961438870518143738195749604615739346099174604851091841362288812298756715332156013344447193737318979339535547618604585897377960575763161294006313296767119401730938408884593595609126582665646460673260189367954566294764020671134767723525833279743801218366579636286617222470451177402785247052814011237980973887793937153997969687645770187148339098582462139395805354971528088990132149412189300208796121704329931418989319645635262172830562720785706426561315453803054545513664889310713919933185970482936415474742462338472633564233127256785469835760821517200047971903763301288108547378055822243412603376538142628694373643145086439518557498718791303678050997711746090677202634122136007342252341916280287575721406372202314987007701077824845076943983602526167088761355302107386969466753832401327542283766874311712112011708644035108697037053822598913665172381497891315520834532946280001917820540895908151965877043181804038920684392740785494020569957020151134654645888947757489453855640781721213428155693086109568997110079616186620166022896179540331617811069384819585461887879817129264097055899714236012420897428881647763725733372412766815905797093117806205498040639896254407143093097501132935235792077891124637156253219278151309081331145499315680058703506929707928646104592629416366327500814335739131492700397063301665728936800720315440135863313972621850564750575728205706586530556286104174969977408106965263026136292334629316925157789782957967299472153156047738707021131044476700901301826547849588985768238360209505746940649595050470382642941385675322166529571105745723799961691432378715868707883344836281460305155781928947284422177983768701529209484301892726395854153449080738354490079638641671146221840045200695586773782234483606596488651858391158744894257558863546596820310923119245256685099243004277279583491067197896727254453398456466841659628679959154773744066098027736412600721319388708323336513599505732035158915747698935407717353956576052080923653882047709630727011183961910817491111977504890455729960477788193735010464164365442432058647940496412611976885520196163630098058355379252644961951677067624409068203082622502894885200761942172616489814984293961476369202426383531084318588963105205327338436207591706420000425153803856950489865453270785517587222442824313006507680843875196611427110464955954272437516818700994300058351715027538221950347093437018688466102085462963746788414869911621434863122815510286355031164235214150212643454585890243379604613673975400383154735351100009142953601826156520747691596324995652396554985587063928392556595655263497788746822579492726249307058719359361767022662883497807816998044963117401137293601445228835873070509673320158472789968188320643683792752912681620308328509891811519124522396992383673458261972080497078144369100554437506237146130116439547536390034297378972255017279562995532745510889656413115348962422937133670087618084311676384292187991345915282194464134714676007770445540067116422157610785735455343335561896242642204664668179575507915755955023776487641164366934034969971705111080420264539051832363980943870950260678181511770148725029241606468240876081078255311799242432731598489228830707550806437943286549775502146258740477289293458450016072387746040371191190627742893045951979366227832809046868723481671162314926482191666640342505736344425891049069072959443108124314304671300207301785991086259728584224721481521302262759364288111640206183445666839662895134692239894622721152249711455578558330056642565822207699731925784611313332559600837918394479721028605214347403317766856645086634440360412555610364345932650061216534375789416033330968315195531040482271577847577538895270770886990639465111753438791135411638479156119102038568537356578513068089155268423970431559404114214832167861505439252610918688191945013329405995766074291192330910015230344097752196946769383588002626866125974541323190293560947590110889932380626723718523704862981291499962157671948980896301622391094367236412262421450964785697508916048411132906832293412039154403601003458877344197329441337829380252995437871278734271319029010478582163065087298407025813077211651841321249117836325926838950973716405237453110715698781977374358881786472186272682742676463721867381031456830925351449456225997095949085010179601420410498281087363250244139717490600109708917546845405599157197729390279112247258846218296546839642575523438109462877455398244427024598213012438523186904514204100110763334626061705690394907927349752732140784679936677231676899991367973229610786602067190071266897277784741928082472468574499830869634811273276380247521319857022308008203642680116603579208208707897384071751953954361986081345150369516485947256859050008001371174982760981308244322455873819169165884243893009612858430427786322662519675326849701091501382119547348845191901830548005911863619076156033014948375876511141691086817874456066143469409850714091098217583736675750521016056113177325708809574245899893202363794113578359076050154247170092619499755661661915802412902924967453997264340632551819031822470974275466087570206082667516550666063063232076415594873916439657030766432292897257038705815378575403537791200889252597583603944429344460829165497489852436653935920605352856366514213312690010472284294852412256061150169771138919748585245958915179323325202472025496668763342551371879878202550345507610344765343462175258348392455057770552108115332696876420513994526370353284571666328644409469166223427023577001054527515315589798456285781122054259507186293649567046742499186689320004593043955542816685607187098188887904752082552244097364546154518222982776178069873786544272469785299194091470212407427950288485694905558180734889160141072926950189729886826124793756476524023335114672208728372079740159723055221177586005789875089376145772376465238571527858942235431707989998744829596420684568379897129871835534125568029814399385825612634429043207141889557225306170737969994423931149797506341268227390025245944933528346638526393728875977943745655608944725359991131567582056735813329247756589929434273958253536474934372849315606391575970159184117187755645975444246924331083244132662222429860539483369120060117493259787205003806952206433471196121895326736157256181800285894777221974416304424708224192483162581675361035898943844516936826601632828142701733599329977512033661811069328366621291863336915563495185344006021464549790057958299902401173758599760449036812715427726022304346442383530694923924979451817032570703707242452062919076596242726100301714462023718501235787056038804547028282939011550447717441600518172916839191928966370840725092513661065266794832526980334354831340306279673371535298749986277039666888370823964261768273334672814480305633007974688759807422643283000901818125315436155894126097867667393797687456071517982744199025905514511636356331269551507541779809522247507142164909710391895816014560663862742752975343884920147744512507507036455469700879235874703588000172267079573329131211268392215129238452486917157852594327213836272164863153024724426272776518696858384067896940355657969481150693160460812393379580813384274305196745886301064488968758512904451165810928622491362543414550953420174048333889802115550790203963024278175926672287373618167977507645216436385770156374388439094523961040441062819668551176363414383601184100196043795325305399645910856842744350941453688801815780382232099455763457810958231549819807688043077157226340314941404925692958080718217916414547338509941510133218981435490244679707876274432096104151436643827226687819086890526896095442082131765527872361665425787706725320073797715589727197297457621795123143577281923965232663377965881461630244933439388299740052055294815337688948969580275249408697549156628897506549900321752612289101141613373109670222579891324004037603755228772129245121913605148979121380908823241597631120392024507544848061494183387135931774450507923538161664830893669408030818478996880510071932210880835135544625361574937031640894217768122808157015020866926598872189162969326063688409312447856478698993139301516392093794207799179765353840628760371536528383180565360231685937767025235600871325207344054195742858936191511167983145951904285575253166893580781077239986063547092614917582555865029725426869862911824944455259086910755263370674778629642182448701560964749602213908809698115405132626971529345493681351115631549663941522446813075297769736075167386911965876083404690817622662528882453386366000420647134093304565064238758378276025614983067794075044847528750240999708416033315254531741142829857360630071035442988127406603293661791086079425591938743393659760013527990065910059353242677325744811284948938251204656464388478114965502155960841807036278028370431380186040570151376276574309996344375525443211336453307807406752959616406366069086644106023947375317390260684373000990394112905697998907760905033359001722253142587349032630650169906543633616842818738203019827804609796547558091171361172111117572193052000391859630810521001457582456364320832905067443524463038789528405505632916357785796987865345425069670194058521846832716832489918560711755102455044658484351670414730263173137498820446426044934979384093505850055949351772751162611409609027795110307964444849490768955569358666701144150265727721840996382200302867486336994590642549972951129019949562022923736920043866918752770317620103282253027457768661558467913451325780749102140368506737287898456009325642104320483196606852883848218539759153771874694680718782532741594032909345799329920489632853074809254692538295209641945085207893505770385420791626741900341308487362176354199067133060098629556006291351173135713257341448196793346264986330473253927960325358857077686215091107403407087182075915094133067889059598491889096522870827355424892427784390831649262217033196793941342952299514844031161984822171849321851601690398735436641312940309993333166731658836972733970335520689483702134823697309985761259329168304221602159945517542106475303606300529438432793368446912322867001536463443520644279602829606385118450599348775104456962520139435133931373982576446842097678056285823323291827870269306273876380883623407155172133479719780261658305331404750073464968438811317218203987529521108198501271219423198894813512340120281762734748012031951381945213430212845256623623181888989153087650407819780863417171295540761829356579203914961374668391530245175674581773893053135262792785028110517700712602760350661987423883431496110502997750293110403620871774202290842706670524285984300459452220902136577388737242143848389904778218796075040630981955123144713930786129710081426623804258117502656662371960651100239469149020221351578726081158783852907577265137039551893271055986057861734863843070695504498572777334990092061825662865320819992775525715534796218885230039797625171959892875342147835014092846558267206311973813964246032860178012598668454211386437757015879814378725126847852010744134606609454230205475277925742063069104932920263139154491431950178573760947980755545254048950194719424629427777732295409046589093851057305549568816453438488388167617271433513832240649498826757016756377834968131048316919624441632035692781101073100043325535037070440916543600692048111902649863378231556140192315242444392112999670863045306673585730014264442178966607307051409079028140000466872900104878249715685292901717806464731522646188958396286552995263163424980827464117047565141904638082049494973207384656984540530439858880412794746870709334423600060359316410205906616782845008853834651996646501092315127361853862816349613547101481788285973648238588451671404878197076527862284011834549466126112292160691644395473367990211272995632712942097515902411420111909877677178085451206571592197162596535365732947524775001606628480648668743226232885112432879068797850398649158102828485498991344627444336684803997380588477071706077643013617531250945634101999725848191148035941153601805418998205617430118428503355406603982569227058787034998915734564346432144989813655035237485403589869880197751386283898087247523251550199662583000468184456622515613971049481649214147977288862224758190945844984470473735164615579916831658829499761451572834593037161187358095336764080000435931336279981198829591737026409792624892263858583109542521205343902842834145957983112542527453995184812587018504121812900583846881534777963665364804655864657752659404530719987733455007563562102633983468549090947961406605386173050172704213797325368584421145489015551188095152511241979157407137473136406798029789351100009365012821725221288894079152725751803194038015436149112756330969761607918677327082170454496825023625745608488299032710783091822247534134514932796039363211637439333967276627234982553846713034411038993859881809869258484494113925076182231817685183760921642538683748434587949240614259560095857248516849299302334088050198598186896007018848043980237531989050451069596502642803287383701638097101469239460494717625339767821367480801551985344890175317307905621677379578177321354501098596686117392451772065542543648878769391647301786308492061095852898415752690085632319432100769198065548093550879760980241645203135926579598277064325203727164582805066295261768960764466274137850673976058097872921714518625370474216685126084783723650368099303366519719377030201095925308645677203066729301969582424703158613172343258531641982825687336885400695197630805103590671937429382703341745128185583677269680313480630644964537769459536702588148777457756078797487856709943650891789137784417516181938863673306629525679074638427209181504409792039442421368221916761309624356486349286849019782307095243425792131832162726842400247123504498328834215368336536166603049265568646843213536326460415523060241878803746437259600105390949424731118656379334371705623942192104298966259054633161472749487088906868034051250067880686266754997890257373248470547084963138273757569428816339106999784729157494788768987460926156493155878335969608429957592847631059986915680527731185111367942848128950701146675279156152885780481551675551952402443477045108957498645899407566336777887682802236165105699495190292770123123823645433624617119711623739255658222614454953724423934449726108222703784595945952313000701490966184208239892424252593991346302072951937331381108385679245642343328104303016045072564147706824021833231330945843992979622306486826760829466148155205968597549913715452359131538763844063206508605048157979404651481495687055751603028611634081407728292510573505173398071757385125956492981493776472617838180132206148008388003664283630994455433105005121644653398716539904744609434542888122792777312965916290055740179897266345641989404548682520911249496916446266971635216401597944289515291899545823762975304492637901476124221223276077931101401288920066708315984415131159018193618917828351527266227864727342655862242099287836322106559567106884208404487825074035562542464112946540688198706440151994838349603252366695299458376758962425660665370821553816926051410413215996227674905387478545015911875273831577779720445545708423647310051821282809625436724904645267060551400973310546197000092493659076133420762443838501548123769269308474189985239468046515779422580297461887362923507687340042550553109739628954456025235688588567563682440111591047993461766097355176830099312800594616245243736054711518287159733546074687108848818721350374690216217433537919746103771686703969386062342905224023708601578306645584938267385193609687969984317640409362284276705537108375280022282744718972745133011219630733118030278290994172086641593028853883960498142305364939996902573351587661395861374324492001813437314472646887305381159301226263279696083629428438213747719741152901314719710458952812784029416854670462773373359655781574866451767830434712285915570539071992621006073032153920722196242054762699554554958611840688559830391315959081693502437852027428451361633843038637707215506222652191396597219380909151451125973084083824341519685933805982638733311727499849884227657942615420626840086827157442324406279651298078748815371643264522918363228319735565614932661653180088164934888028125424756893966802582226550601116355653914016484485538188177482619227503488158648715149001492477587554559348838641783300765382354784888229720110181751186287752415755338471713922225795913525805927499458715349968451893585070928319268123825386518895549891289262970233837650575573061632401068634706864708828254255712461050808606290008361430258873138357890368843332328695792336205885373598972173509814476580847441259897819034079588315833503129807458522025718348596511024588626712817675869219737322869879299776685280735545636127805991781316530115549193670220191988615394995433298315459833173316710970795998278460295599113889685071892527467444405335944762929798971551982322704475864149311297075068197858241166094796230580730447107344803347632320494578463771386907739556534852815798407569380209947479378377019489117192837520771690243790005020372594463270111478792822227669997855900317370630973871715191815884597176481298363520014498083596488623644958218040028550215511222383301083996444246556627460563789415986478012941226697375468649758109489915342923302060488012577405958040213301237831170416194015666382776314309190934429212637706448738636268770270545650231828659365842336010186152915237598771817425331256812841911639899960874505801930830541204517578086764951541238212344049780724284121720316244716839926951787222948918796079077580421295071970813700649050877360942489080538961763678614205834540680978982872688238082526478670941042409109527320655858490763223303113484704773205838237048144742884497778054907596447024172467466142453847673025932738096926912457996089197980494854926924402131229991470835982908718465308385230147821578090363829425192822930336872751070120580472527913678017319314381687481428645559502581363333710325937784963819514738098050711234542657632261612322131917043772252957898789382633706289845898105331597609036067270547336111244619237880655220043368307609209466716303280252515674932935643600204828839865608789549078512736505316149114978329500262404273905978259373923710349844370623472149561495471850502531729644340362616747959440704450291443815251097652150452307253499111712727041202304994860585167131870097884606728154562363266410098038798787681792241003216453031894874355330340234022129937077805159511376508450046730169634013888309090829294908670259404109499163022144012027476306195141423907317206532131986871231448266214403542516528312831765716903525787792813188035478868503380894030527991461174484318319961802486231097484903694235255414045177105417703244950948661126610286825460031853057650443744051394439991017630495355628068604396400329089077516525930708582144584920958896461435915451646838449612283595564127242037296802669137054613803386685581126226719710708606336892472333865393158414453910121537820972342438566112163754321662177202376715459153432299526865158585292215105786160520183504314289443911716520528928276981570975793674417992585739932488988487301734091769650703393432426007302543821907885509535893759890497195368623946141450696215850595872914175623875850551493645791475879196759950638806095088026692133799414820197956346069833850065403667775837147133243236745822124353504934699918393687099420497649338724545154168295046817995326463484896732005650116646224393152294940810383661335405497689408626322497057468832120365790215058098100978870483745750809901898156289815265707071774214126705399164937518385284548017773262557256560786428757198259142052167999953273372699553656776468149410410907821782650032853383610137123549715159713981571367576441591788797131600082534678366720063627130932049505792627772582747313022858577229773288034312430698677451960876734643412857592271933078002195235943106366479457337019607881823328152406765364660641747462507583734476977109415598677291652165033355210650837307273189281053242766105033727662843819305593142194753514730890987507250143785182942861540846208929141923498901892555200968156985661379817095217349640336970203925078904418194249761339193826958500167135994450863957222080211754966713254777480284279715126431079838632785225818855139947005802840072868903942760570418046470813600655072408117030557026668572143231749798079742767241643881380029903527107052780708130622027947449564714012603760436122547838221468439606310024639358557839880425576257232980322812883626365177351113509834262831140362663240984808328182812475754584817166330348361825289173253313866364561671476341899536271364636739018419546416041950694303010726803763689234977008831079884323290951142447311339706988544040561368592369916177769228398842294893806283359398416906884959623405671522282948143211883722910045318033196776098714087902376193310827393557327730215048984791204932385715320467382451811100331436978276862621418723159909137007450803173285795109090030793178798410145871879953967105281425275132235674854715926466788523041946476656293756583222939828403303979370998085766336750468211601943180653599036113840719494308654567067657215832878697979931955643464356335534636168519719617626919377483483218770580042630380866430775972403570302227713733247976049091958169785673656427492750398083272319927038499040415663117727113446442656880087465813242946132144715008466899535811002212548411834784291220429820911526721989869912346484390312461202020409276032637379102695931142398138472330386266443912016006528084329208654876903536396922796642123785952888010091856214818503370473100232332611870259823395094867333990251750481975008079410474777349176303658257997261917601660372499397471789199301936209418517517373970972505799482469763694279789362630809203975998336976014742943019668265383077273574692781874572130331495321675739039478561351936219774915057700366010211393477674845748157690285738139882830749972811410664699590724353009167284282788678289223468572141874881183177443672170201461934516460867179018473371865451121509257934123201045469851618423628988602357288562162551410601102892913455108655883522208221823435600571037358717035235170004272419020675199441979718921397803626625497163523788124348031304993577424610542221018048599945803485473715338598244309168940920134109506995235462082756556088278840800050367648218179569267148904070992583851192046167608062287613922376584225146387953052723306518363261635066479750716383735684536105709730830884020767859778739274016893087937138512560384561418655385357195199800565402866031817482757111754683464148161276609660550042153980962287352206599143559950847713740346985111751530591506641930522142318583680660915336022212933996039446326510950378943513554125578629848503200229786493981976766513273217681607904010263913080075054674094605128449973806247806266178727461596914917381383135547669073440863070862579819365441439529509184558408892536479192869525338440425702834659625141099478964707495499872458211855197649573958119409133442030449684158768025395401910696584384026413020782966010525496594481714316748968539420960773035095957478439049114701955664676779118226811097922741701743480313019776692648310637924620438857769065829386065073252624076547688556380037358945006071580582118899136669149239248664081840364777009431067012081127515606258584657669922007739332842714031822820673315293317718785144397641455314944805100565848890732308057142826573046974985375789203999074029654890205728022295331068879068837700489970887198095505249146012129966029726667254010522852658186514208418169607046900034981196992729799515980718198599705489211804203343926866865984335963864647889761033631767388715777932578776888314013308080958388262321859614013971073903515647446851799061427420699329160986007818222206757202669826680811997154604858609300290769381857935832016148584938335503526829823947180607167629463282072448611463976442716943432798446202435329343541877702735045038837246247421202574323499031427009487580559732345164349365296709916664852997926984287898165164248441579347157258501737734814541446880678592786888762720761565510125946142724801101117578428229453459104819219859797157608157144326468066775626449585450010236525553163368100167439939048428082487722627598958733184729443013176587533803147414760467843441911258434429408635221362737593614881690893407780631409406824517237644925904536409812683104988324893485310011160692523365852748037302362449539701203860512843804206634906700262743479917272181205707349254176981075331723089630655451233495288988671277770340765410387949163068292100485417094222858021134553676106322644981737027304040400799398474338446684485842734649467765126188348225398615862145329589895630051933727844969653423970840061326018843400025315559078069931422962720288548608678662361508321626170795243351945343280283902869554011831479806552915044607246978273928738030445623241957808882336742559114758957740878758395086583921867704294459030406616240387725027414224883987758859760575051520746553590020619771760150312136895626029956111407760460713013962825364600817294410732251549314365986758094096234748734643478759521716387488884533988577138149206684565617488087036866260323197548151798289680266910829910558259526001637648986961527813358556554595282162635655979638913925499041450189739065862210307353158970521170326919153978870738947529654637965713573993644067529191062824307128613590225967214698629514118017203466354246444399532507581462729881752371700769695299167558987315532495137649590237892920193125475268178094287041622024108451520982294642939745627413890856252559747118692863188759162205640238019118947127633307880445940203764492459547151861077239230474395938434837007619350404391741927728689087776494798017818468549868523815212259442090695597603691768776965309458973099002126693839174786368521786241241318089187615823086470586777294275744973618251180074344539790509898345518272541614276206770424868379829170580043094964184551701307279593739255748394906594433147890076684267649826411209616567546047106799793936150409618197945180546846129480547063973308593032948056241923192195663579275934018119465914004756046296229012293084062612128653901556334555014222688270808075426262680262614434608430100820582590233909783650817661899582422883101294903856210776004258111140867632302767464694100361070839530954917028954727684898187018608390629203096681990049695489415494780250020846771793873590487705218824276638785162388970177774516399183232688890346242354811235519467583645373027538684113883227317019856421609166988322883109691187367315727308055170064194902475719161871772380422577078075872021368607718689660882285604298063097866150556957467063786105145703986787994586920779462951877350382808105502936586465665793714609105269260372117689312899055472399379280693250925832296670389451304535427649090898858925085976464461761161967996587927097721903698583500555127146724037084691307724425147976066294632563880900649799301287517237690817522190289515574152381917504862627651176729121880730283863568087053852899449053271037038406036021070572226680678722531071855557496783065164393806110162225566222249136652520955138306857042176289764053526574864436171365301393045640429150190036137685945924732463895961566668070497895326875055100652329743924676884018461428320165616429290853284232961607639467121320794124631959785258932594227274225265159866261460877965533627776534530290713577029483850220047713562358320446327322579688384782536514183983994998006505290083995834031106550938485543047462789156722323246868724438488102909871258506160314918693894909395226934036292378569056729440237975571724382437865131759665104450741577251800414774052177155007814889509659319416158601238902286800258197732706835425764173447353555375813019446491290013297812867739218901523119342535268096720884174349056145379900830366662266918594293879003968297802106847428149584204236855613037806960763303306474175817960122540300444564260809106424928074606322708101656426445529170618669742970152232525699115318235585757039936020349834235305817843031787702776716707963217647648672096076693288084811691173613326040935853222888114122054829416611128699083898211674837138314972129956061996727911315059858616731727375047739513182750578719300905734210918931335569447744311618970230610036111925954630071309993075673502351747427991888157044690491169834619844120133225541023207617674476367472224077581257552197113729213962427079559147114774364331706075197283168996376087596050468277378675429256767491934293977065085714555689998056393752825403002985960522375114242441785122871233235277140410317682944180631212538991669276572838312410566531137971563402397009851278780983170181841320293692272243640268576475156686354103317603350679136352956930588153193400047710646688384976682969259155807992021623100307547362449184083243530437575067483323685707888926201450658481524208332156701666085975979583426080506669552335287920972437150635869586780733048283839017847141208454974257203381874607824863335739153384366943731220865201494593508936140475434356244914934436186616487063240239075448777306497710109387828632354190159906835637881215568330763402306371979832984140086058180231602915710351171990624526835641462141112029133651184944789336366311487573797220883227419149469218677333863912118121663173062632506725929309409732175665952499563840059889060668322152676356391090267194039419836512782332574670018499771574723500932865384954236749039558094662637559853809629812219547712901095381957362742904220267516652109658374050985113511591549389328982147986534786112030353898152259332552040315600416163797114463253425665091385644355236158528328385875267469308422799722966962504042232235435827367820077968141264570802631461356878393844460891653594009839707108327096354903929822686853414253753474768930045166869020907071702516322682860859980648163519366883197115512104679674197668710057915517513031059154844286292379068307541762809483715884283024916265033981205837037869019416481012767394470990544876720843607811832507904731519137720698659812431236107445621922227505101509521132897477542160594904806948058881446370425959565808920579518938829397837664064654641895598374716780526934433471017066465131252025727039914770838597533152919725590323373452025548243693313175321513051893858338403622059993820129866021658880757186476731967049279167208705929899859298891099754617072946305866593596938776477799652538889970027499700275639065721666867379026232129674795721625240753595438471245574176795844716096560505019977918339950963637782558741774335900830149016497333134935075347716045659604721438944847669662888996222377667783124634086024962142368432728723269964257636226200833795991770147035833287304247376204940811965551186484869028711606490553340505825961469462109626028378709460983047404134535083290729588484889445760913412736596581659324106025085610348898859051034992171064173798541604868465752977534133412693052194029058078140845638180510109265169028976760875576094743701649802991765216082678909553972431757612368617402613601312057726654716315940517456305015859241809177508804408575528549997113460399496569144776365273636234196184667530346138877218551650095970486165222266772752971275213430155811206782530490420172632225008919100684044378168880452460950611705851418900255008180619412397197600844423390508183017947073564476080735369631987849917637810648610743033347155529387330160827564901033894043839052478555286324527763483850791629924687217154489819862963141446917441747980444370080124438527433079460028925608926652040702806056482843596046574548004674554560975604060207644054311147403227151154026364915443259509163949783713338669048107399133912999233355420522113787259118726832371078123624178798517440612582507345060973418791277512878834257658778267267127352214102418517274537620784623645459324932052334219968680706171187322887673888377556546687319461854846505118186413606387162805619237731715105082764174926817908603291171792085057128510652132037835191563374542759179302325727371665395178934405183970118638497728281054296650936720904405256590003223919666998228415101948945448609623282360438273724051706284132692810327595000205656453120754428022733170570595143904393647928591271759301809279547362013004095773115033840856376032162605560138959187289145446246885648218695951018545439989424113914459091509819881936190494281349129863226855310763820316374024323681597215334073082131291081323257604006624841593944559072974399902512759289540101564238646636988977637252391025045584024173440472737568587559560759888922643574419124674271659791807582480507828327993414965460286361748894890079466687331487299708310609998463989225610236977398794081502967079634954882116755978616972818118675768962176742588797340155889102712407046245974298437993777456129008661506497143487641389840034719814833293696694198093410095957853809943045136319686797745952712354021866897451931017714843072587893832217602385863240198344953059062578619095790934164648226255418833662750839639737565281818383823683662222159479979084562002672248515092242220216822461842309748851959645243176345646595532432611271536961965742426573990037179426666152173694071520034588744483099797730134105778071501568222005248170867637942456826547728545003843644856046643331868417738508659032683280424390657575755969875997122747234859726834694221739315173837580484710559175018810230253269433814628468813700225083052510381980136694146531094733398370086083643294994670106222691134685195428474394992559578650736902029060299481182315898524065635031124320315692019787732096669690048881061513857452512233398673075609992469680482076712444151236131281764137216516134549926843936384758519284238925125991036180228986564529374044830585776278475263049314955382325652907887943778326653445188740273625672843629571516203865806597034319389746382449389290941450114351558018648800579101432423735414555743782828230089408003015155171052436469021957617920233936236920931281635234939371882422102713945134213737680006771076541347829733020850978751467714893655335624007364950826830722533988255115437506291422825638854474827218723156336710283236087349926172416823693765983709492999659491859492957867007474199579342582380161345319738290171453140733505303327976038311374109015170357051882324259333146463125588086421758880615242237641701415931001130685699306334182825978886880306421973011578945741202617883450759909520272475627397422915230665548671810565320329789316599440068144948734221871959434781756129994378629893943393737046303572526954351155669483749244521298558660474869459081123302042329923886413007231436179354857382144935302673404374018065713395468494081149390591048043026376646305255592951690249055369496889839651617805264292905862091196934704428882181804913093320609535947752208008627206405419037577019348421875489762126685070804632502388851542584932462474798497906866685965291439973563826775012498131709300365187190087422536945410388175848638873727864280443019904659138959069112154206922749128044228331963099384744825227321420740399141776791003509097129589381100990033311430804116117045237759101822369636085959021780811709537377487726045784487218056698743945225139358427350389300341055017820772939525255511091236404326737107908858055859675311049585125644077333877017752337291199379285493196077686288436355515535803852881096789950148612764332934723544778760749242965674716635740481896131782287042372309882823503639914839691845376390313198908444770217492809338311236635277274842797148992600876364197291278539439405926256154632256629006721874685960018371771894854099537732047110905092319048196269513379841009364397384783025102059047405945651041202972599109330913402764980767259494666891405201249797241892385958851639580419011533391776601338289206294279146840774694813703000932415332260961857604884895987446868400128702741033599580807904306832311813751483856105731570356651470862120828693634157678206126951844066934317577132580368097402859962396287568847208450838975986956208986256620232827652696998357955862783348096250170160036916972570879298376494702357437673798590663164937949575269476563757829559571146098419919293055369855340937915450982520408096400843744359615259829786531746681543658657724869717972662916024294843501776024483839603962486097647234620888485163092028651885556629349860715046850195664706030313724652483409282517000814313782014919920572264885031300444596967373891663495919021328864953804742210088408480013704493659298506126613384821661177817943996907966846350317020639684228204261080594290175039028283511172305234934687574604000417381832978471368455009608936156549021989275310407650677322534462315025565184885155650068881287263469237727176684903720480298895915639027992331613840529058231725361906811446401183386359523705397204415401227250532645708553857704689224706917364030677207053369202601720924236642100415987483326466917970666101591719610596020433099511974303760100783184174223845530079047971712944241667500700667127209191695143027038188288108696942152601005099721270701246146730725837857381530436809288918462521579947171207576136113473731806628391763775584111388385233945340079531575310658207996601473907947669996330738980265732028182511104083807589916185542039811893939677694157015011991811986535731679144495617720786880927890686091923372492575323083870663664357680585641406821955293966624963971993226687686321985500587595581489600447588813550273656928442923695762547105190348593987436893044371957669091918169036031368900566748199888091622513901512717718556175271400086214174022303920202367443160116722241909013278477089748155412539460730319548785679414736622537898301551123235795412928207944016338130571724187031581472368119895491202706401012068539382405745403292134978498877521036839577947058257854846932201446059763863926502865405694897258286912703259011152020546923813864111794592643135912005343361904969413519087826595258459250411883940721137841664966400291093329761456351250628736299911909541473504634315456384000388546702522311552413693546523531944586799987037554870005760734834179788188361313690350935452164767216768091202510957188936740367723297436795842308274583229127914686558095251991009255912823672587769574721627064101058658183525516995999005059287991711013364431865728398809465548872459342096209877121164490565278740172752775477070605963030992209143405397616612195462440055581796907267994677534107286701168308545960008001366757779960548353619044268475471200889345301219862841490958566318980640278207312856300495386288200144734707553576800034596111249044179516690230349636551529306267790228828943994471119041216953634442526737221196229188684522404947612295233322823581411056972507271347676501227972583996656727395300943291128767403178486152038036996871672201403108858245199554356535376971082926692327783121813376289120880859089840400123206929465639341091184487815950248143762042015889624853361649558389333963487374441885790547756768614921255919168769011859212134756815145790750694534317224679552530154579121281277681595502048208182622441000085275394354452614249426515511879839531037416631466621343852640447778031083770093267649990604932703876617442811409571168317643687789000974787257552979474790721099207490830727721777216525310279530574767104487658444251039714043424924552438008636967402428851913182129220298274171043264622708251842569792286201839949997955986575186090733626573221210450846599457101283591092194021098214133734582964404496061872144487707003793504001934522783341437202653580838773865963285766675864854866012021983607327760184684496362474146393424597664355484264037766299000749390221662583142991835985371462507780913120281959559190179066244891956899617995686177657788884356604842256849516680640905121537322635444251920516979557856105704737418381683424906851925746075069883442482258171303598536212164347368195479508940299754885221855421499463274617799754305684808271266995991454686998535300646846041342198465718082558269336993916928579493778448491150523524320239624038824878043422979097597525009678032651655282808485934666600769433361896249718645342821036621355503600906533609346678322161904637739564088621293388144510712020934680533069159834570905951595943484853496808763425027589901896209370620195375639537579076251382313501210125803915998324272425732145671259443681287377832285480110857941734880691379171129212425780699552113973314992289553379539166657925684805025991251030593051071007017032535123711388144914944969796501283591612513338514210018048449645733635657508210995888014599277235763525534270075363637819834970219971812659162346610532666113683813232861070527255183437217169395827648018323781515691751066733993690891230847144711228346029378277236747901159725155524917035745828364203424561805303451046624357564341041973348479153166347687175984326189630549091398067587123538843449348534229630481576365676380424407172063371735710654822715596881574551076767189024346298525018119171421543828199620120389678448299947871895322975752153738572334457137841576939187747021509942377362954612505293474321624107985829369449503929198550464425142940863902518829382250357399228048903660013003179195570551197823876577013824459174220738739983420764659861872667881841940042175512713840680414708232597492948692019707827949418042040211773140985650496940581695567617859219210297523304116605722043132567815116031707415545097624281757568320249363937540428549084161741255804084216441004545349539784096997914633841925835991672629591989940348387274977122970493769012071253903477424918398628940361086227917507636692892526618023955188088766578301253051840636899099552585260844470708015585539147726824311873764237278588009266988417523471602241949107852724930747226721782110365157134979613520884146259700989084533018411818126757743127708018032189714664828798061423122733460157124472350818233819543904940422875091571614153049782409544696275193645027009745933411515476245883355631531570754267688109728656262945599042958291486445250913450512545335958066818987355741191933567240629314803288637201647103391316869784897061764390253662904134643688262063506576772656594821089425095543603564651873071005687456595083812276736492570994230272993621477947401473033751492099502669825465408550740617702884437901735285300636337691973080204334552481589030999908964297227267686391202226375927592900023616583650786841217797824745861102205721088120023071233013802970307945741650305612776876528705680742587542473747009891998608685567366829692960269135671418471746310560182639405224268574008518251076390628259713825512643078223977211755819551985499930746188956806113471204590144736283973138585536114788968966507946255161690251310516965360038420642333364951798096400412449887192016305510378679862647120474654160537965642411173752872055147129925906729756034597572314352010032802377839522841724397686316960621933251700592966712005744052531186465549199521276871721549960230651995450219182730989187849749631337766000394838186286999660529549669819443176584253830257267406621785266578926148792595322493980004279754957406981210612939138869367630554414595675302517528634901685997976982164695172705072849641877385585312178370183091353827834666343666140832647887930050503405106813451637953622908098539936498936348355666179087645587993179892496132704646511208636491556667618945637032944801466249601132044231420139018961341917732507027283808441943266386557435851833542416477378338325954459222906023148549281433043164143415681962657640394942508947942266383242033581549948871092631236087042529393315642068651108893018514172037071996624094970041903866167384068109208438290162588792361439887873939447026478310023544415884515703790254798303026672809569709707375653626581271630951656091533079375752368316338067158679973117022937920822635810202654682172073632466861970057999718929794698184563851645284376253483888016442705619891791777395619232686128237488936565297177309473565512673370034713342132169906093268592511697882629193970343595369464305064570030304576931816876212934758725682422205470410533166180470447362209974956981445447808634855451410730143478922278321395308115880494390506204564100035242848022730450513214593589063314150750256875857350737061842024714503785075014165870801797750145118499038282793453996485508314126654837819230988076261691199009238680575649015719527557353408837108065371267272962352192106053049110018090438279126572731972629593991709485577615458188572994356488928779749613619486613828548567910158424642806070318262141082994351039913805966415825470555168750409565205284214945342107288040752889517464571915810261043882418939233680247263424640164725310730511503050816739601672076834264970484383385955495584283147791133678437805672694335756366189726644873685817176961435485548120508393022089781981791520210739089815544319446164267433352733929961401474553376631389676421468150555431705808334769263256057660924151268216180998767510281761842526572173136624909988071931996983044900985019966059737453457734435554908464687618058359377954135908052592028477285079151108125953418774233431472385601506104157223384835826579821006681832251445143852941692981038784475056181431093358641716940013177464563738561819096633590765973925782923075900301641093012427049928301935716922457509523403726333035037745607993942692673281394438591375734043443252383534522842207819691189486839393273001837078916746022119994772001608750326228926652702813703544701354399532062361767390074227975342166798454975146438701137504158373351085519611514355667391496299431036535346184539073170168337923420715888159353907436666560004572053805250811434448957658045558418439756814769410278810761522165103161112691796177055723128796962504206661600599044490474438910937854651413199244149822532943916979034933559115296426899665900598344992339620148291764086434406259283365430330772329979915723008329640200043049700692002111211700169598867609187322468564434566148564779572160010526354289448854558183952962075575358426770817937372444781394428482484252561225869222352048554376336793898507322217569836991055555317049086851336675148835572590083866030131115500119558327417633558545380966251670171386213875679095485850006961945782191462185093893903694578936275001164481799242002215499657653089249317515883451509677527060590994182085421605673110919078426510914799819338109424715968303149733335408644409506870118026152631436958466143541976176569419716919904481773879586333196263721091509165859774829349580390776343045816279894717620700378193997118353303278381283701107672738922300676997868040859913764747528428498744560520873024612889505309932632030993488720408328213486471225267198271237494314401976110736198550144013892072964727142784453716095473909219697068549785772337769400551136987325652465707974955197564541615631951360365604415233176762473063470554247787603364916972583962556623645298514935757265200147678010701478098516388849165722785326553625960179089862602429728342886666046115482575669702401596949710782334904400818678951976337645161944393939101895237534286522294961594083914204992477309588189380671122574861239106645333366011592852442192250684003763675938651896156213825339652084316854562671418441355101542228442833164568340438115525098941935908188163974631036276084075578689853626883256953777522974928278359449013871292760252873215754261708102000603866266307407251331675968589106690715158799186191037386312611570092730266986835340597041306108473102202227472894355593055203860310409191746565454235129906232658447690409418385453012851568025674068655809371417998951491136558718469458268471620891390944345634187492170231188288330664495286227092597648664962772909589822344386196260187907167828401903755066429012720103969313411018746443275860043825604567106055591161416164488067049620416843431072673932307242459836058391401857907053937760967692808813941533263091912953754786678426079369468446346829181371342632784816894632451898466472772611008312240575971039750164901100299081096604338983494999290142658452308216780509251289844799358147819350968448835484472165921351817328350485353140473240497510517792438776560392408127311099996093317607637315430810286885612871748459970082422210593678215893838534419712545538775776857020283704815502963440389869965446182927490298943690331939358868957418632865212903363856249064687910178823373753049541960712472854117131666620778398028049120201178688460789362438042948957848665609610913518924568526631855199358402489756368071216033938743693268389456190723064278491064668286093335263682750529356740524467862477633835524404136357566303485267023966990251555665205107754100728103227261481042601902203183972791347374377236005603095692648042935566322843484392484144286336711760557116535039966215627491057352135695408212833161572316646282242215584605673929526894929525822333432762552388799327776405050697144727399641342443766396508339046672198467798585244794416792630301636594919715011520312345504675597484944198524110067592764766636768804003484648557212303490947717591194736405471553803627054807270975487189165316029040110981198117127049605730198672739413506311485382159478996187690307237466237512642960950124396508244206883308219662863833031261985387710103379346655314263018625725710167975187981106029473272708315156788067072900454981608959724984187936156137038569362332607790915467525811973126514706980113646432950404240814362036563029411045463621071624362187332725119684002455706460039254671034393533327128258519323396543997507621685324184505612189696734213633474462545341437257345698816457409710809633253356967153616898320740865243350212549699203891761101077489070383395914545073710663335197287809896930772879651428570984391725184453001417480532848107148223419419841856818273791821518221825980452172747482308482518810818012253230641976604242928098628133269346318180466883862263024230419653929213699106741995239774683701243077279651158371168544497784676697377618688388755079098621239296492875573110256200925851979784768522897526205323552653879246834724518110469012863589831202447943275696151404342104620154158397977807044581069099495143383870010993213655708415220765861816044556734013090489726225527397713992064563841630235411124444100507853776288959841557633954778860212208583164225427869822340023785277986416681219427950979252833878952517055885413454396264568726096197860129993156831772934342121284918297310971675718555174813044241152327207601725573509424200710884848629336614433517703115010293631867090288861837375051466248487885070156816887697914211687437896918597594732289000674600806925022907724655503435310129559322361879930725018363073397039861098074118641303830950355299259522647546797953445699420872201152157038158164366053630116130054293601528125011783573419495610144916066047897588188123039599281159777343854193173238991757609683544521778497521885396840822281434803063968927332961382754385696638925736676893993216554358837624846543131115601302874760940622408264484170854813613353115586991941024503640071120168474185732881393974759771110405390927478884206528645498034090606547613442879823794555195151554245855281753922538787248838290773313377248909268533448413216249373509258759797429080301029960949760639990815854367564737690550810347324983821657911735654523112635423143426019909134870353010265305891387962650926397303677285284745795237111616901141471409579841948524749887881524425081887302314165726915262380556815915282555697326615245144311154150007593779509618558299617288690244411273471703698752757043280018866447049965874193422378746517894661104454318201437673849777377681956176567238376723768621072096860804508229725310841287474224237718097743503297885165119306663479041537592670272359960409540617774958324106032415071479520126929739417442957502883345775844950556138672078430368863083230383037905326591102206905989419771052792794497684900736388099963658308113860489617151670379013132599788733924219160826599647168449759494218437227978123855903982639426544263288124836340111374517214413551866834400422500074369648912847580048115590860583979243841998847853308358874330048419291737844143130232046861386616050404601126623248829708567408015310465219182566876549986162018809789697125864529094473213757956962040467416170601971707872931512128081255399529094391539179050930056847431897718846596891977510159022674661600661158791781718411420533304097539205644646617045724801155998351587298010568718347308319520846149715852937421693478370018594376060368035276675625643079736523389054298764219731919143848116319123905909537370131787365339572140641156870135519179249392307624408862163340008237505341195345171762368044552553991137878871312363429859821123062029612965133098445962104683796959353409261421032683277910270882596935567003245264720411520014739053811149820971237586523336212498531889319058630624648607333684044832264953726719945098558488953768867212096085063721677659041043800722787361235596061047930595849208664499826999123609982703313239347007604688740511243772128511505078864914726650675359666967535600998116172681222470944216160272554437776493277687134596490632732636240393005802428905273719171207438983878172142964395298037770028233054003525502570665074800555767420591925293552564529333153925859299728236333904964208372774128261159167806263578812759771577083392062842529417463918394053128981991130365986689257927616204574671129826624552099099021652493812860593399773476524901098782107095565468563624632955714965486441206616765194487858587070009046417370303899253030321520910078296944285939332785699598777727755668585023828144662627457695359554623057452876534638428790568483626356435947281352236207579326947592395557724761332260545671707948244786392859581338441749737561274880617554591923655314138246883982047528812951192083284372089728772283506403338384083528798829060579151979347371006287377372368928224995175008982983013657269079262628520474168300404379863038960161274584668680053024921022136704145595197757283027612427980425179196103614885766726103297181755212060760446159211639054440060531914812042441028870110156079330045719598238191085000548273948918410266957579108041046775972977567792941058181459983945003663831280271571384358913903643473282491419362809130929804314494383898180629381121596622444378952369967773836446218501484538052676649969264721698393706512824127740507926532084188994187117417003191861181528171095999326983098143287905022993200945325442057543350741055637827576812575856255541317020200071235082959046108458161598459278126463480302284570710864989509729271584244923474319329397980412156685701183611673584718208357248250696131122452872385411335816366023288679880679376994636413860687925290605595603822591015385630751190344863724861227527306204353104680971942317198219716859903060786864015742183466012087531116104255361336560246146851218083229476811307897887845617646060462240599850585448737721205580518580295117025775371592160550911268097886887970305853532932735151797788173668805471598721098652973130696482528534841987356922630617082776867909022523180899010551389211129797433008825064294823632184509901612193363107924056930931772675119133474204927766520618915379135802542346618514882744764140639931932399155460422462915035926826876844457670547566772898581487720019702530672865429008296814928788820637208051887845555518660978218217142290363418783561829888140935591485349525545021751558210602065921937967934243920089586235211047507566598253672275252020212151055697495760483809340040541708004793460335729254115095335211112980270110185960175984003024564485431720741773663017766993302085529400800143717256052121383921099214249748235174504950199733852672387331802437999035686804829646936415219733586294755253129807253899318566680744234777164335914737446288523463073873689592769925488034674111261831109342599070489508950460419910469474858058164217042731655600012293512083501088719999007008866744646622845942701478886906803566825347217206346344334898680225797650485794229876267690504699961115716419649133704376457526847452573133950830287365065736081409248055737847359594102064879871206774100669859993554859062736697477348544866442382435036365964291519429710167416525700817765262158873240125342817910309622558392069500926723299373930252167835665722528904404892288154205268615602083852727601772684501119602417401331370199437453916608684472514575645294477303947919311380463414544330616874619488330082229890207696090849882355506492376317249695638764034982248582892861848273426783802814271926622015980837130374819133862420110463920051816657773138669938743779361788999193894820284600422066232551353340752670543594607352352912961028758323929644776268200496084842216575079370421837862587239041242207519196737593566811089861834602595482049132306398268220447854758322944230360441844656174037022895793827291128503503506031897464045526804368033504356311700012773039072837979088815224394789218889560577555131890103658267568199020863803102401424017120003446270204533398584583577221244136647235442073444990917590009939107055832884975659775147658763593079351004572636865345192638573228961417218846159391943114117284931552010858481326768281231134462715903580459046839550708677544304240321188569504524349072871726779026474964889095299983751524135456208007881075132079552545824234359101775913492653878712227406322709017478230944546094532909736325783403520371057139727756968646290612309998729572614738811355542341451960330381415651787473450908498334365674618615442229710525350206344389124977831802372891544242082760502565731983243762543656495488792677660903931274952085126872337359138755186288925598006244100786135687263450324850104672362915991761346403756257970205413087513950127687581224890448808668785001263818242395531741440318195819745649483964807704174576009999839355123682768565931777117481459947523540735951019776776789845439979791587431980229152010158872743686844354583040039417063220503444870154691285913248224656540959993682405623381920957079050608961230296661459826513148691156372748008711253391042052264341540658082152184033448729319984478891119441816267257636355280076547887777442002900860010977056189431632074744554625049868950313302443288018784610085914227108727033038294016502106069193104504932465404789854288925864005446891801275781138272986959401482331899141651597889303143779897035403550699771035513686175375258625397317198853258445377709100895209224504132424969059532485738810095592548977116815261086852870976377884894176677447479737945087691576927256352819875940844852316376178375271398422238365967266498182463911440463269775476756747357826728500617896899215227231600312348640955284356224327005768823639170215575872974259336159702232469251237436024399539536124966037187202846560520070418144031787477339738692920050006432495654975246851004872708064555397011261452267975330318360717331340446580909880868920025367666820043237051681923048393748377526577549843148113561396005337850352980593340112727337850764373011725091704563183356033808295937227128288829453730562757223733264941821177634723979568055528921541561694619551689385509752999750116088127873226712654640195898636233570375340913215095747327517246691047359159566037773872245298037777772242132869680679452749546696273364818581582995588529886014324795935183228064852742508607172896999956610977375202250206947389743646861773816820193822851109424594687107909904139429651578018327696420228442121474987654236036479622106348754070111209109858665349880405031700876727058451688128138217967278706670598871458134265081930298345927728324092953403947782202496910934680465033607322469655777427696578380387025315336386986865812457006596705400451733075969556192680187469550627309102368322270945576178670733064481634083403287451475707289343578429650003564822507734990563033487202924728219380093010685177167117708934273675191297762191287962171891809615666542615034584195300655698744051359629976912245101437745858682414374003605181849620213519299497140704098518750597983319549347711094641404638404578742369258827408467121050492351257581005686325427008598289856872002339963935020661779386226190886742894295462145537216389619635966344096903055692847775354369987965014570863063203771001280667276297665367122939044245372749025995464021041594701697070201466368267740403334531949205010873342359430888956384011898337832027182452205318684108011521170218530040939815557053482774523141567544874254359685250142730459673067334040817028053519711908349309773770444099565717162561891289512183842879019327336010638697776734340649003632496337808681913018397869930221192542405271266764532810131870356581645453807712607468635286035997089757292125367340094952964478978753543006321976973132942305913910715267143174528589866949053295995399886371003289684651247709652661560728187339705714588903324840528744938871690924752954915329013340789415936299239820973909144955678127479789450218991495617892766734845489506829516100745733372702151847754320192843853650365487456669793975856722937519341202977213812174595636220109091609875832176140909478723706061112525439061810027680519041121095417525483608877968677852645507590833139403351589608489260488124168083375725302561849033096944680842954591421691688059571520891183397877932698499573664016374739733170276764463776366889995926601583054828355572174349301903591509803190542807025388721991714903900996504499966768088186637530375346424810780344996428611301986489036499334328155923590879878842472975629949262619014426220103257074780176436506519601163871380974685268565032046530684715358828396302042574635655340909515402895922971612774068549584011816722720361090163509294114956005059416912434784030399176068459468639052333753072406613680823427343783015083017316031826908048538994535413692433654788327121073332814698705007279820785840492064581508630969819918982062666129591039876324364352831626303916586179566355733398711632626491219676592727245453475876684521042817525828753347945928591048812107977221293331574588995234121777975732107472827040467969434448740210374707772406870773399938170126597730519391841480678455064900525569118162500601497689170685414783283566703651840757969198867487493753132706173515199043038446816035585642265998350648763066194501248526289760061539406286897009246412273837903974829438028964982604026893400544066727738572531207838373121427432961888798339118554758451984970213328120508348743274391361502807871441834163870218016765208985781092430039764115009114659187982438365374509070019052698299126431623860591826721000818378686854727362333654541986634230762670851656850779888054570693463280157780736314551079191796780302770358050884215059772011656954772734806833004243247719577890531671558814706850625505542221846924109720887977846136011701705585230698788738102782064338124541768847930591336935424185568754645858286571490291579066146499315935867832490367823783921044456618426359278529097568702673320251830776159302380413074488091313722667238530010112635232766125571768001203639934755591882200861854922102803304563800054235255117511266515610626324716372230941888244190339136148880416432849085899521315026523045200263865842161492198816350094312936883188448808388796181689456607520280458685491660919765537323500795074267451229606301152856936185491480689719461046185609038551761658794290863104556120328937390047943596353570859265635897436370926245684887095438956589155210179202283108727912136731375481886431133179292950624883250501412018899413567622439079575491698292811442242226927050163534385856672635687536507209539910370810635440137571103430779189669169621181871157188817977280344516520069199210460842145427329275202172688953341805773077767754642404775183711932922992419293766911140971143744246490719977906874010378304514287353293425628473450805243003243366439463702684481137624763896173206768396371089319756923928357779592097928692684311979630713284200017970789854643402332361395220322858159743182245264586004542046853809278038361249324550499692815585995683106674210430486125637154830208654625874672277417972491256032621187654911676569592690725387867038293437342329620522749139782698779213921194776388833371019889824592611424857926096541751627666705582511488005853576553967321606409305478979316180920295548178900571936230816865421597075842091424595637352200163545985089151734181628773938786575742036015572308497128240852150595585042013375016360472356246018406843217244916314709527807607926025032921046121515930784869220422246473697373346861957497955842607778631897304143597117924449400943824292200937222220797553495724896481093896196098989996522481415174352896109041006905331060781497717403911666022320207803098263095814274190149709852727628906429405140912864012609315878375074891557181638125248731911496483864165730295671412756722072677356391734670998130113543628805001344397633413152027058196077464511304545580449510147975888132590803253679468915379994153514409518559600992428073900347585683931636664653749145261936837619425130506038505633948384473931021285124801048281738813163319823426251748488219061790553331408896161193956660886397065753257763887898635717662617476740523218241962339677440753703134896323708940008517625266561248192321515497982432991654834822340932353910322853059343411298145068504296656480185765377759917405949161818216604473690972433854476026625017136606875243674207288149610909164522647167620559124782227596204823360686197909572508215985564184951434645781775487927162399858693431719299269226545150996237924203520948649717359723926843361693850017782327303446474139963093735033163011468034025205490972432884911564137886498629511882555134529038599366859890322022151236271738491874471681629034174790105693014753580776351810374547929456269539654538717579286744971185842644777758886835883227258870544342686091306001585001682482077478341603338918162215284695717428299043115177856810060768215749119206229969339486352172829013496134107984483359288122417313946790905505204320013503333484644125790405984419320731590700104826610390161132188099083077126686896810951321726887364721244620761851253121975709398190448794525378016689012219314654149652245911739916353449366915412989878559443319860150232870236186956451353379991556120717352356209841139544454811236399791395243014513249491083894847004436842541053519066644992487446084013601186882074689049590167674458815465250372144525599391246434684093020103822445325938454894403604909353723466817729093147049221814428470920548761181048791331520982801947656346184965216946602232321702706346920947779882256941484672307289654576903073273931868492868901024723838645742238970453911435197620228902107202737782533180435193509127415899379696134459633836160808989217236801148805379090141153258783635128832090925545119096615103007359426669660574708785199782308159381377449057451157616889280842973243646099356909655945761296336726961703786558039801978129539515046824216296206988482149666659608358603843567671735168005951235777934041285896674102962560545013212840858708438246911281521065821991651923296436109748595213864689975367889458836748602099953671847226016516557457505427988156728661935994597902054360658090381159712731463594635553976632150829967039050648551812997626740783843493773761978795133653423076756684324480803888015516746479486444552173265077964113444167519823423475872863185046873434331548324996175915750096942563096533284685052733600796676010039940241575800867741727923357042006831698035822152905504790863245614473443162328568745493433751520466641319213166058750216814302579329693106241961245891717622935029855812841321815654520430150615245023753107496212661174013942029855135063312478223763332984306385821556421962645453992498092407403769869474014082313790776821183950327400304609062675422321088428769564526509843273493238657179244613722619855330813893721645761467419598910618093314053461978269913918114625300235346367594462670013947895251389563796093862444131255979626880475249109417854800105033420551256371087004559295337858680645593079485309829789253096583871274467960836108321729336840942012088640496678034432474040203898878817181491964730165559418209969943532367189598191742129659273262757082679326062302516595199706710920097002320651356616748615893991152780608196624862167580093092211487409962162089357296652349581102686549902020361311019260697943937624633401370376145594209600035586003322522810449026009797004001421636043546263672808996216975312515026243247600426263322960878943771321684387740308906821327394108902258235909478977941853321774070261731014269624112007612805232249706084435623700637320937919346560072086079546063219239967770792274676123416195059543579311336922441839320088147098022794709807411479499750113445193465649796569358804986173906777405275321150745983595293369248015119612336306124493152346849524155319353558440668563183363125836787674964966828758678104849970407075260482340146569670401895479907629312195413446340122405936787259865118811682071955553752378218649013438372848653121663696050612060486172301161899773231329019012634383138004043609430278404344490181285905234345485999401297988832775872826919524969881486927611724825990394948218793616732648854257607690913329206515144031116077900266703560222704580473956123612973052303005234289805094477137549947652067750175303831689049809916514269402934138892745519540050969618086987757471575814531087268134119845511202282629312141932067287452600215578233342930156476337852970632803627134945881541848541470961907255029559209298903205987933932619751107150732289372192283844940622435807309741992098802858058306429944680996963332620262046574846492897812458375116181825440150550506602243757853045249777776563465994485356847305704028953336992587769874461483802934371104566101314205242998567238375797936893004863911281136799606656354012789059443807880043109820656360270171908542645952749011287468924858049385369219448043347353321419532032861702520690016274213758158200655174543519543674963579254212682828907193005683237717480622641320010395229557686125058148774846020966606757787056689268917411216837209706140106497663896969029997618855972463091786059226521219144879964700093461234115175374424342399599839600530154692373151877836924850129216336580766192568077948069268310726398773857265569380564966109731059638386091011508063527740590730819534012765015892946175481651762451322547253121607701141128583170244024758570396157766937300270935229532490508625705237912900833197653665430821234027995523294757375638398895242281067595222876671813396329460170677074260899420671448793607595141652843989737314906647746904635571618304012361194584219967075701937208012814039086578365883059472007776245830366222171470012483713695136534694527619733316857448221628738322636385941324582775164205357489982029200872550328721703411842143262037863217992780868881995327231423232848680039145022534490731140432013245716859781617426459261823595657642514732451609377149179462660995658413236669555258900037841824378577798598488928153544119217421624705480499024736951761887187843313045033080024401544594520945668487075755188323147481885469506642543739996844601214520025521059855869972996834000452427704785093795170610874337578650908512822570262643798446351893465344281270767697645576252883380009919468663656211370098838492057987846217429582925705266924843603163769016309470773069856262437539065016456418268482702831593330160926030203227000555201691372782215821866461063872786306897214838497201398554264754896710129747744186388099017134161221034194696716048618960198117183594828879554992164099098420424246755354838991379046334218742536538725747140587251717401965674985512282359383722437937365364160075339122288476624546433914181199780804389389727167073181594520416108025908393512228841783590732576327801774373546870479137835653811513572432402669181426218822070008525209326529736025888089354609125459154637594334204827164322906596799606625869242930502295382814946533000131256982088215177487388198951617720059805483274151612490650619808401811274030588146448143000670748173874783818455087488112365892586557859854467411060028976639156791529038347421125718699269798556078432872793037567207992606175792122242933263336330038726197460073677076021733828179269583561100045604995262042359820288353768650032228525956695821643711607709977449104995081189729887257431683341157718419599127559375611394645701497932410881321050119281384666207609563889009989782809881277284266958982562319851059354023441240180960603724553587597490172344023199674214679721041237166317954622190544813067761955284108643699783954460252802638723106654171267475280291869683680219426706169364878484811801918996921236015334458431827231818646868419723968955444623220750440042476988456233691962737236640056347350718241457706710450018010536241615773872141647388021842597954596782907590985491747167807657455829862981974431210595472100082907932058121754909418427906060462997508636424909750871357828095715404784487126226385919665933312231704570649187198413343419313279606840897646087402508100895851001260664914444684146735812012964552809072455386955011291626283948418929156756786003448909771229134054880204799070949173950364342986722745000692211187898821297167629250695965864647475069462081835134518067597334284950868333502991702185500571196260278520289175925912428406441909022254056294907167347179325236801834009271512270412151032155292891691162253341619120929861982067147160282552713307070398602563947359725451637408374650449946567494267754075093740251021964708650625346934836372716247277644463755300267309993679433542921947352237478433746005643683506328115787846795117404784087052719202499932307880527042023025624249817798489652301849270111603454463117512067042346745746027679426568128302985646902158971249235608627562434329378302563207219303477361961230815913040006550635256008624442901502734157124953368115553445841718116749588344493849689181565064365422932418910603026887388151638165067520929083176598478359723394869670879827223172246681031285567086488036446863790853365117976367769272452499516577477032454013351956567897676636599010162389147109082591651733838820353564754591942505585893588279949770874477744734741299954582427458501646183420068294208466474615051671782671619946983288633334650978481902335212880299503316836730756448505128098599134265905026123949239656127037541860442206390136246783624282671015852778679140663363485905929409716652692958415917347241073012700372268235063607807131351770571251128007104876703427518202600058993391636714864710079955284392373700470084919216901079200326554742554415870328175249609788246667726497565635936866050448917053346556650077705448681668044818898764473813669261454994040143133629686718699215422125928388204513278366170900676744909993661145315653458084114048683678979045400904551866053034817788602728922146490538703610374700259797828534455393993676004806881804985040412087506592871586135051675184691252911830045779670761529223502141430076922999882562447223684293486941330130512140818526448636424743078523142824302761570647889211116493453565685520943906675481054326908980395611061975079515633130083910673925219722443933033440808346877538814435574242145883281978359228377995702072109779980114215112935881053436965944233243111815839373836302747634449575212547490451422822461216713711244123855754213156068265837082747332004646045798024384258864508720256127720448457601675122085233769571734099181558706727702127739542697011771570076102579053107962736261068947430784007136820523191545857732066186749284091289574112595479857865545803228077216168081258244172625381130635033965812266043076435339540363740913567306310310909324810155214325103333693597707658687499962115475162916964972957183394649842988183477865269587118894028531441841201770309050203944888006827671555837880167106039615187166728269095535981445143914375117806587901353271083907726530362507468214078088760209315899775112185971199450813324665250984397524767958237743672741271492603769920545233583353136842865017277996076009899221533442319117978896782599050539153581962354685750611641693825690983750694335871704233182620355598868682108426882394687319090610884131304166366553387229936924819380292640836367534542258520595877786474300983078016224377362921512367795196765431668295025121092105931388341900245371590681813304592303134232798695452552184749221887261430530083257658677712027467546248655699925854924534491686493752330988818062238678524645098563799519188175581858900032997220599481539744066823945305996169165333858087767392433656536821859116514882549088368342711576593004799469637816007949639283686742252210495603743301501017107319828342004183840405939878987778636582039657591541329001967467726808626122519292011723120526148522362038686355751771992167649178965083756785833692579633334845934111470109957600117049181600885817147372477792389241635721592565235825627090506648542506909589707651808596965365201922346358622630780525964398444767672189570793509171620972899623018478993668790833801777402149771895084268033398645544455644021935996924532997371273338344886232565936359237447045959221030209253352707831499270163449552061143324787794714528560751208500240950532343233960155756328218624506433088406905290591086568209229233906131316599395571770687878975771302977256891486070657714178367435207115383217034355589000272263461416032192822438712233585126993615858525849638492627611189389931726950445643796487989652145516334440401649806035757298098524721836736188840352108011954230409122900605494488107733765821527136363590625075329457366539137134550771331426518124966134922020902019120378111833588539251913505889500949996272916281922588282889078350869834466654630172263339637177077259961281508819232830662010874734668243918125213471997258182955772626613094031955619779167615850658431595187186737973543012409827364751699800823223655598111659972003478437161754111510333551275434634544090190139732287829293636545750487155321769185355403001509497958580450299923642580246542071050246391727631930069385319032569394943037480701242930368307768158287862249914085527298323245189021171925009444233526824323527028978257469592386302526961724129344348458713072731764211104732987904204901168844382549882338174711016209718802357811547617452058099443605266752952144138535952264946759631145242740630715514623439601559257134965759873393006197401891096122602317378279958981897099993561308032398331735425113333402528763768021300890804087516848594876042324670882536732556499412934900361036890370803209867209420824312025352271224895397751188790414152274423904733648121653404410325181260980812210768344833758951034184429282908315653354949973240750327050332597122050745643298596279689589903721244283473141949144594932987136057225271918777993902725171281303430378092464242577864511042555994736237587994673093051495048730264404505128886199565346181861485141828952797108888389962657154950195794180876935330114301388508023525847025285671031267940104340758174039216885392106905227731964008574306686814498906135574540715099866439875761591775918979438315625289602154263387453596843394672594354678616311104388329710039467905020848728822699049042214555185368785381467991001152946890972791103003594072020253382527697478164453118586902869556354389063198700091204550817076276297196338522879483517897452949018957537775430987098857931279545307015698457076540475815625438913912435722446540680644885021668114134793556621903481378186068599076357832334115901415169857343137314908533490605193066067574810928197975075589324559075025647410952062994210583528550166433854985017485606497566989078443541928909281529071351869078151472953737933273609730905566126278337944744531045249643896191979051806435377732196977085537495322913162122671872034822238392048239731866276412793884710320112480325296052711131628432581938274090774769788361966795918167347897010976464918143114746313956156264738308357370953127242813427125063841631639127252555111330250118716659414159200960588330436863400041419894072020647040781870098300617605883484030861168461107244112454933665914550448312274212581619551440733227615501138616457315704752679387613776317353949069868618558909524211890777086536974296594464801316355796952457538542718164581574741226131879389890697289041376338307238588153500535477916883464757369626449838396400111219887620762733364579235344360920465055395901636548586722094437859165508034810004392365174748955056667758977038950238224751323030742968677380188335099025009449617031830086331555896154634838536727317153603342737719775702415970746608520063126909477739626325199254895474135963016961918455747156474830661279672448896845010154809412866948496440219213308714480297576864027557044154084105309858227910486492736985861033776150352221433418721023054182868366293112068186674903769281980201670292497435799912883610136423553176281216428292187418317909058084217669111294853585252805036456251145096871154659669437903247817297831249972569252730786538310891141903573266915247505064399319907527650857013128773910322815357704467962824316529606613242268317103512172533939285045624444005272429197465335917122484388186213981596758357198692497231402204168366062535755404886794946119689945198005212485854954043610409858099749722711990922968776280750332175953769420536251636592003992589054517428380281251009745065029787929845954201631145568770777693611140910924005666752882153199628857757674326507843456774137480716580114386680013935815809069864683760721760039327604423168851875647553028188373934186197815265135628996381799462118745130030894277009474582241354776796786507839358166296651510123265135505349453791274921386641609688854935047064271437349409825645952676325142314130261420853440428856898579779952414123163413577668737713427224725471641592942344392044536571829465470942575881477410508219735791517935683312054275380350515540156125142207979958874453366814718309926501472708156460019190174674523711291406000853947689501750571334520211473549705433493402443006381952408406275575067914586224441120277744295933487264854633111893027403047925321461602808569108711942091053040757329113387747482431775110387506852024753279382770706293689612324443382228478351627191604269976334329490005989963951523058120484365196771657618342538931034759654461383581363923195450530450801245021864242994311973561627412411011862509498859898063671174894758653659484633313583034776825891643806344268924011774740545447552543845669052145185900749659634742461102708425524467158704375071673447048032361606624494084741648192465184814022068276242883607782544940149233726506945167976841844844753658522036425044767053418559735639202595014352864371187213408394626634851298559876494806765801114223309269684648725866481703669307329891063030477352541122006613501940186768616830033547831648982321370190125088783645016464612695857677448341050539661182460989569552796303899874769317198173576398947615010025522853669577621453431066494920304404573942599338711044343808665147222458261739041352398671499234992445898405040013738883055414807979483277627225932068015017809216468943566698670471179989001088896453718033783433245301179625845386861575592222522673236228729461454070862555902178107278558205484313094543030437063422599141968959274308073242071807641865847088760408574090471788371750654023151057430922303603206250943772899831647555808592308550397859999842037287110174900528244659705985131918495361760946732140029681946161946799445599787145650037350191373118863590839459202217532001919169823203320439887265826345696201777961811191945204941026182135662353945276088639776716388743364258381359067531331611409828178045776205496656397353823879008957235048740260705278313479048318534495715137726100914023988806405801569401271893198150579641608793705454208163582187360570220683281823930498989680128820768770931609288501522980615389660479494769647054185280119776266938699175777544898178341850018240539268345722010426089860929111490777799336708421803809649906146295384507673833368413237503713186776781694738462857100486339802178022926563977962904885246655906318548885597608288821189251556062158035039971405822717336568133915868753945099101623348447184902107289855200951843249717472714118625513798110194436939842592573846532319310182444672934101966820100112222754372708880084281675269898654751730004623141091184822779245457511241468075585592296411287750937651553066893907354727311796180929764177075039365380240103034500379195534014268197233711170283075139571927034191090193860915308077085862168914599377804506422728043390825115968455666399194609004769477738207770165632636671574536344923252412391937407566948489510058492016995897861182021444215079621940228963659432283304109273696564411470632562213007695872213181362423861232781909487596417238591750033175132066336076248789454720398326854029954784545525626830878843564637530447764516290907617079665709089532246169006416934396137811183834358736227089108227269284372025120387991275290842457103978007129464972914564397732848161467473133032142780369627143153137329799892285405395491090753992550676444802566784406087723895032168546699809914334525801114814746164979949409831255683957541379863285311891265498794403634784370143583586286444033025776245503554810416159605094599657497216700083472964849546510974614069915737952700395287282603186682882050778924412602281301909599578173891349059839075354215329754869426646785177411534568321728735345473240010471957733891230372573422342042541135106170000330413711750910818829416569709220554071136229160132723508690613649813036436763339039693371575302346303888443411584915779359168859735194236198522953754862269149091420311884947628173618155232611450474992714259888741915245679137608968092686589150144815448488262926464426625730774783860493273977952105805401555334879124920066660218521021485123987005912877873302430330652126717342918780823414659828454077844174487562777090999130486821957838427717057855115564918090568740470559369530108589997230073741626269899701535678756505102874718554454739070991260478727312949625595272083917557353543504281762619536017925874831164727897839075575314069288915196506911150518569532736351269980067636877909256657824014761189287025287718991869817432652775333172703188268850801888384148155457508583418350348569370066930949802381450121291170264191213158746192730018841847646103422317297403979410006662228801395502045410485942216375473447986924758154526965827808689018907808355268665277270643908478132185183790608710019419750848367579522652093247074759184402395159036175839278247491616146430325601095511107646524673431734475659456473689015662421951987792652864758192896845819620516817460651844620391764773676497814888933408192399795745836041078458627943613498561962266046260591100810607709432364616152909141153202585885225460448751906226783439191864409849254701398956157147338466001888428600156787140968274309195116084542602837578629662150654448898337822653111509133451831834879966247401230974826750804275343852154857692604182879167159608737771975268525983741936113345512420657454411688981144278029592063440279258419579242891999383213180958960071203161179595973391230550345398392265967087591153089640368630288894740697571210342927820988263247914174700593428531010345725453221557804351770965229303970176180632080278153401745098037846322066450216788888666860319742420124361584491583333310320972589268344903139415091223137085766310917461782022921568044832900525700409346612224955408248055456058725791889600952211567014831475500076379581332342545951592379419720961010360281852015817255447335334165742124818745851161130043863338551558882636445758568634807224835327780033564287039719622274956484654411954482750769418848489156530989477173487205151653354323863870259690933100165205248262773940190040888433626396798580029705299586063302063965548720681000057226265972119341826404682672275838501218964311207022225434659642030511387321207520424888182705033695392982787178189264499246065446013330387920599379772889624333855574723276924737461299457561836562204947471637015690491602668654753533860992183590405669092714094743243871396806314957022138349349243163665589690104684568146925510048403913361409475158663602743537118739356743362359905534997570437237905361445300203096016146481325205153235129242058319335127065549934402560477120720979164733940962973176336175220552054468147556763287131955567739425810306781782481801701070008906225458552440112519559350832021950239970686202175812528688403700367764209257376383488332696126696920272888209471253699095159392878422454603921794559094575276727356667077850986930499163819611816146609653484140632423315299083872673709724842437746733013560591992605893645432763835460912339478189530782263563944228745616708879405427952548644486435747634791232243389741247695929657932073779189923329494116231419008720627786110800471907394763656350911622170637380181127651427168030141043822024638576123260564114375001506414463978158152925097821292248520808351098164505253222747644406702535223639775389078627657634921483579845602681415261562531986105021991363756767706814133895839973611600919297452664369852598769744836917473206973050231336497558274646353932567104911509551574959312411610635982777810179090426467662140702168145003217711196550593735977375957635466127897041746249425276010544688494603025282310949571639044588567991285038849500470107393813067602533644119950473064417394344744516246223093836118072182161068258264079748531347282763908033257533854180928459939704612864762954614758660498131771288390041351646723939255274842117328206664439831155382596498558019085618970054221704712791710809989112519212444123954763536314877538222029042343267025105743945226058111585476339810486177258526559866712848541169658079751662914570523179757280366991224775762501676344240685669129403473179859299247820077439780575310502542042575923574739987087764537909608302918015898544661712770446998653386126808971335444169504087904356696867620852687350550515322044856395777133470126889326246218896396964404421813950812903469250453610163568930509442593501138833918532381013326556773943182950279193970882050039234067794535955816921682000652741693858651524956229412647274608700211514713569870076012878370321112082884467112150432791372896909035251525394593990691958330413114562003074311508275862517491087255827681037199881396096140027423279028535200322458878502513269415244758467336976974832182418412288336572048028136657297667291532750015526539457395385970519825763774942343441525221868956702203777624839429818858600380922980646531905744832979715192822274831512724036775498973802001677812886516355620473895066819346298584665664037791269028332386060989216010874849536383126982578146388295543209755242227056896166592309318643265754420644335243611778790246574705295551009792435454266368396504676527389451122071611511606301406197992147372259215738887855175055155250690826696183523428119024397531689286498890136789122542563929342159935831212836650154632674300153699167230497121238110071417357516341601194337333161696479792974809983657072220555038696470402584531498294510317884430405194759473153674705530985077434914015583586745836600625248125370306217528676334641902531175311362717842217186384881778082616372410313641348756542186264189388421321374047509778922753265974005443893666334095254416507320133935230845837502304833683443561194222854451350456157427851833069897466769489026865477333697004238519257321807909612877169991656604476868458894569792319730641458365009017567038190195477674277458321976863923438632908676589255470115461436876475437468074089229920526912553795628442130552678598710624959064806964964825712714964286989605169773976164649459152241234956474218589278681680925664297813308578448300520215245918454262662915603850892471002185671573694844296809016548591678183079537127063219208480316241534154840204902860902621069926344928669713647088576104703818561629185499348887961001825754954911984211838597773974080640498210089019434184507047979422360821581839186914615538053792766257149397374145639201797355844431966016955758777305961055671302525477880976588765393387485609586836464566702160706895357557086443328572579068086396050944199967155699199252047701408413030337367955580022926137642826366192258630450825583388454816437055969776985726993995494840662666581438650083433328467810248548869434171580326914292704632206310440341109022597967733514970301564307862927751175367239708651806407960489748684184896732965429206928581581763021418584731501532445850594273516970923498006285797270950751170399540835605453451564388739694952550318440139647745496016208856265735027561345826479069645906457607540285328631413253354655531480986272431976548811678010933132205260630854302347258518703104342824226749556625814062734130025197923935998805294699700953286743383313350909890166719024108162555687328724587204483227330835958465566290162654052423639902981804972933866804354393062914621298185733552891476821637578951571727096987990167924287659054789278197333612775686418025793962083057273462468945072147795364612710972100380122984132096110341375366160298660063586967162921581042213531722618003152526319607685379316273858032327364899083816335576748112356962859836132779740661675778562660587848612365773355953922710711932751465559618149935320086674729673161369413982341708432059191397318405649709190489585094729377187381678437223422730032095827468455507650528857281096833295681970199637127413003713715083839699465825394142498655503749422301331798247664033518028119387768641505866085375850457221757046184805641153933682225890808087824917864653671973389182257440307640282085790863100895223813557464735733287118543805402114561966865678518432746417204423559266351909300656928443618738704148620446178479738786335133163845613162591704557462232935251993293765362957584582573913025091074985851093760894569537517336172014050134265642413608854243781732328076958549616587681959343336931641519417069497286982031061940071555742550039463776200364088168099496076746251868853498867737203810565756800704237298818918013164836648887589515123438607135987849420248808279376041809333024389040483284525415618652204503656886814898142148636206974191790502116931967695562220227287509175466896157236592549992045713763703699993251345680699394888588684276970419208661652744397302418408876131787091126939435356497782575195246374060780919217780759207402387502076611925514691455589973809944348881313654326182996158009916902447429065319748012691791183990052481394671600546962836298393775932157913471341152090854030909009163913171266223260399192631095803436208100639894702913478448852873909590927688205816761846307877729255584428876873544739040585123461879006132048858084049788721278420380805917805284090125450149205926277241882620734258980218705966671992334738965576547390162037785362617241664684850007702916616885606308607876554263753682492676700255506213128173087357896291810841522442310892703791348936726142542330553211879889572313857721186856114203703230557684884992750711505138146223037971016932031229030353453763284343083367729101980322846260325924084298450090211725686829124366049339867162212035370396666436506866004955281045418688180404561144129213777190090108195423321628299119774333767791875702201080520074315524651473356636636308113347974459858612962940482866609781286064254415488068075960593225433084897355191987080588358813844385347676100454854962574540180733605594599386670344658052873675594280871907052498627561817800742581633696757258662850996358732611491887986960483491920755018165272769148087227079182829025822948697384754221628453457861512452419446162854090793164391865669718360947510822100326406684612150250110059214681048410834579183628260941334007494577231698044119295626071725340008165620015312377534158224382164723513113657057687061753634084078961021643100974522380787524394541795238301057267512273203684509539510989923889770472492965862282103211514388362166065107684470061484045205830165983471430913611170168090677945855114448629031212660435411112595853684791259914601444170941473344890450128876050248885308292028128706068105498173072217802676948869474497699665615129293877392768486594991374727978698420758272002917667762186026234251837296630234433372785614847699129459366196484540986702408089666758328636376100451677628975062981241334846920583382612225365476212747249410933518428900910014802328705681290325961170745823065577162301194335232407038485324334520549358028095295635608370794062304434392320415347927420250893939084812398044137947359922127168604494101622413885676222399981193870653600480503113678704579442600548617845716379453467674334246850566024954017073695356670641183040705755618180844504466172029415430388813803211038314809166131537275159559226404765052680556862608677406083388755974278907458337613006783120215516348849481618132657252835111817259382087758165860649026758217999511435100553276984225856966006743103009140826531089506751210276854592182115850376858354491594603751748183239622824215275852425564970492577437608493730815549630421428570242201373238648376831774745402056461556078478505136686719173141644348765886184080526571374145227756072678811048312857220728603882386651298394516436963553618694514719520609028217600863394245067996582171911592731996410165332196209083404220970042695273587188707835941813473385562625746358518226657130998865283094332622150942618465211742498741563055665780047182865966370709470649120849997694952736092721617761522997809896832556355337763349999604886126274120031045507851470074788284796290485834757999957587066639329467730335832274370673508459006550582923256822066151310088281891211205739553586372834504039697240318057260803372171890791380282833412366616904520342001549814819646705614863546643203247088195515020331375847673745238511620133268481824549195566231868399337108130376941248765959985992599953698583179380990249449892351457827295462932623585801890767406031201405078396598505851512498259695195190841908011215976742021354580490421881134905824643562591574396220896901753970613432318342180000303467609482201848190807032063242287814325232052394250778850167326602255377775487122952463346863616338863746392184382866728038197609056404524017470403099593754208610213252362938471729636286138255722741799611594364512395836082059233305767074223275309625896284710729093143357243819363694497923877882567218607276798960761096853089098895259193638631732744722332599555288050478339751068489605300282354210325713731699400125690235492802413399281392320633485760756756712793871026250837603050500158638116025515803998978582964018643645559977474670470471785569435216598206837506871419613912647380902420395833995408955031709054936689640793166046264865235751216980514576291356887602709422222216691600842158812386429972420577324423889498279238751818206018989403885479825949338308931645474104792601988744765450767660546323382688024224990039447337623645780216719392634786436435622484420729430680253955189365113398545916620454939653420536791744045812493311898013866764564082028797233092118118868142250454600822148263051757597824861532633970666867140160270894568702408459171601517094652806430650245477489054998320058619246338853612656032112319149425051478797090718068076505110861292799453436659629767044965728883769915460006642052185991919051037193041699072099379949310247230030652967426083740430219086151941923287646273465407267551852462884029058859662131630336614237999898280169883459718919727999893479130912682982951435559024201670317022489725872720089338183594417811967621280907361196171421061048742758410694270539663599065305487033131539827370443228536601127057132479554363415529871902006499259820840770704799439966647967668288013201152472387168915633984846637695147385771518970589425447788419825187416108690405394182322482450232418027936981575360540135203612801407891170181970930501213795461226810986756897808204888446378197632059022478303027519096418762807918266486404786153933823211987199383097044104204483897532089930352948517547721343150996515326978670912797739387942571510625075572685377296706360985400451833753956947532432305894075607333353737056670743100473322848951771524809006782681703545103176144241745025023724068475105667599614703835714420296716953194335777679729833761962919754038942041752448600043613471295007516765015233472237048248348279501459142500827808182169865224534890126849247209957520494723067688814802443236953152258690943729470782094963665236613298636020030681510440816413470505157795985669727841431086187903572218747944438414802868758155136391109547593262339405564476036393150502485071819926055697810779763532563403610443239714884758489854611921370225827467681934744973423780257676459222440233292440099984488169622819088334055169324884809720493359015813246637247793717612011442769194752757492133803729453075234600451690135174733571983940232521835383300069417365975178055803806844458544160470956805711431312363996801194464023890374496946966937367793548252301241216817908066235101862057886552495800039574236282939298645973248141110924583177045813263170706257930218303796744632986543064946125523050927236071650229746130901827010910677843078190640427309392181135612244013859941579195548164204572932752114273808064909986039668532261806866504434049082040191095648179325747585950557812257286706175407956711954395933106635602414682594386936542164835151903451488152119245948429988801744964212544574289259214556902024367100318974041834039487865430756644663047517182366840783570687189427890646042803902244342997772591308944078892778615595270300402789882686589006385269303551335689217059322772461081182048103574225280353925847399050264541081379463447758228725970905766542120351144659001235316828417527631517961488510354786371022582738536113207217113999212861759898091732720848437618142714727689795996633121416640057534535831937346581447614507268580653988664174964134807700116551677304921185634441544481314003388337383557063480550263237355123635045526985993407284381164460184767244636569546399516880666309682657115805105277774760880654252587685027635689596295684495160718909333885604107800403717982764143236279636102265683208063249984750279257314989617302981813442693953552715644517867513066241555103485354988088338518219266483799979627131973281583785451868564681846181632285202396654537163415097753905505595534316006882122198092101281815244518439558869970417394235238793051796001382182385540870549954593676202608926870199450383748313813935837497735867589594289656376251025990892537604624424762018289678238458961812779281522526707509314107077455350623684559245558589214731515931439971176876148056935983569310456601734756701446017593532805614004802334577583517257691256887525667955802202940771672859847462083179839130262114684138098932127778420603690976300421007077853665666572091129525579345370987380537974257265419609758074199107723029235345601323230889434014288546185817753169203247748941454601360931593059668835060214971425470142742324763686912959991548193676888375919759319238201498999122173304219224623940279736661551727262033379879683143176020278796716348692525134586304735030395853888930908937100440778083989089875942699026244483680039238387827587513642207536150570064816705140013700815562205983487262775037050822426866794230446602383589521807210238880464260173265270958987993280563957529629555144408020275709235825001367553722688982864193845088548735833337866984827950344979387541028948500971210884545582380664193774849224800654735212410689340315198570442947012047244225505170300474792360914042253108404244692581830729771596732009546546751690822458045607940386267234163101358677114349438575795890172415518461442843918702649688233630596076599420507056322408344679826714525233397854923523242337010176325493090345738624158242827671237520678186699000918934025937725414795492749303758564041061256835454645968217557970566627490075435490091857466056226141744271257081473980618273189593312349770909822921174610406166426265542339788471285647595313742390605354928034388812275460301934199327941517886047017485023985324755075637477621680099554694938880137193810110013410798074115556209494968246870143236666141720118894492083639889521790573866175494626636810742931438641872325038857707429346400049938597437516945659821236016951240131708453475143962298488751464986734949286978869653747899379894169407109242162109524789648977395929441655340109268957366258024019325135007724509103508814072079081796382981416993008090115303374501996067953059033814213073093064108273180609313019132527816097366036632755065162198933116026902770582976049886023569434266763484222351795211977457201211613178643530165835542952934674490974090095658512910149823841891491831312872493027718298614128261844189476406555459306254139382188474752954766780244648796105366530808357555239237664946645889049000766545202704588144228175685021754024216408978121118924637615680997621180632268428204238363174944207821813217691062279622497075144047162714484343044383144444839703676528966285989637191244239157510826079200729457355184065772705528611033897908375614287501895742971819910183005994258973530649467875767026679361281219677404784639762265807012433789201731825402821549675355185557481838748832111486757456865406748206478407171931631713531569170065183587247760915902237581197369856371057928535825889264202556954238965621649571132966999819209755730351648538738267510258192579982460691145379876134712379957503741064568894025415377656802089927233817470260862092264796225759851193849060480854549237427324915228985926188289479463465002215191313976286652358781179186537157350309647837401553049544605050707940944693425874070623496690357653077412289183638428853464925437999583739465891087247593685241082902289485183298232383309818006910712355479837369350545816201261765864116256735542382578136473456167134667936339310056826559590040140720342325828237944045844585293855642361462618875154880023204414665485649274340780987551579397439861947771935886014997317681910741189869960761074570321780414348664644027830786676185868731077244524699353445744614262619975364027795602647284732449012408325589764073481748022688016814190188516927799633598365338708177758832928310443303155397451265112382475611805267040945521413524304797961691995774748676683183028197960961480308829607974302787468774222118222309095879315449411273674200629823641604326243932246835559880170387148709637503572852227438531551008275823228165786439663523318237086155097346439943804571747122231045716200941091349511356811559023245612656718709067886457750352106194338365103204706658346602296477114727781242084184517377636277024820556801409731194996052965588273234407301262888391108765930738801616046786244423786927661076171507436217696654872429577279695045617364464525028196694476467682405546618119131403238099679049326624636739340544749746923215557896521582426513473726668089861018321118098861480561248456379093292097891049296134555068307633331712022639049079421821934130953798362864740214245702592649183187678961893533598719450361512550505092113644542871350034748431696451822935459457507110278192970292146269058744857452094398946608272453717730350473835382969765796257832533902027370330236588840664867415741951728951216583721567913467049464306860038630997450488203881185004387751392350006326202936851699674872107501675024177717702022448826006524882042988775946251707766404551841656223652763085973973062169488510803650661920492926064525744677946295049062385401565585267291857673454542109616925766801072195518403174761454987131931493675206974485506148613332141657770598526874209212539908716956299645076895644767696303713239397006015335952096064392470153693807767273742600778874223173723526632100538517514777591183182165861989124749537398204962160733058020667782113690325204083703908279378243221789106474679158460161448141695214041800091300071406766401997307895528869929441890487933846001224366499855474917866299102558029248619586249540422622914695368685954615177122316147195494298351798909503810807195123174462189569594205370065275276664861890309321726204825936050697938014153157742705187432155386627726723878627816172343377986799238737452980502319389579547272973570709902089750059757337760144942881823538405406588569913469412451893661776416885922615741376519110923388528730178892317135441824361936972715406585440389419890934779197148100500568580032117808121234836197652819880187777104864227469595650596924091488080374367429415393283527307299780360037538114671020343462226625906487542798108427857324113322116216694885739588589015428316579599211295014817177774117847023800017855282807181007835025734280797013477079758620058528919417767436050861457247940850388613799511917644164959799066017305070759181638469296698659203747744679389042154911268470697402706890783078160890636038413983153153002175268508555258103968513620658132299427962176540999980112728306423218676061438040675439897884086467275512592296096835509085134173874036660256641687426822713742211786484007466787225827884139478102959676172568755849153150916225695733799469621939803264076236079300133851359982152085872941147934798838713156593634926813198171362420749958387012590174974947190365567315664321411251783722201577168708636788377940692080142956893629061557680481969748612866277439691888051901957723265739036005717735597047810209596181980402900635603489815564985464819997386513324773087743616917421070775750765780833985067267702931276661497296995184570894524092195377640296414393334211952817512753884357061791728094757254600384508864861408689203978190215409874421684632534597301458343327498454267097294335619514470069235209212048569522514154527327580956528178679099056923199429892688588154221683145879245284595512018269421325516054920367404459478302772336516669538339723282709172593689961221410764443540448168937228001535429310096461833227729841512699308005251431644897067431164355317197117160164536334908650795898843425605371867300509500150272652974427009155772548951533707532310663863442813285694357765691143679837384499870596270802918864921776501010194575851393870386396048580012104489214809822780388690610430403968664330335120534414590054090461107955537694756385486726351737985102218026708590549843979901782688521728245146225142835248326641582480200783621825645432095880223803607071233406674131584170884176885883910529686560380709115305842720837442651840887771452541360083338896607542272558807240542686650148749152713628226476328039511667176619507563125317986939544937619879457906134990452328128579151930842865485410345046095457556670082383507151655913308832485015343902190701168441663560745769709956041137429504120027835439267977687030094272204463581029683702950707379596916921370152680855463702368621932545098709802184257485436209804362146206800960367458589899717042912752377430101201045764251941493538966164530701566606952117115626358891988902419067137070841362312911402978687861811505979076202281473957486471672581413040248892037793289040082933549686973540005508784016799172722880742041830975600909882958397214534397774940581067807319578270759368874243780439739675235601554981030949304591187900107657107048544357856785607590681744439099687055905703669558094155782379822187509264179358316355806301335841488282396111520794768687611932468019024440376889553726898737073795778555848324078349298667523403805043052896255992103714784928248300333161360783065112597371328602448125251178813842009883071789611649797677590758115878378064112604007107508186228735227374860139567647646486068951769767809002880947491479158214181293075536414109209983786444192257395483928873394918468964380960789907163220656401694434035415492304819995152992991891296355209612963562239809982212656432606014747429880565495976838909430148787604051507456657228470485063010278991965048237540955619065986842014748158487981639582490162603885129509520107719871062706842883583333699838414177631971408724329627032754348264516837877895830998228495217265982867990581585128590751420582952545026018621206744597858441696817686800736063292551305341419576493377239839432412007749660598355194356932625175974716535946026066575931045786467918571342506167265134060551609699467957096900545673519525377015815815773044775646301433491344249683026414334125567363599038657469348248019818998194237978418002559669149751038527509965880935304801318975698214623363659326879632143260173240997029436008549799021215556465192474675104673543534177016990682042008234953908455298422705844450062822650104782083824125584532654276010987008036342190789956431565427500656848032008230338236081049041819148411792669989601446144755145875101145263865691786552499693903914747058839217311834947595959782822890402743241144610832877302190369424450428388839578855165911076747289321612368078361432384676213442565353537356661464538579560309996777176160944083811995864208121080446780379347785348879827051006240857183077862399305849836004617180862519393105747840993366850327528895678262472757064801531126594735149101049712778621746753739950874570662447189691748165281908394790693315222491989568729303362215515578816984728376118098538479401259511783300641459368321331257592591735377364304012093789912878466659461137631503095845264570168354688469666154659928041938518841048094143948721838348288062987311324173143520445583549414523794917137119688108839006990085148615392348771533217833075316974179081973131798156480919461824508305024154083841671237654627346349797759557858328655563304024756768132464071470913824663290517977002590080117289146324755904079021011517923616120957688328505691224977980794780157292148575576195329681728794961423009666764859624631120409474016875991667831274418222581961247538272530855687345355701120565718958379702810301927285376148304718262386146176172312957728784645655135333502213643926054112290179920717970406661095554883934856986301917974639848463378329723340347561643249581523594785354205325219204979378376633312998478099370296699802763473850489329164965843022623138155899905515206675598752036764373304621034522459645995482997409236734268148548135421642218812559109369282514728078703234471704240270604475493349188276482423271297793925088744858462286720968868911904530605375662991513419065901906632604271817911754084770373754750795344481515976172317414028886174947286306076068664818865738989883086713442058229722609701671026034594831938012071038871425621362430771913247053893766897897608006734503790869129750604447236918753119877095168846435653461868953008308117427456212927570675414411427653707474505393189689098844717274754936640490688427613552546988638875704267092115934439549393173609782117086484187922628968804858675026345458707482256945041212409528060125241228116733305753031594122038453636788057741758440044404186551620333254821093724540176570688205987066888817778377279999452422452741898258518138439786152660245187850133974283412795008505540064795119772133981351355723219346786805497826927341488549910185259393087808641132233638612922227919712705506187336994809976118239413580087742573346987675215949886364971275573707634516244038381753211991701569543974199538802171363250743987890542324469051907627353892046926738783211254568720477257779150079042777849147191674240975742346886000965605255754964721815753379290137601962059203673533955523765950786155424463901978071105663966140260212774313740976063768666684399321354087139629793802337309736524875000826796175370262186189551550681175802443511245430636629875129654305242203406752147546876816054772886568156338412769713672511285328355606098127507250377154547796103868673662659321579525897057210430505334185435702625493795159766314583114470402726068655432098335132421125219494628617661044997904431092136240794591968389394248769554516080374607508257676951302095968974519343663358806098281112306567983715008046770396462738411679134565753711550691682336269096520395458384277238376248269977609299219331587326721717197092805662960017343922074181456613366086097052076394661363462723389378259721770646289963864530598187269243347997043565969116702501252403657865712558420611319130855936181824396779669852460466630296317100965580849561805046627409647895197955391021093608586673707001350778576104676941458649197257476878497971571501837589940884866844990210800087351998363406782287236487353943978748726827339540212517337507788556542032301478693826442895203312817594390823743387510406729379022567806583666488163428083943339344006406055665365650446073523603287091111488224484321170578295476108625567354606600966153491819744972149462700207395156979726850699009172032635879634609239621808655366353315519710226218024078654175675201926501716412287956880121752357359876943763017895903776616770600914980891159057301196652589803697391727052259212565881557991899844733955568067551347241130382566840812310221006111112498081004241058784170899738947283229996701983123529961297167333866223888063092369737050799401414252756724113109850039273155500750934886923033096855607497968158643475248698678101871927210876485776144227997503701333319512175177110172578960886551435936902468192159605187259585903186058108420462800371718242771379377215879374131194302585223537173348470483947289642998124919170506526616828525067657193451446469663133496191088052413827980346638349023596615739035183636968119645851305063977742861562508650555321167310106205160565637798756107615498295740540869533959920450926898153906409534481620526284259788645158302516956197934872932279572039308741648431264826245412638483913646872609852798749878963050595216659791657426230914687914670134578159073724077625299134125261038715916096796809204902866547827895327757078889823542461113397801758977080024212980557423884314989263744004504512386597042602864131149555223596049070055722378241919941231854093207850886089723171179729188606927015326034526435650121461877009186656099229090814907638506760511194594083193534759197450295821362608276361792403783829039866747978130101921568647862142232138605975975161473033724833174467459349690447772561343185228590310669808462062077656573329167996337173352928196903548470257626314461709067960541563588784721657716378545827559353240539177665386069044280547275805695594762728643676157485156439525963702324360747071625275259572442137085526192221422406420448871391991558307309382872796768896060723137204569034558000795346985305724230935237009918147362983062108904884592050741301192233603807402174446480669959671864727769202261008153230137722525473938202800899986276540780466451309361011316802423933417473045578826809001206673283030719453339348467972196382926926126797154544097525850893940257891675319062388524682011196068925129732335203661832623054392940685433127855540644532862381507960513110584290482983047736856562402402227419788684124333281261466676187301533833471076501873441853150611506823487971586516816356670399654914552757880374706135916700003839123110279522083231024892434477251937773601622290951132941162141647495381770350003926264061146842458905358426129786111185691365542341811780130774921330074604267359193082906809440911719314109369782212740856776820056141992708935724268165851912266278431646959788577258295165785866112042425220221730961828454088426432857963877255571752933516254505445122533586742861034633872779106599944465691264087963362289529127533411948181616364165516956492526840720242201572599948992964058178364589000579282735900444195635966055788661486109456866462247124173756167898405666546385498901532692500224967808739968639669076162304432835829168433623991944133958980820703118608080387707623462298682844081430539082873721397659516160814980749931988533522844715626418024821408655810010706530830746755896837189818572428546615398579040271325739585774006694884579323937290075818400096379466688236417416798117137555570660663907797557296365649154934375778128531183828288220662306060205915849344232760494959917362249388976009491928812750160549872910347722632427303053872046375956961589466859834710968044086530609588986360581493206931767965628712613639922576269113159212539851125181069201286525199913397077779851484123550607300800799204612922261159088979758906006469796533735651817038412755973963571795440218496789213775008596248242111692071559134380114814352741911114425302820661626433501972168934700358300631428091067676360980781029512420027066520851960004739680034369900115698639517066172041313851736779202744515117502768658271258711776035078752273411503999286579381930081153556484403607756513077361731233792012886365581033268254710654306281389099908493889489884391873915282635806722717029900484618058173839031355975740341872751859684887424562121462922677307039519402204124689394703674421246280838256725415369252461127271298727353845325416001602927690526021890031624222331685341542826483175642785114743847144525602617039338566469115051420753203047946854187459078906314128138110351280306175162954079647617667782522571910917679354691284610807985712786177248031008139350658371135065510413297468239926359428378776647716982428583025877257122829630210496926809846363677756096705614959854131276589204334356031990442281503155148625060936136629887840228952497907721113600043467149582319324398468025175243613026891207111677116272294040952967880117239451263862099377705308283164372812835684290541673397782455485370209945395159872580777861503190061912510215272666975125846228809747545036437400515135955698693883047382362757176005037569136692487451084951190930390136559561595598320713778207372141895464359703413333889574171624143031431050174856442950810054360181430205268469301404911706102364553733037144299974346276273279488728870182727376469333739610374731284404659288215445277361010803405087145170336452650176559854177888582131857044897532824134078238549864633045898492146483624044739902582781653384292344997410940105253895312983565682540020720313928688793115109591042253606404400121125449400540090540249197177996464323347130630782729966621428648344467901038305385516857202862839255097062355702270613832122607648448849140775212689493113166624713108414313267762644892359936350686849224775034100872151327303075673718845432139738144563513147787134756007494748060851208408905555866456374655543142291346946878921361125195368679960866421966014447099572785464580807638115705533297397064267684416352302045774738342362901247807352096996837217483325269611397154161677917297978407673362659550315003301103856236119711166036767305176242930050865906872360375691944673849987445230058881511519668779518343972409235654203886553067604989509470673617857421424674433229933290377817248574967425595231077780780861625488695598691343033444560033460266451442847544498066548944305134407513677088543934162483863880318720267683199313126004437728750576745226540533934709404655735806241968952071004783306789996928861749831482016168300284684523439111624860205579035080106138773029569563352670063237526251909769281740107903180038502010832628120889465107177933307904471323273322223655308619490338618987772420075624545720673292660814563324458126378833290072747222612353304343779657428842759264701134041093889921666225827527537756520219577884335519478956557942509703153651377468433773687861866179592061652235390059936748502265913154221748011926550286141472086781994982890187302251069611402785227248034913945875781228312827811683271385978019411556327449812201455328611106114316390003278731308821816889112461423261502536298673184174036773597373557179472014257372444866221118016783236859240097021239134644097706190567788769432064085084553333226223125179367492102239647618072789407362010704746944936710183721318187090643466071511384610216517424263829624409035075848525588567104068614260959778769740052151008864453082882366464929458897713090884125411694046211471468289421374934331040362094690830765415068185884493677120367000443478738789160798956328443210154907483622337920198591809535516277787969224519304481108329389904895041081659000317116711783306289684629124475671099542075563676791438160601827003651820281016366083519688327227687332958403872183085927233454616430464607383260854111196623469012050410988587579679824441209894118187811427335303840441528179788511646863506221463216258673090185877876335253401192783811095491628293816095526564267251148338772927956728724692206510510183661196549810418800393274573571109085437035675982371732198775967155706210745934273907179237175425992225863386089744524512033139108236711174906110095998977527713400740916381876266327064147567290346904512866617070480799223862859700144538717234724651689701880538404449226048904266251397027724200047269199784307139580079563044221723521578276933893835329183377756508427273396851340262814774500633732876545445225131548952091091057885099093569709706551622237124829922194362642733685861968837962852870605300880691731760020439583179494098676033323241129306728797455461244446248373762927225860237560405062438215041223403705702726924307836964723119094501491250706075936074581077842185782147225688271041590728559048475176351490830030001966070254502295048652942952639903754304176454338078671142231134854307812774521354637332980745016766796278124688561210309737796706603242178170998781310802749373438829319795377169177845845967258439646345648723531259305194885736398256056269191499960955896035843486856947493707377395549875283625899066572776923887704019484518129964201017170229923805013089984806593824673961275646510587042309766744703722363168332638699456275280311567563321654894562918371037106909192653981735797312491793828693515385884221933005712769543638234945847892013896212998831192359877035072461471811412389984603623900274262571224944222075339043084182476659032078577140482865059121677955760167916067442050578729663040392811556028416401956674050940257153955210685344738375459394302301160863687922826197582804708319713639251743714699198082536993531145771298798939106229817215707553561226230675734006086797720696609606044817177876224883843384175825076718483144984987955338362511499159890494285440220049208220270971089618892926494968612547612058732604751109752720977468203469617479476558024899512783781926328955698867907686105579497096781689159189517026551354119972375609533480304518510551368595045666263982336695280857960067917199107639924643788465294490117401512375803589480454542691586823056430420982660397399542431480408287541114463237959851072536460664865073523869060238115529936975558574585148501996936333065596157563822552288476615360903955527116571037064939866460098210592203094145336761890073026793899389211652283903935444797860000325086807315464924228483335426579831800503550874021683167599589581423887493621201287018291828198754926124893502972959239527728015389243422147978427267186531628421029448955966566363204443704591478495826074252020084129477455577623753241757707509405307143684278608227850635855227356656264456765453868611879288196230975133919306366918671013763558626531020380480961768165047006399564426254137756554907188296227661064152778412682888081919968684282862439335128997396117030949816187331579461965075284428250941683810564141306776144916449898243625860757300035976988831387093350389180802854968821264123289231747705927361398679337426867411583589462383952465427229054549194550861015141915087989106675025498842092818526651920795115018600086411670799102134492706297580818635482925465590311587598628207763503564726018345085346003199330374030673135802142560858213357358823736490755569334432483570112084527986817401604075104289990345256838424812733577917009244186103218690615420635129391013783137297265767379118326166812877348953967901138351748350491535645074940626970599946535424833676230355174533075919951278182393868972514847344191281253980450445441325549137042070619466224140871446164681963933237392385156756761286334909506189460879902817003436913588235308998172558005982485651697553742541235243110164093981161691661155024647841223215279742372824934157279808830540893021066008198285967427743866703421917157906323089526202242000934205164016444203286732352126365167171252309922249119356129563506607306825587233686540250734642355394710995574823580157485117470732874404188795819522480803612063448572031548806564654500888730137269103967720439573964682574849644194457506103413940078165687221190869623505934269199330826421801969508627977512055008289052069533193920121330569958443884852278240397340704183447306360338892542055662868125948432726411050668423322345102417420623634520238159840003573349173073615787400188944929875863218607534372579489419683382982439209940399633139999346945069050116808384794586465817209928041765954417094703000147059047546966701957465271936855918502824711300406293110488331199542342755926673908199828305340403116977092566749778761759332459376405074769752981364872456150984500352958733062455935446048519298912996376695238347580958021431886047398939662704285932053372781556960116256286209516024322064727482036658700279840738776241443136903605505983717470565535702322077419489798543251838242597724057369442175261291184504718314759301244413003556136083037292367766077590541325025635614714566218345262914452891966117902097676226207558359447215566149827826607929302916009251583113289739330225221552232823572889643200614518243890863955560497087623921865856391069940713369529237133110436798707280777868716142146712777387226104108205018708582469870802978655769224080079072887905428110180404721597111446121342840754177126944649505919349092469913533070712558010901282687945197645917533662278617105704422135523812349325829464348237732504962456990465252624624503591139527460358980171849979758538031965787108322996675933654984075864008363144682503175077706363808885244297547133903913252497217840079668491641786930007104252147969067097276502713206445429914809079712049358827579431764016788120459577087022667513022767450869614512515176381785597485902120600543416728591700187071325239270551569916114128287644249108279653409520982037593189377818951687427230952233274224793652028334076845743238205129530704544251256300655694470352642643858437699274632496541587597689691299743106801400903862922996258931929503651880523272618656354752943199881126961341764381305560918651311309002259349320759584803357001800183081856211485968132329466499276876085968905116975487332901893361672745424099964879564389605608254447400560175933415588545950567856839057432880687705334493510559269582273817214858498509913269038374599906670761990721906575872465931165732962698624299141965037159998474292822430565246940265906118609438610753336983380316441756473532539436951657629462595284293241384178514348274625925059968925235734139724430832889097968420731581278200326332052013271655815042908685019886403844978185401955599837402552440650111647847474567164988269035567018647844003395932133275196455715375795252459847760267566311578159043065347429283310450147231270336601637671670303424238477367196171897031155397786183523358074721534904511801510742967984979539694907992295451370952970906751484115835389494497203407777129853503751763630079877088344281607731751543751221803148458348836275228525483638310862355746166819867254316735852962202111777060543083695261033468928033935254045768913938539195772201903713887260625790825384387819369780372286776012386507363606256394322429183980541916755049089778528971522299340000248304934072988672929170190390955360466628423400794008866511092102820268999612086248238302754131048962097540298349111233190271860102850951856253755663430663590437456666564241149549775087639702986208192217549043708578191159973139188066584411638415109662948842893979695949399177187404438885442991814026718093604863665698181096054244257010941406576916918600410393805232694079914566139869667099106897855978328195991244624846147929621620764912114106085068451889932355508740599109378136250107777405809357910702919580185216969786348979282028226709260833087556260030975841972452010048339939721135821090071025130842899453932001105165570122879329736235690104675399130809310480910997283063927458800175732488227146759145482694024910290097458811946716878910884208430611899294671324048306061481049267986002316145056422605783454224091201713642745653983508758681927801195515883411738091701359864422706494632302106196898838500355565714951940627680867843306090872482408578270227684252891572214318723789194984899040064863940507079079422067333881930124128212381809422727323980926895892497886969816746287402597154245226353633694091332431111331224111143522541425719630551244182384063858606799106959753983318858579741112651381151920506351236692933682868255294666038812402595920633893429409058325084549732323575313701611940521362415950508389700665260879206906358152507629380505405123140361104195865917955311674259328935738295275921704140381154872496186656842103816491662342690361882064857586032458756898370827320960233659562750094938061024807760774365741775547959525936485071259095640836470885891779414235428782087285606334274136647405066383238226844652811291597350798858230626223733833243931466100153982525301979664272938440123350234338919614315094388048783005662853973058945377602032656357879149068232381675400659485913514693102329417684894208461192420288145797331521018805596875220928373225049862479191450810601229891272968498919935271537025979948747204024425191889795528528442735944946814955778900059076494223398949354089858666128762748101981581407295417801437897290861196405078905413930451961739669917790363304918039580337116475015956369479164092866408893113654198834201748361941033875196187800828578290061134389669596280832944949095476445237653174518152452772060558093917987022297894541292168721671182151874296512105520105167887350042969170162582264294861633449550719983302096994531402010739921329524222264633538936830231782139242892023537198677559218851523672235696509648394961351805199716343576017720259436910765160496823536175156580362657549154170325300002573809127964159117391719479096724483502197345477138279670712362357561187661538678290845636142143885458591512341610776182330703263501181360156696958550598993462344214296984444484412655023904490678532914528131797950184881111692493205905428946480496720869616770811846329167719643950990764769794320565219268916065989377971551781000112338470665469659449698953632918011962261591945594589284618573190372606023919522264047355843193989580396055470605846073207197179482637487362111301386309286217071431806137264904928961735675392836700896047968577094406356669886149820493787509938508235947130210474645455175566559526645166585476342355179959449295937443746217174426252780223101120106190599430574943358295095997052519927759026316795385350816277921689580481318572665933041953996340099893223115204934246396223514635796643262079868779486879030513073068611836122001818639779848013749506773877781405007265153029915270432388628467691243574646482744119466261596994595272181302721074700949614641383487326581185079529631613090668071270473656575720841850321198462231552696028222739401618264536556783986107040520249057874485051289493882930168437812595221196247330785311830576905782512785141592043446282775589587024869062451963345239149596037096217038837653520773594972224021265234034585667269305833348000096403605951095719981242464798424508291874333640731396296065213721866190059133223707281042890815382149270315345960824863901117215034610059834500086108521312313844750683933099325262740023072990977855766227342792362100129107411059608940205475888437352681246953515299381635226890755498547919724605903646283225126402100576223821467940848356562279147422055612697142001082892260976142765023322817369926489744936738865450152532079939681148247930966492196925918948900456359788194703526563772160635407542687125422714226940191382411788897589133824079154735204108273249312687897552001024551385582274488726441321817763945627519131633657885098557989502264068638627780039696260894651266821856240208991495806495146169613397849617301936808072137840654968633995154525778463984027850057794648664128075421713261701203903113934458337281376613750209291751619738781836889725180251164969273021000401003472485473440458895839912607679494017403294309341799959369116026223765182762100981434040979895249505340652328025813072022981341649274145833479330549916016115739451832156302143584258260519914518753666630624631766888969986975714292961831315147187862751278756651274105746691896549593655295446849358488415564693311386850248542879012735623595202763920385514733007297605841813348390887054625033080812503755417403461278114850826503255268935913629355611279081920335905221423776650117417415869591864454181095894292095492443123424486776045668172323605937131272457511402493401916390049417476771570763951302214351204056901841830846935237838792967235111569937750228995724648578267718691670849353347410049677645764757509192115274384713579053359642398934790500326879408241324833000440894583361164486577229810473200860256831974160888311127518491588844048398233428013845134600533447618945520573182948107859061088749713703731905960801657165517307563774011750703302647481758331900621773597128981150930715618379033134665111010688009026240919030783621541094544659558680376726136824933677175700007405288927436110748587949352171470691309264429902274571356859884003730379691538971627378536357348650019390242576989259579548041644499138924727021350277213548670400680096926325770307465635351582274068979827460310555031782347646727540192508310859575882873606006937302842885230703853974815386149623757003346901505105633986413449687095728010455572079746247699628466193719256221931764386396265945336901742435386007477828712603386469143646066147678316827202530317077758369147160850421375465056608154635008127264555446066889137311059271272142099065436119406840427865236033617369663353491790401155014641535100158197179843343607249637335515239970659135182991973866519577455823338616784062982966243581871997633664221347402518098265765473876938201528378071812054173363873983005235077638944221397819133424279448691347767695429266006293179952711707968277919679429558613389961876059817922625928781784308188321835683700045099242476636847603649118620763737929861852051694731094803388710543083095023833494329496297019139715773352542288937203766224431787511004400994038470980499917159471866723718194025751875361127648126188115562417447613759317078812367003873574167951967791199574889540281805076207202670080673345364764816780173488563706042861928803818683475689826046387418852206799755612093704809105312394808239121885660290155009153736508954842727233280499008800576402360746472967985759098211843584648343001469090322792373974253088905903599990316567302779674846617766896645303495732230749249766731770923489635872115441767168416720589709350429447405023768302767975731170735728462104083195243548868023614397394260409426244306916979336795285109294802993324329602728571052524364836659163516574456783874974861391427895485897117853482421290725740425552495579115784186638963318952326385437329890639392372633162595360765941851831899282740766835502196750710270903820206292060565706374489742613971902200743289180257804651665415235493196078514111010287722248680744669006077214101788460346558558845656477523189156464889391064470492995629593561005771184825813165898749242187553348080041210431590665479293743842809683493003670882301307056621928005138073772213541765396576074192381824808577426824701557107838009481822722866970993223779273275938979975635117114101457078599727213118937591455952857632581958778048793545211116689380272141106674222440399207648544787623081504681893761086964187982792390778774425891375974590690043461408024647065864217284035200275772483146782639125336955141327374665633758342177091324962724992201990887244658179064614378478206962949089025142195382896405299363148627719273796255574915833533191959795387063879043921854783834941091821895915201524973290489068639538661514690081419305558970850547860009341952202889898315183991739989558942822724124572158553981236078185303922933595295045074287541906011803294224433087857028721675325681235375197326766263080625669981924981921390982072162610754628227672859999308073733178517842389533122854471692895478442306833724766740417998073362032401939109203390475134829166980696942043424883978240921457136096610797986884355774086641063987887717002306177775501200696303316887397281973832934150210933297439879767977876338424468781696682025176703876952445190779867442211888910040327738956885730659819163259210701225787898200762362017292515962904109611125926506253014642952041703843088999881877689769114166227137056381888504620312030768134499613513733570697943415958832675196502909800511726238124619662777331331721011085627329750152375020527054134270546489043304719713572711044887810809209304668020217869528445502113354791836998889697603798041650254125807914035039360402049320754851939858145993350189743861060288020393624167259001426730653641973271648879732248234028338014420182481188253734953558560418033062666431102471113656597895523918360647718610874502281000055051639867358220688500036275073088752301601190219841260186053359084443228356088690380238006287753882851260828756028794213256077859352811344364248679772739251975249159959891136036403403733783301774150528197465222947373277633025148558645984877428087203547524772513840717324882066872765622133116397202484379510074163697163831992642648967740451054837648843354471894981704335451270295592693808504323014965301809705321766146463275275452288902735123752777857710293007780117813980466626164405550329807477602539325159912764327811085657783804692864232406815159004636625735336727304331243510293584106848615301836272099379404744929875993001379642699728446452859464809778706848060551347776374739598880498445415666021476600147245252932107484708581916519551725490699720313330577041468990757405305539899408998104583522434342276968709294393461868088203629797216680839209787982226605347880444282143397169793089408860635158815518412305621867436715854549497366916918741664905333478658201931107657855072373948318102075079716717106590399107342290818749709546460940355574281572233138082427670497717173648910806581627993992755812456820505522595741017601040158107707923345711423798410211356212116175360952272981601059202414183578704106344446559253128221407054005988059501535249953054211529681304019725547613998570569451371794366453914250132057325719295299319678779281264994074001107495131562895589702794074508490766668326477160772668598954789882048819677249177928244542833923202288785240580405824821558004186368898110238121894444617417186848809600951499832819589442914205871014590259250987447870519638785906966725675072157516081960498607281459640455874275283142225743338819723709483603916497818485299045854046548283795291498250722606731997258328930684967686650180604666495018697025249317775209923149922843998156579896030777371292992608582684505823685085118585462702230892069837133839391753178411103594944624687660379604940995702075988466479316780232536322690200361734466302453445427221491209427604693547210439915798059544353523517788412227946676250828242739156662221008867085525552709769082736762829964025666941134819342715815593471546956979967241442297347440338631698347756796592661591790224016021515691587498871058954101097223401375046173654201701485220857347962085951656579842159345988594324577728979171473802704457195080284322468761078872677085891761130934513625038542859870713561481424079159071053621786166610891810274180899916795532016732765708647695620718987363852284547943510294608452906259372810388840827801949706825512420210087880640813976942280805070473715587551951953140893372380453198612455058027874150304014969822243937757392929520070750643322138641722001593578253904611642533658499075446320924790329686245671396245126593392231972653297408373343666302266548885310154780869657142655163586052756529283929095910405403452164231748183195606276800968551466771708262533793087725023193160409052221373639034746068893455667539886929784670691622325720959655071879980919187882784822640620111498678753441606262157597823792770521105841637260532627827100014173368597211678726213502104647962479542412857604924463822221876473807368669833553618481565246005700680967737460815825429345997695781932464925827456462243035324840784675581355553126486643660698153490018015547102010845460139368897954698509137700208035887120179439579905173770300401936177071341732277984838673931094726307818669087811924001068431880786323905584479561941332945866880252213089638727349183198939001098817858432002761789937544814757656869051196862400874990853412998684309140716567779601642720308759867161801108485324207316584219972486518360564544833622328623992293660475784765562895800066405274074874570401020063614261938145413594172838860987740024426261468156322352029335863183066328749505608293842022564573027220439842240443423104681540426535878604100814788045188223269670158592447644305689963225928578993537865357882889932001085980337757700245068491177610444471389459833059008860944213034979778238614080726519784739849947033708306717716306587104985730361863155242870200058302036520138215244428708596004004804928060818013846490535084460818257520601979574461974961289233291125640537601143167147854959620714033141448451314991296255854817603628678834885863457529066323112314136486014970956794195025971560466197712739771522783722330035427715784899119441710045100959777804825134278500295988523527426347285591849327319859820899787275852956839536671376468547671501578351042447283184760753248296992806788746674878558118853205464959892335808672483141129577751692196146805222731921935841037875699445008336433950638325798152862010940688604552427385814511080482476328195090628246260018457510021954785045005198682295550886481737736179055453179951672784521677610171273156858903662671939547042857595370691552381782653322519203090081860462996022749386264702161207453079904260405082404728100890235714448246880920151475938558694040717834218132819736501253809437096565562253578717160146362243939244649118444486570877796396173432498965499201164293727817303364859263483808546619404274743128549011095417893244490870879176282388058602231097693413643710825794475995171966542467326686474242213647487805177298977507302518128993755895595283062326782087660959960856298387914059171474120185267103210667367560770627862422029437275515137471311704583212894022562335545897705040876686112521964457871899237541604630793381641761647896525889485608510425705960341257760312698496390765109084836851002369888251317764487336139854786351544077022770488214755449094269449141424205543829481537944708349606370220890534689748340695932908464487921404863829103026909036164307063778354400435734000595747531518777233649324223276466340052782719368256694016025706942801224554408697840164756353340997537757229504165709511599282892198708990368559409908375065356148733284358524384164490993279815672869916199233078309120386170200461632466099370690733372217035725287162941188833373020166216458021543053222729692138972657696315990479436277013533923796957708562591471274486486827159922645159238950940495391723730191496986647822751063227463446679619911305194751283680711858523700217561291957546387099430949053869956149440727499298293744924967377348536408180617297434936682162708487733910692764646181759471867322789561249509439112092602657538104585681654753855130661842296829109345226719782904169538810680723561195473364271559812127550908245550202230472865380365467671021812999226203925119384736420850586068139096275783441585852412910596062555769991488295756937808707742954648840400172094831820962476640896972259641538483714734831051380733823678558364029098860184724426049623130800944092190251165979259250072141738810185434189171535948417716183264095440734027517721757717640903808565485377462346459462167268540366017878300986100601209030428325645894312478048543016431315844780643206943037734185208694993524066654468964575039291120203023255723132798696638121295667646963613844784060084722787114650092722318057198652546395861398663996468717596281512600464134674351655508375739591886781940841710906983163732523518608903911727701486037317819305348453629819599555801901298922981630862964184269003160498259759051216348569142163546802597728571159027634869400572868417149031080583110378922625184406301503148892980785464246827139288877132835083994366644238510213893598612332730180353879435112132132106677494119797381829636876203276580051344602266192774838641036306545900693284019116279150700731614806388521949249626121659281151005492916630423804585067715479205134984264864110459440266872522043074520241173314377609289576775372068757283255880371825858488161230987933335746190293273923637535139290143570732117509014044640933740425353271433253529680444949856866178916293816739567512289708558909554232253018141097541719629823038839302467090020570550972568999236503399961365752195808779463192700245771736858642298903451337579065047302868371504198515533196347515727653223040808388238470031039597622031316064552309137933457340702383559238046773729989743784564460122224719723214409230176201851159284051815562532441980455974798005269227576146314058643123014685909674906013468704488949482129853139449820811566088539500444240164538613263266867226930589710827519282732289588964451266804807326853636062455930589163335749012203134680359085421956328182902323299031115188884848853549794733980991120776101483981855636268590365406208269696199501726135584309709600494940443643852120059216540057412345826114116282520455568819240781921768746196702319079313415639184428461891383657229977492337549865423095399830801725096623578258124943376597462006268201804256940805417439863432493380771324836168321884003537738983973346096931769335497066298416871944931610903136046832030548731545730755287232143502788570133592621400000841310973915673390922100513044503674498966242836647543088306823407572558315903741391816357924563460537634394743865013563324644827028402605203033505317618856566158491203691125260954074604233606213986671309100715397553441262529564902245560837381563695092791943152090402361055949030639810685410713443925896336106260037794350379161916362093623993576895385615729145163020646504398674234436646265533403363001497758750054460575267163478300800571102206790061315769545701071109046683869468314276361153116414921628298267403129220286405046466351603319401106683221180845097307311204592047075067018604324376292705563380090898424849252438464335954231164735597278977162298468261447135955069987579437799586721284399390169242261408901909886863098877109270016745555956409043898269120077149800148571287211755158607161006660552172210408953186890909738370476560572010693739557440497352766715029208515334741273350664869983800396701364566792825891731978578012029582926608594075573334657687117110715155481858531551657368894214645291630682551630366500370469451648646317954945791122107336686916325717265524120516169011203109997024729019528546589962736239616922907692724762410328250060524703153657662486757691492053453100143945180255685352324763241899216832402011942496244821512766725138239375127646611527705901628102569000087143815960850373194085293518667160821877925787980844861243023456435210388387056310009707440806553510404837732701917778287679042854783958371452714257774593383844790868775650996441536021001888679402651313368207311808507203495628447872196472111557926473611011975061007811271735384101715030592613922497536978185780835323442957578313729998070811930436383522903173023556834870316533674891083289729088450342255589151112674933332092122878139358288621045819575460474156133890604239431138118564744046185797490540824649061465855760394391055618115720789902074018759371721880615372707730527197349095160236442790231238444547538685591639441342362892139913674493098655117089369887059650318704719166123256753071967041424499966360173197165954161151049267556827405141684048491947944696740685210846733087291770936282250928805283933595839279159884940448434172715584186112007615507781177741792772448687183314198341614297130705746749671398062124583138930916762725972501396447737947712304160664556844734660737107686530164984522338363458996847169102184024671726775663083705278905176031446445549236162807299182707332281665924210228492098266764456167735822157507124382246768029015971773285245870417102622699817003024387652702089663722061252228118582414993132155209813020690941488082932062512505241579675044626485797131166711592864183113772816344798358692070681518108565027072296983367405434261264495981151666731774226794692196215216403427516964889655657903719427805791687506685491888130105010489322536254911452464615517757806019100018339164377996281251943792989068822023253368655043426780585110853960246007973371401589350094506255188411598072393716997449997172786148068108355756627493978718612470281940278743166577077124376950310837554635604726360475254500663587915223159374633893290846461562298849718620080321908802408782084233944604341214235698836142931553906694721903716206597753227164222484451207168909931165122352166477144292174654994326934732696999449761289740583135997253343223344116515931572688016170608410197915910672366869870553647573850400963470981257494162214803871697581558058812316652009344561115790389028915966343757819003202408166824250848629796146263955942379776416248062124726008364594342900632671337078454468623537176855465539135561963733771965852443465559273597803389677659080809233498634410751775334918304028646828001534570974374592503727566868054342648705788828631010552814309060644768792042005556289053578210084681664417479494766677981005743424251647956190086525804957923882313882947326661641245127310981250397561659486471011188566840953098117416529285687536446017132744681739511520455953066733702978846378643034259030848101954456402613295387449256043802719308962024302462432279913396938114947675306617436869863485605163597555803715503694451312236437830215144902816526845774674305601400922386668783244772122755616897928300039234229100255089801688974247631748743281959634249848427975583323764721430637941201631015913422094551909950405679629320887945257708376438753529412588376011466402648392616788743684113125882749319211665404314288037143615930094347020137085553843638921969108627168103685090699007210804805593031470938138522507159135630461580887941309492075682101068435086074614260446773551355507002641617279626520626341956453887686983545264153529992658334451195297424553198084940254623655805332772504615976992465415968125773610209055100043375207596805637380438276518874995619036052746376383863431265223428637714198746513747613854569790297884983369696270834773858529062161729713870817401809975402224584834244763541443871922016330339195027460333731913890354870242321897566090415128331754288091077529263816787664061097839191982636014754870897755335249169823143295881982710457625871003551486021623708857584301037046577991023245799909698633350332927929230518050129885928621401428426899144174765473247367730779488589420676337685535937033100318231302098627828891530854298386552518176706688576959700517205390837969023104674539800529133848242992006073364093557734428350331945991693651495790014293673852115493192364336360317384539583446389054965194579370981881909214427590953567276189885725946922847549648905979083406593849309962624552233406647495763964078288257090756762706473746689522042980312208386076340072034763120102943823181900018320752073888415875886235678737224441114418818249004804537857222222743327561802390354931535826120874771526677035755533403958669153172796805808386287455247680563907250527263592164888612871904467514560046315926241880999308381951561022712802627784092026924017649471716590548941785933510331767224685901091347382147304278984923603128571651154354519338423726046957360827976614764561782210944685740567731049902392134357362525860505667783848706789152767357722604707891764695149779450691156797080274592528969021252686525097761187595622881837614092792235937237257916011285025836900167053555404059649492569192648993463444909008637318898161891311893320357075142746318377667562435876042350334328297697752976045914735386209942711834097000090804293784506524157258730733702108096132104196673365970415856010595271075588145129682468161698403979381463840901973645768026315203625073314735031608120025041456326578253053633595692823958542805857425168450258773671407614637581025020134176073257818860021527778909453303222770105972667194343157408737216934294966157682886030361617119157938693417342531325956012272663117794546427456620688577003334318429334156993238893913126558858018503107781140619738202040923793939025570349772627044144753541165293860149511399798195545215544858715313516488224771791559921350649294374142864924677964442296611575612208541370366397902064223050954369650717710907778319340293158981617330364192231288271300615275767003997425621969231565225064966422280207111151435578637463278841011938037596598460140760182721580924394740774694922363232707474079952899100240478620439342802757261567511683988521324965028038938829314437497295848309486169477119941288560010113672307824543263956263893804041915780091254236231591598198177713321794246301295733681966709056324780896809831377725873467440361551177147155502874105795201747296716166612509232586295546707744746163350459256120825169680812462310610745108619278391635852863015761036088467367804413521703206499237528355822208733636560959236996746463792858186741647948424350836898987467168089098531798280835618491456695862986252354268968587268541971419345448559449054780142439507795240962497443649271810712958124323060846392283364075658305763643562817186959559248614998183609296947656267206138245215259177318386020482806293153366905925325316934263913939314669324937641528721650581026576302112870218938687987810942175905423143710485895461336893473191396625398609280983221696094780143718162154847208690674338081358661243556161730686110305675472169645546979009870821175023381648749878448630499635350958259347686714729679322038545487095965426385588704734951385127032797122336999806129506833820678126825617896342277668854660291396191356899419119618847152584904646741107928383135382208704237061803242134117814174405030791810065353651146227268314388616101866402715260245219234301460386634041715441951007240142509738146100243828097038827155132168021340755654501977183249062308307679057178645111445674822089762628458013639598016780987187255943513237121888092193778409882753578363852514393835398438395698994847804450620232149567810087619803249057504164504322635980824935459499622277416396832326194039098911312999951809866153131237045088145651633216469744166746433995120329794027555376583643344652862219838879507805351620546355805262920567543462569461233729227596036048226537717910534028713734100320536621010220100388913329335393352324612553250477727462613122674521234762524781551183281804743662303898834496941326242806022832171778266774581854496199067746599749325641904929841570492028091273180107248266410247598138193073429109546765736984394078975930031884077873536384272269611199416120762718791462273575500360546650384015099205120576109573777139793715466993287794522514809839354674129853343290699845417013164165349817718623933333238638889026915106193106541847426989313638169491990511177056937741754938749799441695572281273632326057284767701919629491526540813645728513637235823830251661516144458420569331545562647384214792805536708114331305719197144511764029547325006683980975824761589655004292200936258445763030466700247928754634526855393056036079531237288764738224487830010350392541992521855478995854635369578899684789063516391665446650267197299289704011199659427472839108565530486192262353058815113269346511810069643789443544845723206612178044614776434807762625668958026950420092841192584470049338706454195540419844523343503682767151637392338130511823714645361566461265099641358716302632524143588380160666539314815215969385815753958347415862756460846441859052510615088453702651530424511009986676951078497739666690597821507368719721763191641321120104563310635964136988193338760191628321009911589707611504909285628000284096398611651079781478055926366942147101042638859141651779864511884612865535975210476505652304917922953724046462322696448096799194736611098387378649549827112390006956806835903644121832217803588810593205609219545797615460020392175023056898461319455188092326473906833496990486460699771923654953537823382378179460820304287263570193683567461831792221347730822895592360896255000073163701167218944105127925595615158722458938094904814260812424369209245258588000494613815114846955002681184274900358825520920927725292267048784408098973609323221996106662598193445098680517258623501709754196518136706038078155127298381267841386431555994764005768938997041633380751971649246337413692362577600991713291862763143490303182730482263412890359325660636785415597623412579716974128619731755880951089797959543140817127753017772870283212362023571080041277853739786901453216253171606955412377169386598104892634820782121778525143515922513064559555725829931420049503034734337129399714820241062107576504090528097872925425841161607261773071145612817860278111950878901489853307224742718523405629403393458531152051806460108301374839020933516225567883803859919192972533549376039807067654034481574811920461840147579696226132905008424795010513007967557042413638111767178904202955846722786970221062570003866622676762438188407565583974601380944255575419879598447936206673431225430353650487204451059820480484039103984465920080388908765556394739575451654603093225833317217208405917921742848613989654138735712712301101015565047939700181967300252746444499620033065436508111184676193406872415425980567332151160235513263129350848193119524663609036808248168708953636633775282076694011408084891924692216011263841791302172425983263783116842938010944176641034238236236172508406134133802584615877579913507679584434924201439633612287699024752833823341313878783124697428023238634942242033422379887767458906411920411436813741605720176922365260976875672619603493767242598639765817077999913853329596613076982090408066360712760218356718012516651904520995222213967287303361379426872389523937284615523753694481554837868151994404228528338167573160474489259070211328128190026789446346581459866402727016729616444163644651896581000006300185087105716777376756485319360558895161229176462181913617247387482071179152361262163325606960898032346582324231755451782753186866571327274593082379671990035582770100099985576083931923582173418919872333259808524010833200523237293364921487827508465681582072352053580255132347825153080463540840572324158410273865141403093248996859108885223135576382436184051303137468089008582671425841056374074014315281681471130190650295705372707855672676290115077804487686068541104392458602446536059465152929494599105944355438703848669846716720866525264304573291315216981089464558039109144129676940912097610077075431110305553947784299332472027900417368544404474873237701253746169879595935183325312504361997892574397921055361182793630991648039586550698514618363351636236712509273552733436205900364381921970597460502349151321132450771895808740742620207869638609827495235428487629923017291830291854280499761726199860061126144776270936142132742381048494640678238323209686498331235300926406767047071028353860348705581036280411114962492344635155903430073002194599447635497733003435647941617987643561827388382608201118312441027901199099159547883014280593631026524630093203546585711440156566419502360663854589999839000735844404545017972572508922882806689389718147889948174874535970251432759042475703938317024147684323193542605226971114337844358500160398642557691368015124753794730578481396137551495584123218356146699574053117588753962469407848596841081980621537596776467169232580874851099160432563985546601126105693166131221596087228773618353695185739102938760645231212256165870092280511957144552531317452247417015108033432080924612591212096290660720084384729656569208942803215996751880921824438487598580709127883127870120401792175196347482833178181172937789754444055860196273092851794701855812506572052437756817628776840970477129235825224261647892113948337552551451215356596067110901365506296684705535195470292053027138684098574477315773435242743797191306475879240135655104080393512107805938334028619353872117496732019699755431490662639875510581045515119213344199028247845003839022111641135656026564904751067775831959951487213706173796140564671655100537756844429171328238953523483237074722924598832961660362397987150810909409545620229140277271415513651555259936005223846961552763730643922141403978055385231591834914326526791888788803758378091472114122741144237346066192572747256478574344976996880693255921558737080341166091606336854192685802329643957675426474744059595564444125574673859546248530850671628232201880853563406334451137924283651870510587473520752482283416968430768044045830941503744591175977477705797994241556787573232317643686415383776755577030588616803189121313097397076003924742826026040759826711275347735506511426029112027481126644890075305041258566811090271800634957650688776393697417224994184386260966188703908903670623272770732993037453091195245532578857181735607424925606901406745217180666287428729800242742404604641683422717634450432025382946325890216673285244994852654085954135783544084597495809060475141182946769122732870018050776091758120860332506407476864153735131798305451994229630437941684638777693144281684048260170817097096623231221163826669806644672083665542856545681903652869614745179306458987000166816191631196497452189757456272965637058165996053834745454353269661250218927323963165236696112317291131720350211862181845576276370037846370688094734218765201546630516797615696492794892610085086637966821462057387385220292217566429208243630816758816535631702877394962095030471664060369493641105393015665970268673645158424670337985205417515007024777479131688949922846939678190642591224511881732414701916889130095164262147731195248761095788969276017100073395368508127244312547133112549282467482912964390618604360996522007758672408572526512120607612030092972758678249539694394975695712920384353864996414960328097839500185122598468106281234655986295286755184354415713369955953106411988764500843469469572330903221816256360800266170639044474266229569584180591528727269732019498082031048034342948316675869323755987868960604568545698526780762424107953778297778978922969108652284051047888858187275852369591265325778024275048756432179084033671478514129663571524650234864224842366849743798454830226412607756493090090567217063374688305904236721796749549083307372935917034814767559080802805184874816793873099037415006450641798510411415619131432990547902152808138259809207764239464244566981340542891187715941730559741740726261880651339137031575988831645496567920808680945404285826587528064771425038245908599725783374784641799526523336641995012812933463045344233761482498489394247556080047295302188902476722576964249800327357603424681047085887634241231895420356350724269784284870789003788652296734061605265732041441386291870178707210229810149619980804089225149393286276537264231373786886494489626678830067268177717820290450060219197608237949748838760866591339524242546367344513115410197143028428246057398408714391186938858689026333872406634124169532306790435519053165304875078247319745206267700929086603690402864242587980209880581671745018737637877327222979807614944876355554761677874936487833547860695007783364717061555949394462072228369287737613265951951627117585384842618041216661224854379609398508775653684087437035513154708239286200010683938969100629924302080617912837944055394693718743065357684585366653984275754640361709109849792836266370753017317825515755647759461914073574729119863729291750942053905164316917850188696675198255663993904533987233688570015095316730434660669734304483056607103583062538926091123879971717687323868020998990861038443077703134493198817874187473406972107510687340256978253833179631961313795520819683816065797496540059698224929112086083315536561429136678253896645194237092190163604490008883003500616679766906777550041038803428084077042060193304428910032721366491751953305419257580448924852168113336417576166949145589257721209689712453795132641595405648761454805178258164399307823738040893017662553701440516478469349091223080971974610493724861457101108199357359743792918549190746360465740825490426066254952240714860602734312764381221303225892448931670047955753906506754072094421516978842298410668811729958284921658078751698722190449756553283738587648561025781414021849727739728126284393250970241592492089546744916518010409045969590908924515997209750659864577527927386214730163178366452229789724423760923553638517296385101020147555084943677941511824036165647278296008658849158408284194979528642535115139522974929012413280756459948700367297350660164435678683877551478829593510071744428706790787571740375731656256657188808245434179337796973852179292336036924621316824567049154190085553542155031133221452598499063641350480774517827202634655645466451088050217905213546801598751154434988854242542891340583710659341136616683911839629217408041521945377929780842340472295046803908337121300732446492760625932748907245683872370272361226546162366162314070655555852750774629833676853774829743679245827760392114169233506545033094547807885040642531507977664627005708082923079961923597864660675403978712101166177916728640274544582290381667923433723105944251718884301028052273021137482941708144209295140933327441767492942532245460464037646624188157953827802362351778661668394597358129578849201663151146027303760840977335192193816106700429967740141073432469910470669321393219167898735334486292591626830144529941918658465955914531719103591784230571395246402440871591419846950425747599592031698542422728257774467858975061138033114165600710020960890681216552773841972569069399478890940860486482562550672652192292120722498408384275542309638143347231399501324519172450337432243951289826362696687415108348902943619639236064448377093622506078052851742441316513835275669164810562589218155575724367704272696632108181754429709968662599701606791934490929698083352547041390734475109209856527085084018599067405536178801648172481129327749140442447763628261630033158275047829726704017947833769563349668360120885717208513264677124961511614134739080797019635591035770608161020985040537774670592488810374663305917912226601876011939713025205992976793884809875243494342854592740193412384830031029356298336923199181171443546489910961664056854970944205082541266844911302298406643941840982963462664097696718847191249821087658537778155706333206760749469318413072390708927970258905829408032541594360560232899389901544384106626333989318211154757626482173340830076500480668033862425772238904185452111736940147438685925340679813872025767767157825462401215132679207631579214512389808813020130873500960243247499934879479692901854715632743153857672705028130945391699352159227551934126409366066049696687615658293269940155973993415230199554976924827723010041485615127718646977717742761916433572990602678861675770826979663930063713578672704429349576366437932464508287825643561381092266588057310869606922162405453961541217669844343157393594477721896024579097952871300139717869469433633067795678779930435402247761862281113170435856902350439682411219712707387344093828427058175910784975150590311866054865302511730758353543796908663986326187131675281924995308215255548045502909814451037340925145721178963541656342574603853812202690932666847874389321797596701089091669095959577815900506831177959299362366152592810270856743580791995184690226569333592000543592796469863877985098526596284792439029913391997726993798930571937900432610823769535384771365249741354489668438085854960348185110949662264549422480777883772498554470895645918362603091670804460473258398126599845147192512238927421466623228838789891078757220733899091181772388678103823361957761785612537398143773540756821705698271802063847412151374265836865815915668926344599496808707391574604547962646168492804310471831934446642452952574207874667828331049613305491698780479977715599443779354941995984981428817036902233781054114366625652513473853124839043488975241189374445097388823476180518766932760531847191217929116668686939583791962393183991811466433613191180171295975502109830707002500256699246679102029171946814867830747687165712029621812388914785822255757889558463134465632937489390918324307283908079501111967416321540999552659000993645082845568689652105204181880390004062618600022042438977919357727803293965760261661238603959145885434215631358334735489678416554516570319109782647684506275578756165889633075906267359981961973200007029460532371968431108535929983620508336850102027265963658059606373737718572506110229155129550638919034635374881436493438531583955258042688892946769456317658983600758743742633769512126375853644165511474421635400091884055617701032025172872191690743884963083227707661258576362139125521953255257771091503635487211739953311658106731751439209316493989979053110777526388547679215416694416660005522672567715309430067942312359951355409043551154454288866539360809879568698903780981600149162995564103625321181829046751357140637626891990776441839845754899056881391529774385175939125557657051324652918763830636525224323585361495483829687578068215013004671951034165244008290085424580840145457093074434955721934583774520692046924882777645031341981552955800063013023339708158789635873797935299733923859955255727486410904066128290898945051304921598701285906810759520867104932944429097119716334340153281176276115474583803460366820311749048376496840165372939959878861688897060319658958528373828473829200947737264148033333188753728801793069619258001884828772261776409415066851240468579483349524448543887646753273248926230929049890284979621278652651194259866706607561548282830325540902708946066395334472217519736346074656985508738046272675736143582369623766996159871938506326261408641736297894860376449450647218179311560350936514802668435095085114613707039000352766983504334922192394468393847465419012334307260314815017971759801687291654363487869554643102396630833840075584099917976774927741289858573763551524547811091776773626434309060581656805887063079104149216389337479294687575069112835346174090194675670707363080659139475377248968851962347453695596906980137618540662481727727524788225123087187445167399629883507477014910704162427493719957812485739529424902055840771279733123529629670783018108213631834370773264764998833064746949032697957037473955478622417837768325170899919387349922093014562735322450017636088502568216759132638597497694371001531117222983762255992345872494750159536990718813774442918114836132377851794846684771305474696424085438034806628370933337061170721698382458333683542309179141080289384458082888563347536493798652023039324672638907649830208562591898869217632845464716854671526465969953231927885339010052687892770089242390564059822285727340711330961115137447546644668597507409999238784349147136005879547300561405533934987128527676859800044124845323338120620463682162844399608885256852375635697321096337365292348667337830035866174406548284851089027080348561292044494657626909444887962328178461015762752309432670842856270369568217957315425836094010500527194314802621722304598031996502056899893926734387005369679049818146053419790901570189015570671132570849884006110561389227871071261781547579523640737538337357467893332989574300734919395460106155919155379172917904432160387207638887079724746592392207398839164928590308300922150701859387305129159914303395917355037512048652690343951041373660041949282279532745972869733277572534762412270024680471638318681684864366463372954661220173801822057910176373811696197264128095263753757259228319957549578250336516433503540738109865861944113468701664207543220404208693461788991291530939598417217944872152626557402500219883866123156298219589641466896711536603777844961346893497454063475522937324068931000100954037185825841352903826104488151467981596715022694122899227683129791788547342342012443385818712274160730273468480353531785678341033067689880303863470670067643052903268638299033842943082039634447128104477520118220459406105209438703458618417392239519140724172282635655964709277059034467422862991801483834603597779238653955715481739564064159524733107442006508247925922016429417425596586116952336769499265282068405830143305136689129779665872390922240658498105405235552221242552515346342594950842055541264638157903162613523861485027810387681505422607742081573867561949731477351587923036716305828401768856823504208410345203737950180697618988573424471802533865686071334912195425985271595229989202822274020819475974874388093295603181776367039078460496999729968448732497408332811491820251322288259612404676003136112539251880729660809588584476132380915256633671643943471756048901169566336937539850728487318570691347852933661249014536294834638562905860631199924796084475818803111411426898147366274303049645200146454502833018684678149179910663037383746739970641503896580850642283094187362360490378853021928731138293494401628505532081293518539016406633181177113264289229466454763649447451785804998724803892754324976322187497742556174719957575314910503370451717600978598002052533461347770372843740739286554918476840756701666696353915367197157456631279564702156682605301630840049812087539234914599646299402007568897397468713292601287557790953113535700620079403569052546252499744851530487152482285452688988461892804339620345421263709303137601625386987579061776993827256087422263164728656908422787089305094287664344649417342573049954783938061044424996991535728776934783559397843053152569069197629313283000615659507604975047734907397040308542083816297692795893457204303616906693946060868467071357922711340335541309106783738809194799165588743241120918182986490747300079156981593348353633974116209964030175143677904725012600184078029425180705273026777436820059735065517213252144921543704939115857485120088417752469082359265679156816128883349202398377986508449070943449455305243137613780004338900935987270443163963169816541806293648365679753316935645526642406593331106340096463234957419570382047781955608435176355279183347598197832506939457599900437792994151353893416271862389643369429600432540296681455480182635016981150872165045100660998792373655813218694526764716576501880318017951739621456203235038800928044852076064907618158632457109194820063853574476656154142324083248438483377469713568583868167981210781173847622208922516398468414825493058994402844957083559577356680885937856441013469638922331012260920186541268982047242287175925543117327531828106707502002665016123424342105379506683337378051736067085787668354722436180062519383799007787495075551162536933134428528537134571610836448828763175725016657193286962601704144809361490784522554456968924936377372636481126237568280173489066076363935707310647704396790668525338964597356041482548261001391690212404104648459975279630760060668307492128171989186348310988902450166231058545219048240586653078544867519147312361862489208079380931457953282294154678425248810547529002926487490515201313991282786232339319578023980196008271509004043991774553990694355569758757531033373983577485755247585945113897285649610895122524660277363609291697731398139888526222445485911246260380629411489103883406102032405658445717465999633724466230654019445117424240403422529183632586985516030961366170792838803417784478065631088469317473718352681439717075898290441924735407194195393320127043936049081373023286017387005753023323815295030357009162289164064159329505544968606764979010186556014454847574957269943492268431167738258591581075200704496555664338612281560220150338264549246480078836257970862534103047358143817558543356297905209928749970150873149434339456718741047776004570522698678609394270939835277864642638864507633688799837500630526754472552976168048313068184525709950863345346889581374176290621056375061909605007577094568512130706377677025709955721352293363669465964758520519809789982285035344367425958825325272274632668250598254967480635189996758146236250875602006722633000580951707407288733531577924554040345450048305199641559106413861686942944749976449238266750880466663168495885518975742792101573427247556648360158375207663527874224083951799071650418763577909266756139274184538078269980757046985108739230452993045180837448272622638825493452045406920807386216204648103747442046128371467432929459662181411265350501554427040436427579237518867985518599668235647630448968797134487288184051099908967017949051560799277325665354189318474207596674170324900436081773195051977898881314117852492816585180265400232890321906964199808775397628448700884735171369901856557251866720069119201865742846181865283195963831172114088668209460758206002322109063500489238739407117495313920769674387995246580596513473096218961503541835432305523341492343033671507781384432324057004855412338300626130555993599471667270692562183977180446395669326381699141706882746325060785362722053220409887630495544177409085770640368497407345747553090992478277877709060592857814426714017445064503220435476565499250495561355995796178418749032637798916890340118394679406401993187978137721144936833317081671973243242331845149789446525147945112678570663088375441729403881001073891783527496126932299359299828305322039080459181371172230081469355023660359676752044516263163643452237716677610505200930431459397168353116011761047217719236681345052502348076871307740904428385752390641109568627214563084413398026434024982849986832455677495975426773884207133025324068988740894344646981567884645276987352318814237249617173461658530885109702290447714873320791329999638123775808094605458192220339660910680645450771418806720463274890328642628834384422179861906083821456590393440459984832742110722229306130221529076619432514493167629502612384691200595708253908922170675815995614326932885854800091566194568337410430047349992797907827250131594458383583296848977285605649889347310562523801644449632799733756077436554692790857419299774769704950908880950648459591886129927811230023490630230256343168527367138209508380352836157668996530249455445788850203490870594227669579043282246867714919022760561317404660052371810669151026100179969511184955458788543984911934057144958187070890222348584872621722311581111678398051236644683266817346886313846764096479629019059374199621776268397795118451443151346277201827929525983173184607573876060813045651606642797836074147746473302047910310994748633631310636262216102308642539863401347650620880543336471557635297323098539673643111850899150958790242610314625646467784799051617147179923439825111205511889471116716336645256285270780511502836550906680671575420325560558336477909134706730254637173357368534410380774608802409934079938761168175658927363035039372778447179210223458783534696152158459516048362619598956111044103898454708663144612701230387872310493733565294169375684895294066453322778069038437613430489018429261586440427138366416419613217044543889363028238434934551168938584076701236337301431757252723771324518070802903365121985374819255321553761275892132838334788106117426401288370568108444299701215331880847413071562272623683390527108866097279108623015124833677082448540767899501953699992243295826084510520475468509933760676929190530893222266896665677764914125877181521928605064723519389931537898774034628272773193743190568530998694704398251812099411493030194410147563048804780191220381012792896776533083534152213408942804741123171624499853256632870280161240857189446305613361109031036163016402016443048146730060441529232954964154822352526451685058342196800687946265200295451554172223970680295819863263849191030615130705143225940473174200038035666898582502872484727209160501599290599764985658782399360101660121423914267500091282132342516246864719224763422011878899330296459974520269472824972748939909683877497522621869190461910480678511066895785876348199288643680302218569645463351164870261117181561965381154600975852072508849259285775890502310055336678567073563954864911051157766884441160198484047915677638763838317701171170880383795378653926156838441427883382495243016107434830857272252543622029492767313153580097018626369787841870790600137836862904862665861991230051436448073635112574935182319949019427208898465584755301251665503714909939299100401203542651041237083654557876689381229700330056462606051869337136453389123632521699974390081955507380400296433919558114704608914122957164885646287709354827163937313537177539462645912009315372671014163019855541006835011474809147603220505005515013912929586412178665908574388378612957556734129170504637267555711674565074190692028205495928906775543439594165381676544993552476083653343481894691865429471835743109688275177168581069583375377755744629116085649540748791989236752406463540190908358447555500618915260840075413384613438643455676823972207747158795520928511520427922787210316291732605425532396387774774030163315030022583826820262896793752020761057930468307987253198686363806780908664568131400258523362877579532727784737515659203886681102494918324587665896702297621697902048992823055709995395062060737304062203165726380489483715381083724810973031389387917262473498305861724688241519419342008015893954608233988182179637579059282098568063079807344651396691422100004384344023064034458657708556599966332620720604217382473059911435244361965684944318272337980179469972070676011024449160633883640838139640872107607449662664462782943476353481991932829723981145657600898144607194454590073847969133401208816068485580470774359307306217238223148814971763352615776970061142415719373205370563689824399596664495846407095344911931646733177332336210947221392474570581815742558460920306350262486150904043010625941067543234938081209739443672365687176492085301719753307472268463004673746891881209218271853014659021604065738025413723556685249481771301439336297263109191959429739546192549216525440785543540147147222582839408711770522247519824824577111408919434713367617636298469361430380719145116460810752319521331706653312804277707208264807721482191823464070729574137254911441770403357295456669063751926956967597596804243981961928542064161601766978816599454026685623151842221749002322372003391686283707373577738632395427530192318868732624618430367631587554758903538316071156969008157909294060851878011989026950090835432844638337768900339501355233658429731792357292566409437585622066435045925260641922883217551637794630389949337226676370957022857801412813547372362137193117045022816825651482749807170814538748717210351207890690503654061499071336880664590550244330080433200242715229196269882826912378135379793348231655182579615562911680851809947864937339657777625999330970586074147435196944341792634783773924301900485666063629401092441905109145361852742961300486932595655573975863815855301969486379320060602411510604432838281342479518879062928730014586732217366266046831966408763316409402769271251376754201425629005053009801734143337645206172583177741175364408794298192827906079842402088608750391019600100606132862674905301777610248242084921489000326613707917069156463635904133903353821767757852004876334344608862013878711192393265869941699341465257230749452473071475875645433302697522556070735805452329483535124300293993619666160414726868570554431528530014253480463715776752399188427055886665402507725155092874027451727366190414163549201234417644711972747686472745419655703422857182850515560259598265393813785838149343445423984910718033835569226557498040615160581897361302269488461710059529132883135138286778425027617548851861674018194569702294270287107471712738068635772436763751946660622658703497801736834787303524940857760142834160747020877878352819661088327066789303501996262054822120894378048703804120117490456047619412833581856317452181204453016173216150570452491299708018957143792563552026683373751435535408218331179642982275199199636551409391602712661261871371245805736665844029343234100754252538111485107416474136844743461589819867598825291341999489036312668135381678068488689764487667730822679538922997036183254161381793003285548244601370279306501349607892644311501576216569897849776099606527594964346155733645771566031580499880506194864284872630101855036210739639722920402181947385847909927141479696602211395205127526358433806785891733780315754346270872202350634077600402537468170940578685764126906999165383288119839078434404552108805448793141876743445137368978646611190480665411951612942805149345308170562816382785576548448754604881846153328574064055760039100857783529954457633377912726602573270708218976313917883942113515443595611861222403525414317117223640257447646622659633248872949243065729988386436096519633508192333013959277267822914434256532711813414832769164370410678188023667279772763443466842756080394666155968113376100176106702262593101683840579442645006697767950076281426475052614803022795694553140311141668230765978847419005464545256662392714538379526612077558612561793459062336014325480120807721429118877817101252368030039079436990980065947269143151102579646935779357320207153671948351576502108612525706852866876314872372931310705117146035175005514064464415915886601791659207557938156065253095910140581809595431439788090581565904941769135984196930872898162843094343266322408008588253191652656591351739822527437151782438875505442360153876929588929850474888400492590908595569128597388176717707231335793915045260357198607770661171926881516619893244984919616219217160041110945723527428525537873580589729007264493566769121874657630550762640107638007063839350691742835155328005594115833844410971376992093514916004481944943460081068611413440499768790079275845486600128097318174202509986546738833145032700808113810884736513462840419801442848613751069802479477471210798387891999548821772100075681436463127538423033389105343779600595910447519067036300908243179036937984409708992552600091879884317426716380037875500450897270265178013341004947957251139691363137933211147079879316676600346369924893257013460538687379688771414360723772823553032113487062968066317463035724716094916862113903961718612535897294757291896559713722518902862188679969721538136508684593197747675783773870413218953563598422605124913431030801108568516412690272697275500325927324006575828072956801288365066775688303655073522817310198513121868604899155503284233245577659862038683089909323912361297880821795499086942525147529206938079404676756661418002886807445819487969688811241808080387057998936663646469534756399520525086389326843580311477291305127866602193204788424063810316582939190043785857313117544663650423567816246616589524658049014692868025152971598993420267191097365493682896408209742284272563692457946414922001786010189610337266309593896695606577322250684295509437219041820590484868631701070745279913602807433027951091071598546912538278053812726357480569946086090793377188662546384862168785133989536608118027169715142750648854712754693730230412711763319206017908976331159706902282923055805066104746939446748312822615452457290351802504442393258333466679461242604781114877495405280919181144361080821060352634556761755698191634695166925982379394350410305613497502188927691519367361235952492993224455728435638886394452545551237137464811750096858417764008624871427231718745304745348679652927747235835426565468912901880980270842252134700375859219624078894596426700624531199533789146995709043117702860246104089098317705798163453393421859583421409808188363419853362332421698921665689551276326370733756795091303983552509360297292382526326427995397813174706661316546275410870711478761925328693120181785215458560313502985382150495823703159887008613264827103839030567337311658755496286451993062715802103457978552233042124869775387338133873100484860226107185008168072680644424276535267061174165643298469954844348154129933348994215704626931293508639532558936271218181576646411311714395724283266096899454043761659618695265892897072788812502640108379410053171861835684207233593381860625162211237693006317300286472849281416006788721271114870958494781754079600671006675293364142325707855766532918117825132514204676007302312897657716521149351960854731775022106273563704012357569645397559543698696209782359322811550550904978001561195808323623784066565019810033334236334589670137752351438930392365763297877210148643668761157744564367847643516102781648650301787285926094226013637041000059237984979391881304434985861655906444745332749847609565588969405526083909358710579260795727183639307805815530913325217072491304878902174545896726627841602591180555427720185477632322216958578936233163239732129950033409387105065017686393097650304557109246463484342823819757872421270933190359986130515193627862233686463021220696275987834932197213956482388605127620688834797644041758176022456361975165691321664138567642765287505139451738555199000914168303593407671366504804787795148662108317517190562361135792106757794967973242626388216805385941701218746709479183255495838318855014156029924339697525720281640561441513650077396034260554480602396255293379000041034259215630131192320629203265791123330795881083705728367826797114247214403563262406359513060614734767807709617221005903544164271447048475237193618437041043062603565735628174070492068805024506201793980540835683665826502500527611436186072070333333036250014227617574990460333526241634475008885520090886011543672951924271618519982230188655889398712709594359371598949227231330126449217219411270280120555795672701211625722118973809797552140704506093709477948603745606327891398285917139046346350519580907056401715691654023311380591940686558942774525249178687624319029692658884180759288235500179198945956985533019598881235542777065220939160766703254346210518398003869009352313496310300741395284641531384323620091378124457371451781396305705363831191727193731764194800116067989634587574750785182263487881028201849272461121129757768518432718562862043436920431572718987327032691780519308985811301346490220680145860514092775506410194596176779497908039737398537999224244210475941012126853242975529682899960413282381596645726638122802254576494602002094564771717250751015150338983558259705977254876182811081608979192164122759393094608701393005137731910940276193608815928805104040019214373514645131151996646178790232348198886357525296717180241660140757700936645944234257553288436663480071722464981122080166709200281680877818871166101857685109872799999948321412663411414596690629384636475455194306455073763946559707091782229852245756636506975426715214470843588136032803305280743386360293219032425123117888181779334992192649722815334153380317922097447667749466400224002672569333221059199614358036935979682524001184091996551861802151557056706337034558131243555423870141775490258066220492314259567794847548119608362557726318534463586282582273813449654108618277113490353323349820660932309188595094727659309729181111070377104557965214028626312269133300151144535171162438425481499817163985808607992035132737956443048353956356407258746008485865215471162083071250947165209309048125702224267082957518898800102538607315679504127648357756594409961566248938369404930254594173902447567314112564090774201108746823558625170943085515506701323502302207875337203040082425990561995780238410306768486565764328790044846036535542341522584707973007119793503732559651738262018372154394647931592525374449126353288670166489765172070642974993584109772780908540972680304579005102958025613577489471077068787669176630872226478256461942441967019773632526415985557096251344527844218824977308097597178095677497264246144779345881221963650765539293921813652637567445396875965893958606938922673207800220969555714475054335811349796210885436291821942878503115538532533611208393532803726301442935087443153762412229081923794083047312700544284490459715428859810924151726443597422655040286059147502369600204014929690375871914838726190991312363259763142214450120737639572336756965992938682403417466168612349116163597201394990180029362953088685369487142081506832816781718900439790094229804080665634397121138295760050582757119714175858193507409549919838146508952346870385537572559151133213379120490477309028915790873770892203238325052729389423002459652045306260115107376453900385856708410655892301694417343068853872387220722315877781576048830990957875532449137616323774532415229089743632762528354610770653125573502233928159136908876308741521840457681736156518960473532865034335491145465127852844216482372623020691148483577624634043445365901130370174540675958214971838425456002953013538092709869389977125342623803901461293380704695501245779412869562557243568656876132733017043193340328711596067981675527698064113606351676189961150290424323664473696929236101379411310674019779493801521507123741080268132960024849385168414004604710040174185946791116454728296349969865863347278894814619525465597594357711849704780390635145947296271029841388429464517858482942419023101798833666249611063919121674672684683701529470557975831471652763045530879275201405019510227304031092035174828576588912162666199655080000593553001389871154555218985003262549791499604926779770808578469774693317037342280965919387853152144487979372027365396407700113122908737324387668461667530435217031676042498099669496206796483171115386134734858151719019071585561538190566239555608165780311416833961940961560346527241729972271826975871548665729353160006239042563043354734352763566440825899735858192325211456984322837235237529158646692008443127268252758517668251951555130662554206634752542067146757217078936922566616202240046580416743227526032890055754565572772571637410533404763255081235817645315739609457071712477390684960863721604791258576682922075019062449012061013465957962075722976057590484819773769723126985582585932357324339992940645499578678438866344703169025383911828670655125492011458278932442081284850894795712505087596456074340674380353363930151411283095793699665935783569842139840958795458903629074353693818524780675376874144773193865140180850881582636972576170707917218862470268819041595537652094967752802383351508663657736145175907045525464517777395106721149312642011680430192428046084375178029819535056406588501442450018432020786273812636389914381278294423811653773943142688851537780616398138782778935486846828659690377375630485489530532016964405400967627965433701831380872256921262330906069937933581776572901172411641085766046708184286546463594595935276647328415172335253068805445680836559073123257643551445256276236769875932200277005861654982908960420548692930472044794913753081415851360310266566068073395499711336024101228645820252364483618251753690495612394665862493394957632338296581186594739096179746454443603310201517386666677720099665424375573441624251436851142774426861833301457559173411367943405547089079050953360952954382865465898808660840817153837997350174225236956864130608708271193884332382656738009815709276332304167653166222873908802216275963770388503091465276988541671551720933976923112776063724708904965643106393496820195155122768632277122026786235209845421071342124824238664553522957056720487907556753697746374535132224032656039674710509111229451728473465997384025506083350511558070372549754063433831163115807342004043865129874235324234324372114544532856305333079396002160026091619587300389336419484426381133280373323749028750739932035330088863141574535277486020452043804276460615373015171832301676052794296585304182647899395648819871237904740014698074195121266821624741700635714357415314342980468784064649219085870755485235954471216265253171999265619457342580349207436719916175512069207891928981681820522460200659112460055603714318227747678117798174509149990175813207056251587429833600444673630986234854704034214996761615250886887133371929544994530352038342691322193667707682468053876329526143927828274494053939053155087135880900036770566025667990372063669658636962877416223197176961030338223110443492215028640282561394816969819246869448654539813760162491284919636242419290378136456674246706277986258525893310268783178423170276961970240240439955534507299860905234657842860056012081836734362262781150044638709827347286824661334640296801161402515580029507800428038545781459080094861193452597911365898475964395904686586835807794317333877315178852842985643823601878456762847048623062429465664041578825437237455703118145389642081523233747996147094423221284942097727800361704365815896516309547750914476328542833792246070362119760155468254670730134812673839975378833621367787769348179184307111920637985113430890993666207792973302677830723459942774856869251128309704790035750400532217741611480308358110090340964266567067077537043433356886860922004211148252079923044587437304704472612154707190764433643256064795591993287903155633157464528964549903182341553378908627454097978672069505562239559120820899054617383127110806218607828212001090600704838034107124086037218243764968732557935673843022034794603533508146430366376848422941722087427263486724989208543774695671066769096434716182305098836689218184643627536817960456731596464290454899777033995544529829649325685633044467955956069146418813082556922864288217538691880092793740155295768455603282562753249230329127252352702453034617956291511226380887116308459397182958187914621688476338899458132150407892406214402560755451910008172397209228882449260116743465286325828326909039665849202142725103067229390662284086661825769631197002850724357065539149248676652645776282248872450293029841348431282787802124860579732594530404264916416369305119695612375275449416966302132908620149776321136103820216149581890999861796903922179836762126130327860964662462105064991996734901917994389994789700092800088446241130569507558696009272437443028551262977325047648321292435029275086887264565239736262139999385813928726741978644182490691067551291841061785752585001751765670938669242606039448144647632729432968777671802793252880740391427524606750757791038331813188311279899488649697305033407283337769866112953641442938146076371526941079098897855564028524406680691491173668569598566898666478303199248206608053340843388607556416357570325122173442503288403716503629182949024683106155425859909791841136587384752858517661612073550239005673372077032951071937977593654079779707307438514464026467762599932779841618546806524528717049934744313547266099008288131616006644608966490629031304818682673370911286192798424593442919744894166122674147163839109813800539201829061743311508723655856071429138768080612444054738633467565912891935272664223260753696257690388029609040471750662930382245020750459128563110979434968720984168071076833044905891879133203857413884372359191042225406534506017754134016319145754464976011602999141364772581080996831535902451714215548801180867159473348814320911008732722043765055749761176476840096569977690265149563756519036149358505430092105274846096637622723654793352450123733877660426463780135797363692455288046740935159375398738573263739571409193196779320170951072399664237587712926371725700397829137789227870239796438585131103291438204820662723394977837971114432765902804986065594128431240661834183651791895770901073729902177921764284084189676588755023394136611043210336889742765070054787953260970056150271118868685349988096889880679825923372166111216705903659272865685389620031568752552324062271524695372805233810415711868810941302825233183491030153131961029196234144109003496408915784735212622630719483418934831258009526903257959755335072588951822762355417186118206921557846790614615964225278276926583746147606723077518001770613196667151103139373465868698952571955160554357595699252335625196787259786860373427255505814829439772171866903138888240186700296048689132625130293041159903300474050382021894260654189910078444194982841955387383053895094398368360380034665262396752576752287917469586014713952135729307199033535925415903255374847138205477558615367566679163526299391226657044638938300003673017824747974168688504854024156019424092940132523394152746087926523851061417075011030231471470766479389609241602611802822722116364869419521144778192861058655414626782412538282797531897450821345526607798332419174177763761336802235237223380712400195619748424399502500602535122930860653255205952140925912341196053004420799353697651051108924770439182062966625450088811813044724573573118476170638557145887074040550728046143870169659581064401777538228097787807967660948518806341724762543581311541529858152903491825211839537201402738700989634321917441140350626836252017387483636977456421203689960734242379914994261783929775978548215669036577203820824644284596739767645548410034178805716378076804896147686616630725921135182107374639485797306829837124202652501344371846873172234748060619085881390079466773467761156476214143331591047559351899576987922253187234173482506103294098237598094593655626453293277742825690875933266967553490084088970661485529077827183339679336761294876879762245053245366398494816641196220372490010770726673623492920687689321872607256425605590053801601671868017912404735598229931844884021621451681930357292697551065149276090153018887640615635996720540306572206860540951144965486944757472255563206995269182960865074181523068352018576492634790473331817347103131829637219798676780400248766865208451374788174840043424167533519022937854192007867820207392336463912084903071162146251637019860247453443719370145086341103619685595471733582989820725858767643336769501748759041722902535322318196722366676564210310182769441171068358982122357197225950758477260288717361974055136102631306464501486124406992919882376128632723439353155456432051218032083733592777875875253742646251542564701039070745540517809915685402216421159386436967537463591814695419600476418688285742600426493644702691628684745697249568655882445436987839401619203768997889898975103462221340247232987033593603354045720159491233252796785196957586845234578966063622174550275228247925709255182713422103613717487904281650413327343696120925556559052941341417906805667942008981723619178499336739657269951795239672363213435852532677319570696476510107776765987311184333922779255266452512227004133076399997459885611484538680175411756639574398732137280529746739835859098674433832470199578885343558971069386958619537365127847831841674773888391631487260878793146714470825556397227348680418329639607169405558882996824149114071985069027298093941885026518424794263895141007622051747096753138162158240636736793285094030202065171351905897430595921460702233481407634686593317980813355364150868726231618535324236868843125602996147646924271440610263568990901030346607173402235491009749386206769040822526213060505376340543638216625922069488785866459605446778814767546757094466956509073507567669455024778762307119720756717044796609732093561764233814086533917364886800261638579870563974065893781893063435719051820712025292787308560832159516452108717981570918596834821484465846515368670544798633571596618128771362507636714800633731309728813139822027963827490328170644346693472163380519006691767850674241068926495791804106144295667292601290810693719314725972765604364696092027725926165649092434653206821852208170247916468114217534482825874054473271618195847959715634258745051597075461204035333837635062086228509005384590744537702018688877815270415028118566699287879745645746016282809875631330808086788438045462266818797603290836396263020554387905329100297373725580516558623820847115976051624446500107116055623608601339870708833982989261063352938711295123988510960496670268638026420988299347215252486750857679149569900073832456196043392949706030431169011136074465184719717913690167606413774135646285743411146131420519816815744372621969655365402098959548660770175206751829453958632098077326533555579118692090561134521275204204920081063008376480825552423830134798209748435766312589033617467157560798028077721259761423948443096598646071574973818451501244166988215659652803604174686676965751113523497096007820999056555372951536020623691266401599689324735292308696499925827456240978803836445769833711219099705460105628500721420522259097000323034254754309186159538212672146047232574054790023836996407011824608871177397060387390845415260174855790619575267302600753882212446382268445883034025066777430771427185735632835483631721263348238336631199345263467391345216795885431413254109101509739110366826643000369206045495866177577217569416313917268772064038743926735036335858957404905021784851815532641142385897309204664719374927236944077380800635210266753743331090539843377974402560827028432746420776928451375107137179419120813560393119366136538224095499957624584424963656436979137571387590985371310694631065650959610263100805816933117561709511072416636024826785100018333528591650313247546515949558319754289952653290306802708623118627635647105243094913452787332993592503406037163408947460841779481632041677116575187143655468046238520009813413003140762103689341079696541671020918584513859591265308467350833684255660124611549225664763088306544337672272106633374684872536476144976411279240736591287167789563654959437974634076997057871043662664858504536038395646881287671680035017748573316778062324432180537888048603822229276924441354689452115951939966620178105781450551653284584215945647369950052934058151563918002416166501583680389850799713655213172787842615097794478752888546776878738195316245507267216704892096780436816332210534974651204519806473303975713696790192893954954688164839194651926503372793977540711351003285434714320108825209630579365099922643536962478235161481181347114096907350812510588626498276980350402723572837863283845591661021172313010738078082588509677304534749359258748963189652060369029907983786754073641419867589072555644012085670961322371471764481382979683023821084154265698760506329961182639568976837470529584397275793441721801922978726817578387580460352252904455570474299360135116686562921079604715307843895827582835441655950826030698270216106912590913613076453876460464030498729139842652137756787004010879324981915954946801086918459950953610651383430916076292228180966969406914309216969615336335308143776540581673198992389229945876243208999890178913712053241752953473685521494948979662314627827365345106461761000599353158868828715310105894616304458245860443074880727231524292548020686681679715635505235157854328309087146025817987527359905512888096519955748892118596075730281665347032739706124140056190728680415810883127772710665404952822848744810552941919812681195982242165143078945147929370710910815654002459292555263290362142378943726201705223589207033847555048468407401314525751798017333462046895647656649462739696308093931747335105951646858380283769561732881859880240242511505460507473740879040632530650478738298994607823857428224305090374967661813439313855920125609435807775879824576377954468335985281155524308334876201690297722650751913124562693060415621174078616649000106419440437122493724050351072554131644910512188768871153853416522187264363022454628439475642266450330306348295372001429624973582572082758054733772816540964608306381171816219718774087518297734254691116776510681705677865636991147278975031066616293046630019934407728131207475035150098722940855787676860928796879633369190665180634524179901318735369736723517594745853987168359394518074119020647842731991487942581594268224152837861354567460604465316100130250343724002574604931145954305759570084038342356485445282007927440680487185276669578839519279352760895041360719592428684774410097502221848719339727014696864996725537980162375839827816660175014595869650409661883068270386799240346981839016922991201190587578500813279457607353784407893598238473578050654997052173299227755270795584382337045660317555680387932716846889837957751916991442935820922044930312792822501736152461088192554885303957495104585382566075543231096138583817846361573400875869185364595185314228406571974157516074388644144660142811081888837763881550843541282887061769140623743207609696424503841311088755472981078637698975441468637729445456815969024578897898172386689645343843030545061469366650349977852865596481287391586853620371090539747534343278404762599224355652061508141372330013693809913584607547619466197963870083555747253899524111981848940532066196134386127893859344121989026540898983436618632751802310623722654298312458483547478266845071831579654385813441404355691907381226402678028806958001047401600860870927113031459821099928370383990823861233954867165516653470210967972498264616162579373976579270143686846089988969423823731668620317654413887152475171000617427072671891697158724699205262145541047522186620515217733000774640884246962089527419699272702333012927732651743323914360907285494641285768199987132754010906729833250176588196378613499166130126554192349583583224697630091344839453553934878717367948869034658342481615486805531964403101728351994232316801806181819609506449796529665347133181854574660662666402024162210683436898864531067046087329970329237799078072412963529388943126974484539370296574809419177436906967202961547709151680246638695932193046430138064377453898795234344736495731372061752020816326488059614325559264736191010593864452649979925118000704315058266770987725401181119380706792774067909122359645840044870017725430663472692402762462817680649105553545785353114705765078611332136223863634527051508186694670419754623953532061935743092038565939262954226023012343616940573985382268298747571323529603638355079345922310372669575572801173884237643494083851272131818006704974500537435196515959062238240673423490467231961970237587576427728232553867297573421654405775039851680406962574197203643530434401454616518028940980532674219068876456183508323069273012587107689994357408479520488077802111801833740340947780862976049675351062951571249731392557065376057170987942321654412166233099606588885403326060201686705182219363345783260172750995446401159191501477519091049577684883913870895895885706601934340001442504499388912534140055794298754553744279003568756435272825352634194796924904194329755130813717838512425967763307095357724731841307772299391417907114197028759247499307798166000889578699577806740833974075466523800707109280267965897598809471027566690893261922843139386337096228093925832582859071823930547048248953789452952483093009367975236288477381258142982176783393340155167481759776998476472009118672009151789301493723509885542638392224416192313612877540786091399072090672473943610641453837521183194816220145507022467042043929090015762681610569655561137886304847441567431340179284569597819228637232911193219945478781750806863186513917838926238245147441912905306860645041650315848372310836327442914145154712279203816520524412386146504663142118360102277517090086096639868555732834994517475224760079236140312703459791796436350133473411750032107015841833691397958083858333518286942380971451195835559536141386067012755700156944834166074212564809837269339389912504379084954803184229324316156035780980876251931186712774258869522645910583076874588809834752095264631238408504267464867531031845089566275282944304800785754818563875549021715475971805789308369009287265114982436403124329640377643710967011496335084908866506158914810751529588248158639715985102009640442371836697141755588145536779606016716363915202339485244852668485206458027621466756542172032246857782523698913714377126583574821331247681843461713534099123751568822704991884534841211476760375788114791301896563005489989149951643716284231550574900483712690584162977651785026911390819043494442709597188356414006730917392296258232175357977494759568368834435601251057818673546965190398273288593857031789207557281274730329477592206030072880923953436661944055349035701792022415731820208602271960759977811642784052629690807847583856371452647358242110444958026899598683297359600963225169024545085842285196715705586105381477168389797727839376380224652780515245586032231221196913506240227313408769869482506375905951963661431903040219792696722742110992545424842625845560424587818722555751963307632390164359604297398654806509497295618067758199128567312023399147661183766567166503386099030271626567401231224438266177839020055017091199073368092648931329168362414061875179424058951477019145118429848141813068446649973361071344134892724457107383682843942201328467835014841202727544480510209912527630458063886739115104125835438492093921804380571338496570700271786341002492391064087354466253914808859962502831230488143022758198608558650176401348245799050285112002450532417306211554832459725722262174743185217012378382472949823440648317608734651666958193225400355682561210982410071301771608766978763414807962799334511087331127938836593859817826656810429896765641427643783674705213471155919307354415263376993967478441155118264568712928484933217489554668374647170834936876159618802666599646578349518512547421573564787386179751304772726048846692732532457881390773415009775409068581721493910376770507745812172117094843302895958881439854124339154846482889350904566213271854164968243283510025848403839727273302704926495459507676255607773777151187838857126656885565171252089965415328141331265997860618447925351975922322537504696993423117522865564085404795940206196201588027230427317132017711708854808904121734403289916382496279647537229631201361245400574748933988143467115004700718893505897759354523912711185013064918746420021479808121857368494996011901900458266209403801995846418607630264709574799758969376162952457864903728369061829231761149737234313245272630882359438514219364773953110325171712705520901554797536495004093001461715167123356423648902341736085850443297540287954695048596683486071575975475963831822978356181128201517552060043009412040021204715553537921283004548228938920533636460228753733939811225181203903638775528552055967249479179964449393581434683146542681482586330778531900273983084340781368808392658721986393621963228010665710480593902369028678359332757578141092383980875143555871997414074761561862919310635369787442232634785557688268398850611324270148247489767653743353627945195510178845720429920097581248040795608358551833207466921336263997651524387444217796161404494317249624882431518632956908791580190563557931211471406974143004078792078194652144890480997130297431320806764862328637072075540677267475830503171742660618693089914497655805630506753554162359013281231487971772400721829492791760583783285033229868137186120969400148155308371746733165885976200716356868764392680342656213381157503640231052210486604338528536794034709988550505327927114044341719985366179507476717010090878914442678527440023562413910291130656298021925045062413782162475980963792080766324823230065853959762606703358633230156346617237948916854917408408293820693295960159867765409834498097119689270805621695771499019367280444046889980361757352127056529298793707185508910512025427332105238531979560593437851115080815579510657188370290599496742470471756908871189912654196486595655255425854317895178827233679925389080261885661243761291318308600178172917750827698849880602831248249396141762555875868172592588372775169128033186902001743072402109605119927788172259057894052771460424319504458200793538073037960061634810795162224060327061782044428346117597818511393562619414698242835598504610678615254588528691773645928839038407242114872656757515126049701062111149622680059896033658360915801872641329795427001799673535770855688849669313791366814477707100776668911870677621020501379644809459066275684191603567801738371029904816478800662956339078447378224388479051765882543629086415995391944518815154155793523676854569502555775012703962901653848513013298659819978911720565587673543879896640994026384815747394911295853850909927826293026195061011420701819014706917573624325097340318716707010923747071748079170491102614737525049184649590431802565183755854306992818155731180199906065815518431476634343227636499289610543433183167018191590880841072501336782034112059207423049325260950736261526933060284559161033779134724926519141162612787851826429467836001624402490298396611371359483931384557263374489815030591663941826244995764344628731127960474911411773637929263036539923430390671678785365338672979624055773802481082319120557687915143290122023798142903931254925363785447170345959999854202284807566435749448094696698564114754177700637450956241721346981799617536819656709336887438183640768418229927524814745070564880564065783203482697381188369150857532292136880287169850900299605320063522549578759385571990622767436870875726934559559794870544658914208746192339758149159054331528968199955006116117375624303465072494360280880954878304689223612385155247307140781144001801364143115072059727051502187231936188610189264076598265876619921897012384811892128990307973883137658266430136476416795496867663416388696483860784170235576520837750129953371238371648039789634421791471277555725954877270763497644998791128938844834155436170255297699744214942374476068484986609057454515332965887464744067216693767240325333526816184410494201670216710823109230901011725245066942282064770341629861948004517450043971806382758054937095490805383679236426737060365759109644201456849354638845375411324099871644327511909088952177085382158641455094796387402817959834046804569301957545955421281035047863681620710751029516521166835209635716501438703719904594964878062209762093707946754974264918415851714670590642847579644953478436007578002224742573112862641612726379924740059609291359038339904286430588870208518205684686445713404319354791978643949354961348508679406464025883224608655794697161514212857930256275370740085988579558084059276771627942827217009323102807280186565247730243389674240576271234260872892110323777798975590016653847556719960914312554744632450598248425500998167238668844690651771417037795164207573854933127497688402867480067252126200573787226297637202519470393502279909615250736753987011700879539159286017283160614252206344472578276114740692992857112650886854228635757376926224746592269258913983030616596352834124388570531150731484257728199136215390844025530329706219206813422790743996023384115073505886450153985242978123696858931004865256493970558852645672870511091166450352282433172479825628492665888647247251411976166434187205271625342415001511198635993972951075016827266827510380368584111353323695149241602940905959318467245761320373030322022915766157406313779897879669893500813035416810150509970882326964415263301832495193796489169822501743111651954105732767388781996095144493853051288738184913902473476720763233015530400801823464518367637432215499659364801450246196307169220604758585576286580658883440217668424157881166203718852107764096928560578437763098716792513237718600215365062468991732004066705615307204314590128156352054750331291657057030251180923151034964129791969334013835182928727690914361511568934760333197087045796002180511145492274309624831862865500476424372447370413879177129029216620179773988921921962775383588961234231257492256817564678647894254105849136865314452053783867887899718084687190987406851364719007682998417881343442807931482336701494221043815210591909914712489975735672618897246106806972768425677551002345055336222458868079792571884062867278604892235237189009209308939972213165080489448887606978772423565833387753508371649352355673677374275273143825900925582910236900664650216860719226984058130152181548585890251506719633068316828129983909175216916457668766824681166037226403167544296191686842091504116987601579468317336957553570472863268331781926969322738426918658974129780061813937795942049386304831654405538523602019002389829914637312822313486008689505809584076794608921917032390983314132997406650982980628891308914172435175829596595844520172287404059805135630706329786245390045259457658044731162271552150657783582744036085190838038603025860581386779741303742705363186669250505971172477363786399139243019923821227821827812362064980884123116365020434621905091749380925896585205354660169802273888245111315333241374979438983340824989030484728483076976538637054378926920356281305945228762776429757894986160455984266390257809526594765254157443832313956214976210081763301548765253046306016002071395842847240514310541974876508847805907734619493458804142470234734406838882822242948544059944329013770328459220934884851082971033529949128656112373177949238924387361019115771536366386502866714597419230071979281459004627779403637738320973840870274520786036226087353003081387243875894424085561317324638727275014720280676058626683531137365009309343759356124904703074865078999390239778084696247381768548125096734670375591011623471412058809793445542198457867262918433888423676431808985092556537654008390904897071531736787252668161676518824002132467523195733138035126165490848924424788722887189454374479592795035689817422516795615257781530387601665039568126518688160828751775577551075294069062178177160261316005524163795969117196922343031866906180251351530318343469852645070416591252417548936606001258824337376664732876660555721719059339876543064542159634086621782566720094638149245146403470890842106212703844823538322431226654551215901971860842098216194479662557630534673705807497121699865686212347684439126756165729296092888505318433646029979254423142049761420487456746934296530779639802193427330925400471919421730611831379358049570624879213085689777271595001015070646586250142380869753470435042999825035851860409762879447982328727741739566797911481330348561982775445495279090085020271452876718730000283575988416876472047162181447417302675278323886804990697708409888688642285660271720265644867706838138667322870056751956812261995498344905094304651241001441352237495721684061287261463101053666322557727083832330539965257022631178518317810228664492573680035899347209563427226812952772330183172095811846230099595274266814073415671818899963028476035360295654483976923539753722693864704879526057674274440585640112208544632990173350034315701233942198862056772994914674049615454863036143653240559067417404870988438272892145398117811756421747756404280043558979184834562667991548771633777644424380879143052811606255487043374312282824889395898161476930866469939164955574654218986189544643480099342940068124858648213513147946788508589493399109969639116845652332760269429184174763934970741401544843086379847165873454848535812417580107683625842703972464709780315039478750143927700001233858831341806281716896654383228052420038038304221358741991785791091409182130421261649521144684911292800426892975988486572283025682457607746612271490045536945894153322913632763910314088360766001990890447298692412203617642580141294675692586544443219225359755013732592447727440864977429750902847501471300303855258154114205527847402182966134861269802452862665369596400046643021625999375865370522940694765905691140029529714334262669927127823293360275103784600384485310376367169869121870226898747074397549256491508238727103257812448482104741261258487539857496499510194929322135028420196181642746580934095537288964547025612228487033542592375973818584438356175716566189037920041512905121996198076076176290443628104489091671612119112191648241706849697518700288808856309594047385801541694671939560518344851231493765368736810868904971227689963955931647426155851987571299265123434301860136176433799433560273404589168255053813313232213469711899221575172417757330193216542640501555759759528788991622688623962076128691024711786217035250809265837984607130314044971270713138385898909428544952750690767918773247639282440483760761304851124498691106814719228795300470967627608593047093695874569414332038672238085002712916928962542556958540239195304834268937832585387535224267709759146059190719748686125215176647291055901820862848409949893510106086551039200889547819935249200490986838329252718855056388848437487051674236560727669660695849746276276891519229507296067946579964246259068709847792398840743152964779180028950611277250905033603763089018163491421217109804537090382676985902360784121165408111608579688731388300359740898367076998843817031339012231369189317739090337176132061544443357307740428658831382887208516499422589365098587033327210483952960715666391459326116379157445415265045254680398318089599035032849653864698873515700294654224873141566019472396848035290415451675054322718828909159295728669864407754492818740099135295940505112627251944937048058093526924000935002481970549473127577650595305572929304268708788900593950212800565930551163332219760051134940467843487225215459737824010412192949453647108269074831621947334477451933199009454560217860895604865749885294972322884778765192351127597280466046839403915685331077433431313630462891278298347037731963976738554573588372327782516048168349304645164113000849247500597503453638754308172024268745315757686717442945211964697671333845588879410012585195617959471490065305836200526417779032560559364242700093036822635500160778607800580683731292557624208992551087249118491110878074778066223038805444800510691100411164158638828230730994833822099246295181941606821898857800104770483178694266203145100835055213666853956399849361586538366133737973579114943159890949415298698814995103207688265349961700209481661440674859968548711556511772726918586567485839160967590814684512716829413307396634068059435578843031593361074066296102870031629399598894089214595483093821605356607392659414009211416316051293727052524658980383751466484453094837977961342448121205408109157090217365520712679549794345613205677337887723254641488560839324343415172615942839688328331783976157780262731322289452935236378639250282987501408301029666279357677314693914378582580286969885567206964320871944822784108489651744559590759364340921282093883173174936104231963973099058207223273167865999754922514410233279255806119167602539859597389058856923310632172235748453940119321911560333546372424253074939543889855485687361274408760183784705455235389748143543778522400551152741719114169953632713449660843359577282393170854582860859537785244098807360640030082204859786352025569543348542859821372219169587630947565346319367199117840646840108713101490662886797838092038796840381842289177775787466469798136717610258480201910329281260674485450697806138655995562516024247713743951418474009875307103050784145957081773619061746634523301713301469778290750680019943041045124097064947289344630821007557179975197092093440636388246403154169948736835735232151605997639276114944284141789370690302467794744383042936681580684685144047603146751088299115371004256446671970299182051842540501078590843646199037064800550822451267223646337419939836085308502597681483486604101860575206946989216613209604132398557462807176417731158259779372916883065608569693002460171713003493994575269500649268418465513908709084971805568038323406278839757077765101899829119227608277161703776989941580894779029403811960893360228272059823349986993464418497385085108587262445846214205212312237753660324522418581558323448875282259457080311134149662894491055653533607171374458191946945334548738902903495524559288398307637918784714608961142662372073538260621658493412913016104831514776162752669567392853588278069659481034153503445761519405890717567154648923620379158837946669510231474186740056632497779298295089567796904253770032954569788819167187244705673423592672914913177942303703564942814234509655556333933252280699515616941200717579548208087047387432607463246742220864069174336183062426730933440706983634216752895048669493874638625542199351570185125165243870456795773322673810357844471481392427376024928315824324816145969189636159748734822485920372100605915308485620074190070869704838282173097762442244563684884533915427072511326608709185461091904863422494778809489460524207015611270415921044789407207429251550714298532254000254209698295368925586208098153512659889498617950426346271413013663505633879231810078931236767326844343585042140035022371937013629540801587336833215181305214441582919909730745157322998952743886095746678058095447513505474858469520534015879114941440505672753112079794133141362871621180236989476357598029548538341313318471203235272575974906759191303255223059384123191312043801120938531611420513323419189106092951994612215578250814619331696117782361160260336649953438035789880542178807136070100236891620449541346811884567806647044187929258489828211119305199469934660990103291696489153089061490135556721238744242633249966481188334273742429712946845048046350836881282849818499322244820995434770333916365088460345476465064552847482185507681724882363017935905084668029462162682865136302992594231527376153175579272543160985968811953833109958665047712598308863189204537277336414950164500518165447913616857024831890124024650110509358142265680388549809893199613933567016234083537788894078680817636635577432551930838960951648540997660175184320238728233009505341481591020273217863337945764118992777658238852534937861637923364018285619423163740211790533983247544385037823713022291011613340939792612857180661935319610026642875087701244013990774079456205951251953592199575064860873037105664827537765483980032889163092682012273231609773530645423031415666704896045296572748143087699817897257165056824671588829484162236069079743792589533543106030069511075952306526383445945364874877001686448151142019024998503731897462903322501462172261167109818444353379809593387011313813545143825240586183185454109092894435828069879207196444316717478589733763549873834322999320111702514819442120795829632906199453363514597354654771747470153396924519219044171621506791307335985563924984815709575478451599454062502225869046317198591972337816020820750985237403647289946808802341360377534038280970060920485889425062723525180934523021838331183190628350411952665816534329277034284571941068136448321434020446583545956388779559031524492086216229011658419140707448220158483010128923462208967914150659884468722876976965140070818312113061965668404386236197289388206507337783624658141297467491171195713890417902729022658757390625941213980393742461271068733611019470935165122360104853147716899016276118721842697458222090498858301711301923208788796065865223455371269690980622318648955204405262890300877592596590738500759538259023745058788865357950066172066025486935910476696283947707390397836171577744923310506922205441850653066275079873212952272892307818062220294129316987874154868658159061916866112304901187611635124204866683478738400202108891926755500201650657161750249022576669806254401230292667705501068053133973633760528099552173206258006629016522766262959896413372035972608485098056938089498658480088244949668228841127283263543017467227459858566999991866543883235950123728665869337077676782489496777346570041399449894422856606314453760534788891123743594883830804359465122762934201995614006954343778026715342027676238661956251386755878448268220680251925879153446750654009816720028562661390939100631186801096760188624262248507159329582295324857907693060183979906320117434048425102845574757287574801723878044686113424792896863240635562514981980431362139578929862731193241111084900626220171317021758024596914390156059634161975734561819531372575130959241261398987580976356974423150963392028432726660972213968171546394773438522213442095471330461566900711450707950328082480843981333658005395250143444834234978772479766477541103244695680266282872591809565293331391043906620089893805835411148579011749593635886493837218412503890811136023846310918386857063770976266190623819799247543243365827391448261614069892862574776520906945763338328075481931798574143296674991663884362151826313131548579641004133263938691254735966502516839081079311079403550004247557874022783304248454143981267656938299868407970505722729165529644299437525431654705223539946097266256846642677993624746509600462807035648623228561010455190080090792481489031333229831295165880620459669367325599093245388229207170563907302348518483348183656244288737040113971510899788653399347993285831317507368616819552890071186952649024016555302164881969701742939539964983188183568047557971606594605297135133517467865241157217491485718525477884379912203044806162770049022727210101171629711480552902349294433310189281001215634012440985651840939296254013727898540930103715113368012134780276647895191780696509485183427145024142456650737284461908317795113663779602178946779082174654095255819953266824274652533250824361388074602628622340870583685374812103766319447261658866252204554847685564973862310377769637448886596051035433801315995388248024755765240949757009952645566910256523403712616826474101159452483612923396194741520106267850936771238171185813165262164062471797682800610738576805806899585294798259824962816471715495148671753698307471140830688012111412592474338285589094715891850616188072588329505110606799210997337486668458787032711507282825263333671799380556745868513253169986629380393958896068814286894414351723650511468061803530000441337304851440130407406000979622190202372069716486005186829647148161986462658339392891427879111621737249865291860569848227510746190497448288903197709693669844190516366267967299455471299651888693580161607195321471075839498722306635788692836060676325502427044276433360306455921683388859111108674692210670416492489239493016824586512906994387540466667445243452746758418138450937201102471122116959189577042569724748877969179232098875072674187676069420475149627337856926976343605013397901469229410842335643812952695409241685937133985679710667811239488016323921453055995813758183005182585747794455179393817935743818580658505707604064780081347360135518969957948316312715754056035526484370293151025170014260371799509915395132667340228412018522909120700367482159189292235215533684290868419442077162151788709992023615493768962114112713881296451905470365552311950171442262332426775871366609825075467083536977315603051155602573557244356025681818992754831665774557683277222185268600148336716354294413031942916378345404224236634165901330338751367935462873854241892143418209716491449174900277341005312762050138841992873436281837172062742965157800502728834696437149948771232193997477451127635315939793134030148540006109686243529840581846059594211167329870848617718515783104523927524985676521203284603102041154597673477478222776247577947441784500324991461189178552553377380462160540334946910810318315117359366634359335628896338229125375467229878201420076366909729363135175712967098963406407105641415640251496900443833889167223428428527409959008667637720946238171034073295320757752238429303232882370851437659883934096020444446254374685485325987451670610883974813491065180030483962584869039017573597437150859355562682411005414476837140928080866644188033717734222646775902963455407350097220944204244835906123733058881095541721629094440778918929678543998716143301480927883469892362315012113513987274698983492947176842493286631885272379225954425231697780445465926176060563879537571580576277058824249554682791009362287126805929225484785446984446466975650499654234368626273808250798666625078119920985039690403383655202690489213948417253088540214357727718464258363516511920662387013822166338127177288154405286476235867342250043584358077874737476166406709776193730115612849922312413855297796150793318579682236796693336133719681302963821058599646091932950528129841694690760841526701325267454482634497656703844611749144554307937024780114248052464078747981180224029219433007821551958281163009383055768201810209339425374346255023979419242673898885699808384419995558166536091299635053761973184815454066137545658598061025035804562418737292661297709793288480074808525389161384455545112072306049730874067092859864494376666156434020822337435257726613381483159827275920524811852365042681060418162184362847255468752058797033729339266973015511715699591591451348812446324489211240839247189367852674610201030333935414252433044768338283312234837523517226148263091819840254750330493194922677984596473342198369973975036130069911796202034543006609669717271021735526801440458816181175167790111979799547285770389642957234797077649453864596265736310420811586469512024773934046095273830672131568990214996873803075930690830441806355643751986466262663266839587064369056116017542561848540695569959962839257276074741350246194795178244932623824701180842078071452304970291673006524763901441712406123520659159480232582090071574320704001006380599564511324319950230029626434018160907393456649856184494526335164405321539286030941589677273557126096808765998615911725903383498348660474454251575361288855437435597905170812757321228076574606696595971493736642032037449254809375433773008916120978672439069814257271369908984719165526797054212298573776191397374286168812147869349856451805380694169958811258012215898341498524680918335269853759168754680059403401006963725167400798917475506694433473235340070516454393691912408150035280646448033888426593119676980949107592689492941781919091164925687912787775562326909009695688716251171068278829124916843307544723162082348777032427478693595591473415508946923313563357831200014019798590452008401316218673444041489642163350044907423512769917049700530930684738034643011141073408984841537776715346243508830490653123428108003936683182362214462345018394333823058318513876591468892007566898534023035354022524782227449645366808919414815962633739760590463280706779366538097806445579512223157767244552980242887389952395825530775952358847467847304356498567296415351174393433524944255237675103376373096250441827941850329505729741903054907349070631332851535488691289014654186250502781767793951176609581411987109798562974035205538907645933464751826877624219534239089392909210516934620228230431470611864008413360402254303475142531990858610179084065836225489263780483548108997849094719053391635613208509933697389866908876491325471831444448724661735739312927418851984037611256607596860434920883807143841304267530567592241640003691165489611001895144980235319463915235641894638201125226046512189265047500389762784704914204903708671655436884102870065237146106601865731779866358337373992294072406180120934897927586838345590388688446192439688317467337526696356706627030012546103477353052469167136592771412644748503444016350912028791138559322793791297738069163684552313363978888288506903284440879016775239297599776640448417295403671202712900609729348831521804531372502920856845098755369116216976465331501842146457556778975053761828169498469591042950291674008129061870644322782806947843914665086321893578632813487763890019758384027673312429611352690094085967830075179019775313602185299102537521482158130292950042724498672031525539269533590357503829667228240972191775157961289691801776628747133688875422754485031772594464156941150320448970522830584680323943666186530579122846725029586880938199964378608151746663212731281781376389165079435286227234468801247334632133269807571507813894162113722320208195999918613325521149099957555563090384027023666625459034426748868787233758735826577190777326735803059517040465279611580682352962495130176251761226157651961995998845095053099418171530925551177664356168478415392069647439753177764095766324143151875202314914284903705894153460392104705533476763322464885825486158412662972615043089170344547351569959284165081612815326141546158230271443357980859274956964770213852307868913279004163721110003015516062377393434795790156900375891537502271673055875039184234053005800922636442867695678776934544006019856200905478033280558514425689064210063765453895675259127705591039239537752260998056933533271442822737870559658792203482910822477200598228096077598554756653727393426202105295851421372879493847398212269572051496445099221837901365790596554034207516854194612810027081688044565259325103813800503879892907736416476420337346980282015100956216813396466442250506511649060830833140482057006209080765358795629761695823106252906023851905667442611235450873134714850155065068785809019603855296379213025975838539882067563701567437190998204518343688657383739816085791679728701008840757091474706815512271584080953473893453836903813734561924172745216360892107676053119809950127874521162168343879097938841431971823323360480318712881721396382383356377357809022445937408714283882338826934265199861313181298689111994678475243711934099294554697130473739922635367231709461869550310120480222058066621931085593746633450690683269541641851580255565798192786347914891703760058731808433098395238343585113346778486459524189376219546796066540840688206308522737549058187011396025974968059046275101118251872455489610727218266634080404668654032485638938231213207689657154222896722438170669209728309303368842818984111677679100706714015069425732683423853109181841789464890262278635322902267516485884237878128788866396476253876708111770563477852359756993754119437351251124303054396057367476850154759057442385700013195436537057607474125987700451979785346877219180019104730325177675685457504367679409785789524491078836582081889175757926409837019411694274005599460147557425429142987982161778550070758603548251385942662055101875282188353412764520672522254870255349855947330699552523503743997170314454491123601335783139788814863656526298991936783884967215747765554362096195223910087314288638460475069730915845696122583602130631938179439558530518689480948689044569720589826765346780545795152124453575955395272228916314126641879770675480820309153780591274077269530086777425221297511435992110564576805728826738267350397611182440350612991891989283173679084112740221917365676755240643870613733538290566284146902026942977799401031300317259079938476961372884597180677868307763141807176424968803014663462033456100919187425735978663428856580208110880554863063913963086466607578116056077331828982875616461430397648247447420290835776067085685436265732486646619236301200783434841166500670787715258778233038798498848440275370487395845632817409454835744822079899733909549163741658255973558512415576862357006054939022576411915783972214597771013590455537034386899748204643127646913695356992262446176605765145915825291726398475004440377681926674410853167614332232814866136803000179252285400407573030421394232463534868336735357407426118666387078422593407146165500730657411970497565523818019153133408263914373691162621559538752625588100629760988465143511283322123666173602687076457777888415328211830635174542367409142578011792641474950715450875797451224613501268063017231688337977446003786954360888002288956188062115199526352966850964627361165150106056174134170072829588115081577591103403918546911904301031480183677757029003592389463023871085274956617278370977676344359324695159818948262350903947142824072050178873845986616536192253187749157641768742781423238547424029002875519402220857038952402332868200033603254447622465544019862910084181273732276647014571077900143377829500061271773131021576713695110770349077926877638777765244342439385345073634504076556034806586061720862467943344250660944141688304662458900423527905728527547378785642631175723417137331848291769639021462273495262462720005159668068175327503817679120328943933943638550087929895987945633242926291789916510306772033780834247802347780224531941200987475851156078946240688879109095293543266080372978502360181063362862349866211060453231765651286718002520196014241059707494134638425616391148740826328249733547816754723087789845387144100139767776187551691834784795545611958591369693397110333359918870060197392978985179848921144445256782131099713734513655353971740454626467185766576816004382179211371649963424451301480430218807380021235321339620734030277700353252401890474475959904349948658293346748414904183517128700346737426261187007901608738840928626881512057125411542146383829634108626242080623647906067770884402263895815931735713971425878445485841074026456614337015977574067843067123818752042719379798808364838564419088371554213104529018057436597486912178591608417352834807205661221188650765514894153976719918046577071876282282228380383298509754883141141921935563578130248162836888890729500410006187648259446297522373397267911877980676939420096043620890131911325284571583731080651556195346414309218529192918051951201361122863475551227412215238291998065910079245675270559401048765921311634698165496375291410149717473084901889730907586553186823778805679727366121859315601780671154459783433505305892344540351595223501822554688972778255659827526077720546345402199821155538238428239011236874776913297987352913536466853699992895177488067364399199839524851085062702163091307138848639009543797336330430214969424027916289074070850720387908170426291322563721773474063642814113227216259956913170337895202381929190315994763097412576001808878807098618807040968997200248638678811573069516952120404329069890710686798886271775883434711371160849785190391216023162057749476933844955311365214254558793866271032195949194771268360427673180573265748516535655294299299579703857723222484415128165586731854112894168211283351285762426073700127633295950638997647351164976621393442309553835493888056993192538445623253572441249283185730236675599247629903480608991134527409093288065730771194591862159130913964518513796439506886700623544686123606281551595277713173600584922720827985618426311201244902751209508541995513648648055677981651241494642531759298310675709756789665215106417844936877134983373076035784331595824280009505068488119048073285186948611091336504735889248061443888387474969458407415854981969326335545915906601594669642482740624365606726529499011510799321091107211343095357669646673095641016007806476652489349563200097117475697032377178763535607867301199847333360771489442277125469415973129837602054168336113114066934279090115211700655851175309507549984318359376461227188829710351738123915395599026156566360731034483351027307731994619144553618406383853971574734433519536863251557642534203168261595130206644954835207770550961959244178635273454903637242270785062317962452269285684101595879594569108789923135648344645834195960789500920922475099137338233246021927036833269734351383066070350583582193056463330640425963148336680520990749625368191319014713384523803900494657438679993976844113376962664643440653417960095361955123164357822936048527031445143394097686206410041098164160938727357285401468356780581622993358893887811534479490770488576234612331621737958708820056135460849132150976157780515435232946925472849885014161856440963368363386790109766840080477956716522703376371043474294302491655068168112266124041841978056985905687472734847891893877594196771065452526682503028617789669146592771757078166515648166494623961961140672232091220308140059232111850539896516732663744854331069863155848674194558944951608698889939869537021044280859070893274115655733569991343113615662521445108229870526113527035084504935029464704688054192610963736700915864149663078487962890192653084744205726021968621381643289258782934692390416789363943425250259494763060407525020159296332998195013658172187334381488498845263595430349053859898374953068336139343497593904652819074806673760703699610168667742564156955366794713812929814735298895318612174459968153557133238265934804829750129935216158938597191835278212242379316900106768761840500747152291748696338835746207331245328017115483661480382634730633626710268605193505936088045420568145556051949088628924645555958979154819769367181932859290615788128350219681550299700750110264540607097897803558201761434780256649598870914604712026384671326009854272297158801150808908942469893484758997367605885492034523353536563229365335859414994258179228523981924901214172036449415223950716432816133930681422214512441991862590836059841891435871841646381885709305879929694556719289827764589697138742501772226308829804263131019304951844962638989998365962606182754680003428944618394670834929506337803916583901146921145653632334518504250406310687532332741534425782858316699063696042436811328811447013010147388525622970421021816021026677612833393243610221411465213827763746273344610708057603923397526587093474393243979208802054455288647774993729280978541379922199548997956117331784241666225987926866595763862411813174979720815512804995466758490895981177705866113934342962451128806559209815555553024593870451612249666837984180096939303322644079663674613003403979144547299644858404809997292529600594536244681154748478404194598550760112111158107196494813068206798661642454969272528312679614635210400448176603865246459730903970906240631454473582888846714359992217409812248346595392829056826956749433825997973345220130977124825042588265813841003623330511374293034934632343824547714045645718647134709985469128017320438064325554008707671436058400975454202252689547251528681191338690600617810109866199820392425837249190750644434829307486070198162486458914764982129039464926670655791721952215609105138416579155851649645089601186125958683863430076891636432286584894117444087906973928755907690548497918149340559050796409541776991894434034607414936047370577419418667157506545773244288501946801060820126495634074637432781965051523010040593972271551678024581109540076239243022905218984887664048488891293197652204210568415479020906690294834702146806780377734260074805770345678027783691139138460335805722157274483077159391822909427893239376256781841302241393902053107672592658505249999107589411306563365455554846892954368660907680340628921228204712413638553101657087735828799684121784064561232178035467733822678469514562580138299790170243998242522713122078578049883805933345537357697509895336157265359642636864355596566248990023175225675372369080095415670849497412183387638347153926159596686695347156265304574655117335142969637023098609508068190635274799200932426208883562554439976579080126816646211929964990529355250362786788802983122385628104929963392094710408192331909226908430572177933261365089669511860958018518816285366471903870833494224912679085175803858554414107394450342071744193366785477228668018351103957122774457146420044973971900919179679659409393786511763609840668350990115122558597965959030746401241070003018062485026217388690500857395532872575111909774927032454596230351204947475676061710233541317243346026571560452610476591060635252950267234177498894475770449127358450049964749120615049005152851544257338058864356021018275631780086693923312520970988534295513683974959381649396105712720752143818988593851939329169017168463744847739098083265227524322930721533601966850929501586854254632353155642072829133748955041665011062739692014756262329665704770317111828509295050689634105117279725403559901248737644509185235607099404229351223746596812273565436509707889007700882929647883252298691717291333755185450153431740948353706807765054632848212758419407769569570102514794803682344448883479270921205427954440392336980625074524373545547399985539465942828731134045946214121942316089823874106744477232808058670417125038362292448255969384258880630217805779011880549377678030295805080312128852942060399775646512080843246800119595865485875612354568498557857090370209061759755542305712034254970793595233886596262925582269068428538480790287932083049151926604549871615824759567846417595945721844105670201954430350201579293225369858649831108188032641150594116712671274406552128403158993002968386532669879567313880407289461714657828556464486147085593488544868290314689515513216289436106120276967782400681595768210524360628790277475919467091761490677100844778366842904451985061327405972259386724958098988971769397713980022129259151506750917588600180691999577036239625768277956086781398099073513966036141926225312244476769573851202434964292077730726153260862059788344510080819521645504922441736231060109740639495232770061598863419652599345718964769265937978872369820481548274896328409403424884364900713812538572025102321674505111628290370708774832385305852938427073512902451199145397207258536059275418784676241598685928711985542277522116004030815789735717214148803094514486548108332843236209116173402737659340891053387030173441438749664895582817301892372142216539262999544475640009520416329735371491797014019920933894620939938600821807978326791587105254130446014375252378347727850073311185419838345521693623238212205061458837337156205645327179602790438531286860321146974190477510237814568887516783238694809785437506576803628998817791011973843288662860742586258587377538334338108713475402414995549753582660997946395710487802818153738212271732019094352554932204761883314716115736592467384672006687767054681108273303202952297286145206690768748645616508902146453956605930922551165543296547002778849068395554402410066394230430743984163791044743667029840593349580432036753372496808485544758527276253958546011222491373718153556210240998051956008940842633953326410165403993286005325200196067513743900837883101294388094137762546069985645794640767205078660234221102548942002504471310979472634620093888134059705408228271985710791269503717384647681300947120989580652920274934283099988716468311258949388151449841730152490275491302274794847486995807254200437491176464461948552588455349710465343199166731921908857565421865770710379829364219306709533555973750412638576205001704741295344295735190387480723614795482823650974948128913184364793413851176903056073548203352439984303202798323174914800144170716707373121563120727323448487288174835186481413831596019515961243469792882131141174393325651537498801545272108367986975081038381880799856016871526911050467418092020876662709896196375756317095832758286960991041153971552126961281946037296341330878042336692619054918004710742096153315251801107061690730826834183395845284244637197635440677714469852498773835365805490461459815324817778166712153282838518480558297234689699966825050768589193485837943822493477750660043665403035257869859563510158849308251203572758182446520820558509023136923046891348621631715197468814045621368549556858471068267144594760664387474875985353078127637087533846690446502878232956065969591122328561609592710644636543748342982159549838207574871534483057804393813115509193649932494511446125446285017374581976190040379323367870698952358943028324968433652055119757472449312888107525920996023973420569066242652216261830573837373179992431826308666178631074753578868916119836573496235778453936896123547406890281409447201608551884382519297676650783339774495838641886612767825086444061865386802265514769318198994490808781276570773038597118546520961717383497045796382378866978861238371336285131134608694063500946014175078907491627319032230161189024337183730395137693334206811174023635365058229279018927866179030434153090293246699494745102000502042452525874719903419913358085845810278114554623116189915498257853251845937655843077458773329154021210200384073020654016674024508091516126026632187791271122187695261782509378104670237364556154438585004220242338804288316723535499511087538267457113733607065501517580755367277786770847322671768540375487549064580656163040286711691305373842396901748991416107740911795312100531972197394589206276192021935914461669120647314624682358096295068310837946480292637524938882899939823448045744220424151472507883702479493937916934398470148568829061596703084055847813577776972915332842898446921203216671612501043028611098778611847836968764833812747674380768225201271467433977258058297105607270723766022620698598911528397604772798851089139435681359558442827628336345020004448065305231637706153733263276515445156422171995650454476722110014505056340890893839938775615570255982841813165563879928761942167508625707395582916736377365619463954361778236527204023564018164840640996250292297935630433281523568069523083263425409873930596397070353578803014959129558978815644987907677860736302198006816131944801905175770319800878424355307614860176369316728234673480192541483483888912583292175556919948891313433117133051570561772864522802063178756688191562395391478939044055127152845705324215868452989668265224705678248827492603355045914131204106086065486449027538402582131450873753587050769774901199083754627570764246282664424761004964779500849336800987945190283789318360574131217575371694573266225982498533583982452353050025351950313580156262602530810324179474928700764843661817212205673577059665902425864143145937805192372491780785869235262965077899415927270668310266662391953205284966118345583838501574702619924937202837116498645327227512272797898235941392386119600234810997417506506424644437492159569839802025716551209575077237974091102329926287197539398896547038885554201132988146903288714897634938162863016240728483481218346775627253094800767243593882999405913125506911917810329787681949197733131950821392522860489143269562708544487474753709289838691641505687972435638116250669279010213582791599560747533172781415346728269180592194317457919191138623881066445004483607761231391634109247585657125404431680146312547642639782026108994690203348761796029871431935190325563203761571412021957598939756265954145136117648488621527518879038638039737173615263464388226205168369511476797375340136154597887871059209684046478299281055877797839621432601331185044801916083033690872062599125933173489508418179042839920918504361711260110061580750190321053120335825503956672799910538025395716276118373191090109889817984735625301585301223473479741501470265844034102268108749827204854206631396536394580641788484577619918856878181492660995755163470869811769374460237946980768004360363248666816056976394773524580528550751241139186321273734898828541332650792277442986544302209692766356493668027967543458313078680844434287257070954963770648901114231207924790747883134524985357436118637934516014564088207687966920284101704183058468066790407191074616089337567682348082954725826084317562206177345448680550618970920641277816341377243370268791343923133316852231511994028869459665153419290435117832774165238679599366336817585770776335089644990652455837861604623203201839205901688258146923473249075129324222400386706589287478540806469296073548801297121895402794649935006200344246542926167004355418083253587680433665806465516396936981726150618721569974056643256380783336004461236988210761128703976698944511107603032756658858974417514258005511554031786550552825129119251625519806972287837230475092231879135733849526559510896473607016566031218837359732180494665187416548367379766519680678783713953578619388995993646996882057380033754896651307586705200797944037850279432038012769299527935785318272331077910291156253363994571956275892636246955878292106189283012808330592029869421270916897071698874094770162920483465684697137563884911089205573503788118554775517138982358579831475727709347000593781763402231639444917955712680727508069018512385025394448940132192427950991222572732695987289152621849867890151369355025033079974818679272752039813051172511765424871815701568262419794331770638989646438758950017213614657824671700621699625181994351734594861694873517328780870088411222661428496116289171874840828230619122622362552840097652637756810072766964372684073668934643401210007601158299874077929791227549028681811648642985160690096970593048656233321380247379716184377273270757971989528182296846635362245489843958334038473344200173750137531683863619105322726039348437578554784191435231348198746876365794005436939613197071978902925256397718449498667609882499632160762561267940235355176322709439303406206216725531869644871278222215845793686851572538237682147197972832645009739231359798419161461955153415294689649681097058439728926071702311446033310208197291348892816204944428100773747286916387043480700715970293766621987989562604322482459556081141843187156699451605314484618753566293669030358049804073628789937273843361145717653677620334710253047869715925264562108606022714697098535974026743320231223848326497338754816544757339384194634583917334056384784834491249077514216789381979328431714806219002353345552852233358991670907589064981982755718310408524295432047074845066458425637523301598736144577441661181860577681628785513369481414622120579851486345031606227049083139262954949569524727500164423195715583684275531198978335635321111231281490467426528863332385012617709785856352193542474137044990890145815889857426589035266950835763603763961302638554410241832410546298976933387595961478714342935777062700168546596929441164951342721790635095282622725487867473975021072864774838460184193336685532161769189427149918562690019241737414912769186177043716230873067246566265480609231281977183857183286092056542835385810507449930272661639252828465279577305256592995852980294338696107462098087420149793008060083729516571360166003318240871316615055589196632250649041027617270644321992537917014291903406028542173205057467423063017356542542959264560322138347816751823757777458139371081884385065135947728707920387972669700138981484103459434524231069298055402988789716164929532171359657213856414730913122902062122925994618174579664317903416581280180898570454425292783829621779165254596548443439934276080595269264880685695177327688887024383848852704031206795580497974584538713004258082815994623727978558986254949145088033877412903744264654204030419205240497883476363115343681188356508241613977639679498374583013586779186602053063263819671554632154868935635343662787956459063012110520275700972203513765845506839336393681697457521625432984319868753003505061280230668637026439463451996600016078239787178896406474548927961441275578201206891189759316643027604776086211699995945342542601505125461739735267355945579487591092834616969886439697554031001697262610864186132685584307571073616289729505643723519731869397013733684605499732515182016404838671046860917108857898854371602615021620784153826443791202034554265143560849306117023189173293445207201737240825112646508489161199556203340773205975761427282664539800351377800659377153430634776094306032124047514444813960538585442976905602012245038376668356375893410835888793758549030188684925189627960748748962486348889830631718257879925301588429028048048607630484178876797713799839499952393644185172420338098561557164387844955910397900603059829990688087611762382381887361793491805231971141689494749495980532181620966806089164111584347371647725092561398639440024586221839882248416999501634649657410994556878688276583328581960286710699499928668365251760916748612342605946863656962851463300477112831404375420382778001050592158857064102251184019018736538419327890386677906110764890408339675723671802511399462696794748104413069247899010115298256416058125393267355956184365928280100466096322218754889982780736895950802852641494499226413356737380486830882160567044498557139217369293652462768725415692145381006382297627642307140324175338878640337839050321255972737665810358745000646384687486079284926714472760396537333509979273964808334491038708917899141069745478951403338186280064212028430134864150938512433285605468477577545441731435156440632537179710826577500561978264822699107725439183859188375678995088115779605194727759271768678907916483594885674748376344794352199744528592026323486340294609237122666708294636950149322856712201752111316720616761660530338956798625568349731339306572143369946274031808745342244535319923884751095089862717209509033134177710469027053902622181030645005336900827243812114928263335108677428732599757645122114540414665797593916689901791273649072595587603361635691800904482399551798907578603544784581352329581259981257590027511178253901112046459570381190522830922808830741434899361328263796114334703797556865172167895793171436935930609857621155302038320632664686041722345967453225427458435892576255261607084608862649037478404731057975341802372981219607780512854432476446194735972795506990822194630220937723032552764728587724803979105548025639209296430388932675382803667215617386821471564204729997207815228103797619172473015269242162080309964966940494153859062626944357308617790090765362395280085562229198203236531505837170233431456801878167196291175823910592658126410034417045906445225645220139822709099251187671948322391383726825100768457316444563234761794572539800876739897181970549427730915051505055214041330651785889278195513089640744701778116881013203693361891076648485989232849112594450013998767878756139362798142207197149140190081618595565463657099494594849802644029670710595478308021942093047784074311796758696441497807644388590375980342783836276253663912058354284033017766228359711658217821285816387398701822169339438059759327296084576231754570781205894750952426783497029795026190456296985726290417892051650017761338460864081502101928253522821781430040655408228739210266636287127441988021556285349279926468249185010957004990582115997196203937910474945706788278584167486230693996947422669695557026589060136982813713225259820269309133234559701192937899502608322715037498462765246404369909057175759750345963348077662181135223829698233620392851547348654701378744908805284829189896866274976882541942722249021744606967015941624351346640166665304107938509179223666196630005373817309059442865408984896331587309544535625889722385914140881313356600402720750882672197205272908796799782503821599297448365962869399286773802521010087936568274103041130906981895086708792791271687631188791418690965143157907320661550199449592442966394307462836557511547541906524409423935842225121173819934488542883452135698027354469569320586865043265823569552249752637565368298507929462018957515072778546065864136895734360870635692754880336120657545217403071599486129220277945692852729554269556950205634739541315892966305677526784071413582196100170835038419975433141164979900982376615610145263768826927620119601780366139118493787175014652708539186860372124275623532364943600789380215215110446818700450366062764105628013591493462851072089528676452517184286645956161011099036220340413666104486578685783747967242091640353977948585264403132350868766589895879802772733524560617768936483993003634817633956534216431223632294869476091627378770120975534403254391112795285861497097725553296817657408894301044693889296407866626138595368083233343650040826335428366641158360936546264239017744037939832080592094256292298571255764803653945630046223273341039521952794700905908876069913312269378206740922827140351179775594238913014805798633903476154124720188147826724306517041591788545128782408346867739077374156137265620639317654970773384114226655987525683704805059183398753267002696070306298886461129162810411330074058791356291240822060171115825418355247274787191985509900040701963464124978225690791633890256627016358133990691057622063212317353627228811523579724171949965721969166245285542737485511433587600399408733312892854780326272425761795911455859503516220230157819274904641808339977630077661698471627891940289806258502090400803070390720658112906537275888988295527323955241308019135210253398421491360107245782913004659225243633549048558155280231226829967144629831611380521774729802600758134670609732167676584084768493233368173630905848846384035011269611425775509570041063887201647995330493766391597515324959996379997821885450703288462904578761264939069828491645370107667751033770632759520637971365059335894702641259824102809303301833216366685925669724434831253093261450867092851145610728312163924145049702880698396739210655741400025339380152653901213204669556104765525702914724454028480874302297438150102030189727266330911330089665523020348553057780083647617514813245491547813869787041653195970649692170680529243513189735113882246427809572336651209522117284891498214298388763262998821305447630092482660368363014291675358623209373539160728315483732567054241034635917391743674267406292011891678865418623438492087668891514360213833802524187274338977433852378158000732344286826416349393675248210537273981564032531225768851460723231190025868051305085536114137266937161574250101334090418001832426084403764613421512512905434327358410921076394913537825157363533296003173799381424168995621306186902231335206616238242502719519878167304903224196230771281093143735700152390655360052078721437839559787081679251732982674512878177546965781891466010494951461431597695400289525526185900954413300113008130024305453788048271848565742694726957214323222983862239656133422693717325129598060839368642070371707491580921999309470052009542777808664838870420291549612206864336790943958971116091954281235269935675038899046096264864376329888481648839198944133252197416891500492371995637288226999546924353580218950107633620043207728169744795088606870894497889284335214685317312072138142957285509708902355597285073766764914276234122219197440457859672958474670516966948952481109208511747517875971373021675447596287417352099220804255649914126840583871579642580742759372533583728701186775833322447095995925949660129621911631520360832010378846261013635879301637133670700536775267620280436703585343646759253608699547378958660630009686794376466146662461049712697911777153560716929491176671052484938842783603506118408999281912791138950347488289735823378343517415218245607309080148281425788370921505540214506463027233447921948180800718340171658410521766347743208383712691172062018195714576379547632918738689326923384234248398361072697455770154144285206687363773976181353308255829094280114770050432546944145334402236215134794112208415102501715713743664297626031735591725481892487582084295174728140351199801878349041835336146366047113403516078642518654796278468982398482787774538587793587936922639680719241295648630023694264514910564497118294864561619827858293061948261812363080761908468748538764533335924039234335970590692656054860205142010462633609254584058612784866776105884244237840665332547317587904447931496827950605931113955297794982917177714130824479472814908269398441281706707927857584521217763078663310281011938297010047895220210696529660263466812499413695568278188386669003184253519764064971234536927120198333121735692763745111525087019155120982943085940409910911070332134052665654602558120311394513864683263669860151523655173672582787735432450109053057600285959815917692903399948677531063993101314421419402443644955278454859310205069737565580829285887960624807549508155535207365220893941500313221250684105071877396998964037269043523554475558614550801762888847314650812434110697739501969936030358492851812803559214662023350044935132779053182480667450683805643920808234537342049908154625511345622875235965290967682200424479703348643015507063140854250253264168294522630022961808393992334654112641644863455659875432380180539522743717985473916600371539709640907986079702212000871950705541582047477431851954895178421783764045123395609776422745913187590727945095024472431558404562303668805819302462021120385852133834724668880809275708934339138066973168007234056385162580324901285492826992700679117122973398782305679926579290032123130426007260461733588162812075766320113203622307941396897653438514980596382760143897601668781836832096570490759339238181346204318349401730051231605725106338509026010410951800585005717264777867102005934375282009332463889690115695256944900092254390740265684682165809648063771471508146409863726767466251039307491564970438760068054377151614590408839181371234447532425342836885833335409271559712786586987360557249845556094465696746619978208485103525174574439965603024007096391404740442399613457853271502901736349683385602953262767233249897359304328853894171671613638483447383257334454289128841530319512012354722819664818751942323663720316132033810112435968336315384518032141072788238562215787587555962998821237484095141752426746135000079897082539456803326659876688773085804639587298042604650350632987918957755799709684801612268467193870807084791164551863988454027023810269629624420132641681702152093533757004207686437623918257700290576728997777961047880758586801548617460875208342233663074835922099285489960593771324174328841172509350521269345317278171581824282763350681273988271868293627214284944975320774457284533334921214978307641167475891614020704472750866481400938332560215516890318622016489612551706922175993332723705260282069714595982873707807043052675174612478798987742933529009497713844723318440188025028763552702667498130964804185133703665991915296082266892316920466507486899265044826532095353479986654067060319191005309755399423677969638261409670643864029385214705479683905325249722736646622828393218724355884012917461341940537032970192730036043786828387773545683236293422607957622755957542066525205228682396487595368253339995537630132987008748251008338387082638942286206248986513134009556873173340773675351789281409039677343042924623717656731651766882041875164134509420589153850879846533577029180976406036221537185793188210836480176372731323677724328845967494352561091357891608663786138648178892485818893608856127899214259743926506178577503823888096480981682678726626167973870066703249514605262017529253003314413033543708523921733298903830512110845261315561271993737414220241261422258068071959363563786897257743690546791943837282452289906645165176829590523390020954126496494867025028640662372978179188451763233370958068147765677708859809997643621541745927173571351944291658977279299406942990086427391528507351597030275753085024221528283872946149354269328941121815273469521222913993477905457274785910502854661846918111745588840205474203350298295081088014278803175502912101511249577804934100354743024393657051913165508810137431977960989767936904160706645609575901944609864990152245578728974921232888269596550759014168389883664472014169530233072177126711261775070308172743494677809786156920628505738293618640390094371741793544859916519643306121674603837447246168858860967822664747474694644802885520019524714704220404243150485577527545235049070149503519737493334013906545347150813886329634352983584626584270380855503046723000096315157486616041400588997432640750775496985906204879153703839065914836423391697309520083201361030116493400538275346961081838917861339850163959952096414848474793228190563728505451724293933875662002462760333034259242413870119270863094210206928465814372374615330878207745421758645168806470115020528921546558395611269878983237892140947975347076743722166119490673993975441300284198123550236985193008718857258787577025866929954059751026607121209052878355668068637226875478614432067224949271422306678107117155334398242705314380730984979943523117420595718084520772165993305821250898835307252048513189004729384885661239188417247166595183481275766591784361268297342486603683468575295057159012516189054410640857772832806838706160778176186615485560450068281818991093400847730212812233907335529193685590544365646767784524108902259834628104231438059185971769289234140650694213275944888934118009317085359674860777969234129010653316384239826335063241778855935321026278385432008644123368860644043603412260989412713866039366820215440498104275553530861852484376588712305540852347100170451814150715825508169469942017894885563069683557252985877215935448908344333719757486166247041429281979129171577629694562043287672895626715121222887858902583883033588382762127156163967638325374910170073386465040888795012115184562070336400812587798262045208438834500998491259707764084309756501692214703141259578167794632859694138192944725341742769503187193139520744196642325480412493433057766209927599707050347106827791397816821656533138982445826616119104444573362383803717818990024764093870152452794033904081519270120958655814848386966616981465503441177339287723698162009395526177647019715973751934959382906580038100087794582267273364003350660821155127531552868000719783342481640115641416857060544309323844761959623781254593415540369772883956153262037915731477401433604266561912547249147548504666097227196495305670530045164260098541242798822628669700849981804998549466848971332093820121088216306307698083145155783782822810843534161364173064716916616322610686265605244339770433351564621663400164607949315290081249645633719327622959227797451520732719600305596795748265807674359987167466839924848418049409651916917598648871850581586902403989625430646001980726227012355105761198991804302075748986596527437982829870930659871222002364860699606224785312878283251870531289086810792311584869645816112715678613219118614933379680584508657056474949492393881429830815535757846101370755369139886957472679177596273245395493082779408251566516287513703577384196044321045365964948295897968291941393134542837749975477621460867488973621950028585193196892691689267105917452389187729048272924486743605211539293581471685414227605109208948771007713022453964058388479959648794704824517733478021129683931261562957096931856776716608992499006623536471773362192484950867406429890222755617558994884174074696437419903577982580842339328358464315087226199264338381051201872791080646867585023149471002059450261274561877742185963307736967867719557447972852230326952079648674078788796724639097436722447553784789340277501108585101414620451576742950384926037367976616663308420032750242162133753246879818185292594959117610113869042522382352312752320240834757162653724738245863050307760372681404549389670029380696322869317566506805573929368738868855528842818029869166601691978432118620340035554481105492966911892135520501565804824294211210120091995262715100270940170744133743694748498450230599713929079677664261779659299928464525075136254939640990206777339406852630323415619054792182342187293863036216697086067062201113124671144359704754081609069464459886292586408263065382241743690314116554217975320619242097204779511434853269994142439114423318547916011523519594049862225619658609957588842639984864862884814172413063664557970987758959355963626198903238089513782820099064846084269894798678685747834417863314462016702897857731773103335615245723250708065332132178701085746270375218349868018409051864068669882886997348336851374108583386346345164883098691909822680239207590245103049362400351306960567007630621304226659553709128873691702733932327049635740068123324463940581676111949246827968339643550326612347826894331464025072992849545368282709065647638367925876364001324016278252236949162243392988254926796045744780542271341422382800252760109108859604296509417842808501108391674393344887793832214031922235839562924799258195507342026467122842504038254541929288674522718519571622653950191708143504940297828298495920058246516908737444028291428084239372923240136814505499156818309619433495022138285666006068768961593253175890475199254264055642532257213569436312779887132562381872381400443593744405745867556257339675437475796707750971409610152962941119631503030926918734331059708502096306007269888250279893191697875924323313246992029056603127976733956607101949608295177036503639682653878970560820372855280430725494891620474032080300228679002519118769232322078333967941256249063197328950794031845079277809510809642258317379411494470218458239113818852807753387488420828087894462595071003472692030896727578923537740072067392673189005830697776035209414603828838702744939411952025035933160568570573503352459147429683194282067231229514483218536081446201638262923188142516889514592181425309029288975208590704270151900315423753207138910935307006915188554548644335828759550798396605446081876539551341173111100347275152422471609815528186834829628138254281120899393438813382881107504121239880160487900078296520669802838121193386918429133020538690037593994942957027825008092703748962921476323940422385773009972929757157165264672104136250521987149639246191014257932624331187757276856626820154689108054036008660604023393068794958957360236550603449153553377258178525311246250615777491564828050283996510697358872684262471609067781341396596761262604505709079353503008762894078864757009168869231231392108806911529242331745770297826636742284553189488989504764575346860111591747488650193083023581669848578450411977185530227289803254358334986220439167327602620019496078521130538583815191441581452622141088049744095354032024560105038605327201763204944845559389483891386716856959744048402425258366684387181260456912728387491598373317137547751118307002503134444970710298146559698289628437478648159628908160779907283257247908802979929251091627657683498619838118196302894109585089433703391287599108131432469495200185674578685350380157747515553808569269369940064717420297279030069391467313293050389418051703450744485241295092933356631595839246960829715763011806945128365718996953621574770661854960765576870140181836915712658416454074105335436202734805224231558927606464400582545962392641454441840010419516497567510677565619294292194928755081893612121995470505938229361592251759789480873672344926582811817887043481963833607518498383991079869244364404550502957271072927933992860872082989435462576016877661450200513054753239005039368376084351977818907595173511556613162536039076384897722918422826867429408066790885862157909340444531866155615523109800409715361354744763880185958553866548972321396628391465235103043736900308976921636686065988508875980664734631050935155131938537732474933367256268994011850914752587584095278960968274062868432683300025133150742860925684823975973385343111932749209173948380466061020558727731629633000608091237197751133183396917359478821461555336554356008521693161548863051419323996976743798686222248968487404265805067822927771812110728381408821690977834898770560156680301921213509941618656501295195493215361922675858623964904064449462015937841997288965956161737263933492156525574025044616210611119054879763313444470431285158990667557413194455093486340007636392145313163963935051506907988290527160327643957169066910970686192203224572004000820810552468382154758102103272028526304605645755550468445871902320098451856413966991253061488756392119205766573932915974977720232176835106242062047527301379906158978952180906477546353938200471889438404773027076923673347450116761363799517110476228860672054961459231574937247365689952598237010598588141331290357019162515862538533471259306952230962932266444885075177068468099981648391576821081100538959567556601604662443775232433148531425346258331206864541058865364527178509956565792614662974200138794726250557442512744201983426829113703764454721756385808615279358912751796624264089902263640983365436572574701746114117944526805498571100542641199385864592993262293922211152916720584813775668569601018205877112814348038941765998745868989873438826121332068557305274540522040021668942020411282068618546928230564320150690239842371756396230860298698659133163657168433436277882949576778584050371791691416742140425021729087585244851175404537020536983786571228043395986573289234806406046721474345443981113625968622804731548506815058256280627289101425261896924524141121749676637051292401926598650683378170457606547123971847648060406400970250545135015756194210089882373846002486743767394825090492526325273894876944747952506870023405630397503707422694201662724210770806048580818630441833446619135377763388358112857544545316953021035484632590366895591599016191355086401130466052551558871376219430298961326069249457175429561097825530239294808998716987185271069737820646999948344028978701463630788217888627803561029651182221542649363614546100369508424771967039853138957574765897358192615478641974955554161843877481212081739914383896406897610541775696514181545755482807439160107384634373619680775601641976552696907368728632958205330713655095322484897363500164607507153908746069671060011167231722590088774069428818505053192397108621809913471431648298219759953675539584522417688940807972597640246624577368729229529631547798751515486987315124789058483428287948808178252788164942622961547732548614108925322611321464666691495844986967897087488588087250117405477408551843135125755937920747632910117723738497181716472325127756170432964140179460973266173452926697040248672815880317548342009071171259143020674463207744620723932672567964259294431270918248208926869785945275343542115140741340255008983793190066721710758939028290319614526180771272056308638638427781637062296192250830793269973107807058808893812205292576449611870744168726709827714304532283636470893308632674610763112056898413941653162281592137998987786600506482138160118152773532111645720409417552306031514513754820947459740607155256611433151183212970746758129769870936564817662384581004516955369078906263322908301697472062448256905165046525002110843213907439256238123410416146672666749212260130939876806776868207039946209967781717036394432824043788550502180688358086593407356988558954735580931740784047539275194203831317862560446425409086760265601301509676605164440792636845869542539972764841124485023649950529206216175563656542336212508436102198514711071752252201327990334642248012694400598515349243547846918906499179943623986451906235978219013967108155172647930987375622448655743202590562831205806466114030497267589694795437956283041406081256087587008213988891079219670779708359011384855950839534327277890376687451135631220993593258039291103159746350387087288067588470625972030112020296352409679576548581885173374201729289223358336819263569678996387367189613845984211961307716217537178894374489855353046831181553449006933497909053998012668614279479400563944566562145736564112863146465290529733743645397558369611301170570420800011531105365220925651453473359120809170184636352776736397453095866166656994445810401391448679961464440461567110596534995730536814075077865074313210589125418866202356429963727545162475095084909131069314713285923342823017077749142076872520104210764039517218244859695064382042367959629908311793957236106617776316471736883842151796320083020164001718672171944493861929176767876510868397584304105817812384424680546528809152784634349992067785756082440590132945732685787929922559534646875643916352756405407158656175672573954631675924884194077297157613531261793815299949169320016664587651116449510143448918755164829982048992000207244974640918683652735751025953914639135388897787318588543048672972960658315586551381410131943588554861287182272531601542434006971521579131612929142360862994433583093473650042225383549884132951381846208478707518501632879996502940958495508575403416018348272261504253042230467837852282444188462018616566080313050774614437868859014373752580432354535720452263887244017862876364220042480139008767663490829653083589842492676362270036772358488766775323976470245225240252317949138445519049520028027839435494155308376190751678107998787854335712237062074186645165499522375526011291262310414338960215988417799335967140385927773684034921557144858274322621954867983362516645894913828757908951094684903302553472880485200302033010156638771452940946935363805544457985575150877690680355386178382681388877370743846324949992856675650940311122022743734672709820237468023293992635251126840555160649754037797128716959095296080959144765549349056245263143614742516537858103919726689299033647115482759209652535321669075895816074750758640545314783315620233125401931273972716201231431525378931060924927492494048720240736575114475047027246250920030274212994623207582448988617050347713851019930038094350453697551963627885112061631841463311492234120652348845724271826270542982112456167204167740900025981669181660655400267070733552933524081911364749092095375993897514706773606856673379434097148614083658101198233418207278336280793641545138272268560250653134154752140948961409605132517794317504658355256343160368142561174045534041687403962880368315904426368254845411452438983153026483753166703240631760989402217639383564040322380086580526627012121799783440927938016964660217698902201189561949640502065630733607989426754487821580439595658719042888864322818813600398028696653511267656361908375271806740191572501869706348272136391584378314999879060359958277713080996806581112885515298355844430334078471600419994878707101669128107672600249159752325937133367267399875125394316414799205305285315894388016496274403540562678469343892450668093337774576318679205230257860898261282376979690077820871419621615408703179961967876129401213168971614032505694754457998040118357890875504824529526310275915661851138649912125112629997055671466283844169309238462694574271124012307689230197645103433010555532341592010277828354469542749932420639789252836980088211076519016988649899235817272140116855930697510931244259064884987063690304186125696629961265879829083080120353507470153825963689730460883386250498093304605666871849216631344627665418369727404956141165147108170559182367847512492302564820645282309640393246056720754143436271176005369741271368541135360352017772603906467853592577345874975717920042806282789960591388036184273754363873088972819664568209512653647000082466472560665948141567434421034282679579833121796758598664669317388594925852111503089597604549076087984162318004417766717857417951525669978707951628063632467490581589244748229754598327281188222628994975245862285112381341268275076854469968205753123511047596579819052474703507936811731812672853899407998729493599118305607193474572590633673231935513800600872222817739026335551033574376620625794724720915836252524471222094229976511027732608699892189905805057295011821258399656214345118736242877219222537023342646794102034069015453476598875776530728731037572382583110689239712221677964614908475856665069420568328326739508561908987361474769861470584916360125331651368853895533407217351733889046394327805898061484746530642077699495195299117620677944702718106473910978521208603278228730969832173113680146406421910200538774419051039084469875494007697240766126081722413551338354620176739528804135586706391910636571461391506873131856713969780405840846073073048787073390513828573317989554404426532301132462283445319647654253405524602615479852095007634440780700960225903426792041599169889782288757569967291495713331448026016995837319019477672671707199975786945830605877763596407224726294752664117025144696103550366101314910365989254307102111518512739829302888506686612945600017946350862542130543491384780790182613007041223001906325196568567022437434706234214831889585666017983217190464694518059771377172498002033664077070600956280969157057371854046359236007898489748466464178178782078622817542768556983151736921280397106538179584990170989488955211128285308591406969405028878956452916894267614349395877334857081493244378097225358696211758359797302094271011166002115065114706327751701817731110730499594388781339962905854633488696048490549661393443472750625903944856213477819953546830089145106435173690207277779256946217837785303609914537749007641877486574018068509656608123489715833987240190819856606938095031416463951423889701689374845457691279820608336096316606822601864638165665314299905260131487596882892028628445572889569285144511854601919905315337050234633755386460672170715392829984265381013487448701643100505844407297211215208849592393412763846664747391451955177355453478989808355010864515108661173057012362524227099053633486457838356634284488470162359213378079863736865496091061904312473251817394503564408302533634435973443713940343603651518933133371518612075060128575303977542863339473626903054011516755990578042558150037876912930779026412770512588569762033149452502075670261167641966740948057565264172116863824591243184625863642840575470944213034339137329702905461687212512710270913761490678317803191555058727057675595027047395331600181850667379283521529431942568413482737642428748888774070389681216305843649978810249541753971578363449693953253098139168183937495714057764945604587147693810890244271993323850317187270430398955133474794861941298896187935588460115452765585401819641563575105025975981821854132701104934506533690562086678646387304024219750586271852344046371649277599715396964814726140962827236018978343414226686828776199629394454595361787814274684073411134359401764973632791219736765218007214986739816697420824164032390509662725509112743906138592655327963275860596908726938273961808473907087326275112926157766907232130143849739371398622739076594164923616697719045384212630428512281983948448189022410525533034112772022093370119782567938372821226688051484946740060962670082152825442749577259073236077072934055385099806567607410011402855499857087226107492330963398548573187185983915112936041259525698042438556279639577614689552588596455570947835758419780888429032164725581416361070490494051822361987449718213609862458805465227577921286229275167615996056597710437848638383041473289902409618526675165480752240860214950206432105063128668367415382323198798194400803749472887100908564897443148663531745449021363795955224303454854052125813064503511036550159617215781093766879012633319174672707934788563874874775768479893087256767320755469089046892203808166836682151103547433517236032671256576254212816806157000333378860152080709279544559656428654660487143249893472946759441135454624535308213416212698223368217531474300739919958128569659031985919647740775171963979327825970622384861527694751766459966955706824132415548331295956094644779637743305487471797585748621817206623144607454702883033890382115042779809848016834527596914482089935499805320419260635420622186659880200948662297875332580290905788996380633181389881740362172262275854479593200758704426801452444802300194018189598499784825809161466184396442746668371275931694043945446127942111731967157152529531345392390503198639347070960928633350384028642484858516055094162071803070033700457413118508901380988167520014520861082308608208121015744755992228947532343568971409345466849544679189109456118904575993976667553523657350089768871038045299588869575963297587013040168189996717558278022053294992348188169662285063110528191641317051737215115997690587318589496995890866098778030008928669530836721399533630534289474758025421305579497372461684499718831642419720096677831750339755378136211371046970246344347537589587855137501619115858486221280312638980440344617247453713942464334013975601093094654122140412427767003828263593620874481143037605722594330251500504248085746844781891254310189039172524888395342244876472943245804414955521535124653213609527133206922997129439447549275382014037561541027333172501237549831481440050585454095308721991361315549760322307513543833555035700550493681063404658830564211865064578803596342578117465445183273319359956870387467328080181965772952449465298286327761595059209187494867315799997938095950399082567046515264768076948264867379928626421007378924134059546892084823527077123880216637220986246687405814832755073444012115437064537871307647644949911664385443831493606197363229243447023528918907217235984267421264152211305220958021851135540241009814185106779107567880431965143510810330927131016693234004677129664799782546593694032181967309991950998811093290054892534233288547888696327360140671745796580403100172407449117708803535745933754058701224528467020789924217250343672089454989041011299876992270170307021865070294200454730269956705369094121081856371302702029600414108594349385839045111549571784869409540570860981246278464455802807669509733943718444892304708435799153095685177259667443182680845979990761827614685940801662764738262885541228258355761811870762181751868230220166633760979081289742959757260470582716892581452298595498838263446712680669625245500079753532677606258924355696763826205983591926564487307447573184099630566716195997764224476291960933735906440343844678022191500735707062334951244320125299509765948752969029200335155547552581114681884676770082144019372295140496936179846044625706645435178174777579158053581184532152488845469598428587920434833118309106507557363618225696320033940973994074707716873589674371471218258558869831625959013617385953950751642793747937255524450438664340768505811202457151042514669656674345559281044837970103239843120239220567614600783098455244816173915455000336789368530527171546170072952718313777934404686230355460435726547947689781944018119032111422506438606272795843300669426397376982498787205903508414869262373508156915854029100557949005069109272309274695389363555173043320408267799260699834256723871534061404232167332050985731062087838566179966139026199660742512984353840305606070487157436691967099655089005202724627456558569704427820828857097012865656202563560482675242321698795528646142932901920478156972302210265071930783941157268388811971110617311709058330930227103188798569906682638183198217608731232063846877107112874435500318692603355142458987369893489587259518984837193663933994853238108063128191500624697816991768269888626355697510369538886887755151284155699384356942507029590630788032752602309292675696870459687434318628232347026270472088941132526790846619905043827124672366291927904843661843498196678548886548200092861984268483535079315760425097172802470218451365673541837852095980589550747785915068240652143654965801193241653319057083497111510177351919078868087396330601062174438608046655401912417599265093400797784668073097183251251404365628838713959877333594038971260643793463621570642697989866042730886167498713216683401707455781635493339390835584833493550784538753371117124562070377852193156765479704158272854486093772855225916850697204294157026298437152401384953807942146428912608246307803853970615692258657753041189126679079272557182286167908183058644369429194340313392544772034915817296555856534795119231936244872133207055550006207524113594932982076270887607801999742821623269391668704615853822198387987869222486514093897301921621454817998050460255879860108874562226401944658870212402648050982136044580754996927786999591723860338588302425814036344853746299911618670228262007876991817361095656296358778289741202677145004431182810412704765035843872287629339523466465526147117677308439604805537173730628308838304361280585747480857469320297627813911797183940296369344998920419420392704203059952090959534533175538651513866733107393850462834960038681042164194017323923741626038253359925043681037793654695917547756147866845610836066168980722409780040538381766690343643123718093480815833403595945810293251157323597144462926172723505748966216931040967667782789796447111767296036861476241107787017674995981270017434322121281032061159275110502393073423563237720986732550344040940693541050303438152220307450068897576015699554785081437193236533981635930739028842319456373637134563709257975083070652233502791299326993582401797559900661280661726491993750948179701305895363992904047210204508210817558392044563375084972956826026749058400470700407599735795455079931452958603132441408143281612471014837095639926903697463183656168877484806241095708460871946134883632364892064518472746616796159943887195050724528647568272449480491468552139706682349440223045709127819168951046839945032080505131413192417763586913854536952783805773542351816130711042379085516786558376426262867450508270362424479555607183390461586482758893730457976887621878940479199738277756899183267276206907081822281928973819943565946060234456996431093893585499644124403869597498188080356146850540810966688380024201396109739437487758952146453436260462089225933188931288138663302559297660747364359802588438864347910223771765527118273381638559100552228847390641598818120131185366464900148930341719593150826345455795127720987529169796409549866093331396082583024569464447811990357034048587339755088343466195336289744312861479779741692704717503950058814258874832319493123864119730223668084722587210682718737009983174211197013708241289897802580355975754293569346653987585806303264352537371974623348230196170757916305294885681230249534241151451220525334459974446205499890233792533060349036830540219167607673308623543034372133923290628461522632921068545808776156328084906276852713613406357984220942389516684935412470866364666882484463201037023523485748062668238398570665079577994236175126881453289932979102697198398246864110686939885343904842568503761456912465351781985227049445648848021771270267944576507405931340962532796605730205867849067293791866825609363114110194813321718839756032862722332404953318496389715986128555274087108729399731491246834525507691322917640605851163216954349264361171137931228261158471805530288956530810358376496573997348278559017972976590243329502757407630536731566093807375728828390876405470962615485036362930260431953804736565361267492618910094850736864827397733425904792768830274483926423230402708095206234846041763021408649417935701391667388185465096487293475855723678853507382853655363593586592686120545464699625923559375635887085905543972319812658774413713292311711019378420927381357386269805154196122418198077486452978914646125586185317278446278602841121220795652259884894897857608127886924548062658873107943538607488342121403125998953035288910391761311023134341452110602421435817242688035959936593186937859808142855611102473312819325210594498887744190307319300690809222608945116590389330112082658122553677225832591224869004451900950556198521597464619160307005683503534976079728183474888931392879712736446896726669941606024938522172987991643855407372008211965161762069270328704854709851560530508289577282436337117785538396948896978122138822206557388270036073277957886560097302153799698115684058444698500239884552305396654675109621258942576864662137275654392479801259877925283250448877491724547631244333719998387110815057047788926427938099749637444696520093197808215480717657423579527907846585157227243449355794199475435376848402964368579762879684244759175342292030953627161939022934519648721515575435666323515944518596191029016732611487856906063131453537119517838968709300922932738858908355856018658090596600744600775566438229078613914715470117405211500119447818050967448256713876191458355470884550505170288986051801948434490819286165000577653418531829665799541794700729399339234614634939066992284499275154197242226933590162970739318112465786060007238779804222945083327760981315822676559395339061931106419884937105461185380221296889238081943213041488039147878571964042598345639386610106287270123688451245119937580499303006165993668230084653462778046168592478687997552100749182067247631051007713167772857505479621026327164268490689287925495839020143858233653201057837381592185641265313640465768809338705180866707008756654727612698130336002266746579690105891822851844008566321089191224877116878770046676275287931459583705892081593407188200734660824167403122678044719848658700470584081207648926844070125975877402323475190708068014552197652632550227817926945408882923237763766289782044799081552957427269859246698596808989471100763406368800247024224877666942356384964559737812173576271692097052765111928635135817228702088887502388991917251574248569819102520673926617171469968311811464892269599925389947070846179678637379757961080602368298794621897461592142068632628975657210045030595823882809959472647924614877660395501630483070015490727000950586207269426465842271367040668921404279334613988464355397888628106421098451170607010589359623910658479685964897997719109180846113001112282045930666209109449623073866634718246188785655357070528900044165150037574093959752614399165514696676302302871919685740009550307323483253637052246001181000673526456053002055093473594391889428486471283903306739126191122761745556381467866183535640447787069600499592700792239816608874767340923048067515564114546948406592795372012625305496907570826504611329570694786465446337194879142004532609323313799234077329406666722390091407164000414713844682920180954085874030791037373494635016762261780744360869305617726717097516991203697666666637654867854063856606434141394758692697972422749256919825519591097976254092588820089986408101852299312145304606416462596199418124163934079966155644249250610657291809707500802220807443031428660022258062823493362427998819243139464550916196087369393934781697197529691110753323051811743687953274739584950140213561954452408034039278443105543106013450345644629790486629870323078719961286290691293297352235056823220642344743132179136341932487258258620901361346941571924945092017277249629760229379597992987233740461735226918639745952231641897185414915255633193947045921457285821904965584277096682030798700517104700412651801113251675985948909724226865234829181305664607659925537226828908562471851211287498423569697411616469610447059758398588948296028997739882155049211348711545095711383634774023950162066926513796005786804363704068895516594473772019475553132622054181722677243427152245412442469183219357943695728790775605069942736147236584604310645893338998644312519557476267618970424839699548799026636493935058218852008172227319440158307123297189971089054107158946929908272552917382435644892184577286565977949485887609039711181126138750833987611173626135544176713077937385131313308835637173302475492543305350778389328784903151766192976904614382870530293197402276640493648832955015938630940522809038290842304257849755282448002141169714782384320110994734444005472161297447567316734613738198684542202759700147889967928970691495749253318213651362108229513275554601791847876600231630153294051823039934892936132131543869886233615210687751572865469692814400265538665482613413060153062108297569349185751259254146956008136260131494869859449558269070748753760523053220284980024374981285664767507635932451505620906828453712420654127192809837730018111659706538982526171691300641837576911135997450565907011704102997574106560224401188277473747158124636864765031589664976424454543060587807952501304428531526367521193760889752939301779382466876879648789233021594243862844303772389333910518035972222870288144630359807978321423472648919027580261399903800109752313954323915599656044481566929946701674037135384433246786266577390396227005704412176610555999016380654291251105193097167665641458677508765151637804575311585543779734106626662809914574870207269918321931431553807800542385083688969323854122948822648487225586688445407912447599723296362680978253559685289409280510761755796548519912327658311160219272297490902451535577512579357886480493750684395246371780363547103889215954174082101646983993838821395005566090354730561919781652573866091079077378812450201062948818174330449281293249092923013453790698620565342092046552923421490533788310123202851811623535221748329708843394115101784370459537281095072542172199253711273216040662123706782328128658086092167690941646490772836359826659698705881947414918806556134408601732746963891130574806528359562669664979801646450230398828746726706631277480525947734880166238806524333680109269965477805224312208978858204950212441585204285633443914841081593871589448771761703619303775980785421682630637444845688545988439209667818859448444020478089532822924565659209633825472447194793150936218464238888873878883173347357618931816672196232831859567668253793990557505032175929690980711212836323952537906059976540851350684362002817334621519735634124336383052045532466134746685956593359609292326973390179937877791736393504026704925152160213276765303084249746827379490243488437471835377362367138491577640450893264196135217026696484276165602176628732331412183213310566338708799955986629932823399277248287762246064531090315928233111956330581088112853310619752939843816021759736394774003419711935984756560285435498327671126604679142630639323148995958386610929782789336520021068312387015702818411820309007454947920187557666371304983610196231105639884254370809077461619318392499462946934100047981886239559342281174810240127764819398046739689927418015348113604249099262688194260567218812658380988913320239563266133570103789176441166462836339527802736928821950365212529022744839530878824088071327884063743718829682075275053426972455164979682297431787204309385662124981673510663039108892558042750707148726086855803610622461323415300921616186088871181094368651956782093938554986153339701453848775496293063385144640709092326060763444607045505844621123445883112071832343808890894807860328388543400065432551834536708084711565003035697075266234744707747106314249263083778101197346291722027961023079945296379815659419232539897647137635433855501481194209915205561961351832418245956537364218552839962281537550633137156717576589908290973395523960421887861856950575931919945479548752428929111320134612994681480305293578179007772583988539927505610281336067992767239480448626971565627496304191845027057293156462495987858462123113628242865535227961951218726283661778210618976187192474778406239180053320282102149291224665425616071035357300623900608166556551479345153547380363389327620827488085730379266209534044402874192437820795745590325133298867830604160048388153315392266006675379039607209831375531439477779147283359691066785343646295277378401617044120165305958761829818157157267262624438504571441796956395626160030081205756551588120271188958917452827785080052218379710475644276912417052375807620661481519019659970022054631613723752424833653382697889830901744496341202225086266336994695784712393486985989445888764072462166457985751407352519432660311976806001081655743867329927907118915139583495922578653202234576930682209098024038768274918124959712184396403950930911197648737376830127688828522537589662630259149103625914560765749616016812284546823913557584891789600904518255056565711864536268741377109992629344209902877034529049858473076777773546182547627356131178581184792217011603776054949329953792555029753598347449547283486714212529797620776381043499070250259773427266956736990833302612405602237796060859549686735490462273307203291406921716468403235726600937211677555017810267318357629917830184425433043123215867335703555562470752190209652898048075046877877071796159787566419139285935002561580158178820282517640560673253725924164444942504154162099334391985815525905240963866633088284743115442604883341941064244143988357219878086425297792616435015848762431528504912243694118341130365399822014293705342419905296197483015783611776616489077599959493586180932155773932533285931027696879373612391674098973696853072419472399499954196948129532819325473987570310357727554077184270844207125608137257785010894910800469902885745551615556477018206147774595826645687652228892372339207872929931033133669351457360137275607402605912504352492745728099385044250610721243866042715791612526641572434168469407566892911511839466308971890193673418181361059439851846097635999617594599559915396948838848539757663448261281939514959773191591933965465508800295845125476288057437470148325763986308393098872211247253157623451514982445301833893444968497429590581279235658320543974942640841356497113859507101598428235636002648756967969552309955620333958607280814287971633289539201770137113453087402463734022306181961789145937794002211388717990910394012239310326596497080950462725268421676639233094328928439039074905995490031697200419406966502242094577983306499855832015137721886130768145212689193442729545171925467503888050931690559186837396034432816808630045027608305770490053513351630170385970742502521529830234411098752253306498479953459524436048978905348507431513841513907832252952567961625836679953348205338806242106123867978276033849928704131385216869591273399421533533441667427059412936250608883723403789551017114359867482721290281448905877679383916518761988336319017254674141926195600655260389563766668851406117681102226679681317448808030950852545344330961117183801252078451627657842496277891810680938733779618372288895664336731702139085319542925460325911772805970829057337724049902886769719949050172850582226885503791523977115725981721593059644211804658509953581236971526244295873149186659678897616981451128558528636234437831297837849015963682711045399948433222559262583781705211674425114416378932014683758283572534099808589979949208772803581745373130281407297397548046514271994291038452519377394283159656381400083643670944605650427095418160545512584110917385582075708088460002342671969761608537890503547929858236536158447696316081005530806367689387754292372162613681921537243454751000733899570705707078525048176166600765829452875988078233047961814913759019748556446491268873598464827300113756989349374971768023512099329787422625918399602657805003897822381991905164212144381676042836605265916821613231713211340330772593300707715274295763159962795117308917818035176249047440902145389409580492093797755597368667766270367365195864068669497849278474008694819202334622677749604744601555894623037800589388898820928791770443947375751519196416045429753610923473257310490079347975324478431146870416562692877144513146480653111821147998458988566619281320099807096049140586598140733817684744303721395616295887241042863996120953838585553409362755476058437850628403923708556180256063278939792439399177647163439393061189744505652080078579647466963211215696983955064478631939952628934114864880442216422569547905627344680706398648967023689302721545484838539689337924719088511697802367503766996300413220689775895682525085122738866013934115567440265380178396485838265975668065150728099711782946653550130449003874489742682713978035741311443429345268781300749864816161193095075325609087670052287428511822876273820013805912632496659421526717810642139322017724685861220101135805756805205042595801454661031596082875660650992861497887693152331303338832060535935539561695759710377299220541871398944709407283809357716549413540963792900235966746698394868315767043300189674861724969344197205134410695886015043305684759474678605273767497082009263910756582641352429670742638795591108834358407356101832382490682574385577908802668971267505410941187524451718764441515336514653400027325731021117648055914588565681361028607712335257071985497579997254137450623322433306886704298840931719312241821498727923286895998259347657039434228217081703438319159201847958439284013753962290126406669661340405712694088049044590847786745452158485559269404595143298199425767641672122278603007552134898804648683719823787385129707912168494268836232341919106515362019920896316469642610380966757706007220549411790982712476189150991502135185418285579488317626138367141590088866650825666031636347260122446602542455747884166844451225424628414340143500043777862178395280928464106563778703151660956755536052735717906638459398026410160481393683528857670087076606598105218514844831732289949708068122409254059001211075084592360304794028096547068983349585676230967760888270765829264194480975759397449992915954570360116713531751376686576856014874371733123664729232533398688095986925290332786226165354297171235290625662346507311477551885866552268117162897695044229931132805911118876186892039402782678708014212733825849872715447525768510987130288281261216798625486398527601979938088951840794611955526761665683646050409011475712762665254382060641966149599910658443486431347112386338070287949008319539350011303782627090423756631188585349983532142225872670304333442942045861331105931256738059075450229259248788334277605596071700632664113821632585869825281220248209569089762371832637871513173286514880916713352985381595375148928623864986301392212068201954258255669170442089735105631198211012709177588577338054413988728242570671152980303083707966164224546329657084112336931291741673016474427571745504653673396835832534164954484207517113740471228066478423053078293916733844755731626828078883910782124122772282742322225892143269727810349198891021426293079275249425176493558357392196359333465048495661647929940097566222626414639543582564283777213505658261250110791157692926481527712845270144316882681639859694121280019542719121210834256669809258282521699298662868014711439170784864656125971617001387956302986543332029974972364317831746945680859160868759411516167677627481742858818962654515189156565588043386959511930176629172723613499478859512134373010838592379259842590851991252180488557238451198486688187123132025264909319047736671482788091186992571314413743971702391125536708922313484636379785374151636921742829915404095280885301710709352807334077259051856406979844562168113520861108283184237775365227048494695917270878331818949992446139720412365752266173365688465573846658096272972807311707240348595122105198386980347567742539622653710527881610298806760216346467813530435010345187947688755441410346981308223121874323415485312916925785168592128890869999555054161131522183800804274541797849752236255876744696665362726326275837600400938421188026360145149532414275450924182950789671976083597551278755880213180698170472688467183169838741804059523555839160478249005415166029326946989086015563853879495289372094707819712160576852608059585931983699582757439938810298241946731277442783364487824306426206162633565832672016685254287751319675775952742597977227926089939215969311743843935607224275361595964410619780598932711043278345440848424281281599396361241008169643374715748967599389031817594606970162065613237260790219899925121601537671401085063124751642995938159838086001122466031540710276849860831727153330100091595084234789298130636356678029874645671198181694653002319405275564943796787640248180432708869233239413168384810508072839019673153272457387795727959592501201710804473057504491388470629315597020778948051725768336549133540072188635770551451421191326620751675309367191891009849524175075770576441506928373616472874799821625937725270109696115529603492391299355755435239855365010429817643544562287986640837039752205059252699079548285104764082594993648416808366504991042246790532395056194998758410880756099593701055431660197055885065363081996620119922663152338555645975540831798107236946952667297146468347192829815472534297026249042147988082504823620460418872961836951269972300163051195624415971388469789122600673084762000214781960920422676380444444163771927450982045477836411670086999729253536380508374805049432667717157811007455186501132695511030375794546147503886926857805294250489088973397845477740641619298991298316281273501065408973513368151422691420434770852433145253055993193054287859780113199422678361542445340919979827098115377651278260749403464706441942273525679120172752387311832836520169627665280263002807639025033288166386897063039893579940118969538366073844640173555683036946792418913316583049633090803109018646206988807341581054651363262045619308311128520408374676947858593869933205506276737634918401363830066722780671398581407736133413421965309081294743806920798371260769826901527575475230056656048279260608113906566110373889495170239403968775077319711831368817950428061298728566491062025081854705572247106301009465719070069270374946984703808936945771831573660800348674319903045710043195104206430889596486562169853021985235540883058778972823768034343033121707726405293698639576104788276456247966813090726875302925810872588761629270709905117148067083010168463158263906547610022607543040890039047568723428580284551408913401889996137325106426535917336629184134594250192530866443217244178136120894278274264418930954474746088528442820688030426901153051813875367243949756067864839557983621181243531556811803296841646289334240687769913981153087607106059669935951315953301936802139186238670757004184389166573608681407212670862938813778489188141461317361468510275209370216428070809361883102341840915620705507961088399300460666938243182156492489555694371152411091938236172667787477366338718891133320044022982786073184684591568864637843459248256888880807929721797641235523635880070236104740347598319574876248043559988772213174617615462903864141519050486742153487106421866849612347300936877697345005938739531346326603787767156800373953117942539558593212236523534201119714711606473769688092107556348860127978212050818035190261579992742469158694271026562363219496266702579333785430657207457159923019291343940590658591547975183851483023268873735937081265712897796912323772689840604928373254874264356661713060809184141407177676579144375356423515329660722633891222097401958639665192122013336475041622518601360408551416527258452486811207560453783272698527793391722113367451405694531556445899954980941242318544204618608514628608613170528732904465957119596634210247487846189974821937568205334911853244643393301875237053179484255381900522646537899737629833457325495894411766232155763072709023023302092772594165464817099589719337293832291204096514124473636601735320442980274172208206582848887432857611873253841293446316192486400152307364586263517474715566303136208525762228408619910196296162652301715961634101247753303321404521986185978091888454920132655170903949155314986037762299902556274829649763451171419584578410526143813196491549212508098369688092964708377046585515938316862475060648245128392725770361721165665911225148721910509469063530058380648704899308218357310492087498369039469184697592300559609767856801474418865439663181494130808998778920390208993306644905414635640936197297495143722696589363846260417072301804890530633529264641616830617350063791755675036449396095508714399263768022979814977163438184227418543545443633742209160013821537954870431576477974803188284215073669870569909507569643166048931100764686303753543692715375171795285283298561502835304667571891195373557149126718056799002532441701586288352499313201404652862185997078609924060611206664440794306600813980950112766063971583920721307788129978238333372378576551088860876365035833663726505187781360089428161307874307278118257804234676407539511548735319515600113959678216549945046788880476129783118144294726869074418374954308649466126328303592328858589892267741579167709489223886249949545742488513927392351032492979331018005247957897786679906222584977660401073574192508491321131091137201915970885471933785707572551938543597290998931580212563011288646399267899037041857622123647503206923638419954998554339139997196541329269734403760175253716308177352295079200338130801488523560539321501391197541849055587796878312586077110052469004454854511424601882237415683097775772118452366636854351491012142367332491722597962063659742195335337433379790142800016984354743396237734896161969353964357187186027481362887121164542991929882605882586679431529102936666649322273621590663249328279454301438718403232749669683250013456798316529226298302735598112297425447540796096881019521569939829595076796692124162031985946901784834735224011585185432321437717370267515863478886469200365273111209533465954335958411604845141665150451490114381050512903175400133617947326184476843508939752305931667386283177388161610099373969121020754368230837392835111925404109014567246499696246706034397750924848650941864871619097350916463969139714699054365461683110903864853550909630031749683945562648915808477749836116760699771725115677441704395838196400919614644436500627543762441144643675106764801710265399992232469011171629199093578914145025330257499524738099974224747899022988219430294960884112332541073155565387216353051738955158735270391648603518286763639692559785958442306814620907147324342894949992367699415922353364367356278470452907034326494846324101004898022310622082787822145818864085921817186318571614367784814859774970415234467080680981997367949263699778033641202135186285723786449634541325423627126930120749041454500461554389208478180558528967552806985577364561723425140377065901347506408880087024404816437857344657243900218026501473274455811889324434356880165796703098187322645151454690283675621234361657308911413049699179795560863168971483359760356566034645958402698304662041162380274917307435435391725807274380905870771647583070693782629664270112039324949209496068294740327067120991739406706997657665485014380468264406186243480322565053183431804661618869444907043810504755804538191379040598710177620677372602542001449507717339867696820450853027362845175612110975727499944095513927930781087130334084085988159754117872245551423862467699142993880148494979409829716610265093456035747893297837671253473245392690298488373440836688823615553231826887861454742706863695539316096464756604277681452074992910073814732785351064315724396977680465780247889593037175676778268330870669162444391852466462653908340793207344158759946450428517305976274114941126750744375478914077251422700743645518662226758022321464073025330766941719199766578766530787857566634451364666963477533674173025213390276735303036483725491188723992687012710654610380689509866108790678192293073455435136222401278442287448722164339780695106405786037411385532997520209765203487069271302341235654663084627057944720082285863415479422409945467167707875980553348032581014344417026303392559157617719533063540302166423565782771736135324431456649698004884428157843079642191155890975065910770740214655965505189036672193921263032057749113195208344319562915266069843596697639619015163690690481617326444644431487089991784618075072338718774520165191106057094316513551141779049000024253778082146933723968099842887416783162785797456028380576991374470143212333848941934275729483094194326593249820574521347496122286101412481291045741625333485247652431281501313735180825282432092519619984621527889405887103533977639075957691376476160352180746020146852698823050498514418123936266733075276534188906741907306027325811378536622651159673218822692961700693201361097885098131634546691253978832144502452292305894047179169715648133403786556685091274681329720427628642073906121450656069318490827161648105257953395513137874210596413069122198924981717390877687857594425554526672676808892228142752633301096140431314851060376654040024955936749899834413749935720342835706723669409996941451713725705302202578912862490349008600322844156035227526214317540587245810475683485378331892098238285519619679554695484485863080183707780647465182421760847820293504184024884190126919514253339285798656623692449020008064841317769870540044169795707585914823858446733692912883872315261941442006364355920085867794166261395915344838108764632602053007406887468057335281961808867872856570144573519187178079905268172027029125200568879413588943376359975589499208228781014482297739767112080409119022347288744627786140344985443759602649992452951581744012507764900389046890040825984164490489624849028823308140635762268908681599560745881318021754407210249015934435211707935858178753985816443635489547527456696063658021383072324057591680733146750215957987889975269625041985086399437936839135051508112970500636461322748106475849296468491221249039283032297029984000893729682198352540796554431182959149154552125774710565596168145837713837996756581667488287219600987098799291784318342201197590322109981273443550739831114690755394179452858342018822260806779507047395319451859086010593401262421241210360845144730679094172974647401333390708278627477699179868264947768500126344257443504401391125227374059964802294556355498031270786520192691268332577591239773382184152964252108406013019619359557461602247149981218443499554166760602231131554253104149766375644959641010125484963388435199943569141793272281686896120472710986967217529849982929151385186081860541839941344712563926138969761401235837763302217774077236463047169075061526187196314801630669796086234414694198682666941595367638566114038420658670614011998129224858496885488513272827282720534802411670751419030602112602182024593223998527175390860288331717346701377144559314190986064824328313024367003924203230073019761327204068617453141945601187218830318429014709206650519045414003311093366276657705853343583982742895420319791272108005977430987322151543103875362392026570075538142661501587165667156017712402846248565129918218360937964331540467862292136415536388632115545952609907077325471774164557836701896882547790265264522642109614382604993376574266002838594305573953959848827083783614421354218431059084053584319263420549580777395962299998287651074543175732159414183481764696150042231023582257237456047909620056063663707557594423815307601329977872617230649540898159387632477077090751392376270436233415726240553732425570327468193575337297809660934790907715128374665878761245083308107010608930289455467300324609689931671860904148914761343429301121237571882601907800917577967157160177711919660483542620868174953285579751668688795068682863057895065720450515289211002095815718299615944927714615505233462686787194010837429113561469607904987067648422365544871499722453793901727348035989575044106091483784729788962691982284889020328376029366300987652659002286854715847230274192842510981506379104626880215027611900290163361270523838590929080159627490877952771918397896764334077387380335274240979541487587783240136781397755433985872750081650410341108671202030515930491935031769700732988144769814839926280377071573627575798857588418233696459157519835250986109369903483039017721114730971832929818185286084917596006925589394295191876094290925248642871564663598849128235597354570556511662958558040223771461717785465518483692669827796986646416805171799979088707299489025373800848998724017418188486316553389999797713954865400868636766272859013386524000872681384559091961363899987600299952538292807751645397442839442646705867817985148428383164001818712498168043745194227233918693171930653267388719061024767220080279532520728768506408923155471524984758611750331131793329530261775528053299353332744448038750697923414794767415265830308883869390009647973464101165576957888516867622435070314602873449147232071660752174880500673647900173022070983941728007413709395376934845964088415146952613914248854682659810263733254518749454931288203688797371595760697120342134393187886173769156608658043924635629782659813516503738148577030823052131213638289115721940288193601272762657929978508341116997558786644401011574369824424576476923768167614195162434090727315594050834741118199340113281146905941776182901212888620446919915347242747328213561047079154184863979138637683921716392854894021652051705248686684722126700822657499425994734115306385729724754343628718908129757091919077282293222809287395015520386977476318885554520391586422476041154138567036162256493278238952081434391500582782593079156921409649151218665178129252349753987653845779008005921929311408963115162422213159690019463005907366612433990989236965256760398815800720754616815735835273380389992131407234350777490186488420276505133900845363711899456462360465905750200794038688366520739727239396201907342736062031145183211549658772299347833921987433852914434634512874934287498971862325113655612804224943036853965689707204953508205014118285385380498732797838808685235299604559307899446086292136980546297172241138717497790651201510171839747582031450834179967692008502509537755133688087164705631318503719206015543464732185816687493761116804462904969264100780963749105414966271864963685822037464827828103265787342305020871630445190955817555470943903369185383685791579009810044479193564884355745807167750616588746878231418337237244974719564882234612968958385189735872257407982266887658071700199695367756799085577243485647350836606117950384636757194899279973327937736010046328365437229071861650317111469613584803750678794512176183151898374274077390617963124221022283248468636282966002551352886302983105712316007654788015449078198700867615997658507198001816369155558338495356372182010454754555924079677623445305560664650011853226761276381567367537703108917207352581915499559266027587078564381536011981751253666012679647417674155758748548929976472399983896149074957443903561930165513664588104691411566296030086483478406685953086651187313369414067615537342422148010611762058362670247171739073822201005559956880133379697804199343288434129415522454739714934369232090043578515216582403483942070993266913131421594658177521279967055926770668850295899530095511812761298201330460281256338328260882115378663033636050977875069207508268175020320490662110432551944946341187304437237840233288395384597694591610025844726007450538897285012355108902766525897490263695058451940246271592099184775179269406684664266873830370198131052252287324742272141839853128642479086790203971267956071356995333785202984358271911687003330703680968903339359747354257442714277780655764296620828380062570427587077104254252344016107241635786740729733116118148723866630824214482740416272552443850396182332784143716455161553699431379711369830759777570144900068301864850327620829013636543088299955720907041098359689446427414201795699053257041199273379267721776190794694422689444900299342856969034240994369605385905468478670940629155801459914866942512276874727713930551924332705964988868435039052671062568598734731937065950087428361240204084435158523958620231026655706140034580145541308938687352920520116412579521501973018279843393861370499601498609670162531621711099561462166322373340500112634468583615523869437291559631631419787321808673369573390582041552995097285958433970047158606140897322636974696574473238959688983657026087278022466725874482444173711841722022530379925375844956225443853150763759185482863422900070955088023071118726484424141645060735812428171029001267806611290119509104997748382146225479893977210991304046909865744224524628151681562532055418188437022072394424646386577908276605796993684848241968109500095076541760429565116616457021548317143363287148902605823501619745687027978917790326689216949915489648433161919706850865205813370893648335986048039071102999033591937254520545101302394197542909920640721255180789247019695352097466311467136325168328853661714119845510948087907551936361687529713170186072824773403470438408076643035948264706937030792142227869698906591753740972951549698771030241512337423920545662944468214940691332435953934349735377352462759255208781529505494296148860125448077737663320383531143899425018077062519098199785048146363893112270150866232904625019043893196776573880708882365444862832803060788780104851853932665112871893142656587026278580730311842238555260482674605044580344719677747625924104179673089267988388692776810824489046989063362281451204358199378373944177700262106282137522736754922781251699763419731025157487389757611339504284483569722962662126015219614434264341269351944135753561048622842764252006753450523663887067939811895175641513233350167889724894109015271761599000937465947791906895872609222287016129498726096037390533057245462377511705146485759753453463097811823805678308194177097280031190762560690261914948562861032320796352631091793661637497850090643666488400449489851866636783284564424254847620750913471704552435883878133170492720627548147208666918418641417511173117135236088291181935047790366654504778212895196084698755196335611817798940852326935519230968856225533152336931717856060618777010640177678213915073947984744506522305893395028963933076090237108645414597857249908032839340121167916156807624405213994463577836283308779285523901666276749052948058842596832746912645266409894652599223416601314312782458351345153304505001748551892463255246826402298915778738910401904349114265310085177040186750654993157433964926480060296719355705802683435172407325069154348868212103180789744540190790235184418904652808755353855929430019464362753920821351740917859267497417032955386674564855803696902798167040818108796726500461983924248735076313986528719995883495690443725221993738117523664614234925230274780249308738907920634197197672634872500559764058595087658162013592701493699597559559869981169474290735963082907629991533596436664547991001596011454574556476742605485055764494675086203360814091689274393037768971589207540836746193218569518477728112620734057560602438287076931341604008559471719348084408642108997245040039455948747033770459394766972266007517051869589078533387680283365455961241130458047315412498578871756691819791926817732520955107309911878176791214263348151904984266647488960495652646846751883201348759137635388920238563077007976348213870267680244489256250225774157816781017447407929388846608054895948303216643266702135394293071064516709188585917688870795412371409622127297380885084517414505497369158012789153807005656453208614718041549410610832752623910347377709834757017106959909515916539281715683187102777652733430203432161758513694497781170356961623597717429442152753164433390942269409117481388271802960314962164748063686908975462093290697105033637172417186493722809463286461063775734708588727487646917434907480404435157907962386291021440306783071511214068529935038126816995240262657191479376855808647334759561684864074697016017452438755695705889801658916521447089103095219217310495214966324053089452735136906983067206530519138801554501181440643234693161394812331440553178464440565083107707482849447433968732033208344050461163564288863707494505041999861215050913425191156753663887311742273436269103857114886770401076753197427354876417535620690849196197907782967439820650300129650218780941228775622789510657373243854642572250074079649503427793760976310020101257342595741837697375147436097044070742998768760463451286390559865833901976864462956691540468738778172148648115249535035227769976685481605653661166748992393702893683262543174489411300656832611366527691380181296512638057923763337615098982299406933195214946614149580801474605739469604533977661749909255458371666452573555442788103385743356639298301386632708536669787935164607287782197117152836105454011305705941706366755797751361558619815946042672278677680141061270854407813164637143143490805677145687106301786562204735059887754489039440314522069739203573066039325372162204242804213305315021020247609891044981419311120888058997004435106619335207321328494026450184508195357983399985024799901315113335334264908723395310953671932027398129088242421427628092868619068715458533631256875346142352505461126965511802898641495576890249797782184079834201989527417145514578877412955117707492181726427247713276333612534368883876484973555609983756417332106119743492340260148287493718024950661019069079767517640858113357431331504021313079744554729170729553083832268262967692376817848190435009184177746563141868337997214070547583778851788332386959607011388502236343105614751705034146060926338517117831625828730328432578785133799776519599626027123562349275747173072325371292653739424458659588857810407138727145143914338680491349237189324011857683597034760011978041620164160039636183434416500720134218310711638959389614710855891581554392129719126414247130660272035826846388854834620067393588579085808779126132348768589125310331665793295392922058892918803091288574795730495334818086748163289050851257549198907694758326409609628780824813742495839569440987209868379511971489877015075126200263972751279052634403304769905583437614118985839552612769656762113327998942143716436078075459249223763241755214865099536277805781112065612287887455573088286994430103454078243124699685703753478731063935599953820910831377467341232148573186736817453710759765407993284397295788460010921476681851228762507394214202144481337645774354853244728276324026344580121888443989830700362492078997154154531181192071755962332318371381611303303474684140498880790477142118724622575997557189168347690247241460023118142120416773582654964933079021449948301182548871395767249361747169254231405798889105292081508774102383375379263011172085430640944533100201950499078808933936247358218960909696852368233824555674025125172575142536644434242145581691819227884694552802838094376515496635447513099885938134646014447562017872705754287689110960906651303628268415809370618767367787753209213146985550457223339248437868483189632580942729404383886045289236903443834833249662732805293886985659823334986997201595026150740149003915256082323335818052495788828119087377493299199878717673382621048590020285506161841142919890244590042190719940355297843046250542005363694865714486036813657932066590936755639498592267003272569083149146784510750186209562591632872342274568230509822605878774331143351301375237275423129946979952982287788679703070845022085765246340465785274818516972339205832166719896250138304889264342031984046754840863828485572873541433683791845684032712201589241660663135608576304731590349071930766491739945937574729762747581092233635358432275033067412560602025258558073360021985434071684577229367325209363747840028057800342980716180634093352325462477381027663147391713381792518236714016606683096399014401144074661420787327992120112864127609871787272993067365612431268605085670986463174623700664906305138266770405395356469698908550428843266078824865217055031297233034477817857104267161856946038127389028862663667281638850258430968199130869481710059710999151447342107569781112483108792484507473236208048390145956663152987688398656420023124132952683369890577156343316864021439680431524157449103766988466418614095225602634324309756995535631140311074172761989660285648115851649365821063724241996615835119749765832878622767119854753451165847861840575375857872880341759902716391099710424578510495125988615434001502706061986588349746595303949873731989221760611112869292221467988621222871307161448857240237990791288131650765514548356467128279106187286654589690535359729522336325326586332505491663741750835533250200608625435043065637548634629456983733453534594048145895681232081084843246275147506186888305684896735217890517480685218847798150613547609231731877143732129992244098907538349146401484372034241990150956660233675273736270065085412225107380750336107621408247892911475567757572954697285300551557374972258038807859546895691351549415534917412185518114429676124701608720141319368616984184570486455326122575605015026367068842943126855421807426151864335469265696608400533938175016019446211324453623377600365452442927410419604576646579625347429710043792041648198387210647018498385483769296419145246880740725168478025943186754585014470745657310773100369895046524428523447293195659658104428004341087663128716218327409662862301495519233181612792650480113426246137903168008604307499302977308674535809890312389090254402751370233060048057672525297041508188016217126236332516825810946525695411661438034317056774462638116894128039184128607482362003818132375163418184357216006583491838168044665683435467295645312749963958092364101013036925478626436581347305225427922506206649485896527347136713486729368531336731414964327578888384259791530319447492188872572853935172422445321114597960324586671955407754857813328388578863090354931628405720668373829675113929081487034190516206098420635132106694188723160689452259276934677225231081923703741434134284909315025067201049537789602558672126418831691217260062477585540854371839053719737570849923444251361394152729303421425393126473421682224746696987246115959582634495156050303116164890012671879237242486882819821710297407643300390576921705401355478300645423605536602457716581702905765833631174274876408779955449419158526307004877065286257101959484541811337412340985591773033081866894744763997116314841950033625922382201780730684964987969771621443828562816536396982892774707232163746028881958595086122082040259511506538856375682855897073078140385574740539679422109915185380598274338692744881876954644387763134709185421212383867580012104658808739453815363351866937919993254723304689128446018814065563268670734709254987775777380848937858632976792795660212997992508583047414925744185740997823454965747826738361854540553028975456456950208983253552670293309318736132887824430263027275610249015764325800572701042040592165628375421321074970596734346590113664839785669551644648137654835335268474847949462858570615075685954846414603422868913298113504243645792686749951723119406675818409103458810719659554190485275281331041656144466567391822876717035407684356192621395438424634109881961023963574110117860819895550344271886248988482512215295952837752646902847403742263105473352088010921929383999605556962981288798678030356642565751456398728696866098637355662896286331144768861974245469093901548616008562333962986607567055829336920696010814448175074460720383084128187775232359988947893872298665079472064535028804408921226290882201133805239676690363347475095103506015248222270276408008752716303588474065291927671051108108841101269291365337024475991064669217412438839388892322169031031785118079897100742786373530884754497064799215206215714853790152145330863461723635136194867698236464015962606634304962465861247613299807550677723364242302734288739666263450407402719148799488230071848285303860496982658418323831306772447967659775122015921568697541082353348116764184320590251567434471181812057606329444625575503031878451415924975537217860278109117586173223733010602770693349214842379535685147448102378929875534828809979879417605399647252438561339027002896091527948222486175599134249392360553835279994229165404929292945906139326122453481794941079120076206303196725652965515649433723631365325681464278749225393889151428725131163438819751150634780372142768672628046622205343383351032997807642252625619008578762631201780814444248227417484756667956954807353952832212537858334856009176038390187177385222006424060767723161612831205422014683068885801252933773196719161109333771001871090698846516324835168105785358357670320797868084451590094515525620065524598314823682012683707099549747368134904863461775378489936163640701494590675337423071783865010449575435099978263632205173975884540733089689342195330202606544189957586592635430674472912318354972342425403523413289959333996186665542729327693614048741350147258194904755567321836366820393437771845531479119629718903374774337504263243822194003917352013015371281790805226475319362304968879732136814644473494192777104733612744314255848681498856980498382269012478111953345003658375169144293529185019188172858624616041497744714738140836214217203521689098766640415398106526953269375353053766837135886946603922843938687767411044356251550260373958955353427988806146698293890886883293958278532937494217129150369537852533560358504395922144264402382864233558443126131243155454858750109805696538829893764860161306558813288352429779018893263090700581263380765099395847569722501226691810854896337252224490627006285705478464022115407203345408940877890292573428227574288455172518369231189074184647512409539420117333834643318365841710703041394377725483883459667106677776369201095829919689247684103622328459890091913801117426729157707386803596733962291909609722232201301048113404477484751466721798339276264859681751603960459930866811503371157495374952143391339319558952579689038936745719710008999639574466718280443824027889785649971842137919960867689111387345116350121349996756263837531460118785659162849150526145788498120553574736479101876193240421417679908918467772420782339342691156988024531560940565151006947809542183773887104506516771041649625646560651343104428690631466715734889474203123561655885361367449025881901227052243330791026599693589038509119943965619785955326103374804739628226619565065495125003216631199607643767744194077592994310129654819985380691804920947956594541517972391957126039368944926532082595804401774163562492751049445173089556081445719871038753598761136585352846543953984031403304963059083184452122432325213475051019188683337966682380688963483281732995276726631368199556392899351989765152508303787121068857714795054320223197628167525461891467138950419534988223942279370507407603885517910439511679882075523515736027567682183116271410004775290476020944225873420332128462337271337769831147181220425618549148314746493409355852224314875146896113990732599079784245283458183044107758718575556727782241461414223365803008642364276501544236600584050293000550156955149039797113917989651737575545486097313125130551411906604999424368956506871278822343046597881215894106647086502814163940286664459109538475459677441545779036462174715612575569988739631543147583252043399220028233525986122275586714645321687806942229037115320731465483661508040587436904243951463669215666404208857023899077193430382672553109548271393625424168691022733468264979110934851700621799038753526757072108958188773171650359939600306551937824594552234827176562232932965768175217431643425260786882247703020225967249780826885795924336296541419333799543340716499815620645045320576176366963940876598435385259515893731491829583624780244519008820545663838272601833359210495440611049887549381434669748294428066595719386187863317767809030699502301414473335799328657051213933124775220941007528731683786565811038479987939281508732656228713133296658661137212761461325665930915430792121983397417095459730417459183498549282868503713168124601734092609240453703642941884000700370028473786919078007504688507274152105772257013211559309269556500755429237166514309254686761124676805800884595418511248531327253695476278518659633745732944460641745228348422539703841058020192690570965856414978807716134666655462966031432993667889769692920898917775013255980032860535111543122998945527615951703256921394402556379205136106951820495066807230986917915603192059702729991230077857546102255553743929454305484658774387767457547779653358222372982149923815931587185274541465195473812824528239956305135140885383164456969203425154979391501564924231594869076333485089481838854755365122188648169881018251087487042413959265683099716350553158240038596639339811251530517654655056461132568587127662378753971533754320135749998827021428550586833172860406214497955807312802951678177033557363873890417682444327212316891474685584485034255855189506486920108628571193682200772622150336916213542196381293331902913798150306832052374941454724327789148070634520130447662881952277489219044579217867397762615477349985417289927028773384388280708595326926999445747244966971935924351277487861085052911061710074822867567537382046853053365710556543879534247570997365140936510681047596573773647237164119873462528236998822142647740640689833036792906992611264459417255073459113942504752988163087391021395150126825899015166557594864621175825072427518785150797228273722026118326373839976267849692348671523654774335301511699168033074660579535164956480111389390179354429764886276679573023784725199307596338459509915826765022826324689870646132721488455139352483806663982976445956999696511792633250747912847184459499320236634961464579502356547344503669925936334125386292081205045290041157770396502187373980510019161553762001203976513447507852824205326855516954214376034896417016593065362567618290513497659073543571664247352300891687334517498079332057887758352393171458103942399783845080401220441014793399800381278266136783240050402840359022097284209574000605500544183344630656811316266579058958877985992168520444103993467538241137732775074318707375905407603276545754509377603300536259402489968957579736319122716099232688807911470299744266455445199041310055752253363683246051217725553015891819238790696360323274724461449393359270457317358214976909439489130657273799758316493557037335485324028629644265824882635934568248744084306171018062926621676607786000643624506501134676310746034960003320008545719898628088724660701609811326210255942957558215181836487644740847941661708123246294121733088343726779145511984463038006922279260258877783655578913915428931575634344233967873065177763794546572223539272524176557604817584980444193897533266273701275686973590651258493891815378414905558040539683143172099918013018092537235941868639478368943505250454316091660651606114511833853462039559363949852345812397051329966064261758750209377505289917156061861611997994007869109952901535627612695667345339983690828183048307325963592945763804238269421544352403042334817178283561809524016126212725476422718007939723303872309637509149667476551557401191255881541308000744191218649907604700969979330795815209388633403104214171882972308157391419476448808928387024539705882269757021408806045572283623538826784995058460491396624573831653946332543696420601065598128309998313707644248084086715850369487350366582667874578895997903056693352669626731438174325334579984591099474508074196969366504460770425347006430467380395428827266922752712976647359155117484442027653457668403386170534854833836133807269351587985658721559143868947756835965537927724182040497181799245590837767256436200967317973526529748055472611745303298399570546430428453660311344219737673912752636092190655594439421628360957069437423012362307446803329930916409068022355124614947039501647586987087937431667078732079024628358877188862645138174557034137831646286731750586712813648006464756336963130759266691297381591260618165768908289502355818326861833837794457082695122681774997880995256054174243193456933422886290733855261435018439349132009636994976131823314769904299516918977350050089345885992314667438949931426070341143711065524113060406390255491544711419483070767990494646139232904994299202631292043531831695175325806064716790604101955491804948227053589989996596004649127349183487001057175924706872318493988569344107192954104417656264462334196369074166260034276896284835926575252221010213353710210560493203257924011032913184061770442420100724163285364961990519321714265202369911542507605757770681249839600962490856692390155237214817883503964296459530193086802550127460298538679061848524049086861206589372038890986060171556009863866489103633158572459989335201264380077935745648606596301133845773343827899075473643761096048459949100574239285013992268614607999377957966363065867392626628323837620933617982981423394300737643259045634002261372490617915253653516229899677707393991580785135860739503626606798409236697059241764132854685734556364384923812033292677908431500346197271290775516456846637494356446637950095296953418625022078990560966384105372057280585018114259633173278783118018334412965604172294244994104363500306187439394130695139358805648421808163353437597523363976405777678086601225869615342706672871520879623749795520124823270793057904223190666739350053321940678888017806284284505747061005423926917903114853701062735369748839617754266404955025365034702390576298366288406520776108401594301629103171784114411035580978430504434056064996347725040553178060013498145116406500080163630504867383578888006943078562898551951918967185098416618285820882830105576868926962518591082247001201896916425472631374906398544701902585910789654337377701851985222016104849166478348928544020645109354758071663471097656685188122379012942059370011121905977584995942744926983292062887356357893166891121193786403712732290447643216803054680168767789794108530762524395365936986975634202800024456951691597474866033324121800403528361764898709161971021465234200252459342921064409128088731204781266229770146067702474590336710157519986443015364406859808525342144226057016980197685144373288027263668844368036539034575787951787751715713792151752712843506325912005570778221566509548812540770281431456197690071929411256885538034525833029931498695360378863656899842774980345873117792480357676001039164019708772597544630952617690779180871296754249247452444443217973810565336304063439105894477981527891977651215985529210108781989621525731405096820718651815553529901235931594558075206423176789986060942882581760505864206793310569725812359992863255513449641431030294791913640704264014726900981148047076501141650613891632517879998422376484406898848316805653125324855117621426319509007536591440795073754591948034263739460011434696318259489222329918309035921224829683529261378235515007371994100376766986007590981569192815345607958828109296654218964974847181532483852936225412428798229090927471036158047021428668901279012641276653883001415022453652960944612413350453639824162158103681218471642504022427134918723528089629979356066883724265092260525039221695643974334074849861547028630411282474703802120168610371379127747531830619457330745860382875795404681887855816651525693707433574964605877010401051641923049240739196402482896469983128273757769454957860810081107516878412639347777791948556676331376302486897520622649416400885020634774703187217538169313109623503082564886473842610034781934176672510086118438730504393511067717900462709211064271444592514443755187115455555797550624345786365135615966941323337880844034635414984951676020795181924131470618790062755984698252777140755510695864753048319491082809202965932512910465602406937545377045917153401374993300196909802666503624233265974663726489669251008959115266147675171395485432691254268276332010281005311472394946655425629294109874482537069230968319160577654776566137969903535371224928621860110111512161168839350009254170489502726301015324720544511934422462539992464707956588512407716022236439225284631209437295501451620801585757739400769877329074540435978727961414604845702785532707916095324803875219354150115628123913275754913377255170374227690693669847579741705378786857350446032256392031457502063802495290857816640002159452781380506208132730994041417432193949230763419276675497763394304175990681895545809370619793435711836852586632426331872188513565883340528463496312444259323527019835228062919549816054386752327831631499599728274663040289866456289280394605805567818123887188150713735036369883240896736166797369831480023440739119336830636977577987868129529349916371164507754729821439746281683078857028684411789184210457799028735905708260112374118467444857132094457953102839677960517896253524510623418764889477439479854486198056381584056517626114962839324928819379296313561925084580756807999088077150597684071333157072532256076537165402626491841337550338431497465363227900566218902269056046068864833935840287066189966764126049081010691626920864808523265222103764921823336814410257973193500534947330213186949070284353914105051869687984816246485646283550171528783209164634990696793703445122124197059733801770017377919512723417742480435153062171686224985057099216269997430592839455298444695120694257494087856593914875532712737188558776464543347258005893043954014950387656416052000020059512365290911661377860676899175733749680214570137607021732936160751513790920625719303120961428741753059392026729660745534737438222183084670112564977699133526369603105060186556019610251180204777803513268318354713668792814529864075275551908415122498402111565482391607709866337066196376534491949776864868187465144006069571617909212408525560596523007035419543335174357543372862305034045277138036090504298551790529911081127700244060619530011862903352914206957994561230573404552425722286086172508652663712282450793935860256017754971685451033339575973440453568807604288671315119243495530923296050140639091115065812978960505762470802439378609258131790752414541057627203245296134971224274130112568681215247475508114044972449622581770048138369626518610451921139695208805814578209200082281879874683461803891041829649841249945431297382540710786445351684661112133071557417275810515693210961672923123330632782477869443402146291740692344921585388482821006849499258482092587562098993101235298927375223645552272961692442365633373230873748221722520909012170269051982100742585020352774645927685853709764264268243515952738297450063653118949653853381871438418435829764878665270969475054106679597083610003365961916342920622413821924165379392938268534095639471985876607503226858398878159929544722317531232683046499569390766616667582037743384775964021847966534928567584093116536380055668105169980874195816684354617743994846068030550134496594521316766422771678230034954949965131375004619024856805982872687052873158298088975548243870097635967734815569656807043579531479674420509486340605406326926703130460520747788208540817128601971098938334933677181572591817264307085883772373610333204684473736362277633884863603145405988659847365966299651174465955368881943516071451004841526447477056598077461366595806824480282394080250732890347278582971160490806111184500924263441016647066417809475718815492631595487723860306340424792229936520082835783841045855236710178975545697933591734892127789976885186264313204199372678126423709565659014146149404560964023968254579036800496594165193175769010568526788935540851239275631867385743210103626014242629036987366950949615858506750283515724677724936969828617678302863566028511419511422989358461870501577351110662085427009731755742134081063423514064799988949492936408547987752097135572468563707937719861403312585275644205878374024601306327410001029992437050513008341486857280318328931560358549876873403625347080577896457772805301114848968092088564992386357878146942894252763576908155301611194734708909572067170728186826177155876178289184662412699375377189400672492698782585833125261441437476289389536360624063871243031941865631567620913122065571369115497663885671653718454361676825632410020896552540164217861846334920461816328223100914883680778621702327440276310629478258944889574666324859006418507858990493094119086089014472725981234646136711259696371624334950293833974275385053412937744720107247506916182290297662499821866978755690517645957340613262944126236815936824085813089597671401617428414527015041346006023759426775130886320909949787010294551976037947653430474891491128107177615948699600082075024665529320962828281114103460857623884322661985823114439695203722621113104274207193076734494948057122946343280380060874912138595503517554214546218537372941998036200136368069569683815220994586950178220235190197111558418311777391917785158251411534203336526825430505630140146794073908411426843391460331395852334601157678072740290878881352327919385933033046250662592672789489948859555718480205370537226318133020696397083699003142379330854512536911111912589328213637345833148677720205298941415727808773905635965933787961617710698493140896578366323121278958414094534022399720058870153868756584644177134658063089605718515159653453390452116195505556774086286255962368181288883446909016918119758273762446334747055160561001745536314180263340111426549377307504141168281542212294356845176202651790955034305536025269999364068509819565624999144865741378246187976405139555485779767426177660314402005700278112251576245261582659161062900760439282929351038710157638708771375329709936601526127187887076300002383866758106046434655568613109725759423217640832557012127853062735229363736069624569252856796239484792951656906462510138122670138889032829085558782952482772914256159359361733484197079197403611352366964429880091170783066708618631211724089451362850454007478513323913236392124852248425365011733764855939855034578435015628127855577649080652597924572073773330484555192605567694534248442690025524307972040828300589598774890349943933711840735257950140825169721401314079950743992469840510770006727914413109142363976071733632925441678565871692906264863851776609518048411104187732153212804465061998068770997088870863029490969586024107088430202323718366665554894890816470797230098482761616154112455124529998484514859308218649714158398732071383895546612604637548832096154766638753329893680689309547722225136931709115025163198380913033728466310943203885352715657545068538327937064862124757410439434190078471767352002741818482161680106029724938958899651771538392645570037321526383651150244845599401405909725781061830493351866504232507753759515099538665934128943897250436020445094864858882833272172972138393559408394541497918027197053888936088412861680608339787850823304650394202783267386006506048912583561951528616091557223810732876761345652393678047282028179496493332924108772404973538299942165388988540454608139158439537438764076233523266428924575792608393939298637430155686716650366303580712267521515474673029098241020520951313176900743957511740936137393484602629314867096087491432828803090775173685269586134727500558552941434616851310907323383953071166545192302077343502385440940962175881008643825298737818856117429486721596978756294867655381429855526212140013316646204892136602078352414873300740473716445238880608910953451228546165523704715641194617636742867227326109271560805873136185373743960785992819092782766998332194585474836013719548548869706384835385345680361732535944814667103893867086090367605830886389568012778706945138321859050016087064006462830368539438491574611577677438506289603737607544041923287857750618663880336909824914175988193448445316642519762962598062339857154472592667038693584875725590811592571062269846907035102864390009573468419836748945731006700406064187768367535573478087569539005833709808800377750183178036463056229370755774412482272424566948936493974650931407534867804358667219359763399033704659983066532294385494710287249341026087567025414038559537028017345966512637701414466326660434854751922499914635570284625837876649893084368674118295332090043271218163696821663998444041901262178273794893990619500538250495771154958411809279331143465073218498539764745699165298106398558903486136113901474383217417000142172151021098437673150194881962456283135872059642726093814670341280163963662911178158937784781260678573430523159965299979779833782759492365724576741290498058716329331107043886563481754177715101039950384092314201941753525991235494025800416009859326584891158267387273589965907120703805297498053614816572828772802775741435715326414554913236566981541013432524244977387971925847905202756209026198307882650966746973739199221619583660646149420389110578399007943651710498661571303582251745435594949344194832347725926914494932091338896822006007081618917698352641747768727465242336966810623386621972670188944897878103520729439484841070283470767978984158385032990433922331019415534101867190713663557207696438787482899119359325098444691030972829453463716993372276638280506192372161769877567804497675473648312008912820826676781824668896292811706155764025115595942816866125375678221820382508179643388772874908244265163141779602347697653657358889475660083272844345111227818178669748528084809272036959825420372332173623585591276611680848468859564267655708335191268004244009933641222279364800170078744852533564029264240524287669688063186315992344275894362112791656101550351881542392384469136198335294496533456122595874531489431325181227093936367270554323681547639039148990391734808861087358439174491434780077482855846405471115327620180909185151870275839989021480255350490106301358312317315894217896381132577318603679193389260790627718707814119691892540891111512411001157396416571991195791345407188644966031984644049518387526148570875458857640363448337934172271012479147429615547947070911172351079648842516413326001093755102173774721101522581009952417919521555251329316506453786262209054922996585734884309012486635911625648875582089534734446671721247598481457571894066871640117581023811882080941628841337878737146402143394810899148135614955260119180996557827437988212935541862969038305051317504056151560953101474731396788228224923003717191378087258615201632753053687886136570210285421365728845496491835899987841401554734632497254235524669703076190849246871711322981269436891311141292326595962748877776682304168623068337682037489492516288703574002667440574981151157729617181336404715640251935190436571307442823956349438258192844318192378144344744083811076756357879146196767888248087438012218529605232845873322499005475795020596837591704312405032555763369045976074830643218427944911907452664730420654976485379898639319825953145103277663180029805190329740401292482075949660757007100204825040546194252085187560999925301054215938574183006855869309895405129020336088086789668390173428378962627471211280037439311530042249285353599329353773528280548174046820266746953971059109293321796460447035698097243024804439821184727646698738743969948106798057861422614276376371125620306130553063615815682082810891193806214754010846857235490160200919110420131208749911554957315359182200413671383633898445875456473335423882672400077201157451148823722526622664428094343840171007883420939068500866229129036213231696907578314205411210643536142749785019867753583704009353898846465783647894752940334493121518364252372371959611987886284635914607944049032904225208447489206660674421947010198879742274298652546521611250507817513129788899228961731422119906505977170590042350775578821556784102581218472575212159707497429840057454948332934863579855055728646306666864973989892550204756497624525368112557813279202894000261030508018839359997406148159092691120707838744646788046676588297870760034331800898977668870954844788156189106196482235373435769791823292330325635458797115204085918292151099029861379283993205620237713222556269087722864706687836835903908150606950001066414269463232720114599333828896792825378132933692097246372732866393844016893680437689945848016457037011663086789177539244735509564225611068304273435871216001855240055290119143205382176881209646323801321170217957055573322597961516802171258254687699376726206005291283372216088685582576873115304594888733635399007939462048699908720474158735446842153835331917901675397049723579038575853667764228704108872470666105416139831081957674238243098825208285925018432805208683162209421473919068155903668716956387020589487381628296405801714558770342195914109689603231254520598063003579660550495391317933965766938122652589040735942815994263173817746355013506410203691276642759077516742093168899245147058274874779676727876622212959859464838600091131206808147482905262357658448435747533079429812837571372185941398530681708939621623741911855787710050931637193793618405674549942945230386225848239937810783075329897911360894917165696974140182812969465147769429123150788533093196952721746086489520218258828128038557029133457371689946392493519295121629745711337164495776693330348473355519011384593345776422661843612646604376367592117761605622236701955908123385958012650025912904321143212486495563521098958665668343762731763187402971870975364017387959589562574544652481635901100684675539968062833261374716685996284497263162967010271864296732564766185193615635803882003420191783774302422629379504598000395453139328112286164251054944457993101597992081079267053199986147539733757218085234019528725054244308135457182429165785598653343209835776262380662485150329209292895370715327163389819986537037595690581189288722293667931335435926327195863533766295758065652090240604837601963297393097765149577295304552972512875129134008420257702780316563641950919326501611858057808764395160567322890501949527395411568980661760107815316435106345042625214838607293060442405874831277055275782409422882756661637620000383088994477141309418319965221186289083875354420253071957672468369718506271622350275868384124214860334354462461603201614047990281888445365546719203088458249159512003824269600458166557241896957958170788775433660860909614572767952924978167312708268039939164565360532864923962321860327451920221026432863787730506886070838377160010516209422207870810115396590278433291937232656603431038750500477581286867094147229836521715788477928959337315878373481749273682242274521178149444865883760628639925471307422502016168614133544759954151139484369453748448451185655108936260036427250262095619764093479971404189633933567031654225063897442152259788384492999628244247129077643259180766420296535218759228165232833862601294340578876611519517143833208170389388527994994559370097289483855119486293078784302951199695309434195130689943915704764303513871618903520075454262366152002114354970649193886142213852977423094169117013290624412516687999637424308374532557924160133594402414044654312247252927666607895562778040249196647732529861233234326680014984836043426447143810293460954111732947671364215082905384738960492552313434446719499474790038648436463964530221143481688751861049195513781237741417528200261594439135681957525564982498260658619739288188873759810626496198070585382026932497495962555195910900452386582779682819021740261856215484331278574280399093788422382408900050098196260550202141555825284233008209708021603082951022238236853486104670430402803228659907096402099603060092686005635194215243452625904035741431567710855573106466619234994487083194109774553436862672453277417493098513393192795387097954868477142944783079688574580030824370694023967904653714655794841618190774078974165916673042320464003002587198754385197467291411405029644643106238261519247957820461286365020382173917184315679599172350477666509072190864651061360741696859457293900890842823087751240297163870967585147306286456996320249054934780102597010793414529588576522079493035834760393575479472505166456792920243355922985196894584621544660583876378000354695575716984986197878673107403678409221308435442026681087596054174010310749306317221205989186807504194129472939600470453210910303848701981536067919051675494108856578035854080353001089579469728819888725201603864677983857038021419273687056047134882777673771148962670031206864634144600147684161898029923748906872543852630430206474242757028149712262020875551637010448716151547842117054432321249921230834382189895714085759842151047577780131620450974529774668014574016858056228617312502148564547007095093523583835337282271348049717180542980460057517491746926577065526201676021029339527593498680887539048355127159438555951359806822994133035740878561086621107589117086508837957415717567756092330356221175531411426009890433079900294492611144627630450552828804317626614897756228737992488740083878301438734231336057845030268973560575665492648610472632961607595058842212582470048406457560155229325749309722085704404528189805336134285842807739835772341197957483894722293064215252247767783421959805440808867645319897908022741498153485944568267298499880170047493810314280960112506585815047788146940783637121522304127319622490100101804190017529638076917347854464353434932264166692609461155566619294555693273608975565096224437749510313780078287719530268436411967523223924705096760692022779254189402797418716946849020391556898025097361822954993040891756255870313405478663978648149428015762739609158247557735685257270707020427112939860874193033851038628565620058712600901943028754188231870236541054727488623803842289367722834479254416532896636338789676679197851773939487814701271254983401152216182454969903240687584245828107717044813810190156320966244171411696657567759300176257850431893513815392947098196609531035801476355463605038263163366810387976503385762887861915508221609541689377335022594033722651510551889922071528605160460931286571826820599127936524883143657735573850489742339368223785443778515519563606266848680860014899275688882362501627898523123311686591182251029559649897088906964022159873454921184940921358242820026177332425655571406764413542247209593504813516949175536833618759173611796250780842695407882689564395554343273536574072653041622026528155508926550004235238247512176504444183505173630036887516437440183204959435764404989305809766579937556614411831893136464020415188014389652220200819511577851124911135784382421596405150983888376060707310174084754803684015832953086315998471813693398482604161832764594994902475318719524770941070635173082055083296287628834294814222190312860180368087808245975779774739347728179009598441323759362424240793760692622201845205300547619586431993214394498363699985921989528393917475022134377297494440965063524716040909021432107879226787064372410869376495292952841026220657345687597914991470885629593077142323594231555827545030237762775738508472437729462696612903764953161164729637576610245364475245047797006655778066146211373606307271882464460312442178653725408840778196358074854691643978916727191027844384127975066716966662128648087872165783173103510181775340160484558669305227395541558065281369647404871058940760391491539273623369195956852842242147246940156829460375894457193840081252422949807112300316836880233232610283035557144954932086857994393144570639725779254078700301705189990356984697652259717704915334170827907740814148318296765873597344511612239547576932846810172634902620203633403188746670235242053535593432922051484482590316799495652712252312910839972167738369677075321799424726976472652023042637581002949607913279217853042217064184136463894989446680290041581672602530750450572088421168776013526871552159105870838275647193803995338489628265364262757555449618444733057911256022474783389022626842435748293343150338876938061225224838982757659411295644110446953338427402881873456069191642199539834915313013231485254309827586906920520145699427596216073850373946788993986659267262985467039976361567966404149566790649011691613186183201615711134430426764347698522136104322185301191178896114806646194657385792722586313618881566520951417746248755489014073429305686645363340849201503384916206681077823287731894952800326538173492238605739688922781280512627895403431777415078608033943302851965457792063880006593581775978402591560619099817699942186684542159232331073401448822171767482318626352908892472180993768816949888597073505008051588411292629854952316736105203817778933846091187167877771141933355872597953832530068467322771028764295658789349878015533203663432635167496464715068614646901081771990937261603589438295611363068758895745396775097910525146639620282999219723418976815063357802097417652620099159653055782691267085442805760076197927546438700349219204981998657421280834818863847430491645821854342266638458732420059494527853864204734263586767315649165217577761494966352239003073472889118099140553147005955219901004068783100822277968458760749762309549162784827375774643408000216638959202048613781710994130462135065865551998868688549192749425543568408240154346444635718445899555037655217167664211316904284631412622817225196901904593064386975571209037530485814574483826087091961534195296228892127890453870588057820944107256809078156205126789998802997716955727175174370260798628177002071757389150266588355218565849995231243164006052617268401414441926407261653951401091006675725647279163227628656559481703952650179282641825982655940029664427116146047521482153029297754378701265367625863799557329989854736749517305126882943421269153839290633608483523221605033073805444643594392018139548182685627002339990529694259513260288403357952607624753701707992540346692599757608781974221885032158681382395983630635307057805283226710699583347875422363164611682463665573813766370927827271050917293283848557386553306806576163353993177145859384322581086154128044455660396634405499947367463127126566361982749626582943498809328580157764198436649336621707436063665191084246936176530665885948207671234051865512322247111265057841804506872090126211761820779431605459208417414398087730385426026466189813732435445277918977782523907724677733376364338413537391155119210971088357185726765290320463778310786325840014348522851493495294909249987390576941519731991951589511020141893393218456486916022655655767475487196977806436101113460643399691980746382829528551722405919090590450684546045357248233711860317548608585083629332410829713993292168142894992330041916864899125109027608970283377356722789785347212496979026819235893188270873031721529900359926240617279951583911035173334252213526306859356027031216515217483370013172811240622988429678344701462124674448674983038850916371615686303527289035839896040789661174744470152103000606071312132666668834371872878053580147391049522876357103945257199306364084125179243892128176715881830183472758792106873648962859893171089846449992923910851655059199632360655305924374248733796181440110910657201844271689458444136177706994853644368348943496378670273790667274176242923467246385877866155560328854284401577231843952286920756454073462182540880158946279963934833757719764785661243185176190826825481209433427819670836699648951948928976510507688622958551957845244272480819153294335447961032708685572814207616921414965407565596017335617453729066473506593215167612831405577281837127091416971716806859050134523731950211994361690476147587662651518729393427361139189829871490265285824703024070715891406018833390797832915452066318641633963960391287079816500535747355411001413381966072477590980982796894680724883944281666483739407276963621828471949938311173041099912171189523226981901942752069996165787738073940901311457031725176096394916437323942069566762437153023823562174615888565530309660257237700135853458466215102760018697442613145331460420404609433103407529298666825500962625029091336983720573007809697671261415146455907810108214721769416163516685375093394041443033034550075032696150095692947808553618105856026967430043283561209460238439839325325344100981542422561479362693720177598070021178400824683353156995453920073981280650729604598946918954034395942758596537477039404917560324117856466908059280926610824355688309142450230598149227453636559123616584478225335714633687663729824711463307117779153265624544891637134742057991368113339970652995352054701429193170207381445444263685695085291007226120667696753243223775111292759233239991597693090853112657603181753797325485393327936164022820889793703287021883494204413550421943381112011757160112458687219600824209071488434008102539461968166786106430943857601408039394940694743543590771704164663247187757297181480400224662064975050339564796724685491875829209242948968177359951781860541464513193880549648879508653405371884684668572665720320575515313598069898686097028509072131812458644035927571213915375049164410112380586496883024638596727723701396918664941403116677121610512372933269362081524178776656546815901485668000714854488188966472271748360815349734831397228650784174308420913683322608069847506772314806101109451214680143721347743505779414796145570811406683146347061652783961152865329329371458786555429071348758742546218485304927223276657765139021418297614740648931209485484012300966532389162171193667669959426893896739902948822892379199371389884444129738317160384018458700563242175356433418771599766792632211153377160728285334004537988346434505032764393787812042173722597889659945806040794530209665942186343400216688074906004517393682516017387464708375801704164475763600716275374539675248286998167314298367781453037616029100736659040310243431935734296137302372905662827927079448020680937953378007917935113419634245804348066088407051710693995743546839145326452266331896534560305424880330629047792309922672667742071274614131414249953858019432650819930732295729995998366615088894844162493582922894732920081413784880954625129436589973882517410956075219648278168978546244329036376031608800607389666542607465174294620908249797235212222361664292438582418698509887407977344804621973738406150583991174014489619677376701317084910535767531270741656150868564030222491474151605321174191210259301084741209723502684954008502999487768540731727375452225976277989633960902556660158836465230472328838465961273305722032633016460099671326350719281421588944993580756095411746734247646931387499107632313905832617844094782179007120325476904950376963189607887666693966964924605499275516104040958312150343766118371707888360273689313095978332037907207651584779192761804900447154253266005637884579832648393188735771819520074698603952361027191900087156241945134966791868798738166120718852869180498830463593107724178414619163718100763222580449702690964713853506321108960408378726193853922893218122815847036251320025419282085652560547510728493670411501872948884237499451810708503358877163974087036198195445180344573711662318817706048566167988903474138628739148816087894287069197358484145130610782874037258524365329507404507697277255043195417562384365677905508989019694352030761624774250293146198226494391841552613469494415405223706184588856584698446409723210871112603319023893648805920334517753262415276985801669623469802069892507059538318251946046234159350237583166369087411171154636258512279606209589038807660917132793973975311394724132969906333747694674030033455175278085281975834313765282092965602075705132252759633640471321902297249086221229300698224953091511781329740544771553289897088885310776028013514077550463673081613824945446360982801770853169004990874417763898646876848443970245833068747380305635674236561300710579712968295626184146191266299622415351616178478214871586732865034377024022626866978295923630712697858561389979427453030987889764523242402547401486224888489842533410222687536147246231196106026239665433701641804059573679478899213722780962612958277861394194746928926163869984460624722189078981077944724428877486154903696993337558519422775340797725757511865017086315514462153274078632176785167970341694203772238617780376185244770932754319091200886768250853985432651872191185966904878122883878509797487389561863584123026488774791463032819649577185403788187869991982433042626734374800741735445218539132128983178423972032033530906007984468576289304817883623472870903762835951421117620406024271739387072000357918351514718233177644443452383924061782412686224871635671873656614128334331650579179320792037283757970520100165115958697390713676871416894404089954564718443297444830164256503651760822039631298711968823478451502867324668292605643804594562581325798110626768361097778009506936774313648171455508147980064813671465549061658753073064762456986760218172499683934998075984579117159105721429681094067470029214332948366994496373718349958248642303285177832333739357612423268223883299469024113103456073924577509555437481332797945583195391935061376629438311496352249023535665200091880132755459998372543052494877024630290338926179022214128629158145418774300906634652423822073553706087810341604352246030893118555916381099205541028515166598319870564238310951593782777351378361235917137045217601559630016470727041437217235354625170269498851104640221818818136441483911975652853176626666459359799797567869528561687609847916620651181716140712029642137438969374116148369804080894153157914034816386756499352894525155116141454443703048462410924611818557285599869757399611512998812064577375645067863064930969376309609496189464362941919077375416777266854066921412893836369594638057793893345692899431987179019840632436773033500907878721084580004518123977866914028986746758922877720130202457342799353713493058127984994653204656527498363484490349046344393979682544558465025285136198100543424994759422510320134759565268686245924223519316347117459924300208490488537802655069869488890977041094477737715474041799092017442533478973049053691300516798543965580699739913027400070429214043720898888934454124789568638430891029128290882916367776788260752202179294241515483760455048355245647146488000250850900972784822113609207923499237847483298615326244590294893183663425497180802772075125908957226706571816828892416031390027299117138305756668251201447299166892731481475718872735498494205979258525795151410462572097447923695211123054242400733571742736716118533142083079437067292796608484746843330806349492498323733226153724538929325819579034452231669733311427492231496206551177652216513143047939329551566745362457359071598122321375071037562360793684635168508437294783879554054365836462934505529031318265716077981485810637890659329068050775780360088481453628144123250122608561193322100691203449990889572287231990671633138449483851715804678749371774909476727929925233693829805506854008837934195055436044328972952166153407316113697958222032996848553317440141331602840297294064919814056958905206650123038924860185673133050302843179408565954735984148320465603480775238319127676539843520818142541013815716984097158449319089653973395747253635710822618900059527249361525070375315479178323692663512867601866127924042769451066113599573857516994166143098939186874693844811601613114888096854095822898281233478472431750885154662912682486353415815062854103688402917243880845919008631536866191518547595063974501212983217941278619833819336925371762372842707793689164760445384371091482096637597107316346223459781168468125813607932616511123123638404023022925965912586747827704477559561274937776304967487296925404572818909964200667342401980929684163509225341559074279600638637163459124346978310169852399992708531390177075738812809834353584234896106173336544909019808087359374136765374410027385588071366986314775227837453373117810051737527052702973896757706697517670624805726595478328505760748312294564204677404147292983751176792935728620224126694426424067758791535212557288311179712839802090734929231669714674216358874884880885034019087507796540658044199114056708392063537388751957701258230566105347405028422709191857475499431871969040718294840741640554594776374945975160624654892505677863779739332582954220174897168782731077544986143568547379980908691614389916725350197771587678598332427814571788201764284534520775332042711824334095779121384331110024327091308552660589472231239643977686505921640130299813499162890843757275316144246328015120629171713331133081872708948992349660289865066945824016006923706665415781562564304950615595314423488004388340621975257407084466607998455011635716413563804609090673066966042209967619557620142853689787594863492383064994363505689173880975167998572800377518322928972399009844190840989131971556339446676237594597551369776110227446311991614664965604987297303700344789522490254132907365400741693139805124520976794488735371225000113772397813146846331657056131993710941557789913704566752157612961040319837205923540487486556163052232800850168417302859895778093543968899003783685415285808622914447716415279904584808693072425651929594116335305927346044963378435955926756830672537057738161640510857931270617089381301252388476045285088983482851858406466273351381214140091897318925661898240607333940143660986562789723611193541291151498983174872385440662531817933695712113320325455809706182695893979251926077657818215109461755911568704443114786496704774417909453596421354082205602375425428370371646166068509008544031345088170159629481115313780486540876939670940418637066553334892917965274086772529819224224317601623331114500322465470369396984056134291085835378736656609549890116265065132963598386846838377623074220980807536270255215476799965750429501458967960626724094089623859164086038930241099482738117852508319742804917068983238719181758076159431986339258475371185848168933456740590324537048933945288801952798398450567500114310703350305254191964810213563002529586615689616764821981119607538357124693318338208421997544317769142581392737281895236314166337763234764100584509051250576892221257209950380341973430866647696727941035212682628733103241353842791697627795583070645634537077088824332463779226057513104184543284886806868051859061635649859146672110682169254849586823652828181727286600881883819299535666846465519634380606109761619608369454739762187375729911560352107252739450764122825277603022402381921006355806139317868989042562596263914890597741031090930136827857886783490697475281927607700744488409264188755989414886047692049641672506283353718112817672759315374631106064775413891234060006007251608119730758050408800819218948989735054161285006080864763087800220625727597977353673500885221590984810809161497782870173364011747822594578396810535852819739687011273281994350163699357166042377956661623396923662775150400659726745298202587697250773589541274882048648284623901188580661212199538190207293182308181817361449681630124136844415548689996261631679538261067445550625682168568869085561551117244310821942662891462712173716488130423650987016276878821777290075513456326188231994190392317876369237482130414314379285234125495530292545222343180686962940435271796211699307349983214957135612778905143753245273003928286534336116448169953436624590310118749521647378154627053117505585261314935736666717338440301914977763116167359560849057148702838758923793520990409672239285421031339514588793137506492719554650479849826445389568380434644519006569738666962210357016262556434079958193272085098938991405497747680357647563879906740904832951002045138814057161437774558770627351324098893540490765010832742416364684584566293361088918743278987669667462753439072173099458479596140193803758470580339223870764729406032118780888636764666400119776812634577615705762228219229566737575560193892291463732673702445674129879774260606353823732615989497139699869476396139238905739766624274517151192782987275499552455413871733871745944406384484672204899695317269483546641119470600463070825455357729041808781703871905544134399795873196112670170146927385337237273765702629667760273827122269960932513983281309799303036122931761556394853679806312960738108312615258610367615728374238491984604502133263939300845861306710161976798410821117688186950137505415663788672751680028066441186337227294634930230538027326253566448891384447157444136549726513863245962172622810962984969043686935731596854789862725199374416918210349665333786045064268851933355411719913214577630492631289501123757892899985058413970930719034347117012748498025959083155173618185088856381810109887160845430442748896135260787461201507238394394821078466729233842156384831787360497084557193204350412056982160302326511414658284388135763654825001253125105842266402907093732516071913962027915404002455049045887036908267161027021797419580596284810951297463912047916146810036341053884899463495036579841013603421520823342826640131689349355792721389164987593262738324716845510468225033896330281091901517276431185596727868611164696506043594248979837005280439084108204311917029865625942970564140525259585163775113143317410956797287944737295705443974762341190147397198868492173642955302573278664943883801993665380591477379174530319756033020895320467496274964142191105467645131560572978114763422888881197825660691018490591763063322257540741262531437310588990994055135613623453474945241380320855261193169590922705209311673006324532904951204321059086369561016245527080198832492159435586734413989792921245421780784833102664363503021636786085139474366135222822689499692538431705012701646504543194568153532785620373713194780795011143689267894246432584497910411980596246176285661625668600526184068348474381083340937340265093677859187358538658526620807371908195607869739270714187415263816728708451299030961617454919806514426859334901237014063378797813809082618660829148074343868127840155208810326556842413211937826703313865238432756579195966472464759088782042917946934494474589517131047019034559021732080218644617373003157113799328157378118030848529040668571487058463891156117884435796641758132089029333207520020693008075258582549212103801133490153538486065128741171739101893848653164550298143922821668507555453342460494294334905710259196735531132642196037942229318041748904479229845496278743186159446659422476628722242954525727660955301247854164099403161884094869053173677977619865388587926361294180455142114270366093036251953920578080495705851449659108831900617301515926970224302049967698234485500652320559544670265743724141766921774791174529597210477966759806423193893359837864865200064734710058668842000011886865018088034100856015382153572965210544683350367933813946543456617425326192746794195141773129731204258326478526951739622737065948935741926016308430477576028884749116103357904095691536143941643019724928637484053884258773465024163623048410651192886569642142518416885589220975055330386528376467800838649323252354267422360276748669283258055687274694380359524450833718566516379296954496243284614504274739584345538516621372769536108500097528976175911929426678148028001430131206506827341384865237855730215772915548499383741268593978809399885931720679412100321874589627483675785115095830454182725848091035905216654277143021256633575866125219566614333962044767876169776288154448392681527052667101000229819011918534040125290536045162098831741873963207029666925942209828613116785171652248848128045465050830994360279451053236694639115270834428090046396099505938085564105643683794195895609196344118584061763482843672456684405093177452540116645263137082189930146007400963322424790624038319306222209285162737815639406748129676909910252586935130977833155775107477867686444682714394137933749596686799291583875965365579979120900507057361538505465236978440497025772127797820120609042503252350249484152916008812899853899502233240331896597278088745769971263877250355699759292409246539263954647140351167601289126920591256154514110932606886618197524188136952886283985883312888112432189777454427940989935515546150020140407264224269853028792384929609363761362861491919676233949642180666616140447102021198096993238139479516606002087176328784281538301773421855630813425205441849560191809062498296836345196445830211797605542204922513626416273934274846307152866697122755078303761146360123893371871635149104620581661116834551093716640328021541878121447888100145518523593849291951297125907814835590849017973801529609620298075247257876371414008198013867762353472253521075302019658622151947446155220972873347711878323234310896802361286069962980894732690720011872128439963325024455340812071471847441831586864778087754952360770442151591174986180296892954804903496704807918287954012694266291135315755752391059131484956218369980430150623285890315585974039659577905339527063694679039894384017792522497062787385279766414506189777326161952878668190307037529963540054457645953140814476073960525605434457684554243938331667608139003518371405241828342570715631866813820663028956843983172439597315418242265512318219102082957496288476685680725115169552262209909868231724818131253435222337620375976407240998238316519036629704615407447274379832375690896509912837608079347517291033559690513425375156585063058576017480411247084511975534770320183937892984367390046284315369317780516299781954151887947712194346749385695203217841297122555058063918689650993667900952396579118664052677976129565826989883402408569469286983046711679539259438897146078537655777882801179041774236588135510969450980560796088658047041307765183880863548805962124261764907875341781212479084640125605832946578362802984972384915416746397065294823753750488404837022850763495667477450594814296911415234149336331917678675681517995934808545386144369627302592801610706891143786805297726354620869512547571793823936676187770937262743336757553915273975848252228993229298845697794480482801119433976433422886371872614772447976002691858642480289165438624566819889623462187517974095631198790882823737420664925012899084484445460590688401594546047205188469270645726343346665106241264250831906592157125041738581017699321538782200893820747722489317113414787787268264262282931467103727745913307227140892499433474811525928449743489559518842575833758174921752557896996821044993311698332228446581251821502979536021319193456491315622613419820637186107192442215365391120613082660274624324748504724599169225937292975101416494736893383998132754004929250978108423523837707314989361124532519319205985101745676182311931876618995828225858138909443345733941341685913640793603503939519369183917753024779803147746350883305760569890591081321599719262283769115477381911868655008404915624955182315804334673139641959723215084855038057109469662744092680133322770956424604571216321849124335156755321614322976355864106704314403704567466705160975519718070903153980194874067238004430016477595340833605506825288030910644282638029010984215825215136792619289846958176233127403391589537900943319374796211561664574401205409157226821885977648219894337408970496404008211590506534041308107989092722742439239658910393038431336202859277394820619027080895331794176594965435031307918976459449101239483843052719426065741770453956978513862488308661340891279870074960488015262616332466677551794118952597403845234728118061693089973811360743804141864932864836363947603376365033542993551374522393131499986207239510876167760252307467157021557376631285225159095475188673486942244619957624000392495880657402974030672898942329118320653574339265920680254170409081836291294751929307589413224535147196885483895266223766861400747319830401444327065896006656341607074061527750992316837935666775532421169850346802665630067153468428458645642976010666240447738175986586235802657545599133073350235915642484811762330587167376899359818333276549823969593431592281606357345257911009816656652505364088778416452936134427860656064177852797538290512935158238509716243996988713823965882263975611404691855142727646992321478345995465921624270755434529661597610278259522563710006874915244901445263812802022717421926966136994158504793547207621359009249516410105119630007171597374164645082009045335241965845323009573669150043258744274136495891319792530369945404813506948955889736235796117943175905158492105466256485175911371756265906703753506941187319813456481285237572655599528065162702075135143711176499997637957578285932909464675773140383605958642582457875782182224255863716536168172877378182726274212041900117534535261617286120416674294913391123699315890608425229071271307123834413667043891684162713123437409478961690156282614958557385370200854543216450726199598316658725304094607347557410907285572501570127070696359935938475829286208276845512210226767408264328839175899398533361264003906107651389659741636737662321305852980091442721631671108127142155634939904455741814059358965560926796247426876939319786804761510413923490458821245478194849416149806045503321215541282132561822351619102061175683947076061425327108644788437731325480065730793976669653558922119562505672924493714923980223096695429966366767724728026829586787779266484067353095013683142698038753324017319556066722444891923439962048718817766437878425019565791483388862198192007410468831200137715242668986888302718600541129758672226206288874322480898250007882163058720234768622158952811961893709348306471493572284271112236560489013520637329722859341239674716295205907594208962815364009620239474395176649039755211803967294614024010462982171627324561616249762116222760469349796327365011714591356628764002445072398323654986011731489698680111422091750016402750521361612963892089218444823797494232021230911393682127701324646389793846622282599331327837295122197925301351592258112004700982865530837448726629908871762390091841947823617157583370684879992440425189717318762073725920133836635346740790196696884185662273957250155697848088754532829183220183203926658143608582365871566622801588172630026011629988405862576460455169539530513517784686271974884460601974463639092258604564628964113566348907897148952654204259761265563185398276258753577126845586079117362624399438333623812243554905913273551256374657621848862685003383317382456027417660043402575675972703735936798371936713616610370353658633982879133381329360308574864094030323204242848779545987701435477682783902001267729416163071509387132752773762752444440297122159805089110064045777255095780693657067555050633335742559166440986374962257837675802915473187906640576122335894927035004865356346909662057221212498061004728101848703452490186618025227687643442115020554001824111915657158080113368229395260731357888246086723579433033855448363309990946303793213377506401763483133439343617193658362122079028069671089264783985089164357383933810646794053337330080881333177801310903324160167758404690590013134758591951614001308732568285451553930634384086070779368310382781104876112009259639836010221763151849361405017538452333774111258464049241778525370312260459295813597651485197521277660740023139177184564910293889169237791948709515102197283102550294916477716450641958574510727783077979937489292916253984549282273040611204831548878723796530505629867851568298790071102905700956180881311574586694700961637434397563079828484241709852179609844319707820963932801346953444556750280489734206595253911000184353546068906475529186160174558111083729518649105366763335321636838022468653816539821387619075827268350019920851996760585266850931908104251945523453707387181973029772290649589807708236146336248442882360738612436600937371683053350590940265421807606714197744926125336693473147842211824536386757852934229389189992266745469301349327180062512019578219817767727969377431451291318759534368856122809050366138036315198415938952120290525538688468760454232407842786270890889116296638011905185523805222036887816652492907858651191320458896217762049574733560718085138572599473783875720253135326535092147330745945208822151344410191354204898638540350810888307944413242462988029346282411543282271549630942412410141380507398466631610928411220222106197133492582798066213505934757746496579242704984777696889962026596975147531531218875539414395010707484190692552309151832411467753629206407923809833534146540898652454995378566854996691368262349824550104264728542526027885443798390436204971927935934241143626018144075581866897446656161828092736475813375068017281250732043606733145352455601328258380757415650711471196779888749959937561903757386993203729393636774120759559652490717253596625386207673660893939865776055928331955877891313329086164114165152228133010678387805914304103507888704638129763801858960973005634761839944101529388444866784636551261861586518375497818344280315906915103227615703809908651911689622397929145585120933099697229599430294730231556928734510088852788918258821188258146223710547020568959947217066892654108409362112856882407716727732788616523802447799545219548232736986509920060539135579881390101232688634144225379900172196652341753707129862321393337586074441396808929103318214399502803528043280634767894793293353482533174598010793472493584477917033333531719960125500218158990415303797220487637852670571748887154782218212481717009529070674037915327993216664845464767716767160576012266582848151332226759030770206042088083220292185411853761956067846345308064299049166778901619420972260029366407273475543755800577480786168762479709457515209199715309309148752651603495889782352546497567259011865717488803334298463671441440455477111998305775497093862147282511744904763186146729800640509593008955772338673347170526873091933127154201500360897836327654603404529349989671523700179909047846870764799305438407916965293008056183829352818918545352958488098761421459288215939666061114148621703976358117696793689018607083823578913436337358988925966909541472844841033239982787125691464528569321504536345608849707436938514372247763416419467603142992499216076665924163159240733566868647107107743067515906948171102119900210343772231322602543780521728572606797116474527757055405583946039774824361241377773340103040604086792938941685988708653793346905621907077345163743496732739640252443706201892869538411627405721132583214084780041428740830974385241202161419696312506119971821154999835676639112110617972307053181586981184349907064596316779997853109370593682947593134650555233253524190872723385174952264815680688873867432817832525581367960414731782844506949663023500548539202189462987952528377383662930611167872519042841891769174254463953117116801999492574879368594706220605521142337887061564648015217924976621947865551362512095497613016343261348906279251628629029655544949647032132556702738316783133440513190459919333682119015060177231158276188867372814487929563968242865590678056382214249884264618426162627663004706551631388929353856462855061451924419401464519528620396513112625014991726127659845556340324643530123834045709050618185698860050817739675299526646843044648968340252378600625863291566040091927744088447199168417215431310714680994025523695268854642290533194646327924523291703569300847352976009908822669495920628643574382442635623017486382255354208247820039818660767784041965417717927645419552394704216925132783308133767563997929663430583356811164716615102265804892064923583171690125033855198486388330298280215549930455646725406456465399958660051307194610541806432827248561572356245475179790761649161618995610714788073987500549877488695579339551492293661364806600084433602349422460050295703966923951384174003961424845287851834258355933962828218565609072258254800506119831560036437860881448749080120464304540123570425984897701874383848823729998113199767015345805507112175987035104258717486239059183825319233788686579796052958732699606621188724537588663187646852902882081687208601982799491647793596320354175752786436113794869270572809619239934520962776842867707690260432246895507657698962021601416386791496665470596088338326623936171055891754558593294062796811513893523638225373215408892462925440312463742902277614188302521697971416414278570845467411353253605686233035308813907442230980422113239587012786362525843456123588273918944343508599236625398292257441916946026312471325295623816388044245333982581678868931830321014852713572553938601389467069810927043698975024759507912295887129987459682682516003696193507123364418437222949671636084743754455619923307730504181182821589436894706438835945553428387866479759272837394678021227494819812998464326256566786275789733971340485936819288307029407648466824411302177257347429438798539822306623167468243314893856659717142454683770682257918065161677084110063204106914445777697890566425061529044439223436936061148820619424781008658297806541593474380548742763243448585550499275657367355420071819369092355933182908048747848521226377046683106282285479740726623018031839106946473204300627678306397993206756968341081924283596999820189034974416822919112880670935730236024570101227949900593154413548162983157380089579185539079001105903750594117169901665681379559870913383377937740086568848789057867974450107878441130868194310327776382669336499720485126702878512775365158429505058045964107120523324390145440871075217487479637842903827113586510521057271519544226751730884235787497037377571255515024796935762511418668981316157665264154748566525125405842053633982827455932898719061851634225641933320857070785151577663166510741056255532258504454367955159139489191555748014029760548961657285593467259428340622035896996729076452201983570464859614981577531759749416356618938034672052327122985101975953599465165462218081944845216849807740225654852224658873379239192617250521619054895963941148681093451081342997981938150210476788555621497582066839792966812210993923807384745547564391956306443300376513711465908888655077083303919380981360570575819584642242900005880580534115922026461077569906368885322221980611957238256702850729216581121880732815516883317469679643559998910295861823114035267288352010275381703747264524779577958361946596845138069707642055351470477640368800991225065418070894819225465143704099676499408708664929143542041627635424664634873161020197363085422137721700140955952866944239924598603466490084013523723494950340671290251875963219224932860130724858422538223474067923838254170599077238209734813422574250426837002753215885841496647499818141650580406515011923893802281151082961000248097247291792886331855946875080988865426001173821390229973345414820183437950231405360058381542893760895489935832525548263080510380831751208612288045655936428433275997694162032851651791829326291884651061733733205407535264159248253598580130508854714902530948701920964463444292162047291160795386880539030228594614204974639920409843951837032940290762313594057108601525767606033900055337354455987605124903852711119718779631351899472547576277294423420187813571039757539993672739457879169463618287476242694891230718295933050122660779300029974363920844721822424588248062987554541102879471818321025437253773006316539470690035398152423313052032054706045345487588997231981628094127521700055330705784747702378021792864009231119225639510360128720109952663270606997965668240358450360914839067577394566237840108767032310446804881974256066367060085187696308051027660753128799963150715332711175368112540600939788728765883297100407153110294661295182854010275359523282917399389414542532169848284373631926790701039140593767301682211902903754194546149998651455007275937440036243679041257498028640816377688985160288853472369653574916375609953483391664668045749272644705412612942553609034169381122956970833453974561239839519349656850779730623432642335753456868560598734913878959317734320112153937571804020390673389377380697583630529234582605689528558908491419236260310561512166322653828166438080493333907043967381479640379200817769337038276449507252936783855817474380026673825600269041565691373819492103454690732042471137228403635657177830876334370721021536211573601732499224092428694398094630877498360134713234766209696889324416932292782837682410489147521228429296037619179161282409139241547926695955448654990459388745244756728841769598472464630180800764955023418787627764851936322656788878407971660885165750894682712909230272069735792099563899474701007635271726203376164577678752097542276720108231130659977086620958845869241289616585901940049369982129279597529178583757651181103307420872743379078871754445007110030413460184402215076620705795220441872381121853412664324064417798582549786701066828632459873399323715559326758923088811545979270593683683601599898036258114131595431755001012129720886112659646506018935450698677610769789815389630762461173305668903016511129841099752308179215658882083741054443024749068779197132378585990050443084151480047965316900572643623914943262350371905406920084698853485165756027342150488675541741479935089765785512067385484930073577392653649511558197703328824150523791527993253533008203173291365046579999612479022362968267625828049291485777419470249475546554919025279145427342469760650178934142879409131038620453681231020245698376961728873668734284150099858511793952805743295884867601195788147050684219729830189357858084209726930354424178143632515020436751912122131955129695060035639583887985673695436589242105539450474600161092348544518378218354385987315476879733153044733593263753046423962417531061213860881989343549828764055657362925265985939565508810512826044607533990349824897277256729126215846657434403955253461880605019341359663480192671743122334472361649826891125475852238215274905324832931626743545723085352219957617526070947820193223569859272561855485723667579723593451661256058444564416262592674253206551098764271291561468163050438901000030053253413491822476738641955102790964793787443556718118330407798702829297079992157486177070294686158139937859704633548543526769352051471562524463233861729001195176974067922198251594026497956335016030397629566064961861361938381495424537865191234274190945841735380642650425970063467717465604170715490830694868482223836637802364380278450738967850699304418735041997621873335128215537084721998627218613424297088438123430130111748387349265547356871250907113980536973564261667386825839872200649048922495578567584508477086992844202186176295114582288767041854783745429254815336977531831316087230984035460404400773539537884194074127151772148141283963249945206235861737760951921714091103153107860209699141845421904991754341218702277983405374236223142213525048775097463457740246971229220358110450676887216245510546345885353715690366952499787992758329349818970865446879959937139650165122084536961377052432926381399278881580826023015623655234358035515436805970223639162017580190061268700054603825559689158344460173131140093915910066238970333172675079026410774200890908942990149912035982652536242703733252686677100478798177524718906039370034570566721882893191781920369322407959773126979568977435978960666620004786005653934432618646190566337675897980760853484884812186311586290478228020107783134523243627337895531697355291124493186243235072407795330673780825194230290638359561047764253942572429945939167025320846589125500479987331362621634544397703436143489401190681132462060718564194364025074133626693985065381889603081639730566180672252248141662323547789906287726319793889869803137537822581921141693788954741258394350220652066499983938519348154893625138912987721720552594512132712907742972944060860118556083064418025997360406102423711481251511259503668956241661829140598492367300246576206807215462246485351844680482093105761386429550629125914446021677836431992904811043967674513883011318845254709485767269261916558737224289328975140171078456420462915567241146335891982752551415868143974951477042521788864224970296038966085999689249354216463479400441132701245909569486177331181315493991392759869213047890314739015556198356552010896316678621609186090367366791007580581617485292431964085553054789155735263806899158504681612806757258418868513746456804370808470733892255119984147387080624432627075801185987136305883092979272395254604940700191272159311586334920668383993600989264009122950727815424319870929284224291188480406856309929546938043984612005408208493967466853068887750206176901398270536502386914045687347533307685710062735298914025098198143167870819642747432606633452077896170755225667794467747815564716694861853569256150114455841029312298837696828478578252225897118219663462293227192058150888148013070977219731141723642690846878721548095459906376880065484287667020617955689864341852202877709692289554326561621500012769367064614470775575394009153740416144206148443046496291859641440424231569221545471552830541076645834099388065960288410478297867908420530499754866639053742171751115504328962206206194904073715255064793201469704324611557756982184619284970723197597568678326197816560611384002118650764819330447458527127761318136833180398324020146191463655321220184968248734461023824213512183312203137356687464439909466612101035408848358090053704907903864173517197788523584999466594674700750708270920836380709048841296067449594133200914070517926365764374837049305025376691679160759653456078604250857247343512888562564111749166281824146780722991294787935442616474489973201499285758477446892417157686633210216318452875303217155636590188544411385735399993093737819380219382576548669648421820061444343133259577862629982728878749807721002997620669850474921966754152638321881700110879090721127555628182403059565949711070507663947031150815092632915392088347312527069483323432078216424433886238695080099375725439374661707578953003697438107998008019768437413507253415646762605192704519960414161862832142481613388894367896591317535668380203349139821595807926202624194544407977290692509679994115995059752819688445857970884221611414995743796609053989785353950894715566997723808343738775041594590568728299821440782087939445214336354317938607342997021333530239963302924524901153515172325983375907360243406789538524140974506266900692143370382502316845395146520670064007493792657070929938357186765861104255843200682948695623362282564304795739581667252052591593891153388877067745281856872012283890369815725985244485625948423298260786459746511465536237116852493891935991434920492905597516987477150510749409862009887195151950070589153373065352521700365597298633886761292556856319781422068405906988881285862382412887304554544899715855466829440525096703536518595200405627543423826379921142093906642689615367440625955652300294537083273562899548429028176156179578997787733099373215569198125297877083927727083890773899288518126972716139757478429225018182918487316235263106350243627105743336065539245828426284800009509965377362032054169147042808137256263907265221409139764907762790539949784297666820258246910673108664763364148252236296794474493684250789585175447054155606400380994463289146008292908344052105125116432164956840234801911696778224824525003946087917950460773721402906452915338730758410788475178540319530934248542443165284783620668717567151397243196207063750354619328765956497883116805232061114745687622875500961990180758702381098987110521311769599341295448768898836941871881053522872909891671737358350220291809919651248859472708097775981132089761704290621884252417122839012655462072785522584016581403777899374345779207759521574020108815832813048821406967228986625689827728211793357429684278362015370266707088385480353555786662049249414996570724412328495661703712331586481752781083576987146265049296024165972315471329201673941071716555487346468200660500120563807412537362037502139581597020795718005350036891543691717303646705963471391298612395658135010968402298198814734024987342138279726706189468194710317533999042990895176248104384156499820138973588037946991820769859015437665707067647921312711785065946926124067385285157126877418661742276366682786362906102009449780761190995955690662603991977151948072779986780198712415045149550364054559578784596631667332646597160352058403967179632870357019791845409133754562839658779673167382871904400760080061915735075470700944671305547784969993581430823557485151892469329388353737988558698220784981825518908320889624070810428477025079622021589253909027291659442148454512416581193325618997583531065069537608341338433991519053398178420644616640134482191316537354419057949349887244569343320498420000307010591089407770097281473724419817101712069350806012710186716139510270512781091941718896674803566265910816776464620867993425464805072266385072675059850951089130466231042448862806151901655199601426495919481962498106883560865843186074789652226985760410793558878777279348025571257918921038316212072615715429302520186314801072695509921222039483467059827651495326534072249807626981190244061230737392353631019716883583832058328614739384473360980377447718675815099551278269407553179787323722299200907315369180051390176982291780450434897939793960635160018338518162458902350995752323261765976947257989851769862808040032058332150951125535325154185451751796143264614522032798829011482914575119489166337308125620898311087388031085953537626688308903539473422029414172976674207282724650042452849785841491512736413643200174096498728529451280852662863596356820751301051024800765506828748432023222433741786428003351907289792581524046421987158352122303945996172262734000422247669700340439543322972498121619878160472528032711635679010697600605384969696169708777327381889828537898678489236091491722004881823577395430645793433722007793352904884119775938070873858332561239767897178566555104446404392228577568167445498280943117370704582471740817792800867327367559405735245885194834729549621502835315081910929250347759039294616946311485320011100883617509207642561455551949415408658132178234190388517697426522500751162716759758773432247045400395033126119275417870018212979249533910464900701778743473425661199173678875271369557854045593482877269911579631308924580821012821237407713095091883306688913731710503787905734927674772023983803098837586482844306447906057256636467384663189537336070202060888599950882251727432272842278983633286801658610099650214079930031063273662739732075611223087018634171820518083935825141575221699117759610834981061213960268861374673859172771987573908846129911125176021927850724275806397258668518258689340604309020548388427289331700018866081607324955867245451530034244642102438357325428904279952167170348237260647074845493895027222679688369555733505048128058235342984502673225633226250505656880114384485195920397621216968083991027244966166437355200981808590682157926031845562631185397425789995708762439491185450890638205052111458080582380786354333614588355833642676825631751144372221257221700254072196621593507403275349095724398238984581879666654438887608156763700689652274218868259549258485629105058361255989949395922164830737882738240670580714812550052668139830454455972692478994573826384298518172485310896569129762014889533003194006806533791207402107691388299449594150604623329069597402665208233481308070049408143469791898761391107063884119553844489953918706271796570740074559647113087774910258477351395823769578925978489105671570552240443656350742818073124435049085997421779421317984585176061319153143576683448754906415071347379510372817109140680503464737040416382312379871770241727767438086432034067303751811137673954948190681513723111609495726153372882339343745835885415816467124379289443385598350651144354043270058179281449221346209990222789488790017557734014491905605655929114854093618183352296598134736420664058356235155801486589050190809171769603429177219127268295576806029715606330386542667160670382310381330458446640837846580794897013763694016204736321902017859894764330124454731510305136816049729216835219097363434799300073105915360266007063195167697329393516773202034017022279792600801724608695932519737025718729811682018632920040425368574977939982930467533106821926137338476878651358606460490779837133429458541094245993715685203477149359589762098813326374746726572252262289641395274632438982201664893329525709466702039784477586195966390743467977177036305631910747010922371482319391803189475105956644583705730009061067111434242820197766682148293559712959771348972929160022996751927490165783356855778173404852265957457204566443300235940905071455207943507342155271382115967021993128262679067149568182907345065154264261322867601693795756528165991964018423391807591465215829437249592930069775676683260258591570529956189215129088651951760030095962458708054033251171648013791247221973947021220637836433204780596965946576962740807461803396050716998023159537431146790233040843976646317372902036548238808715356558206953521470145347374987070167252086566783941071323056587148508327550114567618842975764785379884973050158501710823948388487220414099434993239298705028683944386711274711584811892351618553627333056094151208540344646757760209323684426326678897799394557462644863944721066572007780025829439008695589711521313557181228091110730574204556686854108591816753531615915299691397302099204058580249460829108042439872975472849335779156575408807040971191735022358167676835677139842592276238496073999985041509372453815668063172668960975281096346572801998444122280804889143871224989466803483200204065542783278976688808342636792835407601798931795532038667407115023741172126310048050887940991693602790866664779308840378242193114240919950549655501229155621144272071863800081515574002089121221363901315146728138980018507821876578909096877369241972731231860662864798501376132838124681540000495518997907085574911143070569268417140572327889750522643054828703358732050228803616676734544577228173630177024320272781021660478580717831748892085904703649733699910681508879365941756845200167798087205587139035744584260207624419533420865103907505020399769865226954820624902126063103972048021924409666555645371651357899486355255794459592935614559626013273429835736096703888191784073757967560359911495467895978413747726524014027603534139830852086017796694358584134039307258157020966061966291826994474952592748437836766722139051908905646043409716527332888763271637499540869926512011397787376556396938787363050046409877647331302458391108977480328245189193294217622143387107160843981691329678982720380897654880609741471978738130743215466524918782411447390107655759622299313026274106312668731419286133411440130071524607976198962569771625742016570517069148978491511223959396412941794662895065940843495486751080837551236579483010076944497667322556291947706736293387082261518695307839990872516394864842178725006032164977511412030517153885268410693514971709353887743044719215604711806125947815142464481687966079886689885949571313488522504476740620680361709045360560642229424613948858598872751359382540697562232745368681283267968854072166999255454780251680608102813306740947227900438570953217503578148604343399471170102742180007706830014295378149764544092787396250588569220025452696271249258533530271886632713147267598424076208838867841696442378190524350095318644537715498209126178348443590775781107668987708920265321623868412306636628784066500484663721910993683032858853335325645130163815299468066094138508317640466824476192415704129442595116165392407696600867524944216820154656351007507632547024970599189626019044933108113000085888541292619607134012193354743015656776456251960371442521291515119325807590777043297146936476706597710128982093523009718590101283183503608365103589264729041917092557105716162979872599119108381177787218162259241535292421417125796511962109208683362150344336194316932103747136200430341224806705081941898024100712271777802359765929000426003021062946316607898520823960951819872908085079926187537145532033118077926629186010142786777679996823264877874804585844802460020438605415349976346430436968768354075504628873056792925911815662714683805228196914528899630207754268042090683965674955181936687306253771002601084191316643673121116510982329864582605921766053654451625313959775127794004197246885635216029483715901312899274197303986574366209921268982499665527418214682513434238057133217587866042806271709509780581327501344737192728857861817749372203565852772555321867462255770429801542661953539890328175003377962614152648539046787197267023417469634627455137616890626420117369929545627893297288856255475457317294005535584615976897859952297325702673737315549609501796685068582907557838718434467157243246313568669199729574990380497552861747977157122561017473226317690585078637945263317109585070390378893492819305409520409272797535716230014924882448784105670023226469149315445388206484971692135674965874894054541764688852906107889441678554567840324391526070212719827666847171152517547431621510883088893876164620596777917373637376966924249321113634390407294200582250449586699610292275810346371374648371213431895830649295510672736345315276715538613829313447226790312229356277635126842591122620011016185031936917221593817404811519130793669376997498779285385152966604515638012060227918533923481739668807771871343519600548508906884054565273913394307289080691775599151045922082029935193380138224928226003778888122074042391834477853819991462022026318655022397607653666497099374287805642693752692893408168418828885661988883251925338760288109853670140226697083542622400066708231441838068944342883571270253178594530704760640185896693445001139502856614710408695951395230345678050604474751213689766736009210418088953417715106710361155546080991908687529714994868280741888107259210490963241595774612226475835171056618838404551820816072955213006547433024993668928478453682907586981587888442708470756443187125489241214689592628539859364958668939431224551882771383088507237086106766777077225973498332551014810951356272033620336037884565909760481409968400775021551939715379492610786130950382967512624879853761472329337993782800850874103030530306114315617620636888319836204464111831379329573428658470550669544628921597225045947898544705448860960426732785791369291333919016006463592166383145625156977649293382288100694236113988909581425042340296461776035532572528867971900571623137341932288841339741958143223514838277077043776273031203965645878219744697092188288442111197632647862881728608173480217382151231365061670481961767389139601581320060227846898907130624658295321558954758273898625675519193930724753065433632442194141420408808491510896031720095184037242695175288077803714385068530808371625663556093140038605060337119295940794632009765432869184636780069765924207980845822123188192020021205860104645141582380129652086261778365156540630204771199023117287924058643620466833612831989245402055272699402247398543659675374341510695902325794230540813031713387896562154006480998350550245278272891474170051626317918007520366172987931225336025136037236292814746580776976907374887447156588568544165555922924995451779866138698977998575788413873806654856268618193946070569237571571741125212342224853994141648149053308574706032051507127403103321100524331214620418703754196010335548324916573338948885334563216591926620298144027002347516945552812174156894793583398797782080407898463553576056933392625350335475937776944834383464154904043201375506099899250774605604146639906022074468105059939224069584381355349515995880361106161729935064936229814197016236306337421011301715883015224530380465917723539843996036648932125539527571320932737031455631224701042364362162327271310246537214622224153874169429942269945691499065661745630148910828521029000121703907235376471011609037409020521597295345172121383019275529752311838079321402323185307640996814209339045533860558753780568077558369067853088819478081467864366354775993029331731058513495476908621974906284784998011140938162792579555553121625342041214049764821304771900410385881801020778197901445088162973916603602922796740994567655201199385320948769920521956529224872234381119708340410549613744940002428320788763605838857997530304114797623631913889543314609281621756375450339591743671826652978910543862889330285425699531827816402948209641292609908462295803115264418661134901554272543395111337955309703113589559454242221094742605174169059146457395204772821291319420842498717686946121358404321116092382460472586441617025605189497672422565840889623747038534137421658490659418964133189312936866287802429775178390796677533965885536967610654398338754334069893324016874814730567348401491759846351789117256272439091750132257908911793626877584288203684751583138285556124445992500105058453685600319376031131557830823661285629056474366256939924985258070592371245403745063498345327160714722423391267653208409657286113737900579456180287035892469532978244759410292541332512835137983527381089108041105548279228390885273611595657842669500300513374677771682700835567934926263436991527824434746968573639805524400145115391790409903166398635456505188455599593262290144318282144696565425856011245458165001544001029694126588842201955982979162178495211452171174066759915725028250728862441972794572755049048679300864869750564576364671567625946482744485190985916736652245792357669596335855294848524581367155174403816263445543641729954831092239038378827578904953841765552812278146645859761455945008612679871359589458598585323447623794827068957324228565068288544910791473183088317608443693403415942743648428442741412653454422233179984868199355178853216718261803029105356237003136477948689795105455521523197086889210408535146944031118862982785615977674561226085964465099839491322797154654551113988653263344420372288874340596478684965772605805206352200488859749494172631669634061736151214847553299265874251744164297105327518037610650558667166227903615807332837828534145555443874943817908103983103408291677841091228109750219341814726623006624214447781965237428500316977177724455139914540539859564234234306019273144058149834211557597781507763684432192839008793152104213117730593061691402723147375265248257391088333927637575425531749154354471037187969799514950264364043381427049019130184703836975964041492435928359053714839892843696298916256076399726268488343235938101977300994033376046378965526776343501124193939330586921796424477309912971849609611871511354070354039121681272545980779256658240314970231195618965767568899717256706389615534571110521224412222722664958220183078222061816397685278018792355534192806059405064955045292014859321456062747948562972589991193457181409057255571050383787750685572805596139661599787320756083281653809931873871857304566504392597402805281142815620022165519235935958352682193443414729964733390059671465546605114467927503877159048435714404696586234878208300983935039071701903803375590707710761397841158121146145589346498280444400434440278164251125411809609177951716872155556830300199105030602025892844197119253894645781238101954503887512439597310528634988199024973738607091295331970426398703681358122176952395252455061556358597390500632841167598772466801962778299397561437472186615516961044748251338055747737070726097160469853064913201583396697552317769492748425486716456947561355965570786108505774859209886586466198896861803567346848225690154965472573690834594524857762447065421173053943378237224170513305997140765326013412555746884316912081776750540231875420825018543112643302879115624105750317870703464540388649135555661606455125939517680656834858097196618772236068289193422370640829823008746380488377801454105412330217284802053153352277504278462887256179591129937255875813270454118624245149551300067378236151089510761056568915481377634825352032581307368115823955225073538624890248236676790324460572593310761007337946383034217214714163542834998546236551330523890217769427027741661752004112274549057026978137689470195692591560934381691240091287320601594262104089144604909538226330493105141162678020439891690747392003944663582726696637854887733221343428283733184257611970719965592351247953826846508516855347118035535768665785460513976325089942269334560205896221032690512640609785695586847027765062231971823140260050816996709177502465041060399676846839758295329673516170473081647350069052389860707140957507960407639455747050407627230588721789312170862161253072597442857396771671582096190853290174924584757015008986217368047274637797309845942122535180452324250244187047868113164863651845072405397628458013529706571944876905047793083794982203972625170818461643751988204412847969404640190080221532578318391030818460725416077039196138738407196942651715851532136691528456961893040124640586426659579698342795437051704818539176829118902525030456203863943485391955053238357908568918095342291961074098908730699996457154079217817131952829592282542293994464303220346548218333047831602546971435605535922231066341513662425529265920766566714478406914772456991620313008498306054764608650939168789411473675699192372772757743155137673231196149649506362873152245117875720811130184139389997750359704516142905147177154171047593413820626506098708411271068674235346731827401499762941720795270163390352166095599186157682752439574418264054559323844049143528942207859110886005492743566304409191303274460913374560580560543620332562552534263641211462811415445928364469445852546621629904005738387757762556394887927347887780660671470948806752687443449408717921006918537901019358381356884933419577860583356431500144896967368307450684520838504070759351211252126980780861764108564332022710518792588228432786213949585628073464612018150960100545426026903422311460447210100284274393030832762287909182635110368720099174622389399059745128152054440305800499772828219230059650853700448697668587084680557537252579965642983463609560072651186064539082653535411877691184496814590259202415005476083944934381338818318549890604419265180740902862670729996538138003832884626392334409407385408398947442052991231814125053405965356482305695059983968204381426637191073035897864848176803786951825036408555470364303973317563093979862815937014499151587159218686092870737511198717319570917940960679479049683061564517466653406431415035627061574985229140938901805348249628282400816931182410594580523842311063601336075862030890883142111357295489709285315509087542673407610782873409608899443797522255828400255369871779587023769313241929768246422514609657424125747377309882892637135722028047953275048272834480243015288951460975156403126347336792907969954584202689522920828697793088098750920949233735806480193918361383389832910883611424147427157715616739190178674083223732782218886824300016722307240892467074853546077378213106902534389095119577899605225670360338470997844018200161605613777445936461342008885033055088322656221982852807411350857305493446656865689976986605658843323090936233844076509117472220010007565079785228369546520114172967480982136342822630265496928847525812116398609056210180058216061582167519281266978007905692294049297443630644452135726824830632160175529473849934090175250156804991137372197629090310068187843831805871505001351363997576465412837027863424405800410234674343080523819440223090018689977524140136713573118375100092652066272427248268177988106478222084293941930433724180539726917813535863096052571080718413010934518454183532490439224457333849635546303189317828870851990443963444598304395678995408531158635392572649274650597430647353490122360989187663466574659281933928292323824656860122212495153079302088905782644372240901983249590997823106682445906236402017969656484410038547982902951161696621200863534706402252730570387316905971683515860575004576482485761394140119866061859029857857336223235470277374875775575140288246310542575400777721287633885500837710823326420967876476745804001374891354135598910993031353841882566410984543674166758415740892780944643310596752752946083120238460927118644928712079998804154176631959981711027075454861594500210116659659901093909874485602236299459458368855312240850336393242830334286533404069342920027833374529195184828929361574277421791990544757826524913332841265168390202995250296416731627548932078548362360498125616689306143618277886346463255066144458300302463009012276206815857855440362542715086844072992769578654890446321983200615068737548257748809217591563027774651740522684361456562845286629981950561804346203134623444821830742636507539852121066894588660109232369314160685333609618134999541907096499605611931589392296567060648607561266539720107753552151677397731967545880532918591781200743682558048848315740529460719264562337096094557273535979280233395387562744160814114706617213849164330851335204522616297964754982202646399852221936213669964487683248666941178627133541699724930707217877404394494458947118119090225261374360678521361130790963636116371352838891697787926120963615951377733702737162614958718305926829216633918378763325774350098070028256675803693790371410911955807413667510285639641386705199382825729479197132717163363371470400181059243125062487301754169773254626834609760427854310607342898904536003983051606635808496442213218259313480121771972713315109502205142443443723384849964065688293797117661427046137811785106643786260513120733824233576651843857988259112680749893094631132062729635737642582554911927213664726387248919110398435532071491949885051763339112101906998489031316595083784714172177847134587177794783897488621323009281801818609191503748563692960822110627679924523041893522581074081402915936220922349610056486439899890207281665742570604840461237534556001317025537055389880751991858912027354357112550612151262627625746938646423162724788151621358050052996484605809200158624761359332759315634066201309951893588798470202146007416957830504391943574370351999756760397304028724267015704135080183997068631798830644806065223503919300712532412083805442739578630026951502267171614295746800200125091731471498462051304599934969476593128206450596441776345964942803319859552741124536729323354783881484794733479571278211039556801217346087778538241905542391918044059981931340514567930733901584064712197850134372880485203856532669042660879197704879176850347287387756530745692863937325336638145831605294242455027213359995095113294241969756312261804492164157087449641565151425657108232070677724105117279973011925019139332206628600251385599353882092969746848647513563854926097065724836664499521875241427230786717253427101550382500476298811281676745793315776627205270910594564952345594545039264925140324198954370896302505207809151331114616453536537115602602711058846497931670997310120767431790043751830310109344350140407971407222710022585769486907973128147119942390172915441983760403913024237352760252713471703156408705740378144103147611869663097324013635687031388122201420985936602530549362718025355977489874853035456442500086445174573917457095241684733105824969860791863839458027458907824502190042680097662531303495013943457745554963299516280472482698386606248228742662496237825347787744663201684088756898928575451193233287392005022339525801193304940218192880936593637815307067028537750170913283734320071725043820859193376973027614380570646485314444436353126600864713557215102591650419700446519075897217645140487212269222488522991677856177688925379357183963647670391331741200778091180576953977956126360981912737565201731581111211005379645363492417603679530608570092795161066543230561596384383630634622685839492692353453961526493552084592595642885774098062591550816483635955313280640702714549465464571144583455405430878766800507386785250033955587133542096510234494914184399733830239252096632593094681879005144579728483614194585863728326368349254243576690795638115748972288237267547800693052962666343534557851713026650775948074142920460927695329694292904461697632719874421187308490769910603378732998258732839966939618767179637803072273931327281303647183083858565086313669369983873338488974614482866447445242280854022160347960437511153018205861919333875695602974307980812149270509272849927222124749896236792495643568425798498424778520685583930417954005988748222269586031206251516562102595305478471479789084527067197395534971497935982792512726467811188807617300292139759282275732821539846840259367371637946469808748226412181481465421164798396803463233956444837769722082478156558110069019339534243292792597475435419495422114266508310265771278402444347652641607452483928464328623328055088999832338130371660462475932809556865576073960888183060743795539677164189822810462411507988502180654358527007812427144286804803693626614030223338782846094180301594594572610596652084154944285512221124579302614500959983945875546813205612946833598937742301331821502719901704879483434842202397225232373930991496042783600860711829459439815326388298941073336776885662240518324957005683298467001620607789157935512044291921930987725282063060549875820361429210118168903346212066113973871001015739170260055577951786168020560310784218024004311265255371918603056418120553763808160438404233393633190276521295063190791168129564265519544452761311925519068144943319175727128309696593466406345380728117693433987282469726976327860742575620753172009503589738433737833527292946995050403167992509018027517809992133718324543910236795304736501712165409489918544806628043246990031710076077572967812944197057823274321110884958647498116327363995282585117163288816472257048061541630782757508624825490219986888263502639245584682849562398729301639197431990927617216754194531739748153269473177686674948939933856718339485516497066510746857557253507914376753747448664576187128441347185714812293550717511986936338417199176070214605770171362122115833409587846197563178762314949936933825628738420932274347431042363583678396489972872631377255700339296778501895026367986406447307966017821127665075014984677253240153600114155943892401361787666759719164861003478507711193356357802165351951549501864242453595984926773545813113123080623491252842702197944938232930816499567721410023651476977070051266200814639064426510930350823730233939726034691691133671692606905508682040316300186436161916745474130016025301819458001407508411506634066947863831583759970956008366590376240167329803191582870048816087483487485936886045221446334866206256821146851902392694084942491182170712509511531386572736520242450185736318242959164809616536723510253948747810815631063580212431340731209942099355230681039713410155054918377317558545151189928067742747363267643403275007341114970455490437258433297298943472732904543106624020768142700249944107969726897828731516485177381260147973946941375404744943107691786200441655167329953399668587429430920304008345204613790076640335370229533126273952581795241255152204051146535104753300501117475669123641966075579549217132447249452359836485681577731398266832223050556636544301562310692691641214769166259724662073559367535521275141420685353683676183431571253312722528652593270618772222519213969672025444091231616527299646022548564425282847417275162200461030464891104616130332523017146184490915703553174179844597389725631721532414345917767011977055171013376243732074179710115144896506211457226636422783652370388665805312335957185851593289616374308383827835115873701381226935795154201182018288830623588471073759507568149932984650417024158325619135550374350654008928618553865758380432324911121082138929363283584429367944707677133069074051218125176283868192785587388522462525066602920184699642633296754821293780011680900493417831133957792669293339499768150388593260809047318916748594885808372746614344860156768351380691272614986411652213322043744220367912805807861038542168899918610801106034796320480931199953478859732169291465611779696170455694045239257921507742445968576517294230894101479868744912194410118593150564241563533678529741425859560332703766293992225818450526247621169313790436936474993874223787977168810724991575256893323094972361000417494412078122483221185872878037371744588203330309343297851034574461940152684230308085846099221788104548218822239040626105508085709093061873522144005648388029282669482693993676867922975021149901000777453124397557539200658344092546254062360138005800962245541810066064684066037998239679618772180874595838846927836516405012931059220248085141086517865075172693214244435733264894615542128179334654654332116191472643019714441162178079256434470657654036788346863097055852966285875013446351719531005007102421857164246721411790046449835598076293438593788243558180876191506121868179530323587171649746414441241782030515477007733232528829891766879237259562158426896032651276671847905637579546554672223667104402762815640351822589240302983855913294429360880158571786032899583069034142619345524111974943927992645524357142421334807676082185759374824133977083302361500595401909927525523849396637233869296305512348419929146949404812881465896739042141578404425933157246033867454491636211744855289105050992825901598713219594865374300565767482824480773591909010194415773013262435450065282563191452754414682950920260396702663319402482673828408296406374934628034201026669943553151197532814890538509145563598786210920353415876079873502400056622163733414171451295674038522063810289025683818219139906336816165846121709163169314457810584758867277042721577436696729904487221637307895649320932477209748057418635613933174494027020731830263881073581208428224388816002470373043743171987843588568442220265890480809312425482549526285233464156807534793964715455450364135291203595006201134962447247415631412338308273373081669577355450101209851755689457574718480550566272420290523612494006569569251932775624275587665836665240828778032607235954404192327453382154668990132770988629345483165510488212805025568053630667942848071523829011891633601837861647645040395322286039143146512305604611300739426827786391869873067734322007554493801350112289835515128449585745553809564590266620835012017598043205587777795420559853211028483061421362885953582551543888164183340140408502081416963529444686671985821300452366998938845866669230535258105094064209303796013810774252562352683439408346269024038859413371005247827667562424377604626788961243517746588868311740846784917827381012871571527919954527169374584641972517489609297494926284429553176782826095198923688691935691787508239931516453786491706083674116756239783771981191482237805217051550762838826102046192907516435702866865128686580826774895151771756714029623018425456085238840701436976275795132400211916126158511015050964454657814221759209338085994824101317880914507815556563984025040777739034256148397346526321876725092538253627268828898837050894408680467373518321523398076345693109546512853862072235930754674005758154486363790274533404752189792697754026180945875984053827686904006390864420602145225141617909787278013843020848570763288587616518106666321333689515610904531215333033421593021982101027954765864706353789833647165652946105471042406898210193553734219845854107463613698286671789581971815976112477205167318755041695546496889384299628360365023833195786370216610706966685859474580518605249008166564489533929322467011113873538245038540943615354466603686451242601313537405824432714090551840967393786951269935951506322156675073610383949035279547706832965976683732132573571461759993467410219853978929936423496235078047327419788772279087836490077936155852901707829487139328251897976608157237533323004734304271779389612001795970210848986619507077630889158165137053384221567418191218185713240964736878907910645080577151911944015263973838883104662752421602711081886769734954578655010637715050454572180924357502705219923869319157948504202480028404063146738918552515476278143168966928659741488230663896538736911992880336835143163255558796560451244103210114451574332498972430226855262948653429400221432436753362706644343432125439636092514354477751820192467228198763780683295891135064848442716639514204747929501734407745858348565800133493892404495678708523095702368808318223970001758275268145405611558684612696520580960511871749883648797027509661129783453120567996689781028440870709753121895839697391705028681801739002701095648859503745651530377171469464927994734353092091207478585635691269332234032891061406394235724938468317155758999516461602594739251115803909430440918024828852957173789331076592779336077603453679767653245940654061427352293736940467788487405503162001332494963711546019390577795641140064268663847294434681364612905538380788985859952008230455391111405400723656112711849908742356243726723567373418305499865312575613840038649911824892025527952523479490898724285503046629294603631161495959207649504315533593796483303538817357072600645827199300281762978187900228612992510253122812872174051283152059340424460134749831604743177114677747272157581988029658773146862439309431600747843570803482020774535952145611073247336098806079257869543142342010606118367829027058170581456490985839588815173190395433611125602878308725563689833643750542212586333396243409188770452840553347390793601556299786601491259484603245040523767650982893993854195688134817083239141942402084654628134514990825115854849778862726455246085937258008300478244702187705465441808685914171849651313986483655357346624936566155570307594114526641714534474750399379659062598021602561521392580527284073824630525974852576499015070155515869153549706172152868597597304742391425845910370749119035360663161218296386768524669517255998295220341765442953195223378746553084500767848895696850916164733389168803526635184361422045776050752253542722023953464978956765113554394741988827992947376607054420007151105670396204554665401144472949092534258523930781698382860915600468791583763345902767618021809708451355178571250752637839178089141034014794863390945905714314503507418520081426006575196289790430025133725687892314715259363372858651576428307917661773737697511511191925740401570907597141865009411320073992709208723885939033155066753389842346413307641846018973038296278864089477362993100032466330335578220957603373818952311239051325715940427733613543993343321062210173542760662988877883289699962339657175863887940044008534893684488303414311532605437817729274986071733020245197525594016751035723028607401186985992785472351332797226487781322677919343001085961050897392990491101680218213899569834666423095722408220938614552678483487010815277695550363100124126292082304339449526128811067171993277865942275172697063787149107807133269817322010500798176365550826395171429859403910982811928337619859531841678311700491969217883250387468328128853269930556856766419762826831734778465524647254225459672096136479405766946828849997840266255816903832852909173460515106565823811939034720508915647630280849345362383588491485032388503374295634485578483026095262439954935834148476892319590389341615735762296215812797310480180474496765844403574308344045751586731330373541591897884354256476563896071894189322443377349369375698030126340821668320932857932725134053021683226616604393471604640590444859637155183699334035970350234845280730198314811546325309522165450249406991972642027599903267502732443111847352431955008144760058772087720014161638043232846850783245579517006035242134815310077412026269948896467359483978936106251224560636709949968848286503170950472385462714468891166715184842270454675391162838948990184244663725165749764867963347201472567429662720764318422898067080427512465158564928748604311305856945874207751391196241272110461636030241661645568983458956862481651182563754149108360045636617114991164127041821862746176430842583908642829307383253863291205379336566650646839336996129838445227800255362729114800380709450773526684679627338919678865717215803561071435814054920992057090918298873656601006406651457636354437317139435987237667478955919615785200926624465307354380898730712818777228417991472589607999719917752962344744855313288765316320175210566074114805696675057515174933707385040575009307231288995116291562366158162019372229089432621944688310221984317620414077011497245926040796408241420788518855829009205784904917065915680816539262688752051633078753363133485002846280422520424587014035568620041053906578323273105180337780642066443966568760578173423225619326473786273340029506643144576683753493535126748481812906479647576638141907019461038377059304791526557629716984508296329514172223358814854133298738108431143335020042873550347788505303846242351874297200737628486950552699731671515138990006069701062647965667981566047332494147246018392412223159264141836487604213516647339772725527900077892885406875596531292366427621814988775077559223232609540680396458763432659157449731664848443051144784985335287416356343410257588044556758232417691936732697533763003426948592189216943286099612654635475883834216563996046314415675966397735756575559928341019286335977531399228269516820135617195538133400627717264357145650305880997008440670219708065849541646615443933535826214052040171262276643509807119383442321502030915727677966464429007871721391401986569733636785584410049815267022297057173192337647279539273998083056187916434374946172229318358483357069568639319624096202464300798687413016103433701616874637019336459948597221747776959387873422960076534724970339254122840188013438057943996642580160265362173516051780435088037240872754258303715624061891408857281092308485445927149384302736207704311273075561667337321673109307682469193873247968416561667498067613945915814187208228862271932635599446227920890822985662060007857102288500110070973773143289398872758529468397860470509091469764764235138028043665082514964526529935591803629020231840078679341137703670079856741463818627413905617990233844303269709059022295559689957103523803459174434011849355388415960251968903907369707128552981786172965424107550654053167050779410233594478828447939793125187457176684747906403664704173698169699410926994317247702158388245013966385746671673737526943928526429110868351648016338941571265931563913325829548516124588544357825556683173621509021568548718938228490211464992791152333415812335020398322112764894386726743465554949824494236476161043020993830783114164497754193641971240654130147806063200792362728922711295682605785373592676275297775971773495495121113766705181238221956896995926505663299081654903201236950554122350288484328665214179202657603677573089698716820431094943081346355400412909261973401104498540771071469253076680712188478359506433210621383839854759070983398935614548108270917372351807717850789731181535355073781160561922980061399347890573151875077160233354784372059461598183663703556146538335258421715622484898015910596181929446784238470185175651612591392790748443477202352657905877938600835445977916617738778610740825834905716388827000873382476039109686478597295388672311287025031454034152721774889375159382647589064995367769257334222914509010179519238185368398889137055439237666696295803936496739094595618018348345276012380079746323035585863871355467196685406960835728183735799910612609383514867993653703599265370519515707541884596882361417712627605958065760585577828474702975167946818159855612066683384934343768750047673793491592244839079174780846638180658852326799971752027097875816822882227641821729247911641854478406900514496542846218934044541444254516567640805344638192480329317638317739416431187408120335293195928901362953714320789861610222457382243837057393540757913620437963263119913753144434850178176450691999079638936241588845146699890879960078953740118861877638222237294199320669544236962969389403441392932864529031511440697708006877724424536282582773921625753864250184795991077114743450690002420660846624844244415487125967551284719790509905798103969155716870892039992995584579554475035067917185888810409150547622602152873381319728308435896213957458325410442890732423678817731370487795848590402710808041503604719834136247538871932608059655789427779157528525228251301851159734374593491867384685692440059551369586785923592362262372262227371723722240936563877627274674067565578664876153003077287060474313541783693494064464607120424322750444310105267856743925300447267291070695952372601315983543626794289386536543526772319832091305505627886684974434618446639300105411234729932240933299499972487120743489191994676316685487624360141068379211617240926644868911926197442360674777285563710514199499473222261796032332573279650761807790281971406520025816634427390155898947309531569920827792911826875618664512264285113673122138534580917163690385131812240726407405706633857331997393408939587203010427639137180365017669530501576013539729563257771212770964475674725295937478820807616637279452614086319091915492249271272065254844820047250962647047747543280403588941672002008490463566640380579533425345273933673668601224409911282713571920665448838001897130541405534731625181875559262101067107399583301076328679878070064892895275989963755041355164594304500972251527457752603087649842762997770904619818103319262617706699610773778128096458020478847579393929081884502867657427381897701830872509190591023861848765872824130557375528198769667669245559816002740628559408082277774550543150595409337000400311615252322756667817927578996469426320648418117894184583181125345214156187365687137798928886558353456223215993236202990201782149867139664468251560575751226204959735448283693956049210469799991790761435839974576011162680774009860935132697423527202395312527154045229809971504517056131339844015667862082184984416008138168592374557824431254101517762062934966233737086142540836655395958668012191407378337137515040117090466567507140481933123615443103668341527557131614307089891208465579745486621007475039296580516475770710274145956985688864278009655557161759383421752014311122226288801142888893001662563340765619064249028014152272596245969888753146570979511271576386749930639429862737599310014151574835731292884644776289996759646981610184550434110300126857710953338809849477775084335713020545197380641207998983700471241806878266671661198449080664613670331113789116045794858288162834223317035576626747147444715999607711686158692367710842705083033179871833760936196372493126294382186326546877946969854617265411759440847728255162328223861217846326821807544269804804607203863729526849709311040879625781539338727870864979212153817946482795819498320200440114441764438299155503749925397727523534110795842941594591075109697101029940391069345166923913737439320499813895453784451064395188250084655659442970728931092270075052285011326345527599407567221923139840167336797768566192288111927243854750297758240447367823686343533763368407021385790069100386350696665267773746376836701001643409620479024425646537997726310119442383896915802638571130343250676934291624703495819745676189626525354427143284447861593553225169015325545559268554157926999637142817696881393728497375468355672357960953669391908003311602573158356206945835964822066784192793149296615593717105768053841880128514889218410944495394432906401285087790894126510600009751994220112743644580221416917992876597804670476243792190082970919327188533904310530774982007352416916397242062932361169538171018172511983399798602843015203082883367937254265318492277786938606765645826688872674947677885684264259836139578692839834455198811240639277971719017553858010927470857207404372570086200251879735210387775047776472839656480933445327382740014376664871257227770917581855448561554282347431715881839074001774108513249731935661407310444951548252378240518280674072231663932298093676082006497168989883635166992354015793707117505959103350455747828640228120129730260911710710193333518158418611892215895703895722396975360141806914688158343874996863114979363796889289724184031752799360422267387733299729386374320762237438052760959400125008816653075806625426724421930649616558704916772202051889476204203364458669778287409951100960621728072959003948500267734533944396239202630164077944873827342205829669243512749295487548434942088622911529884027868818413430187098766699310875034485381518397247877930450187573697949099622793774588410929165995600531028393692192367238846999167967070536502501324368213187006375833121974978862030110093756884265025782916368758094899440233698657697293002686093029420764680948077232985543098431840121493343879767359984840232796655158234851034572943447126544727969066729992116018246017732394272841964468614383034763322857900993031672570993554530159126265891099577983391701564797336092008703285777119799742416608265094180404376026689391330376362003007107429624655251429721026693780295736973174642709922731187400727542618580707570864299675144101351124771571711390633764537923657211142593744606281608895628754381451159309507813092345891044251938679181009282452480824397915128201514809427939678176625324772582404618259433612143433298822472754873327923153527008641187932594742666182824567487940846754597653488791000016650263744418519043699041844096450685757441086865671235266021930733872983098843905752159853253354881967571971548106425773565891724551808971304219319049791951138569946963260737538910515411631632635545623010666815638314032148299508592916019493282477263185917648676146595201836110020035213106685852432389938489465386934641211504485329764230385462846617726965032441255768629291004349535896747746808595076791506391119283654494906334288145072277418630802584007963703447829076817314049006559628324252260791150965490327660136977504469594986585844801360095716295846733512101972638478010263935137157665532740732015035790432314840672618895813333164809923416702823339820109368830222293493975941415291122267385275409248412395906182096366285698099569764570639574524827047654495932153561931830614641850879848631971351312888118301009083850226083305187996586026866276837084567789295406741936946485729818224839265827994819710065530170717790576408677452422128593361737076043496358887033371862742506134202232019145914214890739569955636280034622261066232335411630376724187527785273507142280414403939893598737870338945394499788693952170984094472592184202351438247901228225893108065931480577270811429233527855262695014098134460853764941623490586278697063748805914011396841806043874166002545434731725337415434053060549431487815553954243861003985965357978726140498116868045637732296489224845548180067779716342913276189455055854056778815712560783325778035300884204566817072811321354817520558803901250671372531991594192130446597632878061604627057062840779156645947039916735590501211064322989142257345422942077246082490239716430128590065344222757600503512159789892936466384730258469818513907237010784994598629263488345476738997651862748161159072667584063241875709820415857628365320639313748488124994557805707841341928305882763161399198442296364971043262137758027949030074672780609478040647583280249869995888215308773463544774888312395890897828292942315359310686848798014633838725733022069492993592062395862970472270449013704247913216183430043997058673829771577297915921273794104241594246948423885297249742116201417741411127946942310221513469850357173958715735023216855335361156555928780676065293197065917528104363561605935233154117125379981926969662209154311879838852134066247308487904262818416202133596207818174457121587521077359509404436032472122269729397633327867168383781578244371820576471960988320815519550020722193509960939274307762820347325310928557985035266838619069104853656645481549894005464091793044570220823085331797761912046201917582167590967384963013281460801269141591120297353367094781445192710435965745743705630151232953513395555338271802527678769818657383566093475133878777664221493120881828669559010747564195026861719744061048428077040283376977492031535372980220127372377151842017297707421063839802431060634595204987480807434136000870560592372385952625034977100963131291817313884943230762053439014231186635128409753350551740503484081933725739770473227897062682063067501542599694237656830476403491864369405085033315436952979621789032062231955993114758593197628325873041926579604667202483687227553010040387041554012414515610633551103697663952185343194876650433344536829652450719653189977647348433214561387834579363957363405426332703298489710584177395458113737804686658994650534621758648066265490832049707734596853330482363014704031518377784306778808635171754822026626125438611478552779592059844227663200175830461021882848865440345583268534106962505872784446998518488490105620466420139866613450926155794856818215635729558547391959021234342449709243176621652188380746600493582371861442920863764419718523382788539868667733860641396604594708877487438353872696121856354784965816711869261220036160879116497976338485494994921655843998246013486974771824382601958438999541905922410051494032534480324911641675911603796543076495020494917566330790417371385039234265497293292379806984324610333942638220704190612045389550717325573251433202848030926645253252497976490195608737169705142487694900957696530758979322810127592672822004383005470259293263427934290891671961757266561863646316280800330067307207745108449600741041542188823040328590579616007086091815801993670354063512765240673563320563360094812421164159313371957745855663546482006742600123797377962098639451732477821154061326759837865134374433463823579156908763898477551560382428848571848544648287985423246361788564442427984833067663048159215424182886440665945778734876293043255954723206049398125220508748680120703917378799854362733828102895277958890851173399139161993563652386840842190377464761607002180988476851113533169571061266363093522166807871208348753446323177076703554087135797025714075200549487724620257624840990653500206117997721634381579484014587981990802593034148313886481332318954030121326837060971010992121841226665058824628178574290904423349333025902474216256123763818054428764039680502403145329888078928918989991497698636151390176385300143609278560495200702939769634114279348757495634996369031687801659473237582388245687401414545318542513098871402813670726664412686447662954844774768519048989321043681053056445963504731045042553790576561248130311134624366844225420305907983207865447528922878963729228619573046255996800886472809471315036579182933714019555741719000716757383927548973196329715236145878470541819800197278842143125992975155382241433793779721620041741264985219443190929506566118499918002347030262090408969766188728240321899733086857204892981043863253833340883643638506371596273409764095877050275021214255553635867334935370385618878980127747052940744435648358155138833375530077559089191026568422320658993304393831638826645415143113818041493263259379861610810438767195355222628426613877025568017688366157479959164985805520542859147207349085335930823086367363615616712777881894931105368921755512760211991019559813060525483563711002239130894225666209461144243932585319828621871484846503261522152365432059313243939888072546797992701244198544995508861848322066388077101626468776844509117090970460518412947480032474323561627071509678232811475108080427497441689177102835891616357868529839675213034189887056865788544648882807636070619798325712178603778015480937871502804712346937728851877018361406947473746191640126587391068681208240345425210447977709924836259996519422754291782690170304895377508465741400957222198879367728021534203071362773855034490210593521127236867759945069412740480194557613491046277144653068157756277393532670114186498135404331491450676161617155651555255636923877882726471828853586636094364793591108865449345829788696805188943861473986511528772956921366783921922329155453446128279379326189414442375764038391465571472884756445941932736117810074798451900185626852901458127240200813144316186269617015766443942526769129570859864530464085791846140884394134302028600956896572817404160115394045231774719304213286547081821501102468800932083718874722079932644960168281742006362716608533483241020404074590462597580723858477378618998220236149339027124549740107651281664897754055717470929323817845434305259857317737660419902491504817487529539166382507139078911087572184741864236626391098964852659578287708851273830979517895158442863069054905569382579726295047001069932288589675160458417760707416100886388176026662180432852029021480621269486321077015751575513094612460619013516176366539151919034789849160638105405151387291130146738673889194988238687589866710476988240686251551799402118283272019940639549051918121828980500192329246628256426625558728772959686448719597241196877269789449180864819974408379551196451617191327662685283019724172565097620441585391441018549161241085557267117769740348234877495484371164307195172170056615410489598389806029556671687801167976605668551141055762860346069333613982207736833472153146925176434109972863054502443752222748260442628265565887500369839452329054945011923208722473396972054049956107833172433227987519692261540680278874924980758877162008905340314824130100506574847192820857800204804041245440176188828836559727069813343440975760004931699120517032717978998948188571008429383873294840000635487332497098751111137274410288892654736412320712500414328828252691660578293877488920391505010139304647501235750191370872487693762696836798345710651094159009460563213578036555259598408189045497348861825144981436870730647669014546199418839753281865996882381569559192514679613175642560487787541070050334444060139500613020838261286707539973522619168796002754498522227041045730136544046232776035018022824760810264244612368607745228111526060387274518622907611878645831426400187974162696107312012542891521113223278917748107129606240646319646517314769542295128039502290842078469036926050953237467979885392311208602242276038566273169088291960457742800840422795115684131171261277111510502028270584746150674734842307376000907975473385198393502686790482075948977745533977506474520983790061628313412803770965521988698232841089365678092751563164835349297091622286813859228943746002072302079450383556464273146490637401008655937960008619505789572458905971016152784866553783733585884424345027365111944653734597210424282488270107145940428263660707440000445679286241491382800338081179293454464357878816624074864470556401215401907065073231782335608984522363085819446168357034080267384462329810627266920564631552096087240252238339857805465464449961143823916843689101881969577047010127880866705244606955435707473048267329599537158519382076906439545703422745634484820479535758234948737225701782792722415660926840673835554890255155498385169014231536572142549637489815260344045988507927584519204796002587962872366871945444394930735189746183497897217271866401247071392997240709458517020336240586561154420835326894452905247960622006427448722258129850161200134301249991571444784083381937363140364104169702924190238892546225228473858330112552951541776360743149971648194668748337754822547789669657581222501770061944072336778302162445262056576419271551881174387488185846724960704310456699396551889486850439664960542391745846114298552411895774619230832523163086119077581762678968080143857740093776666378455668755900207057438772957578998295727808670181798048184679054626603392133281478122549478482047100922196630119502094589487299682841920241965507459355892892494219948367602414954444775857518813449837135067838115960734521087738105917015248356900724532671759164640881919647957840688494102632743916188844741108144874190397305764267824153416080920945300103484841478250291224362450493578203436057928052040403448598574611891439000469601459491691384693241581222259430747632417229389564809489546952861495033376530503590903692861975975934393808063451645853388689228389691877075182269575337900720475939030054303941269750934669292049946914661567351401823624778574976027328878288719206607951626822507329364499172965744101995771890788853454590785863540731214637735192559908991906247078268298238830611285315998617729107540524368141831685618112034230514136069112979689536507494261614040306687607644494298857201959819090220172126395656516255769029229480846648759365849372678455704309915347928191196032425383112834298281791274546101991992430735326958307311642200317141003115849214272724083757404746508933798814086186564793422963126754881315104571007908208187757559412096730900054499722893547021659021354460969886616975434520017409741625181908353298524929466739472043770706271654191589162388203453079315238994346318772256641734826421212298113863051439292293376298515312828183402933186374074870205390046669120326460945530834524741625694486421937369374790446707820606107053668397987998295382307207260757099607566991520606924862939002364320279093017878178098208116563020225756102947568927829171225283462480737630507569855307001175315830066460833348044501627707639408478658515858896549690418937770629088761709343254393260529182417728408974669898719379519052638327418517954229130590810374496074890685338428331678132153617635141665842002672302106119774817949639152334323784932713594770940092711222066489702646008269716827813219851819318856067985766524776420853245924504437395152758074579329403669590443230064234043935091468910397798246927426273448826244063095781786761519546621714211697214318947278712175734439975412771912505352341124475480094491032078813680457310101371294090003821332795894401393771246694812456652651769640678034736917892743188724751930950025237835204150083931105597465198138394707036762712932391871251504655075225372683835104536464099633019966750991586226497143859922867826166313989132439418342862189644232425096682999882521691376548015131474509887390422586181313974253449002022794839576098509115141459888686812288233526169103395649086884477894889904995622798117411032910642654916721117438866921263061401460619349273399456216625432903412256262225436117649920290634787880929720652624679087175674636411460103416593861652334700068459190609366142799234104591764651314590180962661189401399597860436039229047688065908635399520112216263906145846773713315972602108873086269713762694573963079769556357175616311039992936987915142543037730392121430784541887303152568153192395999603851363346692376035738487575559202089395109895005949692708438595947389328741695023134023875718235253544404175315527264253420196773649950603715808419724218818131221606029041899730428924505526450616783672239436724928364135446611700650134440363387489316891451890700419965386393360035425574551780847786421154844974419313069763900506961501901386216422255324475921273098915981118674032160360530714379152240054359593224920619858858889075766885272783369248842292933419728204484817120472457508982551892549489809127333278275040982404513500039164868137222690054517413554544274753235391592197448189479499818348266860892127032234674044329436265877067727630260894329483794036623098636578128484158928344803590609809090387581796118541378052942479267282065221142276796762493207378419126337464630655547121961353678374840843332389092856173268472163609281265662624378415322977535025741794207238793130087557500912330746121198662016884383365402275792159517753085374579069674283102126612484054941571878038347104955752341398813456226983118094689728961939600291522864307193881836867766157067397069379648784151270563913598268584697496652798800290269927921403542917271034084217258571707673108602489356719015181070672408535350513608455765059105790318277766380987176369351398251826763523569490249527842543237790546058614207560014679180231011716765021361714519081212101005134766557311576716225911810214146725207461180996090402161589558523360330309745363563124097558181445214125246459962633910342201953673257580685633928085800622505507895089277615294691639853302094692177495830563929692709072462905731305398158165362908340747277116891966455470960180555900581578695319439725157958093316671047650586114923826076719820472562187438221947501206618147677181299917663140273970611037440505150520155375349222441630774203610203446145068504260720513867771939403498537688282990498068009838515803368027550621781450578188829386604263156804642892899513606296455613537703219780732282074088111096147918907332204968164973019700147608257848737317930811254635952442278158793726093012093088905763076092133947424638755630264108745418793841503740773786883448767123765182713374555888828096774394349757669449605390550943923522064922452932209821780246930433363864370819546734296439536813087610193814460736127501814484004894128942874250102508573544504268276088400016323655017462379792806084392168622738463939539171417840818086540803473169647117884918155094991894756876243134087732613677851422909087386125655831867148217900199496389950838496778639836604902386191516113780780012638263011064079635789817420305001300508992142735230052121601971543833008188568072163309299301859690760420911262055485946477210666591131171380397587534914700563892190268615142066996534849582599275455381266476382148558263772867614466145444796899829699998533238426948719877276900347777640872355690604059504380394411350246731691430336541684000902256929957818063035165456870837249442949440189975646111527109463771316073126688387063829241459202564798003751130531552919956985777980337464508885878158610506290180304050900647361517104131860358117160716723975180229575334051246778593369198354500715655773747915935919167018545521567306269010177967683537132423058869322051064286636502410173245840094503687333710675312668131727342150121534075583319039483053382226318211257065240420699848018493150028564856183113700510805638556581275581254931130040629276269402524586162589785736823914642099269484213659675013649326819047042521242254684815450957683961616423199661666140048294402695784383275587318017800839138551440075545568060840009792832316908855900871330855285816840618174839017383502233297141309253210742635293467408321499934379427622113075920081959006307503973556398457481486934429068163694283975745079834117045198636877741237510966016966930558387323231191914063529458472229205611409214173771470137060987313368977370810968383088221324825159389676167430126148271465868661410151088974800871086483427095405803821091303409353743048433878825901561491483213290327922027809852394494647099213998707349111764978023645478992685766898448942052397484514138106777338710520023703318778112931871573377708529317310478201494083934033798533531887290400322488452532184351831509833146429167110728149589173673345226669822150356422268573300865183466051797200415839363094308720991052221781978765911497199677614054073501357644878937331623422660379540785375634423904872372058302208546042709079684240944515265954854526501417546213066399724552108414207507728687951067111266136338562201328215448274877124500908334154486323936702925647157232181127015324324672061860845244782033060802982800902682582930730381001102794503591239631811318962774212553376654972453251068830548629819470902285964320522676049684052295519116386790806512496707407282018000263497778687696894262068297346100415383869310401767475798393667701968354083724301891851339726864690617154519323620903409029650176019224059003017236154075607330688249676655551090240395511839112470650440879060041974805103404828749998706007290629705613292409347608377545362369529675615732760900849000047890676493439848384917059499850804616411995877475779733421953568045291739335627180699223788619414678446263302731073399266419841224337257406130182861935409049641846182005331902821890374254349515817092490810256513785238706151884213338460647490920685403153457745694667257943416612416487886119144222070714476649292729591099618561657751775122818068430666683128368010740238484375796069408569032927545805535295214694561870862433367927268670742436481768072548010282553153558779414988500746657192988614954796963434713980061365627897637391021846601576213824212070638465549476798731554438320158375094246589804374991127879267409066811847809183338768146520744720353905212566323751548293378649575427398324089524138653439579165038711538324921328424565603372741858799073693312566831553092497271734356484539054409342420462264154207025419629933985142863325324756905078079906543828034688261064444302363815239233341860407734015327084534503544340769953880329505244749183920272481222702220038519482562986594028946473444486925493956310452234594690249509291985631068943693359467825642288979130336979492559549945577968062627419805750178116264023652079339019136431981435878454961276689192418505386987672566477379537884488026209475175567893843366021996240428183835465429232721946354452154267765404449762153551822271103296760031226861735039479036512032785809128830640773200142534470780805448620289413742298718892655226041588944943954944814626961951302526563690112835273891427353982206072837202547550459940434701231647177993447451941233541324838747531812091117737143946628595469098806925507211192151971079944150776590096321849966953690484992733655737774377466743055468571740072960258350247005771814120819406349460700939782599574092013246440490220318857945866596771305914487762037342346946658534190425211192934789171580081352218276778068912130579470377982610591990059159173511604316521367805667838013633620519438193319484617403179405518013421786296695719202122280931696541668880589639758468305730117290487602225778559302897831449245203474977886761670443941794328126608371813807736843732631066078566893972181509915469101593701324725044173810483449534271737522056117270441487099567898339204767239699288428568649572253653513306078815054394030687608447778675923331933302399257743161699906901548537799349964407051469473888638931747061587523567905620289901327341685937530811864685524244186120627387850800136988757379876729860037149435552590003407992948342582551834967373779530012937626351015034369793527548034802581060004124078346345888249020628215503398600962488351592894075077392423908082259383588012618445540055055896780554694073192045966001970418347492612029786951300426823416401926961014322533537669824176720723173276180313969116778349064922108304424689101946306939961475091827863803412343407933807831754878000970062787066563269970457058728374492227640036300150573254388626595617433510798092585103600822018369337503690443929704402250559206898343301145989734258143797068004052056343246304236367281667216627683086882230134998719153796430312388535492640346733220861952855923735867030728527025178926745483601327356743763765188897893890514934912514289200787128127549024418081726184303389876291471644493744911040151727355080461014867713559029254771198672733265064121528430396857219426665513774944381771754043648070617174706110191142671611944166801999915728614066637715710329904697464317883511031921736714572664605151470387731758944173300488522790191702272654234726254903254668234681830679953718696897293357733148671551484347060238414373935216667248597780036963012824791355431567367492903875967813823983440887258868913390053080949368747592089870933371209604948113042632946623058484664374297111104397752257026013181415160820984522197965196113545431257811138979538757135870562890664498147352002541325446805564690468328049340618760173700189968403498626573938904373905533113745035292846523329560957018471431289388355870462639631514116656886162270737061201277486396611420021241511674856859586142756767071421836866897081784328158727739652547062455889979604463762534288594870954704157934939853583783650775430639407747674919924405613532332981994213437511854963433705079877870675811041066462007575811003227786986864387987800464599649326392084922771940901146128234218055826375334922539496304351649293496796849365245154915933359804369962640143443631931961897134703655391698362756921921488291741019286103397424459744526037604984549635796880243711567235838124975925695013074431503169427894392480911235852319708412797995447971721109697696323191174400859125130391281382373331949074689227462191202037111939369257021369456155782686309508512100304689225750056247119958890581687959797798822533715957066175657457086083701810055795749815863314465406427536671458545487432826662451167916979340002692603035700900735116200952992894180742732548202213941297228556892909267943813706873265600195233441892877146141231250744233461454343718303158195501653254726118795600301764423260552681662863824370746958500041405156743789725720058795601409990507269390642318073336263281208904515637882270067600132387397881238088412519623059378588305204329376010991619054979390042311688032827997367830435950325407335492223368190803855554030760555644128873948066276978269829756235100617319119495322890715161011629848077142679864506122103262428043787249911181124521727812671594506751720487072763141828254905300613651744924952509219929097940725355922380380745692893319422185038236388944183828430986157461962667834414738926002588380542249603314643606479584243820004097271897453176081101770040846754251442028013612917236342516446542074494020070007432689200629202649238763245741691331153940026628312082848813651268869670003398568402682513084485067350229274794151712598301153611768999570834725771676625192535557645129795481867662597025993511442952907581146825947667966529159969653139191999958221892456615215522556247119613905420571002446897726437870137863940655645148439852865680015884460999455800643769420629017200016324319481084862993686072665245555478149262948314210818224560882981423176346491488516119158732507381506796839157454054064604267283911857344233975875667346223758452787825335086439317235301074762248434738492855682125883251906514937175003679730219760261063562079306755388724805718822192705979974757072911057893612755853817690182640613758320648866364491679163483150431892797201750486848911033067445451030917776853511570623990257248468208567194513368348997890386941704724336835022134456691596164966743265777797040070217623811366856217690426543754275064600094039374346576896190879009382446315538749035185757246028453153349229401670365656447026184551033153055435091014306110948446778561328362706455295397164540178375463974563723284776565958986277661508884010582832009554614465112207124658343442968313535112663275982219603744781932758722086801699496658080890207853735901992484555304003097847242241179947149810460031977443917627879794058121288140625899325114112820745005548012282524858545020007343918786456709071985115137288000351042283117911084522930158240483633203469960633540183433615337480622275976902390323124505888383528249736971328957298848498225394843227491139022232290591859714799853534145022799099033816081252096105776015574864302850696346411461966029698102939683167200865693829076285436900774492268896111504736619250964754369930987503630419433758974737429634018056892375588226064704242782405609368125195153034762133802779377325584867707586270787622851289015787825857275703539261612044519132383069406228021615549158447978981958176344296176394721825151767116468616386262110813749492219394830767346525160715460161612546286472956449541467847359479778352728262521977064198278034478640366152767614495558380790972433545193272124404323481048018333123194954359108677606052637192602914499916630076398806775864109073591471613256982410293666494107572174957245687694878014160834614859085024873083304803220894634678100352018357067128875797974222061102294674040969872750910996651126175071120991217582327208744289114864673408287443547629330623245694579997131719291904125013795285073877537477167772629448869899324728668790688065363548972189405865776458445541647085712192660439901251261762955321568323226273739912516635117657040467714565024765918978608795414519981115039506581396234595763247348361818427007621662998222322259082617200774341813382227654908750785439242552877463228517705393089545622478723394532123217346400112097112085723440914979205324534636822524864581345602801680593157723818669755880992885058853125763912560767593392315956585591435487016753934423306450596327911966547653671779756972089383276921574158171822431116949576356439251844764633808091857664523603993651151577323177186588318406181489753384439645633705969203604071080557899333121474510272464492766963329698259776872498836720815574988856316383110569835643535410703642723094914397249601704553146818546455960911137634414894642248263064782887423903994937634185038852058548776997365779528787591409317639849826319091718792485580769517738707322573924163868741394705767161570400100569172197288054830885476783582435750224241333693012151764905115711773005358583554835939221864641252824780859059266152551198964287930647266305657931278604721831827732134527054338638640995913018943811449059793593298275702778539224582905261801257977085305406570768065562698429040620155164125943185722785950981812582488302504600767378441827652872821047057612656282576562876754971368836945901376287672549005336242404386047196067008837339808217462140156246633612397042765776141199409462951087810364613810840188238577050628277682445403802047645345797281350087348006869877288922749945540069780742049246041881754530539520314070616466381116052317714328990714841566988660187799915857397190070430231669566298011053733964966852543951162555694149677836844346435535218222157804117813841533293599540927592245259356785331114857962953812326334157675837312376136798441942143360957795543078079934713691176742343417509289430340480641757336435323627969470423127178864046382360444386098546629838543921076990484345116078917067031687467516436484296499823805085766802931650767969417419428100632613147711990030674679416671728941990209449766398446453428739675704025166366750581068597070015694268583843222481472880389199626914598428909454435669963613279976991756880868872550110448293992414854950633898780974184826959340231941807114501383282553140246575063523270248065074234808139829640546195708019632072840962534147883985741861899082496269122098985271540484243353760026911749275956957279860456292000994590055278506275289567506026528763341059528490217832728482909403962723482301581928939616855311453669202814573153103291627597291456116309099332524447991441625387341530106099943709631730577788606460352309908310902444560235443383206500661917007248231309425442833446944314131967860137114960744441006663895792112405833282629510482900582961159622935371390118680729826501078529370208873794960541326795650763387054401491709812867758755446136313362958464478634397294900014705960793488802524255399402872602307310168975168853695713745908903928126856877794493625680732431994194761261586393871448371286962356093293448825324168545636923165677955999783899959862637617476059736718764125404377714479318715853685487426857723059554636644348151053670985034994298161221370825110838794997054183564317790784395257050960285023024650571044276395679866495235501191713646787933631187502578211185245898377238895066652022490651566361239116741482519583365842097918819136348283489785102560617290538599101956454562351821812348968952912627735847675658978634472051680351883642932488617259528209279791358048763350220776475129404952283412560454157127581680103710499989955424210811515029440198247556369448673423333038273177837189726884199652368372589688466276896230971044584409589495015366377141731023783226844251343929407826925782927814796695961683114452910771530879564447194413735971132223406733826278152343145247373540357387746875024276412252262074835859869332101438454533369720873509238416266901941411147736551603189468915925685915262035862296143735702499853723998368387033687435248789991272350290598025245083651996008607851928891123680982147276545743101615798593420044892316564459721182014796809188940543226267872960493243839172087135605192380948540988470455021540995972123852596604497464714251588591546724723625627017884716273173507930823996998278102376134808712843964124524344632368948142388716651930499901234958853749914572860643287728902094152977488525473327923138762458741946639980542547615440983484851455393500532924214957361592437501048974375109687454422099926523926007047212732712304225059712575849096383753260208978267268919914717448499478480963908850497271495333991264694389960452654508887217963623039492025349666470528133622822273974242487406838717198393009628102045258458936074144706034656696029710289886876394845401289182094024014406371482217301062379971857721614039617552535137616017614321751055318958300557340359211563157886346630768535845432655206838775963326224102351282718744363772098254176081639138422686350925874284832087676546830864377830453619375726106014767637687060624404120088330837130265078239891835481897851779037296404476108506489438032452285288680028799371431412830533699004915627717957995434336218612376435845031177471320499121902313046128311897154799420379427143949979102274907579332013520118273829859833683707497301687850673041056440412369871853888577501766376692492937529261707722619802524094063740660860046196148925055130136133841290490831747671687317783387269604889609330203806416964766748653752561620366635394615095672729653141456173395332377659403085341518937930397039767991362498167556211787164529922567517261329914176564284118400328319629202316280244842259829789070357452815657714901308950076640126093544336067509632997239761612993054854310418420858078135811800367799945264416804947549928544183486397903710944423688148096833857446832197502624622546780187721394665145159769808270547851306596664453914518875857785014441452325345727893366427787625528220846582014687205331189372425911984051716905694703238016061230543971943945727418460219674429581461848832555405827709398171701289097662875681216390800151151902347830528396933229426680415771203430888187615547472083002016746643929783573164171069570532074382697417133729899155206205958669452458267401395124601195732616061641368269177032716271886103074663663894120344794956834259447347927747771884467291676954052873834536044388170994149600293438687281255961692274583032822837155702383571969918367274419693291652658234736466687273825148150622170404717911004641129774454871724038390419848634352551813003377325333244723090672359272920436458961388084614143053592142885032194986704749797302734013195476787380514564152472100122851024442960004337409492207630563497948089452979370257213057965741339117940014653327943392514138350275504949549745410156585927627754613388157538472728259158593659013030593127155752533886095093770459328137640512051325878056886865401445729725707159133698224753114614825044583319693452137748914673016526545164362483879315126111080475004441333587260003164190153663641895964589618399201568600412379858889640268299403894926664703555164865307873462180421335691907837846183345907591453569914618261934906415100683031138133174570383313327288124971428651002072001027715480186939731320029652831760749929148264739545069401048917587501023398838925362566542830406907379994287992792301986045127620614297218036590071678032301758628114774461384540467960026310099215911117599144899887410429281853413774266621533935143945157477133570860949229982539379071863579444158280915517941012259328129165790397023695062020327478351317889567265295346795785452756687561647844213335291534699221495038391365224146143976270959205645205734524982867032153492625433675517096934886237056633182554920943034154945023572747342283400538676961946549500409398093245199700446203471501417717757636883263725951423728959902398978563372928230662049763196746150488039119869230809483435159501244104380824222949851789357480866511057197074157084793372992458490658570322285242171387197329636203426228961348568913845359686359448043564911135413113574960684392650026992038718399665000762185183057690039197472780026330589889482922519785520087281192462349273505675811678375809471637358077611612190438753494881953148397278004850016506320778701524082793102848495419519368847793044326106495602169366681897128023284631609388504748122143701234053210597448899875895852013563725776382350753319104739314943376099925050329710520756608776521756380218342116814525565652095828692519900699623425866663905979367458672994031702717002404026436303569963369835574369503942252608180831929072813654136065133437904239328146876110020016870943007932907075247854567008740875449780497841177944484346461965814047839651899194655944324947532032434480184102039041471884294882155013062450331130845994406497158632808275027787504924190329583796667068575402780670347960498921109822171596316932580510078819350414041259076126149134283440434271500011425493206422187755005225190636959559111402133431611837563751629027214654086852309212813663113179520762114774175721611799756565794424517313338998887470997577223306264756954505011736129416817854511418582420777356110560418713589170453728224958797593093977019949290145064837007319701271033516651802668473592894049995869170630537266025967897997258099038478352689912220648336502177129000539842968257631118380122118421226147485996478340024205406144266466500059345938900260464887554411471672319475015005887804569503461655671575950846285756302184413193037649944509478837056336072649484056448683544841915159964680259150707559876170127792101770139698658005341479711321890966136015884574721017867259465678872730583633158656473464015830297021274573270954442680540976106852787331516215493544928318047658384712514862446268088701678770220313760957643128513021324706883737347046904794403355998405218991425827130752370212888257211116209571876460125704325515462804725780108742567456150875636739075326024186913303456404353284818548434147554565037200948716335972639123408847883246528988937365533496474606670377213130520327936703346466708328849394560039773703985611345925276175486279913075933006567494579912647887036514898117835181584597494547761541783065261203635256028574697578984068194056408103102113410856590330909416337628634162262423180893227846781427963544523261519271513845396532804358614616719965888818295116288122221823295738151734965491621895026849109573696720650526980641622073042393381630562622827390241197200771681444663716496053628428136288073134340888056192731477079602051379095333095437054241904265993069693616355062963572306425005266741630356450751313532067028232388191508158317783431069609543559643853944161173121656777990489869419179998817529974640823165059456818327860443508810849793628525353779917988433642985940415815832396387041325593031684673171956690545332924310738154114809056690906563769008537176090135006996359609670278991509742610455353280898396363430531061688464437851348566479448575357661124616468899952970923816416990434860701751123498808254647478221299319675193508193860733269851454334302435212162559924957064743611358489589985763194518329211998287951545713340237789524712219123007906858107435084458166317930213976757593037524301299045628764804661977439761827750862307164021562101216534264145684920409472430172060689893413873669876537141228347732642978621202415214910832784304630869141223592676070860669569825168666251322942359497823820284838173209498296775987225101760222196132208492451505770812705744700402534418670785349448518933350739187845522803984516368527293736518486653871185966902419409448422206574620955094233861657385538040994874579950448501132164280584449830419410784063783166032673331983311084601536251966833549499808468255928937080840107153149886091984574899605227164979728730161671963927356337365593759278477972297931916735031382758233478564334675546096100451032526474577686305575514625685342009151887020747974443068993535209594884975693628234504771781067116539724145690970727308026150233900510477348403252280604606048915344687590877783890567759243736181936396681912930586641609936143755690768620861165587151992288651515397327799486461886133056702735109175041116459235282514492191409554226551566635785017550813963467272341034636473445109658585793831059957640294534455854437468411195160307221182202419487990030813724248333669203831193606380020036046729270042664170199321413585036920702632299505310491559282811004011054568115016231002408499143840916167055574458488945390634998311330802629792449365866250172653523412191471952731376579590576502433057075011855624301368296429505072739764690575496730218798452055595077084171921089636245612041866000104421350180064863110649630631300513217326502501887232998005278913425872523131136881672510458645488051169759379689768523544285911641678191834213355151346671777124154939750688820116683144280948444224127870132617416618147292923192416274876278585583369896671009050610094257476214087710776059249793031796606454359431178721579158045332248527751681174513767529358399700691060137510216269123967433987667593076478188799640407466044666010796563289168997389480109684886278128741631437404724910020601786691734242140418416501601941095602227439309556444600246725291021307644596020768827163731847001358591387329866447505020493579396786628645273896436358805353037279486327402110262009834623976812414940523421410523418876567883433747203530565058954396140616062301608238572599233661145676215364974369695969780556343319050227906474183427381542311614727315808267402211731909021781628870764622043273707469205903496814302142761800542742987305999193989796644931556320846780291138626891753154317672747933121561579171036402650094469449964815116232867356228384729644306705303425661498595260195891855101844994514866329565146565299148713190399112861982476532647050370822320378348928926012482835529186309181204458128745975752356152466607675632263943820007367131195425592628850656494438856514980301479962915304075410755230534702885550519553881926979607736312154663969745355305759608722086090318341461646232851237818651534971972130528216792427942083091284092574802874429080257756075701199257513779854949341628147246788290150283143480300490006687225700008987116151443508248630235831809805314035011795446116482421468488199080187936081308532370176623129723553707511072094950183781498217830533649306599429420445881700002875970261293385465830395110753233585761161473569522165651198083026427714451970233914107201332637766288604486191610137975160862020746613359977727420338228026710716580391529760362724304939662098658305801995855004093191910902250814765356234433045438223565843438409649317958627491675074156823249181460495343619515556604742352070431751733974915694013159516927038402023488077708221257372033960233452540213582767775428625941666765942362849634543308282493039791042422737929458569271168522921053693902201590851368357987019181303693624887561257650749129350469308060188360546145753119244001776529744224596375490002044835129009696272827019175633202207771680512707728631551492140172327146592429983549184001385885696848614495619965769460224595108633012360313107355781775124661933559661899205586260187905434658860101377406593710276256911067081881390610531591376631620242590976833219705474393941252025237700900194028451549287012105270028423026261304519864558052440949885493065350138188656316738152708545080582079314556404016867374448559136226362670171282851924830359895628232681879113091884618069218226106569826191092453263628083566037476805881543433046237522820067019655063809038058956485204756737042783586753138240082606404217240274630128425980211347887254932696938502590044227639306054003412620388041812605590203462544106502546350969031652808426668589324936161494057036121203129011687528212012271608205681029200088689157679432412027174951232523504784713015051181751229133147743080807138597755105513069887293233425122514197730040184882153390101257615475186368166770584336541982965652736320317313766774918685523868013733990299306423000556282449105314276235838760304772261585694322034232899668138792866494791264772897822429864712441405545863046040552394952012835170427341215915699719686771257323605438576108768810721021601104712997645836729317245340012098170240143449115394255932823426039376963699800023026699324247937359533555608810760240582601176378233964609428145736110743998517125339444824986497437891890733827223492524353793394095847511804018830054031978310065794086087078735466237508336105289986851563609323607131417678049838906416920417282817229608355392637586822949106603844870084588995835803817939911080910083996638626591013606333405513325651293888096628148117267783841496547919041287927363021056735791820691274600539167699288237118195042120356947784149579114315799237255181627211451929008348624772832510783132581781794245021397874354697846792326768573502813304997021014319671138268550237966853076850437239308055664191098144947000063444166409323993126011519094527943079372723200034228831011747693490221770905029937681769132883313002885181349572097309009717398038392445924065323709556638798054025442418949148639583015536067046159408994620317691148511544062898003698694653184409119946939133242711869821485383740949975133563044551329522773456863298167799555496897291514327405648767659825435582042845459977459796308769153071347320075267177982117145327758088985437653094577200910856636022765095565913561284052717892890137761628970884369731163642721495683232939774054757218067566605846294156294165964480351706012516462072964183290458448434904212768269966847847774488840021657227893750758320830315130409754896815630788615927975761516109367304141135524050533262530367481362082156867215680930729315043208945411608460476153912700209613075089991773472378139884425689346640186716198891930944426155117861068310995345542646767237601236097871615496852577718779204558457566658648681658695882939600312475577690200276530255479550055019036661512229630004606667646744412719542509657883348468715336457225364435174849834225612296883961031358128151231949068414782244521358441764243499488027898849576963194552552802109739610859093715915021145201976276137237857935098073493983081658305022850162505547721314670653887200789498262897401183688477079732617907151807171602449375793019413450672718572358161606234522387965226201597000688568267708132108473757474903114720171440327317550609852575276469837622509228000756327224763875216146562620644615888319649236143505864236998789338576519722514936612704078536153163188577333507106509822620099218950451286992797942013747248428734774245193030392652200951001339213630655645983401284284807301216601926739680038264849059788692330568175942897937303523208342327404071631296862333943139533460088320754721815571226531713170609431856238802432988849076339029388430009804926225473169899320667613799737707274631936458347821864124182880520993440743963925790428262619109859026809046084675290494627575388942830674760562917060886957513875168040255374800231385335068992165122423381103637900023361393452641316051107802255660400934319626415998159834520386775966090234981396692484989314422461326751127939790357430907549999033944455566042291837013132581083768192456345847528998754752665513748628328950735653904027219871773309476376681516391648550593385259462461196763754652364799266214718041336815142476017493949317407916995749103194794115858789095938763929645765970414866182059159049310730578181581468905097762319593473986737750434556943292003460138191146711699064284104771542510532919860400029936239536681264496756205127137533704612784920607982683291801804882691025999258220587553776073996538811155093623195495295874234497433613726401285299119453907116144026902048347082244011782318688407493167854893677047750293511464742293622086604630831771674155690242717141673758732023743992566778196138346458621688675688428365201420307666827001820720811398556528026231714851320833144730041784452040136186745243339797273022176120393197041696593935076887598552542576110062324011133396594793953373945497299939699058037749813420719065687313049349302599669514173141457867903981518632386961889492006432625256604449421648470479052768797136702002980357387565904623560226880159682752004494794065969920052693703364782319141554184018524761515504382504878325289145596157899520858574657470855775586150709893546968365646877575090825591016119715070197966045989005668392821137980168327980716171890868074853526290289388079758685742151696687602266114288619451445601731512995406351889231807043311308171916304426588881476833632521668794508379783736335988524161180344219163590521983946547226232301170447752776271644126906177394658469117853587284442192687689280016679113934343947786989083494078998561436379796843621298833341546735081296604608295164803723462913926920226156177473490200919357929817904754642950835796688697129907718364830534544796161241214440339597320195061996895136976510605181670460609806358966570794732597936115034089937174281369060968995770030743786272251813545810159726619769090934903536059382778072567899143907323870116673914683095010751356386913993871276039632694334208617682664768097573721220546917356488761454400372678411853018323692265125757310852905555023587624425635808269040052261146385532496847332730053517192097809108288811099695126089176018078529811106524011912820538149050953435341900481360282793684714693012385493755188880529321997545903395954478613650651260540070205553571918246932902363117236652138242855556229878300154071271736295619463741359678780908800330740716235020513639474324111535753929662441396851307261990448592987906758916752353515553659443330584538684322845819927879799561225563652956541326752803322718990624349494704264224267073029723265685435501282431672207313703801778243343903866552042806747277879933342884187068761170529668378730346481751441618212232926993884542847538256413793250588059995078076830471789622169866494392151531372863902948835761407083370593289735500851787218175578186125796830212833586312369426199645474509213565057387424511474138947605632383294501041829690079103346322301788686687912550584732588765289875047014990666101254386678422417801443897983214285606576929938084703189678788614634767458703225875340504029772277899948490691695859663076291687479697675706583063367691012730323377463652179216769361226619610296687664221406836861024367945731623055810349242287017397864686821349779551691715776661019577979064001881023208059054316387853854550501275494961267117981248679194187368478989473872979740144932046210933600461606524985981252451093691064992848781559426543849465361259918207034169462768460550908950814069037941517643059949113122807904186566341316177377461594059254186231239055539108442708607367901661081719727456749472436013088106609313031956566829007836901619724817765591912605633607339352449481242040641302546707476320368865591061617951582687227296098255479989737554783548654626307346368928929056871181573274678824632490630848716486371041449947003196485231452429516338368427315803551632826026074752827316922403733560594096614815965265887626140290682762185312481111805199461319871392480241127835884996799968189017297534926640754808154120180505043148567443291168466310417765234101930002454617065160169925680856376157714310862638857722003038509691102435676016238106097839722367692424293852932914644742812410901473926484655270159268563578825027414778688486023668515805011387754234992362812550049264968439827797465284107299893837653450171705470381913199083398174266273328880969890428518399271066635533914358203656053704321443673615572147726856657902543801682536203290250412300179564106679417990508471719416083742227269167874205387963309600660193224906102365205316220331115934416487428752747728919402011778667234375569555859764830006958295083036914449511360353152584103290570901222230668105188739085830230301036184114304660792456341984969886336521784097360434888785184272879885318526747695378473308101144539805381916045170913483946276047887742904651237120804630282715698014083038201050460250448492116684905515389788026919934211538991044000453652399075432667645774980716919343661974427778855790859189635877505000100176193743452724217325652189194891904316759054646034687109594124928279104613208329848068064635168431770175204985906726293215029993095685475415765913772038820180232771563912587187138645715317596381651341682164058870486900440358239934610338171929231622096249311308466133990370096423977387069878032944488045886902703941055251635361257103139511977465885110927856168884052907509716899943216906844658426016003016217497677955865772501303075255503533716949463517545144378560197277852635362864161854368536849209971067796884284341759063623701874178615439775475047595273513895308010461739578189348785953391202914683248979835437892011157017541725586452015200404684157982077175607558129171941393147393076784464480131448914961396920192463548618710283157795667597829616210328379779040149248425039208573151860051893808643763186271450679202353884725947472386490361181002668857104091134511316041726412071202535327749104599545799443696750608531753686016449767125373637493306930020127715072163022078589906323755568002113336359637907371213556873960795392748011580070338023497107516962575719424512227984238059722560747523290254774213750673821482085989651442318431817548788393353850682013955143871145405810737901462813907462191229475882546489033783952869307792342807133724227087689267046192418110724747250708252978144608777010749369052580746266009824641223693334463972632234542089377378075252076087804410607735187369439885935073982165402543454924154253692462606087906551747380958764404181892570974912601963377827101569984192764861246855587536919577661103846851380286223185235110502561209082207588850206349777466619937207074678453726440490572802114702988902947336340755178644713177180268464742527317337859503508206649355435274148644898586226700666536728054609106489823373297561560731088483915300403760195098697450194544963817634292970525800840384474577980159804013342827075079216684612134216686492872860328259198795795242354151718021459979543894311799439227284250512669117019021304428468628994437676280508476196310775139343324298159156959627922021420860671888543892763194856337515561417062029137990695342563073428956934839254393938147349533872197846340105659943449556443124191103025476174123200286532248708996728169575072344293906787828398615561592013224351158357376679258890892421721181756372374341052512862574725655582887748538826145657672729055845723191424553146870909235912275057042877089714626788918161879361463817884985855938833225471237736393530130884980831269422552898934665453196791971771947522677061759763169376086125534377018865388417533554844032558293416454255629720562960751851082055538011535086133924792138633918332035580293986124767303038135165421270277565601090710377963007153953119833021593963388364514739518012005310309171492598696685438980038801134791031384171788511404512873198306031735728777539982434807889812737731023804120069268152321337640169250508018046573113186147508738943451027397114091635676815658050291446921650604362659238264161457658194918596702325865000560481797130280717617434429822716895536884769354139017573887166936719365964554138968677057734699307546326697037819213660367326784678884857346391515958920892804124678987029781070913442670065210401574942333139043453537080939322975546255849559842109866189238078899075714905498073565041065475949527323888236218305770277224821947373133085106368312685735204817143782864236508973717519521087025502195007826567285826009287834301340095561526719923886651480541316656249192496690579627466787632761335995919583869071880045685810048855087935484316277371219670830527769978997304937515850523994509859448815499067603524062862925992368915914364704798839569283993164143219303683640666038664734513713818198448263680953679361402845485339932707897417054279516695457082297594836200464314386593417885886986936193936099192347141549116980380429556209076605487327829288437446673403053924557836527052561876749822033399854073917911374645978440419828963403850355843241660004061787394518779426028006276827051575569960872956954878160774106190900517350411176282512864348968233592711764166468284358842930803665963859567042825950581784018650784297672081726135617910230588042877263056009022832082545312117059101902872501792486272564906353439703741847602189771906408532369470790745014279642522907818876130604381359318836688723202457087969011041864500955452311549156726062110670851081422801313728298125926334992444026162153258997190245049299017723132049452575677871463463049845296316193053604430349326775130207697507499105286313379435697780939847778636280302184949485184507927911969681392855387953721632342033549676168055509311553354556542782335467564824892186327411450178383299175450717480717143845299625927271978930698041971901854431444949435071530106511147247842278572610215868910042918058101949163950551061948337537351496800462898328017378699882782225134511397300633380869279311165217023869484870389167707973431298603780040590630586143835930998131283992974554523763815306588411762227071470657054395812535070467974173124239929218020817571140961125055876759276488650061126619608831257693047030170655356385659611609172696138780654077602586724596663873026447879913973429764320800778125571539246164552276906546665025958258784751829652066096094311545848601414920518835095927314263443990791518251527721777130956523087133780923517183663724003582458060637627353511693618511864402305005628491782717544885425222769597431712651138341307918311673108021117159527593750148402399346987625526666470008501270357792412902080932171496586416778403865221379686627763442943942147518249418341453474619618924944808365222786800836560072337723896824944060877554988469701596744747960775361668484905003014613341296600552654954927555671183438967713603772796916294753371924568668032496085387787715800181659568007368674601835259018631709870860751675004187434626834163399257357385356346118250943754402330745085065169283850479914605370595935203790647884204986753973377182568788035100876087002660044514266068522175581236779880224024152095461104640342207230561006343349643995828867554954850416007972935268086987675140078224118354489934591247832667565751175514055290548505236718702451721798916134411943167616031572987664535171632009350986880544235106253219573515573353053542339560096712202068662149611355248925660975600207189441516574872373233013239321368923774879247029469974576720252956077999319850699845093534750009256938654450585680340045191795808942445417224589827851758203629208642554871579597189830044475169009069674255790396514867212951729624837432672169452585443879821464411940701105116615288553734523629534739099943749361341649148425158468485495022948319668807732081429101706931453967074160554702384405088742654850747212851125597485191737493442935189023761323673953447382648447733933427398376065462422171258925621337728542073511197920852228835450645945800717071606855870234589440425302880686718532159126483000224591805451511086451298988664671727294153870729380169776004391384464469427291792537974252139517688409091003688570002683517923550423378016872628609464404311427901638992337049456023249156819014232202719205642330303865891240909491684107409522253905201984159734042737410943012057075048553973669963323498438849938734440489212482548900243008660739085932156580948615338542174911497745147600869418613439385851105219197689050250550810288803206161077661032201791717858470626653544650595940249897677516631753513700875620120496056829248218947710668744217039911028562489036166761483989807689311603982743577159149277366446700187947368077366380950307457533746029168366354738635192697276351187910365974904464343366358777847520408154246991577921283307599239724498269006584104200882650714517212104889507690571112794201766802787135613930921831936163256465282459057434354794685716396961149655671835324660100998147488182442523020025758487746344350920744008307155380391652381015456158671874301769991747304327087880721903321063608316509399039282887920506963096958965249342859526482500718713408575701982664126223590804480997805098671637282457977023165414195821491732237594259106362947844646275729768228348054748307758249423012826160835538783379210427381207802610566672341180670566097725913203668331620563735012951519399137955944864441790375277723648321684241064272406454717137397476563295583851254168905131781157045862097398933073477032457242214090765974123947125359176935654473460268024303732473768379138968713938755435126636970503708186684362524117072293803386410288213376878737891109120224087866537906997802693421570526230741957831736836783974369887726845715459181683104008205836161442876610756104332335964075214133358153725018803156969187417772636521728173115394222366390973745595761915138948809716447391153592800751291154947587827727518860404827605135230159947467564643676814886527664585828806604772453480274551742850604507469086398854204892411974502120600365383190483266240255709041039562158116282802885873175793075575889112551963799289365196745729830542540218644629174329099901319772027628820079799948361484484818526385297239127955048890899218401850866337278990792723057455694468801670773999500802139839272225307861589354175049777862828868124276158994007262406006133653398585004877881234156723328036589050684016349378537958033022882938105707037741699720434436329575299432025141115561991178150054705025628457200331017496551488114485813472897559118601411881571825722725231635777651216884280178141936884410077612120639646207149947085351143799121468809220148289122775759231053807767418342596400074400643964405209420337993360234085458773693758885102087561449863647136332270166011174216804498495944655963693643510371872100740790168938714605785476704864651840874658433902908570108637651688298637836856005313872824356750596036167104304939007424583559868765969504983448639688838625597997916072042840187503850494186063818840973811515252739933751242410856137199621620613299837516004817485251793517374111577924974933926963386541659460371604781140002952701127021239993205134900647480655626569322051511269213822941110542141977273161461339098078614580390582589730927297397131577518868067879702625439555947886101026748359461831992965570862729379014808418442074561216964005482035908730718717460405736250143163846405630182876830482549988769727781932446831138750439802615218064575921697583350077599020964149810620223651343738831067103313160900344287774624111496122561170897970587693087730861372362648019117359104303437850882025569863982670804107701306481993851583612494566816672762019732074066987241698698332660520504226726776037648746593857244340207074668491921078860522076590684320332496316470729872633062706211782909178331474165035288629009457444058341038389340406182340414408135560656241428718581420744043366811468150347604506445130199151023932902850764570963349480974296406203176832197923298864889256656577546491054254792068523406985394529868771867575109346864255057182093112841130232815774240295369572776173815087442023573734031412998988006730313609673790765472486860921358987534787770432685765937074552939819280015728050974535242343189657663106433725888568513685218081282313146706692137549931058787121670537710267697711305253021343321087590983830612407742294033237497351214802934065269102626133752102341310407146194855272650551804743181817374858815813913595059115399301244580361102858593360703326951588908478037242627556371668341150278480168888187771921315182829986711348156874243489415558198851818233770527493526592972689599903832334177554006481860112541875815434249614324592207567902436475454151174608014597739843371576001074679535815639250115806828481287054649567064293320886450972707163644928042543137268170970514099292141103732362074831931600140381500897365591958841947470886968173009353165817952596451856183681664547609718327877485791011833047373848185078408910904235317803379158677226198059485013764406186862079488944157835609349250348363671013157581824438763260485945907774632319917004134417292048198782947180843970723686313603041208083411219277739879637288053147535280434740957417316575393749480238319674817729166144915556247089283433151301922564346183546472882610171037104151978809897532613104503669710776850709110305250632433968697436230129549280325715391963773496924153254148589519367803315119285624110094936180198819401196324294279085342471610563483527918593501051658614475224408775900227739772311652039171247671779223910927869239903671671490394059600935610061726522651810555913296898489555331622632568081176778077632604390233331482677664320391779988771610550673647937871609579568568957730665374761795283624885520247434359044373699052216562988181780969351083584812955265115913875641748245277764744455280173109713904564877853616280411489530775896785138537902083539645426880923406373974848431330226865445705861720331325331798865165672384968294051464979351150787631314550151471224911988270842730674867676189370423535686512197802600304044929235767006809054670983686231482557727611221264021770811616752082223236763113566748490879935459968027724741624073275064866756925293064514242472586549220066783784078397924662928202031499642890926127647481667120526022451540273583673902260052562297144834717826436178393416210360252234821795440019339994468156006781568954116618979527712942349958717059020674235942693046415948393133070821613520423736999645810068751784061159270910740727922730963602979919329639237163560862918070266379392282418841502260558435573911776485750983964154086464260720746147734016245687063769341683925690386432078026119976364983140245998862823740654836223483572909901930785026558532017858641182001611684624655082716924945894479690812781954135641916502957659418501994818443504001360105424644812458414419702038403756184476103405522303335277804098931110445319452156616466105593045718997775638034847545298466180874522263555714859950880300047216696371257965077340458675312285539283632578137957021198141203230547684622666375767792622123113528668955609229806712974780392128784251065426257709445027816931336914692685098196306801970691284882827735785130755830132589841331671739076795862283665152146480129109174660927807085449765231571953332020878957580597544250357772021748015343041011139792492135957310780699286842195050134578128692112235347587822553550780203168732726457373729016516806633862611020682585287687192056833695005065699308225922050271091663315685305141627660384971363043090622094160039644373479866190077548209792793658955456598681741191908603412708379105253540058876400329882000948995522948564214729124860596731061160241331958183375831351549154228076422639696529718589280060035230387446924255058022160653365285496648183430717503135998506754131849947255974842874796890993498136516800158282181577085910772480254342052046097501008996553109712845332434628001209803884232265245317264122798267231742650697395403916144327023777049695907818689898142288634293881991056681489589108511236415119023256694046902367978552356288283959721883076720215390217624444156875382740200592781924660620217724672016808330386221380332018073496805638188263838801532006900686148670726182471393947233968826567826376123768612911967813690236657975299470179991615241494062355477217692974274630812236363870680331866138087506693027955477076182873365675135799090886432557339261297900381729098804358087244806940992758203278929459999562877299777016731868539056389753501486787479312843846850294605218303689441660459921804163053170681089724662002611132714666916245165341859879969666571631532778336100740738796656718052761966310308187034848220696174982530613850405344288543411717870751002560860239327938726961509140014633991284681176772432104081530793924911137745556851659067987257962339323061640945099470753640943061958482595418324291009689943825375999872849492065016285083823258512025959790093727468166318557898967739480077163539239911824245557452247101512057345637197448217143332242456474002162780563634452362399362778334350570272705675829100784237605786727797144181148417532222127366213937655893608416797151684162090786483455305567243748067366385771742719622735622616425407966646182287927336648250640380412845967663238293640447321066676986439082409256556958450729632317231791289624140122467156889918735288951483517403891328791201749814283542637969438898532532260412756656197179946078589002170487026229159884818044610758320484461869895458662140967367104872525083662096782142459212267033831222379390392875757210222018007130071984139684808319717446984134658312261593283521262629941161423945514094698358060620405294820837279857125245442947140718596059360309299190795030931326421556011749440673508198363939427810389677728785833838639646790730132200980670711338955468943376707893375418160986836638299214750849015099927916716048059468658007040296766216442951029670032682345978970499504923857045018645401804030876316638268955485838778621283589228339002130288301239678162211782991012345973399032955611666658718376051276501024858064688738773315454752655940710692846269450785517089345395574798090817519232412384086265733676276210995656509669951613578878394120914162939479210166000488546352096908398972492408951168749084270025904643838441752986275382946543136400565773913431999727089531302701135719503212271804285226036096717310899463227781957187762523024240934832437965738270441829861781605324129773481839813876463228081376300672793484231283637282908243639719776822062542269408449280872544850458737241784434183816479303062089575785679083313525467494698366450209762564060758474421089281953594225490394410210952805275635482221840342725815867584449990972211262050260951714357234640806327042803123429464178561468769516717478566269213168125682496253733823623490934729986128505946241061530947838514856876929540823910386694844392819105813172781367196943311671014743315479829647553649376219249045716803434559965999272426627120013116484674653963038048816190032325063814564051581867281199563185470821794964429733420104697583559008554029024280945784154507756407608636350872505832156678891897007561436572543285516274277252533331860599993942588135760199293174130826608162646031610826639756570912052108853530643740326073847815102866542566856793214562075624436047756074670683585292459214720503842767144360222851430460149210937023386254578292515876131821244463536926195350462200767274756811862508693611563798631821659661730403086101542128782507840923718602705303531596588377777415773637103080524345805176293036182901412639965384300198385415777916758179489614411415135794290523775967508439566696210486601174697300686255718741843468009615109523196012522170342831481327252746389821127927016242336529686110592481047918457467615520920290339158729619077835921042627897754633012122500777067208026679287256651349029437663180642102267146076713448608617935662056050782081493506074805331449972791984536931701526979665015828475222763714601502298853724498672550398184220382039967938626210261488483574117975794823284332742140255121471918893791490721512420763309218484006141874840671230475278502798900168464199346349166608358155135783095116937191364707283458833811510416784887629610360031278639128821068404384528937607473151431174330746333400876356307183325312572741340087663953102753033740890659086889226117173237714195547064612434253887960714690605301404567690298911407975024371947689086057115175231796912019242534168341108372136764994084480093827327258403501142021526602886205636155503914242579114006347618884612721384232446158562180841708520886211826464304308436290711068009703881495832903216644623819630370011564838160479160907905354624973706484519044494860628663738353332731401522559926243141915531456093063410894405227308475252012515310307843771170032247862112975804746085157222492447345836973094640968257497176174173398387295743760123360131185594963800954242290300092165382421967813069187868410065475054181673866707914362957591221313368664164981837968163768258012789847110815585345736706956767932439485111770142749449420667946097930952074126110269183227673492386686945258109105492147699298513877119716688336749590926508870390763706809166358816494835201639589039813496928139733279624472209546076476858895129941003248481784488042599785644627225664265214108878017092728232206593411997320017010085316663057960171214046424097560743488788358487990571580662025590813539273362828168472768732130273059191518161625364990611334869733892114954926279300342527017929839651141780440140620331735598708707129644327153863014675545182053485443033893367996982249862558222434074005611084340736638626239402102560135744857910047798662715208485126741281355955590659608756840908807078787447617902890510705949421418587547691914044919209170913852607909627732724923806532773430474411177108987545726687585252074219214811188917873549263435962395085494096915228644490616066678851039546213795166569287479381586933221226548130341854385187524217754612578042288763091556708199851238832367307837590669233492094889022307388682870531480820488631210260307197113137671459562761570347734339032011800747546799854924574508527209683719573866532489749023442836756385774603520283274907408675975506751195901129959553369548566669050977773493076055830078927417584025805345387830206152271936895918931171413785325851063385713693375896467870333098071331299542683922147998782772365044261797476635537800694886859559584424129469900633507138873087634067401600373384674161867911716535202412074382059495304139069973263990319510022068668933849077081043799766845166078581181125320113992207833776856985669857721574554846349819826733876934867646716089931471480619118980147277540255284034047064833107110237264963258705475763166669163147349319210318877240050771407889780561760602049725685497542186510001017559919517503198784781503297554767809689793098210376092096270716280278455912813661487959314665971625138640898758067426419347005253542280820613682997964508396887807907764040226912577036370282233061326013635003843973428637839329685397978307059831849816544632002918934540898706574032341258405143039454770650044703400891614670617524484813443508701409428381430845760839468194616486694962643860910720073403307034473490530260599305660500324277206579910580522376654497115667176857715722156443601610249932659080562922777427975692367560146189149981279216681853619961397885081266262971640989704114508607595389889465164878175195532349040472562181265752611278481649451360318178790963281789461997002033749263337714347162610803493236486695621783005672451811975877994120920652808486746485561300401366268229887246725197422448263483530989819210553088828945347908052301460701592497005081033658371627907643694362710067498804339076100945738941254616076097724673978898804551298585430007293325400045747570302833997064689442826185351533449494990796383641546882461901700551481125856254349168459119519236757500134134390368903717768894903266292840758636606495729501569789880137566041686194478978057194859392249681389053067750872174639965246595002690027417326139816126145672560965744116571784244658486255239152396440825980846313841521836681604297844646208405286807948155194023372957634011376704415433206261519309362964478764626698319847210948928364813935659547619334913251414274827591643115191116711744141874050106066917719338790385677783890620899371733783402497992973971897025703641628679475172976533408786956259679416458154268001691289958764888746000145499748451115955037034701566713852666966708352102702908169919872743444571639672148110158766820463875508207190584455691117610135950379592797849122682707922513602796989401400035984492865278720436144788996941305623786619523645565712254872502517423614910600757328813633412149346788844062428291239162383787838778188410172761927857320726889139717890308514118535917575012865783542654523817725109547800281068139479386539686166999853424510543829208768568094368413577857440340323376705415883417391125806614021472624378691601184830185869598938260182158400471811914305063955656799502451090567086270409914560452144013184862327733238368172170264623637095034347519362904394981560836085384413420968942756832780948113849443338563681288152934573144507098094838900935795240310713755943243023983479950187525510358466108191700342167598336057264234066319543707794729792024849022712554359150830680528684769904068509208448705279532468757774134246522629655554252529125378294644150036954096906947464360008537857824648387317877425194567727621134448301066474403588857794957951233557480503455683403514702323409845712621412491917002809006825132956576874241384253590663710377522313426544787078759187663306847278112025923188453834821411370318404468885935168890665712372480466200617879656925285390213174495384475841535156191760364883676386773360852761474349867427346131722756868050170154434293497991358490717030987982557784198254464080463063308684930295190524875860981881876857707318547778416924928921427900058794359795728296988752169846978643985167014746519475788542877013310703237203538226155287502476751586562327641725288218176529025293893131357280995838329427975273169141963798208329731275092794784672442265323394256226647760305631153226014870453172711118900117743207949206790790448794121326517807361031379736908467718172533623775932973754143315804733847740766344591599521382413547116682177314272417290868982662076242647463394925792799036151320938401283892325758614624298895447057854484885497893387439451073876512467715106724642863242057393952524880975567185409097095175754731177867197865048149580736112866671004717313966615693059147094624071756662735476786777077286413180242244995006544826048622472491209326054666448735002094569485579739224355608699797939137896642496299875612283107634433036224946760063707642555486751122075930301304356329017324706972804132017826629266855046715183615339287061311041540286796439791826058477646543674939805312985996718090542607924319682199743851606918269460014609786862843153836243419966480143548133977982029719722988629852301570253864678674634821040638178857942742603078961790939645386822622711662097975156031113081853859442956925090005262510024466482143642966365143014428304355756926367970369178966105690003695067764113366961245518949661138770282890298180435804056700712754668859476765863866293051501355339928506704077326789373375714043112501035788101798183381804815001308321662219191949038263884163739875178698570194240166976393761468673164501860040196231154575001207474243372803243406728897711202311439699262675277307311311696848138723090738795735476761929406477168671441408708660532488010032467891725933645545515709679138598473435518284655249018608470265956283451392351899286366556042083295194059041194895182059102174312189098575891876745500318888495877429712577904383007104227314956267180919642799319641975508602919969653264699466872323028054467007008471524587666430315557533020257956486118641352742974788045295583569675634121092198978303986586226027089387948056003236044917470526360782292580024977725149808253222568755717539045918919771081590420799761561224379432825291670427864993219903211453836926290360411072372054089505253883884032503984286946175013135162052170841823478866349614259173335180849041596237718261071233492828281311731848022678797749067572767761317123208383610831692919796785645162402507274526337353387715537874809470828050332323278755631299848766224158264098491253067642905775288788804350954205169342590494362184585084922790645078226391176386909840155251711575602197591941722895355017517289560294516523465034438645392962712060429525164592556095799244436429399016842778275087034099647211335385025118943719585645594569687137709469613811287177657451803498415632334185760221106299349229810741254568106202509163637059425252630692778084873216761213098175452867141704834846237365206224275584840086270491208591468020210000763016310653657025910256818313278709529359444449238695077769507070618882768269128842356658768004379913891381931052358088480142994735688602799752336118924125952259559828382418715049969965502133729617987591622279510311481291236202881081136999888839860607817834977693555455212765004837101359391206868689187950600454613522933676385339412485313508189670931660709794659783504975093314993267930415987182997084224011935283051717710281913084246691830726611433648375212405228124088486375250605722014515570968461137030016158774910883921056502756360415930005178404048469743245245698745968527077820147913967750565363774499552540272799547354875242870293138761445262330200420676055223865098012155283403133286467994079247695641006051436269230551386517288163615219716577861474409677979968804158729944273525278258920278182122756382733691131456202130597487609121729534375992414678913431150521181611767531196806139615831175794776740335191379765281385326788002630009597719829567809062250094168509745932249657520453544277720993160752954993500929824627653294833632775501576669660969910181938814227651070129812806189086799672958424537752395436932668030356429195799458816442381722763867588081629244884881162371461912385935546950199465293563230249947606948752238190581432426241216874522701086671295331497954034501424668544324940162167020910982970966968236917290772308081496542841816654654437941054514960033435203927940931048685267351657774884169476532373697713857462842502854256844634185310753584677865658990393789443393355562655499823661139309123794817692769042569561304191261224945918804722380352743581481556309430016082016565736745176874647877841757974460037427916948375144822498760220798286173679404562200554317867240643546024997565713719464310103689778030181261083017502573570727383079337840465643146274033942195878816257847439107528831246193845155839188435632426815425402455913958998681216061423025540753600020892234907538997365329691504866874137886590822829747912259559698047012999278477512448164640276338519918479925436753465670212185845809463904557388049679385837055834908301172844944357924033404169613749949168998595387807340970653637564591421808275546080284465492208983351167870576537299793298802193247412403315554871524410282674718899301801757832837974134855198898821092673577969319777245451429660747109234877743047299907283434342884987105812602141736485433258074346585158616314050178500386589043133387096563861524299366341674157015011524673621427186655602266561424627411600526022211079269998178472429619197821451186068993268928743991214072649491812404746263936906641549378201127500128722386066390996564724488224866290089847489794308359335737148622019618245683591662444893095051482895030784882925562297480282467726132911390278293285312729435104175392616238587939661499575593338323910395392095066612620826578251908478371691132764330752822169219112328025837760215430363015062248149318409273344046889528093824680825614709753484012828421856291754274183434211098874732944551161629305602331033549571808929500634045625503768777589354937537481764946893833887588754115581892955918908973110502105528120232333264581460469353154261956093072238254155460266523839643730333609934983600698768914073472264727778990216901803086128697249481522835825784663274049426344701469721345687073348628754065374345763827349456700306382586335004095393875443627135968653116824893064170858579455992960918584468013381694033634132097512125876234449644294302226934374171704832195466206241283675563278247318664615507396452122536613544089304980422707384863520537296175569559246939971523174989875909113988116354850974889099401972114981683941615274637615336315592344993528769295634238348711472886265326246605549425916994022361884536478122550159977282940437855620192834531060811367024715925313679508630961036025986766358125219101250198250388481629205633122417658053522527912223587629812561788274594061550582203573278214263850734076877395133296052696969054314705520955960272893875590618184344092586823082633129169588557695896995753993371819109422569449147375033739408387492830300689287626728792963132420517486564760243396090609483079368978729278118776961264727000242987925950944826441153811992370104876682491793666465668597026170123526559497166125407823845972971995821560454854248250551828784407045266866559643893661365070233706256500622035981699641350912958875424025719561150312516440772075186230338916713710467353990836727769259098038739456964431436939573668448207167682994870237032469117993453419077616483593145024628867703233465417500986116228079538630199905365481136855703656526498908580030582486887095985579585354955422387146028582764311068157043659239224859227004713951145217406887191907229725296609761281555788074941538084248526339251873705519729474806303919063472368482802647416184876033563917528874664750075740787535708139188683855390182876155209906596978670791518039813506518152739879093376393647776814578068622360146964393216480701136680671603964337502654766342575809367700602919781212356331231379908147837024284467597285990883551317534634271671132887256611302947467452557983568071630810040367316084671787367503099518541075862224241656417904740034230943363751706486481218518107383047433410349488908029152123304759390402130336511805274709684497420418675878187797684199550316432829430229835859361471913257942934167776668084045092493852016140525559087952643712111360512295988983198589144201456269765760819502379220719225268205726622316243867702172038817983713798728501717601609600967965147765488477136572920503946410545255483512964468142628721640564255565016128172910245121821274190711024306227431607689649168984514754843733257075364885573763967394243538789132689861843723874925276688179484939285086755653711109622323031400410548896653056089474166504523431376426632786929477666745209484753653916898373493184340569321605306508210831180483394557028972565534604836948168902986497921729242780210046477904174157728083817322065204117502890762089145794074035867440311435261889201451030111981770899819976420480259875551714989726907405415033108065704958066431102090036096132277266424579623889460374486593646611244458054224411068147724359107683429231756704620684743196593452869843595666487716234017960477540430099717144049306409994031310433336632248575071566617959191418980289911586185377244188870193931846781320160016571085178329429774026295955490608796034528177792029902561419786030577711210132927482570737574179033628312485219930630904515052094717670938932035890084350193433228954511125627683262535225262159291169809300376497361729746102873643915185426459575475657801429415234953615044457908430483134320441628825999558136905418129791042282649009237395088136038811921221775893613466443959195760537017666918512624507264259575676105428411939919545629987633726197103988117907390077839887833117479864199633732158966475881246495506727861800615613784053974643012995361157460195890629454089645493555982864373368461906419270214635373992147503176487094388599894692129633704091912192221783189957219919822260370940484828779180752357445287996126409701233147415174002206669024709499943790483653672372326319697134356142894309227269856776358230204181035286762423442232830952409122948462458325979474819074137434641149905216776810422576209602401598447128797510751898338873325618462113174443476754481403207443547313159696034935267394253377391672567522258596808046054965471777426956574549405035398682208872157398607953166760148104812545884552775538419620153654481062049094578524083413612590788791288018573488995661194809590901238922723962700826763441298663206994247814645478314564218891550989824233472549080113449494852823820545803490026950660418963399976330633382307505034314790199686673836737214304625793200419894267198848746729927031555615376967531662476388976300572277731354583234847334416074976569887276711136873464443833588842707483100268220736083681477806396894419823809099219270829426436111167461660798764095041412623716826653112091799465786000111508780022080532841246325069667234028614383966297916106193131254853016695386604926463287764457012308127985421751575062284651592483903747716213383125356623859053070804877403960719194841378424217575704860923902913506828579475592976356335742770240912093971433805236775037198424819974061539905775752014548456417531467618668777890668537527579215058131429097258273886471018673268891537381895491300303467793049303998577479474196605869393425994934048411668480097363262567377643710867698865925021093466223896979510420696571575959467474005443473444100103559214308426619606634822785361194808039929736873601643365604183258286629181128076821372876488014888626535599602410541716210038322113520978599699368927078784031759937420544416407634355761842805217108663638513527743211211875104936812715137150197149208836688231053018095993794289361821746667327241597914073604528662318585465656674970224852219889833230322902753719089813833595178207026047164263409599056717180137112723732558988056487753373076270110146019218673802771747024317823516810155771034836231678852442918722796791465930136593739232548578840649887990557899152896341405400745541504301970719181950800535598771478851085455150894231676318407708239728968956591444314899452668923310769120535248389278231818287210298564761823772400202468356033971687610097889338356173249804480778303261417800604456306466080601666933148440858118492374875551388046452080198281569485190663218256671678793349519066523007272240141849502495224489403979840209674688850833144860971568478619313581051321834356643018835910399913821618613968935006727396346653186092631565380223109777799271361896447883247585956032095820681366014502016267527029657165003001828931793564626836442665400934516436673428272566064237133551396586268023783747318289743283615975978150467165515732126009783081489115295388911689870731373424010360694009429099135770423889912156902691125477197656945639004479860489192579719259598319548322065700938658939522235983962795294392262148446610559166578872250856295395057989794217022390618456282046370010416500706699204734986335206232391078163823134030837335268028201567015398551296585867682742339513258397507285408179186370320606127347612371273953124364335052582731223090009024851972699864158920846728725633323637033365627589445630611508298512050968662340300771761462007624778809533757213871822703601141593095350221145150614299772278818612432008851707359552094154344082077950271966878297486839403352652341099994445155501936730847092112318824060078062670010650017732334729136099580191016698785381216248947619584815133894395492293683173484927906163252995860989428091125218290897925852871850809049254548825003952774857418738078454928307950581002654688840342838399191271868103723799132872434101244936336711817853625215210050015261240854169860614526721203421623638293034037972028030758275936047544198590012900031961006268168595096270536596094843795989853009499029231943742835545414677529839092941247931947632905722110261830512721494740199533268359975202307044477079416556762931942975120975309769651469956824118820035428045462979025932121333386471792275708681945930871976723252478135267597076074324018038736615254275935826181738950687158098165771771035585391913386143814686346980884438442349209906688936360407957923190420930866668214362966394167915962931557211689795633772233490720716008316631467782324333308837298761252027160084451265264100077103692165591049132741901543017731678639524634124152091981442397864974774390861919991544195516773947439275646613520114221940288766133315613882467449022236695444404571528837030357676569964661778619531002272557308449664900819812951239572133460165670728158692144980179699906246404220731037535731097768178197645510667445393304294038463823949133257867315086042782618814530284266967532553431047156952197582560574233458991557000857849113841817364507806919212529253981732034886595973657315628293971360928894950283344074767793894744649997286538971994020634867451879099359831958681160599203892300473047521704552400562209821736642188908930194020752201392009002144306236072083868025037961102988321418516564142087007063648621946367124845584332980258620416991750226544135002760211219446493929159080601485386705821205700991844234247399569550747180050274438044741381164208675898858755812747021719534896913925319604207860492931526582307427475712945277449456140750416307741723783694961917342231828904208893907570814582579445840067463268748826208674567212434917581094834010421691135491810744084901481002021333268645313049551219587563330820871843256768480484453925606966286582377003833951267643807390970556457877003787664754167715502904325760569819572356680537153956775549785465049962463386988596989208803236543857839043294174057031872293251717631377739768716048871022532810512041796222118926692859368830485358095589870510858250989486610096587199705953669539011018442565737064813279557551165646590720518778612962448237122129803426587822906788092125281032538015540275066525952099371553660185008442899576186709551533974596053486007230135778797430810189126062029650275052392351038591563595443847118038449209871518363320978160605897440482586267713787432368475744963095436652913723967161333477964584689631031106475935683533958818665817187219158173319106761070026353116047956133213345981774192733442661179151399364939300403473719922444778543894037448991569648274932572018291775760318846587313856803482073413721975127687133931071629958480353780821942176862801885654732070926860259493307857210201265801086558322227966400336162536234946427968790579874232706197608554425276577925609140373828425452515449563062157544910030490611925254844722189990647974101675608291922867487607341944698631371970536595276849836823455483615482158217023609190441435350309170806934639717818692686410366925255236954748462702632951363163386764475609553643907946046643051424435556013491591117767223131292811661101791542628333628493499440944685809997697965429439850882290601684289916910364844694399712957188218467592559941456487465906393050277538537206042106453276483170599023623090543847483108727344201392666148246091588984972642236808279278382828208642952305075420995702120560017298879406869520935194728998056093679425481701174213166139395814578318118384589443244566265528815760740693327254404310937856079888911549799998977126018087233136264330457136237494291898382074951226337241443136002291272646479407243406195707712360592136410073056794808532268527260000403355978359094567164963110464077845547416604606696015453791086388694286098993369076901492323687737454888042622567028241285457984669588615891286179895565573616804899409450882446726219310307044956070968456396229174346439853522937875807001183897842960807012869571845446616585303042678899864620599788958221238859938976714429985784838658241552821121320942361966884816513133960177008579981001832702441880833835791134082881709533658875778235715790496861385494836135948015737087710594222581580834349556811682421746429365495617581661367094239686819534484559154422447217294305954763304786364232050230611330109324044676778393406201864498893555193668006607677419327837005157642522115567110905843537398252555164942731695402435500004083814380987536133301074283851678278121112954738870343349069606525426053143669118898408399100196720332522637619718489713523504111202588615077714807844247463778952016334001033741428067941734162992714077193259943835802481247133564904302360890297844232187260143596754525507826263152229925578210703605233183816048164183272678504929479932910502335741076536474177038375383322143924718571845840145318743330503546305556505184421486257114583802708664815768459528280083714004315893118076945377592896757659568317668365763710898786364058562441224284040843115942160245649899117997705239025742666912613488311469349046599722769001770849054049373935105530758615915171665926966030042842961956472055390926949800858098143220861678232103020427507715849879363223757747125369569029072011295230062856009987522046221519768604716927083251671860675610313038458673638536419718498084199769830416742846872672621281510347725321464780502798117591661933880962415968791438422488938210519731995053546434633248285994505707252100777234058847269494250732352319111155206670096335722654892541214708200506239798630686619331188971532151331395209877953872367282250669247976466363835598678656793639098633697542219745810370888859921326897760952582167659665381216733944011670449936884961066198950819865006743785082281619372588172226441723231978955083810659919471112497734810074043396544798686029504876391161169795434081118377331354504588963815494591220600074370645028361187115421583622438552867192362693203834924812578187974586017895426784123839141317284364747181379094691500387735747043234026067257962848661058134119938287985236789105079392397151918504403455015814036072331912367278906100954056738246063973120398990784225440467360495608618951635429377778469944361329533211992303541612757145340745328916152303600606801383111083461852775479643818620192072291737879617744446258105199399839739404835675728620134921867359554898778988455541119062002238884983240749714099800661545864609185469888806306963826556427826658591432526280727411467738656832734824515190225621195484942672237931221204489161095830851254452557570328925115667386750954368565316426027406646635161642126102063417730300080345412739409408097241136724243363481083383121380394535935143557762221139350418211223304750171354922990139919105643891469292634450474162306660814355615463045880926855767352822163426379415257672366952179089124932356175791510151708495861105511558638380202353872257429420662913299854406134093600829905160280033038042341173970714932920777529487060243066230016370219654563042024943792460122183575250520004456882897674324227649693774097423693196471146197420232696469088988857116969693944994944842204724258678294044540598795863320169124604366414520616252473913178566309025863476596205959497912980025572268599395274166353329576752851907617245781286368020529512580163166890161606544816082283592686566580215251269744487958497461408677622287470842321391167384114158624013717584132169455157003766992518604260660131822473834869408521497113679716055622639567232953140708924558335046882838210941896797420791931382739824055111943707642699952798660899053808156918366795099373334709129010019335041619607266334722247431157834758319420729783189012480072675848787180310628548939141507494486103492702354222458663654230376883616273958054847234278720092578717049433124096015317553776778069690690622507877655127706056133503702878598785720130985291377849714943144881881752378295903900302380393570241986993566282283474982645118072059238281632196542296689613233217209656913049619926870410485559076356421617602521659553072622341513975538286130678549892677219877789770284803835755765860333314814725285620456055312039265636241844734936368447182210094903151769580977656769718132760348231690912021912061536706565205616688142899458489370350293289068979298178117641703112702925900811785482778473311155798181420087933205886166766904700876443930757293822524618886644901354113637597634594249518467385952008277035835119257022045908499770313680194963753080712965644871607800504379548196095195876862302170432451406258020801039201234597138833833911528240941518534164194746144889563395393450747494800856546565915318130573181106498274650842242565257247175435450694383869847543200943816859321111001295568957384309418640587645052057331592636461006131433452422245866415943185406294334590905266002698845606925818492477604373193591688950867891218923136221089853686295598165445418766708744580767325050914679381567289796300674967631282838424478322391910268532402907489238051036814369137964790488775311359433324459490885065720975497459574694556822208653936632292275504420383777845692294547964074984815329985404520435497906250179205049741479798516315915605480211359432997546103109028105381004391816584082811632437169474317428012462348024821048259848645729297655320254930446615166293449991673891559921012871589444308101506133114642861216403650436885553948353692713573402722537577730936406363177398825637386610848858564509339492482318137492144693088136513077470224486209146060657835697991896491306934564268515189653058313979988175953213026117347343202633076943317066205539816670938945524736959065250683074052068839733780292126036566164028604677150233207246839806232048415004449076497394687507993682243315699936073480002534692253355942644743200196541492346554169018116607371071597800387929756343217090371647230507118934928448793086263042609666316231028803251666340231346705684341205341683072726577975687946188471070745886341820077370710082973885259195068744707132356963291701129657716448620162532121389683637641372555161507303389582028944772634518017735155976447396155500314999782266834902684763183685691831677873799333359510109908808686308327366085656522754230165632519272313758875901194539108822363967537220317377624880423311282824177678716462445823279990392671951511902205868129171209122799745601732563050626144090789123569032456284381922530545352387283146937580547468900451956457039635333095323769396914330095231428002739005195736876500512062219101126987923540929475931711378779313843563128898571665412320232824967101691550378387405388525025861346535497206259917436144715333654981495125514315960103004351338536806473485879766852523579778228635819441340472275404034206535383492704780953365414764483698670124103404195567318983715040416030496985111691519984735333505411669597173310146365908370205727238275225507978520438518777053763712829149337704533572735304866080665915108533969429771528202242475017157186807782506413454516236699370028796220898666442113119892114298620301854310804174720906267322403823150277485742487439271044632657743535627477908593146946062539828493809859090485578232358629524201049215455942321803802297044684065514180938740240340000665535387525446990447980264980817743102906232736705386782143250418984609892413113420838983705001959887333888803837284927596427707403016859771788232933294321944476841075285880688545856508821849265486564432714495822313409039474674834185518021200935416079623214147719581788123123362030611678019488732793783453978673837833288005490870287240224670418852126119656902232115770221925782027049648022009083200448410127172718401558376686226484958607924509609479575447186004504170306287109537143879219486587621821838901343353224798007373103958260126666002444264892492313051014909683187400797983705897829780322506640276903421631279178177059001371193192882215242043565143803051173869674975663633321746929857950740541299694927490487571213477230029814563815884480840375862255148237442836772148718806507153799917687436203988942582969525628116845006561849699355680714696150373633094869003015742159628521326331078905615295298751801984586923394051073351267398352086529089666228116707012568507670004732238933565138826325185326884706843243189100755773593781712848928989524595862796664898793834801056438914362149077650231104319947051357121084294511586983471546874781645854923545981772593336366746123681901096214058631414986462754116364911302182951432338775609976744412956137572253394012011135968252088920430922064275618756371185269895337234898003303494629418131047981976541073340914389248868840497478396652606868856310856040539547583856897475958397899165338064045943046645848966893465563820961263006377284423059853932568055480282112379550310697269064266014161702313147463888704494281233913639991662288638228622801401875896077167669089285608176847304583473412880708056347720685124974252068326069293149329299626431663953713610747539678201409204899507059243355262224917462514086677308292187433376061655498188274672508366476547742039575691129764031065548762856926282262078016706761468242178621064706757196899579161757621932604961069169000659882972948409078159551763245984866246650935972915887688508567784259137954346686174965175223164291929531352977213698150699525521796904235292530430440381654096346747231448371615667836776397130914638860478802857337506591686887048087217520658227983138925954986331439457975975764342564016768311265662488485036125702072495420551681123672227427622103107670272671932581848926259492076749739892021480778792916668916499940787747169594314239449432061096856472873376370078096851381989424020345186645132852122318509735849921484233825547651641571830536157263400999942964766676731558379370462250874640392117466547348068700247153631397095911428795651581328444477645065395911296150187035705530260728515247363508369156065340384901219900802934472639652128686518859477899844146182923796147527921397369098330091280858153755395143697836822139054195969259126700745220812143696943302118275266027671950234298559820598067280892098942565091857285794234042958097068243554513349062019754745039585072116449704185179933349774872398360451219416257845510106649473283125444295165104814816281882965585888789606066658266152201176156864673649732146533610578598645864400369603425946914443194056386216471490634851635031002925812195171254822463649377314072698106951095925008616742288744795527759578250669991100882154371253616038170313415942787151740177253427816083173454437976967332767849420477069782556382725859495392737498870684050849931298535972298287982409525990396767299116564970490053366967239198395954352820963205864333553432708291751488408052375464778314103774615274750618048717101675787869863819220825696936845568077419503224620368646855960301255860493533898605669211411265765594632522665093850070777264408847826396897608139385311211298965334395843220354879459260174461695386109230759623935663803808800801331017858747885834367029228458929637660693897167017667390761378836088122491275094747342572261524516232538105802384049726884838120941794233729638662870902172901834402490326728794296405075642203057638060240212208411735968045756865305927661119148896081993970080516201431350075486188109094773330466196420825182231822254895281335346850345940152409434255423712318806408773740912150282263971425708914486527953863216033526697533059885358136623655754864608436285809025416834848177422795185885016556645471747576605534805966323232504918079112737958144509270422083768756397139992059577734807426234462672230040704718131178116105269271278532021418799409157222182311398528272855268370692089018240372921844430103516489256234771689289986123154940455486454665893952434448145618607429306094191439297155888795965514116751348733484316096181968210189221680636362644148543737615638341815870660464933511151651132793419107565847462820834982480199719254180660873581797424578860438973816119068729499396963271849622114355369167605239126774210477497868987577985711689286597277554805992535939363958582435281483012532872670857291988452671012960295093779602513245720494104392698507394602660762840738694448270083230181499003465142627521387052956248148421930357209987445199008877665054357066791032113974165957873994716490359399507070552484499716232945251706690068223861317425442178194337510666574264074635422031683372095469938870671285719879446939929862064204209754427628375831281221640816326383950377263576450923533694931491403011896944300373612603467447747070380399990222061844637337481739031858457764534919886821730262660517654675688128075069118918551432456350083957587921048777515146181245476591185849693767285740275158793268247419024217523495635635626333417299602128624276363114979838128917504787749718764408754892230698541779576209768932541618454905562180206140699810968798663988272557140363669662860067812960368551228310594568536934503709913891855107291698194406644604267092076003631506858634240822772709789699190714483066358782343075075051222312730856635622820592159170041859762734907300593163295134974580485168259239780078903635352200489269442442603895385115247341260262552660797312628021900602247344177958027863048087694578925327094025863646344034841268588852781120276470864035028810143783404311386526531692493172485119684133211330554183841192641277334568943887283481685203909224314945219107402400915976001139142981533402479910162899908167330264920106142684341837315490044460574768436128876795659899785660099701364713664070869319376042986248776474060764974532536189198668156088159224714093376560373698965479239666086219631662789466460445703842214719019614314606280440921863311958741569950369066977059563228371300757835882955961912908662587136980745502654947647592505065754657021485381419368837170715411584818015145392951948134562220513379697294807438990124984376168332597150650747009951586580891500555528580979838272006629065771129328348410732028537076548422260469992595070566884332114895561911192808621189988000949376207285197638941355657570565577673284670708405265933197974409658927114065639531636157958107179039845939537354128013920231401828832116767978776165138259630785180550860250199776212889752852551944220702695079634583365386947702898398894337679660503016866618846294561494601776416756982840433528773097635140577639495843225420833879042182745537433456373424700136262523818000575435520957000753524074822825509627561867440387640684148467822648585466501421041268892745597719490822154152781975427700656560453252588551057864211272029267416412033411702991254844206158466950789119417198027296497240681657158042154807124208107324554573727683181942431027396406861600870738871499188761107331159763569205454653746163214636685238038296255251128741921777136266422949218160617467889229446127548626207700787222270404725415672815764071837507512864494708362916432054677296963327033016613768315292027757621299402223446341369996818039395640458343349129192261867254752580982275278124025080605526184856321226848376437619052861383042394543694378906103955970727406295968411758334680577389614816397804307687386238160274232453796131913058705531149716705092439924811183626690389353545542762361871391467204346401237762699623026687673750735181873507823085810423923027572649651642150661670053852061802916737481698278538191298827576123287865216892723071761795448052232267071743991010862150758431011918150924224530240304042748745800282879265594876197292689852460413759975872068354635114762479530689805752996642738413881965043649608136501329418154193242437273585924507374553409202399128031927468246393876209135716999489889510331611631682600286640692377598303248846192064115565380890627853206770015379370730665715680074532487533944531753219059929299842574847960836942011695169836876996672477136690105877513255932284736390784176180724524027371220212890888343037900187765422779251233970398200304183409658908634980475639245966853118303591722838808995190515247865717143119122391017746248736551706345316027066361031260071600956954047476876906627688975284534807064193131187833161734815884032721889280435786702120945797878081761849844518284743554845316179313266790053428797990462179800780564411053509615053494954211146774639227008437611964682902645295298629324481851641131809025524286209570961702038717319960558818623368376063770208043374604230452650376484386246517449920229689088031395175340682820491468310046565832002506256059046102210560303601680776625023468415525792793625042713517549376039411422705832768269176787819335199117369250368436232417974419613996760016722868974329785384955954804591519745013073423416857582516829108912978466941019804530151084588071027888787506104386052243498519766338569369721964667684440968652669645348831700001443531264574609054834323482679046364803882386292352431347402739171578229232257307597117891269260023206391009127083333704651195371955647091439852078006137268984344273134500420292603353174101331460343449847538269525731068198970729127535153817778714656026114610038867106583452980040451638009234365948896285315621633197258931916254782934583792674124859043735034103411748362603725746036477477680819722969927576797380972666652307545470893008747987508132616832549042722204897456180934491503265466128502722355362069021490454510717469714300443756932005298315143926351518006356130262331319260124481778621961365425828624580145362145477701315138542737255461945043843431654099585075216811428404117824929725968263426594325974637756122934988369355678858015472233259228288726580325026860297661612197449521241703415363713075182376704259539133429382654513346316430533338447738086096507006037304090829320520565137792065220399593856672971051561406573575275187074256352829999912382995731523632189090175096643223151017110990768334219311610327786419645883853317784375738829451507080236508630059694824646895850680383989388251041910972517928028973437608300078018443314977945299866973447992174892682340855036916706478783511699948591858995083615462789770625433827846966730336208626410563021218956813508507495532271023872714185563513647633079033717402859491693889164633769291407327754038422208223644985533208337784312309998704284931478403376189812040590417840526140870238055112175878027953318877998662376287341352600381616160349002394654081208944405599510065549541856653565157398415742669913603145406611327096256931145185071479339673573960895614696201153638376553801776979878802519449721100210849535740561548148902808810826607181229711865620361962243529142321166872547853326606456591263556121462723207696541017387965252332188673158950109555719522111438310094643917841146831850053153013393713797002924004727917543035525843954329650420366033183793458130968392982479588462382843248709680172015564282435124160141942988497733409341328334920175333957269716910113350024148682267534848238532477232672440891505402811964777222397367997953503771146726216178859599577608267904217789068139403879024961732387171637830538012248196245501960033193038837162173174720967477184450829705760635850622571051730665560548478107731649385198880280168574611404933249475748243161505958636601716406996856308093884555164203809121102890345845008431798982122268909977084408760503930002075802182167215217915100138987299045588569089828567493647729680229240939063964136134771333402753819306629559642205098449164283123671588365209544093089320422830783273133801677672684167765550174611116872052945052238390972443630938412723111019871581864864698058181420874062802079065262629558251105044268397259206856013089957759821445078770017987489225325372494379111671086558239194146429301730239996392841392437233360831942387117048776220899254567806646751252226151946522911714659398162726485351944524173660036413706658003120023815191881928918298857553783050481533797862956167678132391624201482097891280122949458222593958083355232616357731765155501226986574831307434958570606313268845786028272992957263645469414892973198670424045155622425137977884337977726843708222650916945677742917141582822457659335531929689484231596684268772856469039835605729271296329177533731436426822517562477717128067988232883484003652049504100632859731606054307174561192982805472737513881321613059037289163563260098352725663440696907878800911936852625483127487250627468854310358052000981590043925789718235213454763001149616877218113535108931589468220469144284820846970200062217717598965672869189059161884883339481698016173593243734203850617915447017811121744103955698903168110279527441798304815534407913760623956759636184555104207333009495173024814103788468096660753562240135214813546704770911572542366880586504683035619868960176939764152565356125775297434188792325195000676261733336757027863964758975356734025903352648994480130487521393740543918211237378639227153074556947186691662233444493983398300875616802422162432611986286044965987518981734911154455236406195564742450823944662068446207684377364859708655383935169976244577079181987525331338253312970711882511439857592623300479140157386166958999682481786805791728438696169274573400263564539821658662381604318007532116012670684276600816823578079711691323985782015544410248082804745970159890420059282879376013411369437779015530936686718588459854905548387179145160370125949256758502392849706805275942058164696317435901882851053579163811218166385870005377903739974950523671377299928242783219838226641767647180657233241161846384063814078192721538530905514494104175545434190009246146645414484866315319084674269965829924511803260657919164016856851269819212210770778375035634840430794263822709403919940391575770101422711399129060407965279395425427820003321688234351354240034206781292133151743501198911736675006228845355828492682314008310095949705106292288867154819092122505299562654322141106191572491808828841990000196672853573028704868788662474396017259914328862148039148736192525696887597626568678346995240292722404734147383369489931199143699437637054036759265772288100384890529018076210567121400949235762018945083516201243020314143223633723219112534993309253612875325316536309024931763217416855839522378798443834993677846208918931381224710430645256958131773585424465916636126353507854319967305787412319942441732768309980133671099481833547580787234125433181978888339330261007345015573407766927580669664895417790255067013114932586636221694075722775804858371881960615632441455815620112684195764011333356987491390967922708653428238086972329208796818852350527531085682556644437094428786878024478664047584713092077606679223505165710014161315681445444194550142894499062828678153990649770273226069214133493324808007330697907686807343491075711797264000285665329733260622733047290654607731786003759957599521670265762036607239701862394985422481478071616301537696188270349987449498207746365825239895627459326538034564022446673566389520742524435798507129983620014005143640011062316910122869275342317047099115315429865521294141238576617529291487290640228323926289479323544992229076180545006376715044667251883459372289372157849298298579654857086253307030730261949104827541763408177941485169957241801209479292387714162109012566086463720528566808092347781091826682291326880299721066883320026085878941939238786211277877247296342134792985115026318079192993606059782135621477319948677107069374579946374646262671600944831894733615998453706912068277438137247066330819840789597218833644443266119484736188283088900041499981702551530854626315132291636064085436013204227185781463019670896510955048150574477147033505292114076460926053211681155535656648489282289109038692161367103730418726339720956513712767819387297360028612396410525564195629571205472742334125174146411242946438812019780674447383327276751031670223821771626863169558077570762853987448075946139970970215460237228842213171481452988592058987513742247908854550684784738241986749814152384331653560520651451710568516285179333612119330101937779684816783696056263756756536804417505647071006063889954928202679150267980749864028176105948540060404183818043559471571863900714447781201458369021116523672026456995025784118768289911109298039329621962014424945541969459761595422195485845556823579631800268079036443697645615808600671707926750852957662392261932131110666159509732076155607942806901141262036746422853115261921086310517942237848366038936114786344702849025169423090258502513473285907221256001352882801290414482806435452352893522563191028325124101155491593744087563428295471326658588484144053121510822005677990930436758217130795523650601714752598097788539075057320282519751414223772221407211041342250382020717767212104345382053451752879320740043678171856464976395522571998152069282852925203736224295774088681221534735908991000490832086121910194045444855691289346607176903970884488962031138548126054112864248250294325566984265244267319724302794910591110483110377088108381960738751667069734779734736246162314720825339821929527134480951600158761596386782521982406961022447396735628570186979748735173167414382004596967027928592610685729177389521140528404678764724477765921330336701628897216089279764000570616995858967268260242257285692079977738216932755765393014688507865427194614461321011081535612591354885887409887823978250324246503501968334686452704082567563122704017006802023483984322027977254553704794652545632841862274254422923636175649595464310740118952161011718222513051503937730672472460481176327700921546641330619463283709864790513713150265699393036612063267421635955037433206487549514327625969708551329120000362792156782487895287949990970552306762888566831068529315777726505050250960817262560434858227236810569912519638322432149810110067778274997333739947816365986071846247456894465422431591228790520530666806674520836143318048393349957767700742821139171253694536974508992139060760254692769605139531742461282940910788034452659151043247894350328035357936481424353459205478701271005605333170728995591502172193967715796826635999561943375303868866389874082313405555294085142263956477937824141173941103339094784058100505301585231374817715796134146734073177695447947102868024925524821266950212060555825936079543172106669932822913550727071787940424657403278996743657783098008100900059624817933472111617138273785170161748707841025721349392808229111420337076617749093501493096671482848826566804266340244547014367983472833627115464227480211235218386636600599267313592885188880892413626079137971642019467375865118630145283503595817916303959883764636270466094567424976939292102617591256322792353834180918312230610928671416377467089466534536789790258839513017136918125832219009388631318022623123997535593540364501111761936680494046560454332046991227005632842337874852317285178284064861867698834127238310907568111510791230403426708708638263874123171162155300859706360480199707945601067395735056406493947090577748488565270067377769761535816048112219968657709163180918179733807137865825510909201000385323170256734636808255064797719337020999243770998344234025297451362737995366166454434588118684661706247433114646614766719750168748372162896250256755639196461298283050964975243868906581500091221604776068402265701971840495654032455346659374449544447827917796220101743925189818500961432291561323513809010970016530023303453609460216613055369589049506864168813299861592073588765871478199492125745647403212531677786225276649857787089565750201833980872136553680289057442703172747889566648675115171034978300001586872006304289815628895358580449791650337524058410000882726494697020909411491819027565745729152937385126686144492943119910959710654498186823740780978103899053081216886425907084800340544758296391510797490030040997586445837528116780261857953767672532641945528768296782830944562055608135030647619014368207949466963954140306157981626095267054671822335483187264252269571766772500276516942583643600124764284262472339196224062196413898196916464600195475663137312668606883248712229545323758472580478274583319227280513802305911028772926474017840428456743806132004681871248698404936380734150930691955714438957760384877482273105913419404668720210756419285537829190906923269081243154081020554462366739319165142826987523664356584212593948685444867044827650663504730839941012458149973456374781033577489863654748967197205999859257413050286046349231613786631941907062878026792916892613227102265130101509854523684780177118396644423239708818272235674310930451332630115068946634677402425311104497421635778835403494822304797581576909442628876894143105766644739561601978382185586073570119718572015099621516171295211051553225137634103444951277493236946853071390645304905549570207659428663112006666839744172634012975106651027884509903921470289618671468454942709181173060987779129089904695385844350134024564243833518484547900199689046308704565539205017154631173334063881549640767213431519418998085666666813018491460433239211003861855995859527773333025373352138583871558572043459071790297556137698047147701714154673035228192204118502717762787555196039576453614751843226699713421693005768110931392643611630369656374546260649392777233973354416774055993612251071348838414178635331222798506746963344597836479975187929009269804641692936866272377647039244448285509203515934882593393869059208857819162794076495582527009736039128882812512004038499478721610189466448699032049071132387243198801404977745207906443396757865567786822367907759784656892150855464990201198943882566326144246220997832369857868371955771136804644885982425741299289617481421766198702303306869628312749518348508976661255453321891916159897509394899684491368207170066521854151343324858858089942030820569758094140723435442471779733226387115480332509373982224410175199356267000917443767914188153335693539940052869555165026687301179150604859460112209660822908252597486248959838525520585497740082047657226603214806190302478253909342061791743821616018359768376727230224131089268194614300961406738270714710819776496466444165854621465562716833871479269513221827855672788874490733266532664954895444129804468903237381075007470442074125880715186813220499570383103967567681150079564245092998065069598228372203213128818799660997218956930459921817421040248835376686915748734630599660380319413454204012313467052732098565864782053736974233486133086748615159145281285338120144363594065137084864318394608942603032315394685992151674395286192214516053715170908419022019421671568207977929694129269461631644875912939668905668086618995113639737024394230671032304239437856844107609098024687531730921985689255164041117283246379278066362370894649198300465711855479345204568831782328662532473975233155083813166359612382991235168303508004547026374192676744613631288026102165483516132969946212352264023091088814745494070458694432187524524904268229065533122200906330696937380857058592920536610828768637245792511041740424331591442448496074318497108550678257674167469580380259827043987232510208947165552814026235364454805060252562770667866691109914049671034864398131936543393457407956981463549958304538237403514299162958957487513032967894798876432457571107533907682272976972281161089800070717126597855984597936507173041708719266743274766306204786420952370995867324160873533508617717560564277382363664488923377070016587992864311163412910543310626093831713615228538521613158095903439608857784075922859614597870863241081279881807336069989664224563162274751341956426309053140735512453831730122896310812980134623884970906086373955086994010038998804327455971496813670510776836257527964710354899055676736184725636789488765421563328172296492362778853941754758837766796119083243538786456910270107610929194141236946892219814369687848867001180760431060859679914986355338043545516079742834237645295780962075998446405520557417903276117378479945385756520963625975366405434487226105849386073917120719989441057491501663933034300594453166387860946484103584835346217326173807937522634350830231440564407386535223797529267808970095452285802032190446788281220474595260632987337597579463555556556583672412629871642155093496438159756412578803814278196514464341295319554173152954586819847291377158618620008622082102736869248874172507209482522835080943062888291274901303912452592545011106252486604432442187593106596584869431080263651982575308729335285499109577471439253756925967751814629838627018137244208370057431360586206488997010930844732991914260052675018960003035005638963810507616593274695119448995185172598522244591755362577691729403528183270658642816432897255419571189957491250521541206340241665817632109141986792998050806650366231529701457349682543484187609688210877228454067239123008642414345737777235695907217220272560122573929637189136811562261298108038801657666031009592586101772054049035494613484504622906452758963256258291922872701705100868937897111542654896414573573809984041446216316999760890973556757726222625002174450481925620737756164408008064740557862864527963260448870586838644625983447212517132938788030676280899602192447855973421409399796667824285744714272889193483191923687764168297148846926899629121405773117126547730794408692952107671594411401576925804230579303831981071417633639748421110216945081895191584578199634142572413552398685169108060972133809267184578825507971827387507378148094155425187859212924067686970141435610982885928600293623195682522926561955125285481273928874440764953645715825779910453870104294049922261604438933205949763574597174420360437014186634058866070211322138355362804877242707711685810052373832080477379030555103541703714257343414539896619239928718212897505007014928856058704036740923942856877857023667352017876485083810354055648466480120066409959548660794318833036229918475299122094756947494213386053821393243278978485641329973614422734964408192146600864091266837704276588574031527744526860086874818243726778786159415507635704490752712338717740991157874857020801605721219630756804536619878109709927936835035070415755808126985557812282342260539688086930751001374064851391358813263990011767813787753658161732355132548079911344587374908863851344382783622813346149810359777284384112267265700568833088978533663970150391323803963768548370347009316609261594424390389267308703879885892166425930561543973313268690124571057071901400087676583181324652140817000196536954522771881940107431561218240147268519451300158688582164425157196874415256703635222657369906395325979522726988004973817968444702675335392287777534523169781514411897613331637049660198825570284067426797583360602942609381285656067357402255285436953837315425809662520900567442052945255215504259522277071989231586191878467643222277040921552357881737191489066675735174678771590650970681621369536666486438327098210548435664358123245038451812099812863317794979635913832248734978628390705792260741006529315983203368686573936955121335467107099590705025045130993079651436056389884708438666594378991360984366243728691644751046690028899798540012460587018649155759013918997014765620581688616646083922283471988488124667425429346696247453890837181614556134780217586886421506721483794689107184012153054780268330109487998492767077502548863423658854140007949072972121674336106615854716249364770441376211226487031394085997568170911932740817660829400344486959455173216105077472652413567386177180756659158123211305487435855395220654208150072794089460401474799789207681217850261993753421742706110056520285757041557022865217494247615421200682423033505659342945301108829402855751000201663097193620096663641995269235941539577421210925763759690652045249504474157014700689310311617954776870226459107419190287560139918204533907491032347682372487196153775051426632598846516120084031745413517124783460734916475980129852121514831967795792385201023323757053640261892451245880784606015526386241478887135515385989257405802726152912110571976255940923994761463282827464599483164932064819643367936622997875562314101153087382679437072015144990831995267263566384467447139356832442735202108018373717064442898356367127145143431011412086627604260515229844772947567245464237260332655980938988244595240600759040512534675924175843914474472430833761537253074741353991315600183361108650454425772634784816347181537322179675994995339128741029362930911042517526610522185274646846874947345513657301801042346599174438929349865028763786527941981784824521969495247832664689152421737086794189511672798418636702441360017646951092929344766092694201116899420961665117122328722887772542373903643249849161477783267134485242542520234229924960470591083608500974764736677880374812191044585485176048535376257038216434160446696510963885075724677616732005882002582253305757713490094855044793073659841627206826457984918491360314237888354209920496763285722388538576463710982371139264705358507547391100086638105142512168421794598595759113294096685128418012685085088161503358502190599533080013435683932599492595391512269608304930027976086346405027299633874500242356243176743220538064211972008221508922649304841384649071654730330065177878284937150563793062456223070527731353779640764914766786564910925094956903778055276007813863196566399023922478353942137877980459290511551519193392348094379081502865656105712243673276578384409734965855077817216082346486582142973904728483287486699036786607118028883619564488373173376557566580712343321630961426792791181712210808118837394833766647020932602423973634789598297593050053791062035701684816589635536772282801027912357518405999130518305626462732838504297616457135900255888817778062831067216740401393839689026936415113449651902980190049737144733996495880181155950968381205818015155946435017570040497599376808082641794729328502494370650900021613429765190920134367299434127708987087032765976024650049208508790545789293345469845683936564646695556287225527562207284434934676043629228658237079830863921542530652932293567538250905784276141495864130754694796550461929767468763244220765385225402447607878573793444693928420970612879463073943571440268049865539930142097962326566281102596007581072389902008881553252385229662888749373010719666516194613242335858954633446474940131622515925524826991362050528053576040598207301689556810315252891906582097218472335394236405479245301940500101722647771148032520712796913443274667826674907754826575288740513388457927039138584913251497118243585165505486330265332027312594729559436585817519096162267238276480712774632832613788024258830521293122432037285368786005653371842329142874853825070197275025745426333532909774673619417260053985114163097518383825044423813809751011045831902288101353312772679880264815369716669359835333286712998551952933079853032067753514349437355114496256334991519010158537041555610095227748751746058517075241536150434072819647105420359669423674096115703395296867594109248793692213895308464676815284862625754359458319347654942368674692160117834806215200693019715246344982755198196482278090405722471820058348179696538562218688500054107557326473591853716276240014710173419952144798457028920562270650396694551281791746466506019969633681628755274865428519201663539697714928776974524190859084743724339736555228488777969792784166439724901397408011666826756777927916757484244288031548710980634958088044623260685903608065278177557271119778039367849660515502404599301721783642312951188400949399688231823249399476500703983163927524717772646353555268391090782969137973106453570214077212938556862552775996189310622186783279265949145619142007127631885696666642435602312673056979751890494314862870900112234956897840607217835706167721500176447377581534068234703398632755716421676019504001061054001581427773684079336454423685818810228537495928299352725087263617398569173925882219359128935465038705395165479755964661036446284839012531664833530577110554823778036886309649067795195469340144694591031441589204270252799505279807168643433929852131360694658088989457531451870154370437794040900120961051389471985311813430743806746636182612759277136403530642971042462693870288951514059410519171665707460459262605199758079940324373552276843631848289679516028821874724763602321093714042397398364939947082194878026685427036228555030954671334441190297513668998705008601552594258389156222811134581277555657649659453548935150707848132616624010594785128692070803998280785498689618319595030668333124519663865223673503956543570771128906653803253309898463766155004918548274536754567740600781446865495133351652783424273768527399068319022256418723935191106566440692180840416133311989655626716897457539719659072582437662175550406703645508286713630249094463443138620518230181573394750582671512438448223517418415388430174892632481513609792244004950439504532363638809041387821554982134113942061126754544443289515551572298817329230158556608887806911228108548478494589924975211398965103851643007396149253436989184464984102751752571426107191607953066123762420662372626856512034464281984296344512286181394945797366063520317276820319891903980677432109014629877646273687638513014540939259127032050024180560245035785183709246198473394387398024347196186779285482503987754919545384779992314249565005430280722736895370171154494941947464630253972564214511951711088446403456117116067383736349325265423724816544265794608732925505923237246895920642437614002283187518355230656644494982047989278194138080869842319944421690539955460101718034088405891623726531611110199386080022831639449496978819891436198429582215958942755895826499096912999411634344352327185327131298689757540206204342035479365855763737007488992492744355509475214387383099357271493777813447017721472029775811593176527176878823281266367680901012888002383897416181864157308320586193504680622102459043874148124376565104257685778863462900769355187539803420688595230832701391269545069679853050952899772567420491187052207963329471727770017921101279736917874069032508676674168651247406221637148766351729637158520931954780629164157282194157933273771717363477065618199109690626824708315168940039904662535480290214782946752769667177554581811176543931888296310479017639584509395686745279445529718467168090448052879453123691875901587585243865554630777623449517706704386269929477298678408866734777228422445189917466979503782426458580280607088022956659547515822742103026859655600219991688482877785755388992559475156052420947694782751870980692367137920908890148330756500910694163770789016874155903471112925555504588870745483097064963546442294715012636493075658635695573903978364087769835850099196702207038392286927166340230431724892085781340657418969736457182459144010815998280532770733065493645556177181290608772125499573259265796474294659989726746525251501933951343854601607817278095451108436342036571531194714523139326579196409070263789537109564093503168386380401856771238674615630270282775769360613460244370630584843575645977228187338210256877347627021645920840832303076369464024401615610801669982123494391305009158898233027673938660046568491103313945751206274206970049117190451781879495155557915816944172208081249753488909981329826376635177761479327359702933715088915153196886711873443760525361080383836196937635759205802221109759390368480628769303547809869755757673129262302247115139946229134394325258085706945709206967811295159259751037738643441404995773904139094574318460282038346551111974521483198901039958628495564541041559829626769022174494495139449092223046233463153253029193694266498116788518910619864193474516631657955231561647222501507881455960064769913624898607863134392383736357086757523132644889034041552292970974318639232507114180384556988636653670136437172137893814193332386013134073612364271155536946867479184732201774734406963838014934785969536548525281884692784615390050389848559950635920643318668248293500634330405514787479824945205769292157321358635961850577873672056212795763355522017232955015542521893964298828171838929220258688911454207514220150024726255575056938262539169982553387274431939635134691793642794946227811493349336849489240194245712353225743971606579885345843447943056830256755166879761961942165103234737487263770584294072732847781257111401447888717512703797105817956636930651703173986432456057479667115649275377330421686708905351258210153878049452656639006039397199216797088358281811164429401019493497538675899762409856621664790385176812000414182029898764791192814607429242150088561838298424025060144381273582167443442571284894094559047518046229204351708633145852297727576158757625923747335876884397132300494955700536088950203802775052095667133840055801765196695401818021709306363807724888818696001880876665403745130575732302341199271727394141416746856102288310254380932631060985530377728814730367765294767757114812395374207613217658415941062035193887934825899432959102774033606636667760633245590314637621723118518160307679546638427393384813936556314241243989314607997499657983761914403507201327983765145262754844119400927517547236768989458261085910707028149836007080531144987767390605451166717936557537140182513661388820911037709949102223463063026871281328772032167847806805354378909351692431963233503019305223689376561841322199443930687829915367878962441920728612525856429015767456728260002453376051528450490653990652173453604623213319206520156750781115058101588390727520419011927651202299904375161971588003819392627720733935067588135423759852283244539431468931190829532531983260102216751757175829007768450525687660715115737658200093164703647108376365920016763994897208252642064789378652966362692947075176084269427196566827659370193245548976762368242270842524359448598210243308788642217365945238586407970553936926291126785245019773088966509328281470525703431321916950068183118562883332787617264812797561452874954663818462115627737271856227242198964991320517797684954458999872518729113821448653723184538207765429824585954671707553396039852382360601070785366316152096711353326749563292848429993318130314980012330463625377015187871060149952014901828239349330119001380452530478758532330772828698555545917716887014203412831443363847400605123186045853006788798059669974607277558337617696938574462797455105982287045302482279209917302781388755274717047132684313408206347959375078090555081415701617072853185453423633460036475814442291168168468979608180427008324374502786177773861708510285964474737432364014637652663657657142828359356239815790596124155293934073724168598178068999647094206391687142359719237136660029943227629742231566590500707558922518831744790046879373182448130430993702226040341468026177067734045171245397835035614304074163894784665584244003860337957247673592317053597712202493978297459187071791233116082731858394487967423496063661804714323590922804639835632437716994287608238505203592054382489932723499149888333515984848915671710495287643013046618005998949476512046258696264585720748596741887597376112718123771192873262946066268999352554180667794022260301781453907108151389744212649633311193955613167328972011505814283572589757827480279881162842864222208262778923157607132249105067201288706838642190330362684508458736216208585859444886648187319543624407136185721845628453339539739271187714460367346892093256731813096808775968935672988409785113538638246057773266611000897605701886487112157944151941664905760431547874671778429499191901405846389539598965422846122297011866347943608889464096977576993706677071983230466153166896746495471367456312782082532304835690893466637601430725234304565393625453738033384588714510627413726345604954345577557226361249515407234295703318398839510316927790922730205041401198439737911764032970793601787508244130873259419600227588073206641687681803362907669110773738797306251899556787755120702549710582382555852402555273603692632583628628007640997240368016151543186314895651789922469515575745074039190062059534724811205891176635315483709571797403699932208457811909611835090871147775383355849909863377045298341104217612633946742691820716656935780636255825086851249571264022456206345568357464497650634802448001612794244016233295463121804010193158206260260183559086864116908682960284504148900072539346973003712048763248077259862226634058118309669692275046309639097883819287702997102396117461532709590748214141652591881597435992511376519671543033824699851892874338146796066865823378154364938173274850401155792203338994098483629660034573953861860902274501005069997339754717435444201891785000640554689697928709509205356993478543921888558462691872594849808518679589330772572811421713657311196526719990782758070510922333662363514684411827923258715446145787079720795908421833715258605025487875755479659646205027258800263493164548836879053761240732592096086100858670957666487245920791144299116533790973291878307577209275766279361795522149111061527793075494918481256149731305521653160375090312291359781558403177519445747193690769212350890667591632069845744614758670581789309561360646733181564907391653781460866908697212063680649711078374815482539462751991671014952778921510558550355167382867745133997445291680627940524007727046035664244827702445536078245767917975039981486074767885028811765950925407130273855909145164930606395610235600179712212571935049297500568875688897248677738400377853209442858847507650523913112441738251168999277531505636587365004429496015290901420771473844372785463225741380931594295507231908217731109754283740142248687041439664445233975703921031349615936931734344545248233113798800673346954945202965172473993499122350299532240631316891118224711613675689672907996268828246129151206179434285736635632032361380875038829959692511407515281569974072754436522532285255805862614261553252457065639280947308667939775444659211716680409942497951883275314239036746168125004077024954545638083922292169954840458388217082346692814094735814185441469024961632444580924116940634788738337461683801088743425412766976181669617207777232909929536050598547471357302612555818311475300112330861733621750913087043776717367039273612529354359418941774003722226296768019408346602586567680679099278606177647654740153463478555366109859837256827784674384020715707472718559354430211220891500171965758827220123051376051815387265516925842593294522943324697995291154479304562202495130043492504404376841234070697149371413458963102483177222093419473742429925404804551122315355882766529362065811179887180028930753448513709750030421791131246870377356303316680185275153021551900502546028435264384901176345709165492019448310227309790801781632392573943827707087674418164335570233249637108480342107485421463586178584216837520141979535800895814115287704029471886909482490725311882949469510617539754022904109318446650165244208667514448250916280606368531989192703805114853249183803793295660955251199739333316671881928334483585198257448277954795676711169651113368690701624810952348640125221442921996536194230904031858495433275105695346032563882262187471758202679475948261948866677207087504605902388788747612359323686846611616909791708568810852055573960052077449502512991952828051062756390515577666146949909501689598594376984416790932158974046640749971070680510571080383200740494286164588454842002515255323509443460817337059155633615597131369141036439553284420143905284343586720003053070004716708628020513305323717002173318990246909027483735348091977712689083381698063452015969128400182386960817603726552158475328973996176767071253650814605961088638442047218202882391535780735761397922575441050295329277629891922759605049284311886538043776895317671437689710289791418897093487010738964065619819447749665831470024540854849696020898422621722252170364293175890702957027872068766628192913199172657044256232999563292762333030409181389393740433092648295964673120330208393714777005840625460672420849816523515983463639205124465777432874485238995672401058602682415361990753716050407179866418662704901314482296957459208015934565553618112409196359151559102377296722901253664216785240039703749477962367298276016165204517516091871411625831469847079837791842684093146842555150653486054340663016222789282342557544380190288658805932080710361729206600811085532266494773321139569737205824945809089460459148224833229752817571144452407339160705743581344056159593841725261806964375904912148929148377051030762181792533474494824166809095794965404284042386805831422990356481044718891705096154369785490071289807714884249661009329169243047741563390621938487369985493307955265471915670861191535768100240184168614004065687198012522271088986471104650998316654758262006028133174507534672119192365515669892258786422507026276897599353432034569392184497904687663937345764243179111818638621253046691871125424080792079980804761573737390194137557390717269683935166765136649159988586811113825745176249010359674553402406195651108938370858059650680131398030793191442681055905086486992603905353952714082372426688605048708336542448838353284380768585124268327702199331474769474666400961274226224688972961553772567530025830895410933220601567900158784040073677129377111165641972128550925171216810569021222639910184148479017779755361473139346491499299558148954005016108527052065289013554171292626616557818360428907177634692882543637066328857284031633668160439606514450326678046668016133741773171003175891547790783861279814250938570972070107798201669473418580240255348814974986208814616821155775470900009902472188654318715465445719225268600676847190919739046401847681602268271948413631671209910398185200333490533894321905674396452939155548068943501642984663652360994967566945032442390232351891014007664778160931198936656029757433091154209515788171490226287525632676031399832255954481818836359640751451505497859387322997863939166977368969670922523094709151500006828629048893231598462824926970600863927411307597024714968790007155620146687060943842318095143471822142438307000034489324495064114925792812572255879666619549071979364071485247156506956266850809997778910910550312614881807782578922631545284701087779537323531483307049440889820810354347276637750351675489427148571548187268057731430820948030652500046899385326542245346397927932709900089631707434024532727559806790835156512323741699716620712351143346235071756881126952110682958267958266322665658716325025929082512916764463619411188455371872632871641522060910851185472069696910981708309583007541895302877711371468074419154050812949197743396329537122719905311564340526458099552755720444840023213645021245635697964910766076190750345785937168072931005279045893154978797429959145241793673388994332550044181000322589429461118166677055502223316301365852573753633887071646248453096291272086173358470371581374862129289627210708005831892278306957097883937729749845137732165751453360970513209728117468032633044313921198420347327126156753978955115564554519456805463248288502034240564269844339261729015153941083586278060690445591430661626446774977627017636153273127035193530372111921662708716087473263437878020142096500339144889687201911215900174762576880125086207547112519999514552665704397539833451257463407343924745782033933110441040874844785614068285341937384535773436006853258145585271945304424444663510897763438463019912790676628138830085272833711864436370894756145671449729364489949088433289671650353119490657320444498308796217134482422509663545514414800200381809508111929689961996310070186339928875063252926941206275154697089640849492358875522312922045830413636037674152893892746019636611357882612454801925957188154288439777096834250817493850729938715501135590333869405743159997917273675630297129407503905895445437461888143359666583818991670415714000054089763265400605538342461255680058783807807262656158421856537649279980473001202394199381985378823662775768194107111627738717547837288456983367538482713433527683796202733727647377700769516824344228804976358271293879106633490506641764868312552665558909685772914952656732110539995321985362659832728703065150824300507405212121272620577444650384168619575292269204906144089475308262456782172312442045158165736103282097786495167716360233292055538140938714450715964281817851313878487478385888719293550721681068335501590757096542901134968337038187955690025197008283478899598224894721032154517595657158944886759312251694702307138018927255878344081280382773147925824125415522160171180168541143772995897582783974218138232079188156978082346454960865747731256917435473482093629667929084833962805010703248188104715450046718630281941734053326361137275547869623460139794323405457617657921907190366116723977769796212959725896602860170009131197547442590613842211981597835977410612858062988582575750517854237997078854064354542320951811898888317551766763647193352079639278490187119361803555060487705871935286242388228348097819393317004530328591031661319203406143416401440908968767966335573768527646447883000901047384877046213847872613491147185280185003119417259926679014138836616812230467930576640064093256068171761817015664736067297739528466406063211125814964286606765347303551560901581218891724070875356583881776755494284813514159828170775491989526553202002077689738874372884318581031401139187082437127085671573760512198266819378542789275216261840518122964122742097711736317702309434514628748190314607190220526895059150076180456196307428522142834390037721495414405701483944214088240541228723630307882373025936939976775740391323426362334030010340722645955209129613366125126039577491285181626110672929933061712207761994907139789495163415890886292315032619406474253456702279716344298361163554125779075010864591932364698432229261398852628867075040041845847023384132541862024545294472776019604762466216195534680166214852407863486253768268887479509023020666329168664094138814255902673855366707687173449386915742533658517123580572189045487679933308001410746971572229539149021823908153674994359440183015762247599230134293744668925073979322615337818038453316955193978363190894804770770055082606183741872438899407541351865096759487578371738561278506233502992852894291934356360416721141939116146701316169934463052195694747946481145602020106416673863761776350329381230809356285916382702115711469325129794263347470796935795360434890648464382729754607033013682537847091331034810973751445378013811408865954267994895426419055523935648850830526310675427083328299694245603408337884993460190407139954609189650180676576568495082914801892100109661667511857681419017668495194122179470360437355468173118001817291674661119825126200746453656907156252022481678573216938185878636679222518798561714338307058429001405330217159283692659529056278129872578151397002192715495120650902631764769864269951380418732756258614525110124550397747135224921868934062031604114091787892331541056370044600145548766945098007913890207453393157144960027210071323708297223641597350920125168851183210836474336690820897729941848627932882038507758309968086564052897367191504784864525732617907944002655412528413687577314546485964470611862205865503634724098437643398319444684218313108874111263942801519131082819517807358572053329389431465129495907655657300285391965362367561005460246266879146880412438037167505158699393870799118627900529670578786721698754805728372395722885748937503350201326614193203136929173683914792006113057192300809352767914377657285765722065786934477086841968791648124981726318192025589812280658363646909736929118626363020859063099045917607032794827112375431797226067884035942955663626978475452597863536643464590024899681177908063457724785973220339414574151844470720391849240521259776582891846378509290882748172741499644804746616058344445568288250531104939994641509505529539715998196114454371646509388960617155434332703924928774455656612800709009350934635908711162293200746715637036973907400292763036621742972953767575251413544927459736642304722697094119277075544742125063931516399786699996042092640103895127269239323926886461377545897720797962537429176777720035837694073029491754919327372507988390930962780745976705246267339213950360302762377997039021482099718551998973359617491115732574502945024272745178271546276545912135224579276073548764174357679743792260842658172756990637752448116461249613898873766728055936249807164990180337628507540961728990954432870628495516354106937739225592347895899446357112042488149566169342846135226362539703258672451369576704588372951733983201966987858167603808801092637695909232731609058647494538772608799889725454492854950075526388919385881800560420490332171934184689642083300734872866829265854176655797879028991155258556200454750434066638370330298918230274603314739049737507469493526666015875924620076389754894257123691435775643630971520813722934166081360421223860057518033875142028664443975820250129545961843735608094258221673096089928541351836797124007262733260168699308963420049922615021580401579498179123784237398064089481000093718648656216037213011623858069170684474598836855158574766318039526861726411745240895830826555608410362880479636897951152422928074879425404192026830472539760916699637463711369616133496287214435275354663148279516887827668158296748089299221457305364253751088603764494864641110607288027600728970985990213787828017996438136351091976479862311568594488073484800511051979251304743340330931511964921496902737145270978669079363521839655971787036515485982981601707090554675419692044225427366220113105854457644893657783938007048702669735535998638575073009103378136156530608125419389452337333353721579214625153318503952709076412211862139402189172085853397809034880855215694607349581018593727902252908497089136597839160201188762790306580258353459706714948411292554961659305627479920416805410315416800006923430168611949481133710807416115323524459778121901499048122258241270867166856567583010394159093610306623077321625271045892095828815206378204663886890531127057103400083256625412578820869117157450482949040594992717444939008446950011002495308284072552431243873707301672127006913066764522790921934563866385190865217883096699428870110668648191676280240592688964795766436367868278452558129696574170197211727901696038704600679943319021806630414097858020015874751580800563758619834923854734141916144791300536126370477340961473752197605839426964040188465160152783297073202201886260771065871028643552939468196231410994856939845471214560391871412016924769553971617688123066860349171380341670514504364051056465713946058355624038052325117727671390713434716595654952735479941169349926739938644929240609186313923616650466383465859163728664572779335883123015838640210624547031134099646172336158625653085432391808028456157583009689410193826113823494264979520227415305325589101578926435526711619345972519378728715303368579502005874074376587732802819403298835242092594359352367508128683497404705722204603906261505114926527713866857228153249179138808074887554350662504879481139312721260496922468550917712733214487885967130928026732772353253708901251323367624664213705625559359509285445486336661167662729858540307444776738973034799514337097860174174522864634201776893730888831420526383698320553249804808158610811178629268757835338465946278185626117384298115671881308462739925375679803189519608771561751305462924856585647873198759314919234027123372306910369707873781322912947509674154541738051991641501127823394479184859466452152042550639693390346994703873973700333095906007821372627297946712117540099618159639181995712129264992297517001427069543208581406499083955226767268954803246515185496213719635929809737130723186522610443676412936170744682929636524001948222816858191651179837571823117206316083017044341391458159965729529305945283940665990974473487412231298753679550009614367764192783808163249476586414725921889815108958103528757765608222473416458260840106310905205332698428903580665392440274508970921929945306709471372657305585120410533169864880386697914416998292157558307421589715422220203045718264213045729485665464180811022090530543245066486444111309594343390693350962280685251689495481428779230615962765895010619718967610172371841487680462865316054608684036786929881345047026754203335255097854146398785424739700115673277842942279315341346511162175041520627138271321646782958492832152018474767770982388026821498478547200536814432016026329162328185741795392696934651488611161723101639108136883663346295994658093292141456600546474980112865288913680779878489802691909115895331566670116425511020846051327079613658977164148404926782137013043119729997350482078928364011060849666838363632177858829026394079790360403874493446243243402654363411592134340635240351602768820507791835017305272580891118146093171373714221140693693967627206098979958268823238057441886123757210846674390171422478240344000714506262489583352994353377075780464359205244216686638623286644568819512240556350717627998854491807148002934175638953818414819791383742037130424069244963561444065731524933919045697974543889570174880790417115829380302866123826950596749825676950564093203744911656295651270128581034364583988956556618281077993804283303517302269464459993897117504357874168155587207044432799858247444106622870858256330383127620333983336568968968058888469438614317916469305483628776812823396895287226490238832515296614408588308149067620497517547739966593110035747548681325364987224495279171180834017727420760655798578766219302461314046224445152719822766466040378639796939456199290730005429181575713019822101795025331995486341820793069707703584181634896382548149390543175128147765500667131023155287097889199909355125096462803062254384703355742773861161925107107741206943801335770060026132588511750661077877556981357235962469003598822776762629455209702429398234002180032043709897609340512404528095623751917708050020614206533964408290725436326543190393320688270135437341183679811056062427802900994345149000492650611056529136748885088081530991577073213185646075096429246321326271954803818544065413517004602514563078001868890485531946508777163677089145567484498758539383854879446735114476980368728509269834608917590630875252107657352716801711232513925570676840776935203043248354030760102435045577274895416806371368269755313446197341695097139308491260021235653065436657092775455435531119209899316957842643703361503168482752150081983526516885804267619586550099995275147258479622621466674776360232191721302821411208115873577321859446525956624509109889970387470582624905211219941725524056629549678822970440894146247710204628666140013247546487939635156527976740930484835695831473270557966107642664972906865046089761378170066545259614720333580320843860456390084452170769567906695120960836575023017702725749185463210319912228346505722402047371099072560692159284177506922484916842922611830386236352432970102457829094800384428553936511719378431131766244331105880229956003727922953772085080089325316080863032225853778680645729172171601069513963334032620105533437187386615951022092348190932405890239531339973628418135442741016600309019884412896280070558142583751578569104701259015636198675951741083071028839165162112167288355326536711832803043854041826348930456847257335328876574684492187831944446225453771127777229929279141072683110596197870686592134916457438086291731603722511147551113046277550042224157187098313805968993425099005500751766491441398130286357956740199687859641811603970050177831501381993562553395595277231488532629460283501323003972215659850001188611788997071413378148480417946622202292083537835353031830702884377794343190366021974292675248673428633708653147472577772174796498482296033084769860450504550890833347152706925547649027989852858407449454577522386270910568619482762766838723709042279899831658455893427741257281334621955961988954237519740870152054399362800639871372338436075862741265380304559248621261431472517909639092281126730579854679548459218986342510894378959156043558333047509741859208291131219074210485239445006713832189829102244062344854023088176559255320791931775521291037746455396071363711840488865545025458836199076173092402408139604267621706442671398718411861772337223690491547914496078920282574104996940343801319361541059740491103799514051879878035176313345516228138589343937364344772350066744083402847500268252990050575870165832676954731760329000013887119639421187789087478198516969796850201663841331993115962263581225753896029976699976387446263922684688184346109961264466724336130550263762724156235825721803989700672716258180675895174714467545650989146578608733359700811646710964155662058100972504274774081133856075000288003055676673367089273799657528758815543862617662157794494549269552088634973703262884714801703023754340191238136358178195695909700892001220484387902656507243705379345766435043904376813183705825086612907608137787309159299899879205088551685497429425463484191212908450171908831727532256753507523072710034880985968580292334332094632000316276853836501023047042277736779660698044011203707325764231286943983577000331059699773583487645366262534914128348573489653058185743329904789720263445946551156006640997131060599972961760197990860527618697089338584163607588212736461177234769952880344377895330597528922095507233766764122939926592348805020539961520651053990507295234224840121227084015602190898440273446131464610195821662876673931556723007328852052336961761788328194420009943051741216693935187208253971036939739547897145836239009184709945335112260760152506357925856692889554812716157457258585011313194416187346091513913108979431162284360825095913618153766193592492042253964744465450691060093473466828465960763931205017044836602926967716806651960801461438382660316267180343678280665474656693248907999346857613774850652738188873082724170862522269065713652492774948733762032547412563535522318367312974016951237897588115732964601965042103984765237620011328609665477281483492829771706425652546731748731990748280895965107584274284095618217471221670232889266793452180093129097330964904628175537468199400054349052795423814571179443302058254405364509174596362105964573108962481452395080966261602165940806754079657968233358344371818540528424525695613905247681532183789581690053826460636720683496951382900423314385275858043108082010140602971741002674183417353465295934877634858631204363397078106670710759487199055954965070404567196541980690999032033424848840912651272682520432757972545789222756701164100613500432402844704208706798457744734807293419717332551447593202685193492379412665879227909280188891330797122114418002766864227916672972257104910472903243230603881501114856875629294897559805749107827069577870770065690446836423154768831925759499053439993301675443108956843367345741265192369190461350315879308256308406309026267395161835774706387451916964793556794846529929493686769559344998021813229278995886624001314419286082166284466051616516610108443565071727632117876633683189472383133740033738640116736340880383457486035626719398464625970525752668006795894728667149065347365739939436882604393693842871207248344422732627642598108119833928214614019633750601789369972893762243322297944397502931045468809130528275285401536302455239452484771652584542038623711130998667746195919607067351355348070501898738113502726580139018669645194682628223899864248178747573337907474386164822556668762509622245355556219992034684367278790507341534731242862168726616439865866782939558441827384365430407516970952804754287062676492647255802968161764786632313816030728109598413672757460573470597638101501136609214714108221525701170168103346161164189257801576291837309561300098486910013330848775235086023617978235785415325906045348298207108722311470069976482287070104248628512997816317862152155169381678663542261882372644180551294418008554253909037594044342657874526428600777748735675583681363219733102729462244396104260554030141674705507668568692386745421169150278552685840248821948308566349905143403161294715158211935221345186538893631560282790609057206837457095800563671550826850367254147489129511713397467014455676668396185528880046265681644062745461985349735748603069431280000930705025224727028548789395515591745708009508456822039468373588989193749313801201646113521816631433493926262338051734913957297965333713836645692528297580864598114695276425752511928929578726722241666599802317845126240467031436946787660313449451253281178865828947419865864839944747173111227115690131661617728647309523081647005999812188942713108252722900511283194370136618800444810418980431930164638364589025655644760058925436601900597951845890470397882354280228576689200641282234632371221835692171244703087377287460785649698906244139846095634514558016934901607266175243675094022399318377082118879721274304480215987334477508130396965649579077754316766243780719539968065750765024407474707837276235320592290597766760702361366418253218222482057143280364421835095831931164542257782773519643411161969921012361019457371435251606251713842224502480830052735143396064081363175932611335752200496585583897511364642115502736565361685705577410198809057586645733965760255850874292790337466933133324861114805556326511267648267368901386400695890132718966451503951947199498297569587075763549810990728413209097831685517290899113821277408401297392737883274272887556570088080941809410613674716832730699658831670562220284184864642551607926114201250716818808767993235736015112216436442055589234496126686787557012398269541741436906619447733377128298421910413324140553375098418844715209762229369938142972288363962182931932076992644916287621158896844447244194806373976212618700053277839678264160143892123651903941829923839809033110239573060619238043172916509852051808635141051725071783910060769908151443332069926132293921225288323067239302719462321749291361185566992231001533984225361398787446621378902370808711710769998273086071834247187991747066590584216911247139717788501222874982350224904416990657584123580684652668915989820833369966740514568572344811919860171053943206234421035898704455283559899074349114037939106384203524720371550641006291040432739846822733096171694270503285469205476304691320947702287371211366926172229840448134945344923091125097510861644111880326184630541662920773515539742799380682403290023215826320944331356650009908235095424474991013645136534505575497568890129272229668402746795095799784427058738074166696247078548338502292472514953783413835568781847012490206972843036943469475989133966085321846031924229542321660858861772143814145668782257980610330022619643411921862679822557493054566712027805956324198941518014378519238762737803813630522977777789725195053283104815020786695478606732766995112993241687322702059111011979672959258253274265522229285727504009768140386257149481327149457437874389000259301762206180167384880114103424139901375459731933464680874889600238379158046282697433704844802894336502916968158944286152071981949205894856671009978692562695946191064145129313474459663112444005258545587544719871669758266804246806612786164409021941704284498756423977143521855335375534212144388848605702572159296668658353057105540280762647745494644791637794825503505921206193659849290426926741954981986370942338636591462443315159143542586305956986065191988408474509477881658419243187239431001994267477655906857458664127932359777975605464047596469684688344716281436974648824721837227445623576616232750435810494948088330175228952262008448406922331250901786116157157714798519668118354342546600612717905147582180024650920585051757304133897883805902006464771449057800106803629193595467678361322119578064890176002367113880824460030643353423057554090173899400172799670557539417072463773690581749516662403806402287865454477819018315097437784721651376263964529111113955867856480523998505967950017970994429639696573565690507978679848722607305361465086519045378430075778468896857236626507991307643028191455170012628142188201172496332703232847833933753894445799148550507842234312288803529068838303181577234237317474596331244220734875347808950363559654564528615959244044760732155350487146049865166372889919354917134509779892273031097258799408332663562349937088689512315690148035458412890007815467799804768702474990189665403420866011630850977370409016925863560812020907049485806228642959896231919817020737248896245653659784691171073245071979344258063394899650589664637462464567185017377388487541643291425886047474397059980252707154505464086641079031496069571333666359065522182246153123194325857369177260290366886865584976090226315923050086399964501213290492447266656296346553677510198723875125533495410771250486396713063312075337099154331413969122167447412152783768786940296018412039665250467723550548192849472130034913007522013190571153692395042144189809547023934365241886749721755663239185977050258740972471255975022704100099726279246320434732917839219466000598642852036057550175364077742414834083428739707741636085794588724338184605462798349435525495047349140044494746311611378897633999053106853919427128697422406173201188556278804834143863358619547484830623478101414624543245022210162618002733777057685519288586158242973618293070953612470523466427199361957924583233117426121229156667305388145923513175487136746287699675891784210985347885658424485556053929449983183354845100840051301179839001318565096271952360039775268847061497000907705785061111970390292147571668574059692525260452670665925152985475944463232533039317278242926955339520406808818709383420867058699121311976657171318162333233357701134066900749918060489575749734427169332142499714718028175931678023535523217780990944780894946493862382029849257223697963696152734624508255559280822367938937664053338099469676436357926963380061297768577220389925659947740661307031628417601487249356997645016095894345814378285054701370839331204793417796102721138570984831756098130664389622127160042121275239683596128990563483804695283022586316904436840950702879560946083154142436933354285970143520046856126017798232276156416229845966782481461525583217042584155726094679114880384480825120176751402236022757023741137933037926664467326710790632611442750003525624062888052467128473264165397965599781736286655186570000761926644977314346601357147438413942764553247005048147492927648435704723268577824110331076106323924857215393575155379577089000949454431957870899631819717477521640348371106171078755682504836925306536727895038688449921279469039701026109301697598778796486878451856337646982630118868956508225858376076533374353661046231964164068052242208229085186208377804845128793886566307098310560492976538524627970493515973308072391466869378596707981255562530291166175231777029898041686355519813983259613254427485470517628183025854484171773808793591743194487569885898878522876862715505353017528976916515077089688456941801589916033287952229012866106075336257615659163620432307410766007445623394097208714980099698029913899769315412051593900433713102264536437620779404881530055855558924053157040910524446655102615343114841620500751401456800525743523975500939749534988323821762515953734646286499394307111750846209999281832120121466587722798887889217392290812738282331059115570974359739005596244114598492076579247088678516931751796782571109801745176663373278185609848184330889696793917417876053187465122959755580098395015000156479602312692369909149241689819368159196832333167499081235582595619605108485625671123800037817354003886954737745007271244479974573274101842175369043744080501716185827112661754090216700712120539576166597282287275264324815956183507194570624992203506582754839020470658930083193223406782523756018020868594127974564851965597759099466195582363585720113579206627784331052438761035140111471302600802333885359527953297830712555088524449257496037033418435557911189573256307709524484874818947708502515356331933228922271628491204985632890113839356841721937266669458271945646423720551478728569138808685641124506120476434327536143224232117951999767956493778541760844009634143591979135426267045219396375125424112583384423686815078913313432968936507427423674846752142216034022426104397838757996590646739796904874503921439867398974348062705934441662231764286536885639508348359044788970616658472063220997211285898981038213880431798521839934219412769534151691642954322941456372686265768602648479806415423002428864172750956022720632789984203193095265052855075841822512643587573849670905634240342970494891210951441619328542053629665061787210329007078114097601417590870235343685189974806078935449286854364518085523068570022180423463250927165314501098418259961732833694159009700309173866430958890757313326741392959631229756365832521559002468583413920505141143701257190454533703186268467742325463672060052162328539039449319142701846281158951410714952746826096374878019171428462268517786035939951881539954620746711859252678097840554410294302325448863944313807315911847293835633864041542158506608055883858905953909796371072141329425446513640703112648435736234682645269269784760743554481459036296739063808273827895920339937818492863930929533268328198475247519143421240798958452031613802378941975915774165193144336759789655518072738024483928702557817658960039002969854956797109836276046204100948805868934148068173886078132115258992411159078463914957612299760022177890312519155443224814313150618165737631737124558334280043948384484983239365884636016658717286329151881205479545531398811080545329748116326963000667534751183190725924658910139189894204800173718003765881037731763488541817501808996739745905665868399891113910404865507019042886643249595430729178607176156542870284421883090714034547133384064110696752361704962456575322356304083453304118497795374900124555742536766079981600288576243006561499317626385173389273782166467521276764133605873460998060772377143506140931326401303622393972225235955666287056537573289657478925457905101350362002841897512261395717298973210756794365063409745608579587988741232677648549614029910079822601156739002536471137884970386527635818883184006754696575880072190857018137502615737053347282083068683347316417131400379157269784890648169108738775236723495651590592549537522045782524011769634190682318671974821047156935401872853931119640402519645629272936741810551489703894874979016850429666272895533061699242513840266702051528951998337506451962441253071937905825551008597109323218100911569818004273604418487850894117109117094051913884301830498897919816278349955523297199870870090013436885762924355054883201065373310708512998003937077235951205398093226596271081042756625792230798709295562179223808385076421344881742069370311995234099037065903893036945588553432562477526169894066044491760473250968564332122811395283348770678478052355313708846071343973958142069589425598189066874046771162708901594455400222253922396683909972649891556385247911270858675333349014864946634141930309072972987967965478379374101808070895302066617259420713172992896524437500656797730461069249212649683458503974662531868581049302623700972682307944517006050017943940077757791667744891946238599282465815843991509042763778612653515486245496920323261810704467008218392009962190191851708933115156365467197996467193106504558839382389711221153361657339594048328939711273882117588374813218360801694345336112158195244623026970971809392444212824058987626225072612927781138180570717243912800114028142424007756443404252462777676438984982004327192260344188869248665695266059512313395707015739051727964523673080047217168590445194787217817391962247042539436756838952741738129122680156578970815548893194112296215878573652681027239800796448833298363163740766136288607771884251268262914820993038297677627175821761199992229673138503482011455887934261474922165862132244079210915984785287592022110219028879849052826741306303647446810012580725797466772591966898189632657943926771802519771293070212072523337843086954210423776442569899676613243280886251534867885113763626697953205741908690729278062343937737490663764816830793307090236778174479840709346925312597848701160332778492812959287614610158539316664961911252252668203879811357595244549137435416939305695436245412726136704823118160279276776949096991595109621297847052514768010786694626675005898071660295994713180582748897744220319996860325204943031613086339091020650357230246156494160257789700448073065888611121132995685701564920466505150207987628952394160437716626035161457177471096382381526693630854227065175461034809153895753668130578031857409969648954685569302657788608119587535811454805440185492124222066855295119545633444254000722792683286876609891136644673121241671799313061648593490670353349875732206457103650990027526485487879964691775024437574742469703249790336310253750399100441268364844764318399763807999588475846365798272508926128944501552294219562584820986804871000121061451692343301577387550154711108467400438415168040153509078186357009810388996522128797419846969979779576244885926989312497400059073960683010333229050710787760607242180337993416257270156458951671742747248585715296521753525345167073025758240055819017106677538514875955832141521853533585307149884748670646220322445567287874335611500832436469042803003120778117443660928706099862699560762818374252966139190741060120001344867792098570925197169126485149319414809831893071151054243445150556152636424041764192061164924353940822851961060650757280548157625202722051173936477932621439181610009664524900915769929120775922389171663099383192055576143341238253452009287753471078437942837180443719579491749835616828984845775217415107299439921402046214973420665599221621052190980534234924625879939601965862549077672781787112788849771799705949365651665153537601616009979834028780285790627269597659071410303885903329445990135200688883977532702754561368574139897874770399271619027336202474602728075334768061835044557764923589945432022038202362247970084389050714380479491228632604034411043284540559581723060896609234995754315177134403479169139442510747271511652655325637948247503156008952095969767844630059295568695238627675449299581347939089952260681105350775326097476601162835919691886964699733899350446835609638162767133449238527472399335130325681756284130884085132883773245875161029327000951508893799432762130886788987513920093081612529952497405562808744228366751399874735232300915216511211742336925166970674643038087135976080620421937063782142859929772173658781844106473870536971957708272175936730795776851067765648501768191618229847690877139063066166885581755423512411792005475160336491447352255838862047720442114276775266697764597064191560588869689116881545555753737377145332529941012259757498159628453779722541404488137452131276508658388952634183545561938862339399732224179032764320389062022410688424802019928445948618254327003295867551102118021275976311820354169004958019842562115423056147908129770041353018994289603329341770018341109308505393217300860992014526463303428102986638856337272875562495731700713887477857418730426550366540738972121160479466220915574253485262918233922426670737213170481759002362309901933662987186295687849240973400540292790245660759672789060472804211756399753109544400115579934386013552487450190148987498417139417069328884250627340047621921632814734783035446641657411231563227514000659647406659874343877814247261736212825762810491981982664730073529683524721972415890656535487854274040887422166288741156628913220114812400710863183244391149684490257755464483101574584794045558536191140017265959360556282921534112563850218170031216169977521199062710525884020267230190039788452231693150181660189748832833062908026697921438462379270791252086106316975120404147750574025255974981093675004485277380297794454740300212452228879996512670573453191641043417355990718433113885476058864793204684867456409507781437184731283063801483667863166860257602127690010011399117161953796419854513720327028472989532472181856666219128540565582853198862556633845873121781037705870633758588402211828657098742244226279128395931971736555771778601362507743835187706599541301110931954763310685203271526151232210780169763203860742803283469495991287698616121795007822003046110235137145262375693433797078794120466865637989139961165702163718199582335800300391484473085678767133350427716637843169610405615325917977377924453031252875718556207102394988903310138542392185944050425770433982995475662013807070456080956413380479412226992473745062310072885508426386595311803691450874593981254079279606584005460293595368866955273268444226785446552758499230087030795593642835466157432035828108229224043916827241485040236654350729663006767975256259883861940695848417227008736654736202843080928360655121196159910116417476387434375567777727309495020261447581902549196057820231824661376926047532407895703370420607809952556749659954658850738194284650355369205674892587816918132202959139743893065773455173767225863214018311971487364708813021140271416803250909597586345786087207376862702239412611880670610050685587004236980360074711442204128017514624521527594740521588426289374459043083176242484384678738314277225213948246945992634745391446824974113859079101517948640905502476566887313570766550530952372124265659207994586325420394225451212171890960766429771684553080104022973422109321607237825637758470764118355769602067922312966873331255507274509805180384130261158226612347702508503547434330117753535060972953653526007295541357238269666773663751614650141437230812509482241393307628924213687926603001591437732559666883830461644773504976347617460148024294058889903301624002699245367875991257126128031144849968294509916068310358850226209416213837120274530444945706500967103923887114728815439490002427023609491857421218900881905905529369354584758565493566970898877887490426903245903625143757746604754486773315359421406008577578768078228625890329945918189372610853379134769761663839380144362675875479318526586167322204904051688802327338905545066336380240958549287124376827984537368652989235816420198272576233913513508840759071119122001453351268677375098439580529221870415775125159186304183581984477812793421100712228689523852563928420338095994196157780372561307871894888683060628354311779556441648530787086312413846424516522306958629556757635760792307457441161912467809792541097775026753892558037031043317606628555077911748967030337971093453797884573186956766773588921900995299507734199629308660893235986169722947404009153894215109592944192952526907984462921373806716570947333527510329056028890085411512092702901797044336079370540772771195259228848663075329775621619541775365940854837234896274709356693217396659454763962409644482774752215553848372163060822173395621935188222187893273839299327941580702402377662485996354129139558741007162931599577039248981575086737193101838076236686304074331916982804855411898906255313170229808789445674779835988689331843624724847642643853630780441484977625190409776769461870183539796859314143507725648848598834068728884353633829623339063319567501993194293205487978108459976489011838250969547317860834334346074538707143896676232329531731821898877504963425714880061683481037133160831559852039762300773143941341367452640970432507211031313739720407325274104312881841154200777891281981266073210787727848844032897977900177054815438765456598538910128083563863343046974161895268831014640673972800832741719533242211511200145300001359910969535695804351506456025145616436414958938466023543305475339680807848894782683469705441549154883432312806574145786290629799158912637589015370366599881616424158546508048473457314965926459352453957413820015583296060292766873750653561103254068587840204766425717131797027480435556426787923956169827959681524074531719460194651439458238617044742767203920690603487264178880945101033829073310697486120295487463106672766271112858928003632200217836104087739008319761075829423420740064642140098312751849998186263115937553515386403688555306702236186895507182356624074513830624585927637186335520808340888253562199182588131640936938931639301864898577509429360837511986362159838730928108847402428478500299042993592465532334751600758088589273969492420441198346583000039242086051212132508592634002970132364213762701303166581754725166185396277981605286853402949059938201751789882725232247509621961124654757745751662517650452442948333465828878547759401683472528969024712157803414308985030687718236173905436791968093704255679485678031064150476897650345217748676215837748061802926694693454928207917413269293576959135207648741598660634834483418543522970473976919805365464521604061186987995268343687934973960364013084815756741250271599364624883880888417959032730030530172389510606475101709365443028847075185288616498475139716047459848418616281946251584813415370826947707454051508427997167593348497336563942976356109432538264028064972192080428114207868343006606003763730437080769276439934239294914593831129531509595780889556271907147556252344392732817413506590071556926169647087629265732202863297696535775628973470981199966605404984274003249727050587564173541451955324998444780762239058604086466636601399773788239369132338079863243234089039142871906593806408967031723720148061331610039159374619611517977494946211407648299789286736759969180840671639058284937383726289606119030790639798619591501645183804102760286186763330188258720509270648456941901133278183531657038881939824749762514542533046499898397999570704374768537140201697832203145285428515834895806638929958717093264797859209957566721173463430938166048481577006241027782866756728476650204093727556137239154839382008798782079865930930107209743031185306523429035982722821948477846655851665124661218360686500797379705600408229918379127931496900855494800135903789561755024032626715557912497130699212707448194331762235350720307509694073116181321917556238108459812078304136675029822165593454060693394772028243738381433973234203230019940414947891702289085919982914415792759769844354633385741401465275392785148419738026622249474151611743150371742538485399759033601664133427613475171835348118048874747561742750175359070073165947178853675787886652883179378788001333138981350932728315339056854497926022828512836983726024744466048770488074719310783740051771617952520571789706331244092846964820227207313116324077882961298419067594985287513458270979077912246435952373329632562965099112348705918064435126666622738702636640095857386663790062947673256846308496608632907938311752653411841979180826896367168667777553285936612828679753791698388006837417024591375675495509776312476233370574890396639029848963248185371276169042438360402553245205464874121404799168199801728292682041936162208239165757467815083420298964301916279958869521724161782198033516645357734633891583074180227433205010532845544196105078397415851600388056975922303100537553544636412997434065826474201399439395637849293113294607008302836555148192483002779138395411547694383504904882455627734551376419837207193012929179305511322449812102428027634076736083524324037324836172288054115675878731190736785181580176589605167208601416343964017934547994723125291199996323419700273997290593494831825854685950790319459104766770577306379940931096831080968143828981330487178934994970386417240200599453368799196385896583014325563724453104240550720161746055109594695555147421466589378726321957553639702518769207713460038335709011598239055301377697892552973970671960123082296539180784541955199728505891262151051112356261031751312116046318046812163457907043999238801688695854339458503939549527831962240255675281226492908719077986271638776710719133093316190021198865511077155969153929365793747331512334672783433564593412389182536943232445539006117671639429907359747801717041631412944015688772007250908235665762704414106249316948411603814566173140646050275743986484879234822658444350144104639815396080471612352458083255549334358857375556148734882388457542986275836030138957699918186881989814169032837815256755167008306070312996530658938499762358251147685543973892477702121780269872587623282298683287029743938920401161986768017506694144204053815278301951910637255561117005489998310854325604577356794440206076028990868456184660744684370989879176678976192660592127385544910218559343034048957822136342115811049664332504980964440854241856492857280771712486577278970937444257918399976776268730510013961773220667342488150213051455166611797204024448274891718293842291884880281268600774201976664722819097294100448954543448976757279956131127152770865182442019478775362030903695402663070064566521643083965434864956717385675049384854789329747833151931305552976614851992171341916314685128986483604383678724474018598029411833094289111512403888537589580626234999024819793095488251037078843027292611251799326336425170604619861111466336628706215942797785255124062530068865119203220282411628441521551987412831242387966991450793600537998434020709658205234945243429677514756605933321110060945072712913208355221071617073088819774498042992604140521573428169135365788682382756458122378069854477036500314102129189292080608220945547547826379503146351588230525260860106020766645118143076861298612180754856112052076916751449085058198241072182821760854875499160141243554189333713556124663131473492570976940798874151292496228785806290043374766316178055041267876608414808312086603871623695240895860309527371864567535855846972907848480811310924379138762112769028691684670852502935689757485048432072111917584154086588717465065216804703184753335563967454847269955883040270447884501574591931090202384583760893931202256004123474999327149507966505756143765690226681446896678328343496158428602678639157580948262693122985293444807256301385224970587270516664277666656638659867380439350236947090313733400979933758184719785599482808798607932242591485811097394521687280083941146325446776813287307452455884614415577870893413547413893462049676083526667255071311898988560485591134970849564924962359469508346439950424783986984849558427483139667763644492711190776224795702771489963594969669683022705262383257155032956618118776323636614833734743278374252909076807063877788426150789341424567412394837272941195420757429315563164168037917217956792669413534717976518027866201816170082808811809388723489666959838361583994054634997087904995363220714092520247588610057791887467825086245896160105395790629736290296879719717277203246114552214654299468414863526551963919756966972940905470452531425830501342704679481930140389521421521575455288151068465207211881274673604896811012135889457380212651675309073822621442403779051663101079414894742238781599575946331685238264123923111466436637381869407726557457975036530592964565250592183101355093144660305126406559748695003634004742467070672283502331405083657304703315244716855827582599595207406113518150178184817568938157783659204201743623048457767871887592409553528300004507443523715863383656945038877609026548801059136387332071265284466612681176180398659872108032353293388101351191139319314639386287361670807570730480634273103802407262435981928889948570937425698661483063706433966768123263294375692789059715514843141103522445869786528004663142241930702918248585168884468863512386086643807253471506572463512517883770426620222721650356177251891228676095060053412493579358588264637943613959520503643720584839382256198794887729911542337970681383747781748764847262083473942516616044417556273713147096595884007890583110719913515980751940802587818708205155223678818270434204476827919808063841123724130552384007870271780137078996803521043029785626749207236989674946560331388168303108723966747006237514585078370875709052564266348789033801927437115456377015389651657729582020944192676945172420910958431366379177335850616498803085094907831868552129611204041071862064947106667987255733850853122221791445107469360438393735730501727125902068344463990325215441204143017890089306842192134225267915108397643968345004095543238306396008351922388032186947588901127856500269715722001725581675193105550188777877291043302359221822472465585343023782701490667244738143445962822481122061970113406002259718815589246815381861944251614836907645825214926710440601168953556397131118649841641491133532087640631041164914272705336000732305135598457812519648505073122459856931642773760330065533310983597108520720608803914023689635373693275414344544243622008842389078851621229822885191039910836186344059591681523764771128714078057489800860802062138948498329853914064991156447316257935690841992375903365358582632966369496526375484103929072106956937571337490589759421720622428803466123203547053036616826060851620028186867228245723134193482190103325486594998921919921446321264839088614547608073800379823689434748863070079749920185507568273281138155830336373799234942656868177199439498914861820471971955845646710709824258646201621686329668347367499250058381299623633440912163722357501492293582279748136400903901240041682220430044613678127231978880533172256177338938328461652586914158027254512692215856508744373747283923294918606938786631684411301662375751211914106477730022079359451903628481845378180305782437282264354909735420002242339289262160169179245499997381006218821914413318782889053359543882659421532819116241049740104405854282310925968022078188115829964667228140123158982451661375174506401668192563179831565934113104292043375181239831183092835454526919359908149624950878532553039904853615803219255336151208077803915542824380931618284568403179875274085561253257894341136905639489267844184782991541002954204224680968748881937475034317256805326858894981922129535105620765069924226691583562775598714957075065916275792452597317783413639569851098818934237642038996265208552391018447927108703513502932712130184735131633154947129783365298362358119377890476662859714662348916808183772720557621488476072344151801112905475244283354985022116998113707954021166576844671558907456463942982346410069969747532124333520717781668741473865238699612447610932848303589761437038076093588975590904574199906478388306568331630544592726861201906104537033473727971273778362728635701940341356504506339699025109514033952188974680668232113510426302504854751895681143199398269534959528156200795841718611026771423939609075989356394713034587973661607603058207271688451762803135623175630905608190732111076644619811128952472957200274163315843842844379849091338312453291327714455686737878635164209021555226377500199491830887797935244387434908224090280697380192601200796904540190036165283456324789970424568044923237758907572625347080182713980272857797463496432620702926187124846826016853557753415239600125070459623502631192403294869768938325029091105923025032381700054661960740956403984797402479168090851231711470290704039866540859089173790145035245933683023192781593283474820131663224695081798634939023199479387151557602115442746791856183560345618180434143634930523215944098775519752585458553914592209527794832232228680470168313773593650218802503731149565774047530033855355347101464196842845402195509094233616016697487630098073289715602830879443457636833523625942527414215960754001630412501626571092313352426941478873352531870745273301256489387965044344657016198230275671320215332315970514863616427812632496179469746456631337728911248695635000978136410176918231798443789227669872929564688419971259956744437782484899491461634602235095893777266886097906893834775173980819825163347196083660947690691098644471433897668469361004991096632092125537733200072658428636141737932562321141519221223630138799867485858697368869917946109293037939832491895807189914283376605135226967058954540425602073795307893346824381178487185278849181106289893043562417976473975441762802103657195780738554959210926056619269677905064339547798643849800724923344036941891481069475875944836740646287678022178739767770577344079102407545403156603367914437458346082714212972551848446799950604823543152340901312903375419842048009983376884700436876015365260304379779101922169375029721568492904144517383994838886166285439672643123602229164151050461702696695549998276971235985345093774939926250780135036163389641155204803645718117316689373050632440588917042526709262455709281081191522102442535847643736577798206985235614450891125716349577805678852935344858649743988689825337230845446064163263916751443813337326846074888319223174653790113305533674157654430442443308128954113709566184269563184956867296818152953450998246781951224911565643147360200234339699598858504924325576938593819840276614292557248747930642272469779554198928192286229299603894854658363914620688946154946226686928293346459329635240137568890444675919853432336021402907479222607011826564622652480577466415636968659141332439369650355018618295498600929713038051125502178816080686343841293352056025365189328232091546470615107586291507527668527874640433058738369267281521339769748609928535770373916660052273032178562928967079394966802520421118222288523143950554803820794729950361551480270942970772533739643385774779964196860436489657954644659587522683936730899216544272023932732968056371936432454160303541611430538726279879021905090702063161283735774603272340057414108400878589795302244179182824053166752734855778736026865593765523443702908719171150303949715192987843766867497063360304693495233065640653689229949627393836530748380954518266473514203833149403085701905751126375972596112367002638570616632517361755296323272841387637801828820839041993000001941093865319512349484674113369000875062524955345355436510562206541360437311293101298790322908537445784392853848279458043553076919559961308418587898913789482401687973313559569982488707081894090331174138738772248511286303894629373099904633170077113063030520411136526391671820925620287703571247608848324356013371352668747975049294844341629640084626322739579920647702683812584847350650350752554550583464611849367272349116144265896524715589249891418290870692268849177303479618099955674727803972806430670649610398720778537537594295256990044084286303897272951412505241515223718086299097506682909449152548859538605900686564545889407500678028631142620791419844580437335572417413696015213147302763981520377742335004299244324109080895932816754551607169188716893285682490078131573849991568934835095279947003364676227219384009058890578892996746457740964345610162342393428514366767856943629667672312955859515122497718840515979548296402272491869623550392732666823096402355317368606945018913349307353024314689043385831557058356272958711771744169125416230665912493352487816671939870754402699063740703208766645417000628103807204162385185159274041343737079540049628704025174142260190836203422745484668364361058222925024495018767363944606043505207450829093689486130777924872867475962143895709200455662920061722903576394870184845803973920280504848147681081613465616733022727339595687302678478906259912370714956090238754325041369550862294682378926016401554561070154844526428044101855897932853378043593692921327891814664766875227379005574033874774297134135735485202594168320785472453384060672182231930430752621650434888981447408798188967763105437069191414478160271023745441334316936364592279460197834934714250378008650173202037543509332099581617001640041110284891579169875946009411035207459340996307203624704420384905111926007493329043663202308219573706375171780744712461878382102574627724690865085110739996115445590643853346304545776291816844393687055649821213481006736708305333648325256242294589896601221436378231229004729925537369106101232784285665927789475650839179826650834501543471866594016487735686402340508441999958466092791617970570298770070733850158359646156981080089987924142711787925008084553669505077310048767080533215153545414055568481205016057239743905505904595091485461353756488032284290891406394675650822485596088631777385091922108012486587957011985746226242799260551366503749487287412144787178921073682827850472666423816204794248734380600353094445989849601911469110037398835334879425666239848168651177247491378456799517573279559320321777201643097704577929548662136088347193569253205547384122035112326114237068286457334272475398894582527931850842188605438776029326758543152930532229736884895176966085641227408933716497720712958688785164492746983305441969054154694789031262443715337311835287073958133812583062489148183667616085545455123627674623191414598935345890582511169497464093527201156539956902197838144328586793440933969341213016580718328094043010452300963694626511026544541008123645993435492763750408429354663983187598621721372174155573368715025827288136725038215433434802143224207774412910915923422562243615914986902776532948711470819201501481079100708689228031906321136046839660414380133720121848840653089985653675686895487156412243694257358337888903529090251938318133305016510495617368847033295987072316204524249193007675935969108348681777747483417009229310403757520153406412850048088573488408847559607354546937485097773984473829656724970215902060882628424756020092562971630383787955614616405180603333386242882895739112861255333305995244303421869306135685682108690153486630864363232350879468425122949807064957862240735646881315819638719430067077241918421487210366197328682796265615706594400124389668858018716102460006898698400116050173673336989067116695742979021808802881404437918996197822189295550213643640532944597331561527420178797565773614418499735267785898021851864211449523558683162452635738352975444002542850270662740883252076144884635165750618970853942053193705991502642231298433506510092179865550501840752876557885089187266943953183520119044902985061060227305819155950119320177272325051001593151190903721261277606752958433098748480414632463100582233918027315864467004857037226328493394851808561648673848673325195505484566854164456023187636027390962035905802153696735334094686165781114242073805753526612249118904785728798290570125951539361563161928180724753855540802905719121102563060645568748814139770470936259885137191367837009678320016159550940232047116450296928186713003258265410613189855258932658359216023343204355683042291478365319884348769024260125269089983801793264716864489958354521578042457086927405432986275909890106306254136902487099322112942749384315895390793176028430173380189885612322280642718867510132443475347619037127280628756394518948021232036008711694274622698042037237565973280871044471136546721470527940234184022191617859968670727978041242206912809788256243348634086679084709289703068186051322991461945938771790911522613618863915165021472696199385351895258523178735710333440901674839431783322385477311575329669480655445434877519972208880470902297519162832980546195241607899256209250395427394170045741445124635027491102174482796818428745398090987704145291759892254134276147132863347229992382732876879792192094031929866076594747016111757657038832809419658265425154862142644566829423219572582653498813912063680620590138150545346178164277864977092936450690622670648366965486791692110193933108417317420237423508484086462311378639372130672429146412364233506690134552170945008167540808247459494882792069370707417259832541563813173626798140706943159766941097742754405681564546767846276501391115145090229818908218776696811437212076091994841499781831405150990536043007492867241518496725398511606127308901503672384353635363578410762328138534398690753073671714117713949010658459694456374504749087524005154342963133783416257832635907996574780831320735264495980657667219924770460946522646844547330501571112172249353058603342017859998467181457668432824111618241184914993746104131662612614966119221591268408483370569623485992776522161975932360096952707818653443325044097824610048912215650545491875967556054032513719457194300523103277752237292991424665990955203181732664020032084425378058193663448427315362840914731299853192924378808202007028001320019350757200197808236429328086537027536653745630859651791100450340170054011307534241043534003959901467658669152653515015613190001586497310361053795264361608171168183977811664876275052238980731239389202119192812736752984813129770086022240175615916760786342790132035178788714543200589766602703630540402384563282523089745722457224618483703488271047698632459170166446689475827024537583502410781214224465243065375064870060848749325617480517996327385839940447182795159805164625530919369085840964437333931352961265111101706329308053984303091379757719876136017348092996141557198728143905788716697438578763695559403998134058041901452473299149618916834605285770602939060057362182089690709976561367337984321785905340842203155803180982424777918056439897647825253118014708412443733649842461512092078489890651008801225858487387910460282489825930160329415546089269547436630381694772678044864113367682431682153536187151378201152266474600567103070754297649872416648634591952803474711083626381923562339777900470440017649885461651182953895464810093642030390877833934335390696037678463032791181271596504552676899458592882609027592576595862012153176767000548005132504879848252115680488684614835734768186538356869752012961007965489318660665750619761159955818910086908033567420618654964367926280752048553749288647455836563541666061356080059351288539593610393419517030463710402367283944369971126341085930571953687300539012940998155523366917804994441963617954130744919569627722517545209386747628620588132718115129612525687134471367903390504061735958416564320656265781256603583871489371837489194574666909991972569124741183211923045696302087663407269158648641732807040120142598004107394870250516001402539747118231082734531352688878781815727057041131861942024241547217051923693429848705222104464135912467805146316748533765321040315919325368104161155783949137224847519119745554620075809469681495429418477558859878580049227893313244627435974460217178458106614351570455763624591777557532930422192559263431764739310814945971582151902026713242581834348512156485745697204244206656845099917311602705940126681992369327863227835787011895477694945547552338412246235636384831994233130483355225384015624581514983441659728293706574265839251237182121735052119859928024614909318683569989329626689547829928212367465306043163175321294559388967324404499909511676680283956365383047915004282868969523903533409205748547449258732546843538617689721585777632155152291526257167800093547910263870419235219396311140682950451394619986746119762948677240830206078970576495744593930356936950243550882094265609151031270526614213369610950756658127481378289164472429342317514629291954262062718556160328868551465812663248323662477841441605209928308548212282400880286881984590844364679526424086109055842458962726543845051120118159140774684310863127152242966209650366069224350693872900560372620461638319171837253263355998278091110446014573010335773397594043559278051350002617281386103734495455402344607589943026199442190809362477363978338334005464678093331365439373843398833877631908217388336821770657774161686858376638851680830845657596016834525799466790897290791245180357254464779013741577375783782630839312456411518315082506362698625210340428752563509115730564726762940698737542002513512792849627876201532181488775446187089279403023048029498307990412342333094788370354986720410938985235925263348069204061869495673518597951351132378386207841358574654631025752031515869871586085471311302093438662645550932494325978864683930163380624904602754936508723499562149309367134646895801866140505583821022738935131021680949528977724308971111816952227772390506477821366370751310501655002465862312664964704496486749375953097896343333441048217094066249521655388743379081135498028940728847392833227817741292902409700342997982435824120224419527852760940447154209183156843454900337999435544088148104922303462299927817466516984813029553396371958430614737281485596850181458567571199102254337783804125520189524269576494176991274890581234090665829625974950254693154719559650861746685094192807296628729947114377438647290052508821592008094411692034273582850749864954856289287517978337350645934075814294208414344033475415513053230869773818508449432284257351705485305262366725533131857494963128686433008051464159123420019118153805887613061174937172233228167998163360953271663589993862242260619476412435766584943573225885958189500799327464393162742332130220421682792624662816641822242297101890640770524571623980306098784880958439152798712486351981792145905424357549021324693059648283372652567209033834473759017339945114685626309466515514875680355015597004501077668988043101650602154326889281915432627911922330136918175012617395722194643648479339560284928228151073297802017999646999655753463285532975810380532883063666393917757689999963844783425559517187999259103598270161228925728738166122587969366024770132610579025454503836858965012207715528092509276133152268155040740554517817525747089451124506979737689885018161162927276466592511970181546147646219516101799349407932042161315959603786226154834133775270484582647756173923375369146324365878658911338744430273200520088823779901052242795059237678590467539136146687612288740220974076830146852409014429151271650310152479347381078565277823554938247197743299437413174933966566309568968792097707283883951951177117706628403818351119191869854582325681268977149851824612431121147878332468207664893281169978605662937667245071790977353573261514590235358717147398975863026907942980703734775291886998736208668574296151842984413052315276563723186213755148299869850876716621491835781606305475788357136037565233076404130425355935074271918032099894797876150653033233013243737380921841938643925627029142581991353840169754940095715334261362801756919610167785279141604968529913262497804181675437929474347555400821645613065399053721890003454038806776675019910303442736192654174973351290883861435184389126832632153663727742451345795260311285980814236555015915917299258399471681411311874263626083516309647124336940237828462869004067053395108877733297404700650731204488299020595058487220726524242354057021190158985549404568502776807182018931108814320263927513412715774253012531449079512056639977096318641389047801707971513402855104251482323831737575138687455907391069778111078921349689845197932840240780167172145044310056052865676237338412840821291071493213781200820153226247279009601281834383402000235874602639439341482385919926093843635536444951075013049913495586106590798936553874651419215206633318186958547033818327103883370160547623138716531721639392516140433737753831312780931156242669931706270353544496829670501522733611783936727910256894074991124974823469784255111219413294100424258030409457597868802758925572870232023682790454833346880944121107370511858988137176638376544086138645185890826359573331786461943018258566915149348286185320693746945399138711944142673518391254909722646546896978501239894362712766769805429557115523828391145049910913730773341740248794925313892796688674134783530959171480260957967057804187094895235422351908696955791443603112633168852215067815900667665859498897696453416257668979634664973783362492356667588195402815983041539228607875415771942513278462970000927019108388510480368288250048497901268565429476640787286160323708291147852994410673136952993298356273567444187654354949944962959848533365555766242122636292618940400691657181133670471634159558224931131543733640192467236527086183731495475859225524313888871261265529559974490293976158010647316024397884220471697431961671731258283213604465585393118333745545817604531982305268233368177760027935623425849177510680160177637686154558824216572653469737227982083425888846843116229621431251678490226198106629721399421629979208860443943759949785201828512878410907550166560786895158708222911723144412867868559732989328308203846375937942752913249618936729870969514412122821708330109107372541098127483204112801417188558232701950542336875624919023613888674952201183422449967140341552764432207172106295428845859048649431945271644281597762884721044881741417216295520408299964240512385439806823909872855102835539109576982164762440021029825932422091569290247602920955569926413371886419051738911987531336297401903197534188998192107368536429753760124392603090478224321025888636006840523725244532395372092367999574590815602224515274505721578698860294106974394235898377635330472875052956641387604002070250833294147726142585106131310718617570482713129176335179307659993788003243802226219749064409561420876739635123664107907267321087816323492994945752289675382263560327858186513135984348142762275443992290195213866216174743581431303109220960338263071044650939335507025017712740192469874635108288909394776477760098151967301821565461599654962125390728546732013957288489240037332642505289133906366810495406752242059559862109485391801460006698732484715762119785618720902691837887172926903433263766389581661941455224988737247934229552010972396925931926518873034946961640237177710732069588140051076560404814848273391053744706885514993898351747078729259690310082696841602122324285104666929162180138692935336678889516077924690876374519577252366755850578135537885429445187661167706229466313708491860045567996368117313673501929462574526384042806946477672763385404778553396362308318665852943236552332316029019049423817724387058472281647845146741354504269915237171901781025893279912404133761670592241669863067961280461593245773032442000785149976892948206573000951437770159704468110423426389659740062172578036780986361461420151743713226653573507728690305329884712555021742758934142203545872842029890692427878553282519628280774959187617756314000678114974025368027800410986986906603452579547650086671965716630520936424983209697450078852022106217199429431810841421305060351593344491474482331039401966146069000116748277866288733326051811484497089451561028897795814886936605771327804753776059044214302900698691489697019603091782098834928769228061327275700736399098674465590555564735724247979511172202554711115314744232755517089124043241040330754610575690718111366084003274348843412551743414506336621945034991321045490610918343547590465554706956578475088585256598841981219229151974621141993802622734089768899849764295889279792810291763245744008190923932222871392724404360269014285131871502237964641166744601445877960766483884129622571865993159260278488378264524318931348600841368400075064247052432696913939412223281206801447466764191068254662866404333383307700854945017586922580099484022149257159669107670883803874287234674976604543498681129098389310808664028264134514284876069478432949192294316057488141156503902995867250814653409965281868786283957196355622741107629959440672720798082580852779136048518371138582500245922894688946899831061628476099508686765197053675478269373396150514820644556730248680833898659917189995281706855699974128232699208908287216021181611734687872645341155806251619241990761281850271014575386853556035252048563739208488963424830185347706086674185855277171851582586501511640694956967024985002444656524683054189744838693184030149010629341472137771807435586005624870326224901768526399857597513033949728725431356649052719056722710873085334181749697731753128583042163119698421305988776049997828568437178945688517399276365504696513474467526870892053167446313751651921206720431267698569355203028666690560460395835954449055248626359874409327674727719452320427308344912679172851714397703163789885745479223659448424220604323105695158560625841934032550095161064124900250830885343310918681394295504993872943769610919714201745964866482513157722399116580308884427560447763252586572617256013544324957209874082034898111649654529749444455660853070090848240159717064710572192647048611910365109978057009266538873809733451474993377426372739405140371669258098152121017448748682909449279032525927836723613033804878561227197625500924071817254742167525171714450594184948387261517346537037178990535593922292275850054406872420009217835849104622949363246666436157059304381815021535727616886010522488713251469424872142798486938891573436275496366981695037158839132833840954213727781647052708312122655330954484807864639339629233576487680507777364185561095487325680738630380518725746815407551150703566303627653680171237163623870336624897182860573917471340647545923370786282318402274764306108479534928132179457284717246823523382809065847027687147312967107016500235435494493463961576232239833016035603749132805902754702634763117146941734004141979497110465043498237815101069747397693286331905403488732285024173235203041691231803288419144655823199139643661097318849334129236370390841348553476249405560246959622561088712846486096905735274914403013498544327957465063709558439164640099813122992696197566401406426217474766691271754655170725393324735237860641976130692577006863618361144961003038155459139885491450857128085456981121150386349761632795820642363811140818380699394597498280611860916563121440915754269001696016407836376216836107834260666347784770821068643880473059645258436765845009872530687884727757295899229453616516734106176500808342489466560110069776345607780033079153291079216622525337550357376171444023393840960914501913920221940001050705594177814103495121351698213310199294943009498436467035556950054670077741298797679777229939964434184416582702610344567314649619777638804517276822615813767435319550903225364915716876868306222722666363195421575861958828627064514675217574863158657349455597996381524647092766806904775910179716006406007691672967970588258464791938921313492428277576947974125274181657152238789595704027289546537472036064834564060428778542546341200778700889843766458920445675509462631944625772581734756223220454636031694311141113448881307448591822002567900452566680773422874981779328907279177180013824996054025978526825366008908473957036223182555776616488072618313580101053477227018619189060992949346549593367720361597037845668004685121651844462500075168803980358868951061328126250837083827606422883504159483233031324219251737996491138690144747761220248838653389892250964990636763309519412339463921144358188498541672541749905324266471218230317903222893217322749922513867853798483510764291762993023128523295798324504545634159897336371084264743315351677814887182845711814181981730582677912613705008334896651493948375399815046525303744757894117607674495708880314733983910746361995001486200571772924054838844909077048985406851562594291029126508739004574837749753994811732758676168198629120804597771608193045882453020403188124418606389809792004297489014525318639187384497760821779796390061328116630914493083570912614871661592658274390128764979413103422635178771116244453015084352008333360103378212180883449461830468839919512685792239036291542258317371783045954771720965725550340304619033378474570447334288838457836833873622947899858224410025282542721644851070396822195997313398251055689378498230105126879586356170503067817804215923614223714851230557143439234872613143917064784437550179512426598368375302245631557240104436144615654652502107018565319508431500427731996246780704726695626359115762492007970845781091545692662667647019304737040638535601165412579681613573625756810315994372043862946245592922131449585639344104702361334309679082856732469327935312496248033480848382461270361593248767908332046220175138920126480844511658012549277262514131826900695035451287279031918689262829232135490294398343907344554998715941756564135249015554187285470391510294382772087747390041819482264949918111401900619937784280556874348368466566971007696364491105835289372670449660531040068791777142126707749728878342062645561903792096120907338993160149962644809310547530572327665585592975106729029124824605241611399821565663342828795759243665912391532174582518992055874153659188512306923443552099271078414095212250639684844716392056568583233667520209361081211261644375958361319904916847442699238687603290394455421349121207561609923258062309098273352335107047541675641972083400812480229179990258533852468684161970127664433150079892551402509114266330020866507524383552473113294278839881527146314855570971407117965566182774960526825123942067246436792310590971920652911643690299245430192506163177809469007594390225284781052925883245499733900955360840910498729701593318847175303666397351466587171071231776663476690686941590892198662427311786384807640247366488197606624473678511284578134341631206214361161784956958885250009061730751116580421351855704246229851751894735795943816652531342744398708931095428627628923205016824704101417500840595830405190364915412898160759184195724925661603475182005370471708905630226676315353040124719236525349199861138000940667335381635030378971716548530931154530099038455030669250882800347451021228846115814109497203662635133888450399964717936731968162094197380451346022005219114926856108237797957044334847472371728716095262089320236375002818272425237778775553734651264161161409518806549011027739768437616622605457750066902373978047109981960809455406520779032391936996338992816478564481583241867661008218605045268663588452932210511068991704296030296133160642290797106857977425017507102203242920318795998789476919685366741800086149235526249866581116638582847612887656488880997032266756414324049095819321059911841489021041880771249566313583087748827236981425688260622307084724587414897444046523200009293749008223028765217037420899701329494633741401262073599854314966970089354021333207458286136760930211686894811403590698887201210685968375395578689522920446786855849313722497186462075956406155011284115403929362015346518443476219987439947987146409794668717363835255105445766776276865239402167358277884870470821701428467519028465947886394267577728896214236250145246804145056200982014220453084568426501849296683683107416259834478100406832047700346643146521781907836845233625469810134394458799691347501734343860404223734082541656533594114962332791001732292102715140047958697138690112625473148697569447294507139473345868987002556887172683477770387340397022887060819020608709842737678167743955568757534156600093801189738879406595298060222846884323994858146137196713264080719336885918765780090320970332113081338974876467747371215901333979433051824561700716107562620411189713549582294599452843149172084549850919225049594333015771205143147019619970252630943583193911690157092807170962225963939237494483728486853110880494587875848392309544353710742322514429922942532602163001192507780413518166276507791287871211651743890030977378349952252833381119880278616175304605839161551968129141832306277730988306011333181853012461213181723995752558136287223299773288031218150902867881208917252181701600454898035998646009124407637100632355778686111639685402358139405113075714437571036957808694190917228879013883331994795669197287372120240247469321110399934840299354146982824680669004881988384606097787815311483408842882166839441930024225988166667900491393834533899926945446126041538433768437126004722282783440698572414563202873480406100685964599915545851781554465704019562472234589014936495475661890234239664682682385548062937538071912507637727390262997844277155033427758708057347286185576419839353392126189542034021170147328459339310704886493535774297533937040289215793717340982826343660375260657790060087981401393305477288539508189648194461282746478803080124616365159646169372719415042513381721998690369011664879043205316371412903202210205618179297577776678421577616116204064168125029513687210573862992217389267420390930962535128414762506750246772401896639179752630850142738074019142662312221109835297611522932187485400731818250654116277637579488801443591125145322690737873244462726026330708061765048955747566514807875758140146655448917058131833589305684458173905035266016267342738368619555968426855818604553718591660109298825929077511600800020395378721649717167679460412640828999387857240577533333473616088976081582871513150213959486283171824823850416652687689304253478114705625261952381729409493984876811342106153462382709899961975791335566564398858765524674346922857907779891020879268919296803072607104023382002711183693847644321397385225619477368289396137250438891527043035761893560704922486388267367632410396783976520598017501415340956280452441768838225584866394493481799527624141459953303150054356374558216256518317068029580139914690093345725708520078748713074821556427583129759585623223029213589557840548193454450473137161726793634210270434323525197944619269650782398512591983390025882216639398732770893523616571472011991556832683037321891725905714537945026221327784177584593021880195613144980142534143653725725510855869622794991980220065111567250359825340137604745476676899127469948519937697447962761658420971849084515901297273988582951612125200099502643843290925074520131647341329285296185042033438594108398971846386281307066087022660643885915902966814320415095259685814905408292678789736274134295774302924717922932354238270208630338807288379222609334729818914067583839297175296941821091313665778487570856199376030716000990694473815162688744576144894836018368500701781412887195164701631639248360365331923868532019631588581885631098865582436301012776263673243036172465067483474267886003611885167440185218813490316224701153148463523212262132826312686841333896892340638036618114141285859710443936636828855202396775366788103320740539815668415154281587389444569664855240633845684697326776518083429374578452071567079040726832153676677218990885183317198575583554505597970676416240293419053975695912880015179099510433321542501481593336852299569318984508127443735150679421903652404988030819702238135710566683184910264733819339917692573477844889030524405292343545395096659570647746702992194689277907325355544183638621296440708396562857113371875392017050426670225189032532478789151587869396243900216557464244523528056900522093930369425427174008823454454939643586530242727807871809452374351664591601352748443048760899463246175811060281709683881593065587212200910648027467236412417158969892603410957483673226002671250165150269838772902939049587308630703023668870199514949629110096429874660005893438936694730030997500417271791060626841656215602209647128635341451165426318818308942403981045255165264423779997604326664748776878310288706555313964473666258439329231415477168155486293634432619617518396085452596567281407304853530943535205683036296231409563572222012314269445317240471553603656047322294644670397809888905092668519000231769468474926788925514018171205212322905991813488595846058205234560267720554077456198380280631727005665139635274374930204045392758719991702308535864609356330471609599741591572294232924358832051706900679400503416829859870659411004406189060670468771625854610497909401953976635188426229361699703406816941258217133979497142343950771435617784100956376151021608172391965966835041885510809180034789963934654286963690833921411606748792907833486448048443481643604058942077152328757215542852011247873108269179055585199072185021895205441888093416517941188185344281888302054825220170741829013786388037250720605167810717259719438979424814806017568334398492279855693114386121588965893462525858265538761294533605169611065392197097785731808175038924004392478556650568398925577608208797220616895633710964163337964263442212762379215306450724891897732104490446911081677312130600511455720345333096021513459379272745141944654547915717602742257824701989939440975189078590714065216875798220969675317834231674291969132327422384087650602937475202689482375736772674888990513455855390218349822735489474534791575357039047221965912120685734342352538931204748340348297719041026524021788011770978252419090552497224912176753384310531190378310804803978138406950547479340064433583610358733548583058521199032888037374045921888666096017048355771043838381037662626838387142086877358990538171896586993819634823654539970366218996729932186497870512772817600223707305601222282959944777670085620989704286854253260521152226560932368843765946295021067145443685095192526571741058496796524844000580505013046291343529966706824189591412971237292186614664295791859738919862194086569932264827999116551279519343157446553588501366410613753903884390492537007226770846132730831475108557187777865298916296138083155869978528391997255440323334511398180700051214172212037164074174078087426163567752684638517617077978379711530743526658956182165524118331741510441402676776603494728655097349871105079505801852243995567191291167665581382539765793655144134203942621795709793434200808680980953536708877785320578378729891366491144199178494303528113023844689674080228812367848952590267579463262958960217738087497305488062083131048238400704886213008654766750428614703096013384253356678525664315142098559501611445400399253596361380648439903468584927781310894701812120282187273540298633699463402893453249555183878300326854208590557830726312557291036555822516390535567841361633350429298837697970563162049036835263206749968541675965742829702951724912597847176023776769363899392399421625932584232980763532006479178816836864195074391733273011673360531649594232271010124741952271370021483088560392456160275600749721240160146502148044126894788127202253991974169031936749236069161379865308998962899345608112579824853750159256715325297861466164426722864360245480199962821686906221223077014769921524366105189744285381383795366121845532411445546903350791658933571164092446058029649980197659518783502705726176010936519468323985046375575993715726579134150389508789230446067438337725985466738510286176740574492353226440492115972031312111744542627058642165218335229791885827551276688173555577620739152234064921406838508976724985023008256115733526818417509919332582163807877768471289413423346748227193315549203765669420192882848353057946301849907856742171866792688657700129096735497694706958451793791139501970202666820895567122933278065841623791761483645144206099167140741900101558502054866918538424043149467376215870144222137315917752937800177174484113409458931413617842712676638568643293626321426049596785421959739672055609867824956504122620925402805025182985277407162385241110367297640596829564366935674954827041750314086531532362522158678791573825764310074441027670249028976968441860763732911772134699339302300766085494148300621185193273338750312927516060745562563995449025541247752531268081109916887756908742857780346303963142631609492155439952760047851860298592062136955975689100498359194187592725174230159542021052508254448408362210891618866459310949356746003746968361440532412010612958242547144696592041014421075925704530891826363955087026070391437004192467226507718865237592120796774930130608939151063336125891989242793248951109250815553421520531801618989442376297581370221807007829153592488197717272669853240888787999162589319094778607314909371080153137019083293915739065069637972314756503142848853144097570373523900752444150748031593487640718666097262043824815667544437746941403762091586466681386484951519066610454878186890348074268892773724328436989931642655554405144553724372850929696617379558980932991949701066907244147180110528020145835662975988741845984669397630411487629704722382179369168060078252924668653488973661953578352040574586513185148841035016954943722373844319380865715896045575621788449098942678006073377269247351457437079031795568590308142527860734949759594190041559637691243935988879513986480040597953479836454203882258896041614229189205016690057481826123635597485773954246062818885665992731533009273758653789080752192233343924017153681950955849452583756858712632911579950303054842292214478317048546394306442584385913840455448359786218386025828295864864760358283447341955778331072077925556647745154069254212258002396787276977189738561185359956723828216155554388476973107109930875383179063159318808492784312656990156654100348427855911140002200949534804225370681462569337277401968466274999898604800924601016691227966011836588164809550567085832246838625918289803727485232078762520036695258583418785888777544363204443460375216210359293277924158743838413742513762779731624999750518993602278610546738534515267833398145616531406590790757837366578253822482834739509866354896005610956906440646295160628161672360999598383835078562803253234812231814086901645256077334707074416700397153735009761763414815195294318706093369606452344821987295871715303978650891195890402853103326453559429375852054468118256036619215880499910269185696542993228077528384816268704808039146267025981021202349665414130789898654516986152899209770948917444998605361068885807573290344876052322525985439797408156135756095507392345550170914390714953774905766149244486602619360341012716882740166453325588791326072238112013813581736613758572863405009078130784427929399344878353380399065082253512315880722296710724764240035968731633772903796877910295623240377281416174096664685206371643496566680392466695627936406692373095940169955232337355815856876227318385748785205363685450230542763993079297894611784476074209670935317643276310221368428246194577712198386452492046731218108457505603765284144336366633570212343888852388423228414315753429304436431700781720371014384262134819880678799453641919406581365234091279900454741858119159489942385834480832403656544011129034114394577826969925562839534977003079468739658739717655734261708425914588595350940074803238848966521934127630233906064225902824788786573542819487622447768693976639051543805561958940555894859592997110049313328894172645736266070471643247531842153975837176205709081953473696911642585839547046481399137556808744475485503999067858169547545382279700332592713441706506812299243588774554950204392096787362947876860880377130201192601866757515842141928926548915183092575292254637786753326484780097976739762758692434415825523762752135987966665447440717948662651903866209460812681334647789491786398241246934728918888840642822440906840279874731874752926875296874216104177993163634032599491838044838358445747321007599212931245752660112179111741297608435924920673212429735790643493417284454081551465373595959895906316373343751193261626276141327803370228797017070771079842841902119837333266593596414017650996289397731151741597288711453296911517326069233116236206000084737837255327628512046817467680025879057413670296315717813321173097461899851164822344496021852648817719684497609845704787629792156455138451923316222757161710193446665050062718800017181365377996248261329022093451207002531185228867851797786402619570551927610145300763913555611555432135710232921446633910460284440018307060620826038057140514417805624188884101210384937790854315914853692800645157327489048454181105415741609777817437865860024353791328517750291178689477930191899078665772032850743527579248498844969600780449062165664467512812163785952960630541450047395739408504038328817649710766606861695181419333294410940984874627191303188870542163658048665714368750511889994346431638227311312348197092846811713905385276647790393024433386434707689316579700802209413016622604627983755656235616430300342962134016227301879866262991547951160478198336565420713369489113576917046401219734560223501484263905788403534659836741823603849051782456077163459994501405253986253212649455001280015984367196731348478816224849667575190349083071441891469760458651111273272683339932074305112036718506322094372244331492308102849717384096495778351695175344253886405002421814314017718679930206162753745642212831413690847102802745791592370071385189301970710331980051356508380323899456382654775523305398594497811047421539109823134617351696382486548213762187782411036729858879924338186936529318346785551035712381792904043628328244046875820481190240772430339519677104979395908328492985348740887459233566498344665590569769856505979117696178736089811853798971867514560189223243606379125852290768763601959302255821689366181884930509181837067217936310990052026838266718257514384757339575523294739855655584647217898877401119049068923238935088401359404458678658439107419860665895236053800460626320460484444740703959483346148327464461460977228054516530129985883617662258366128585060163132337667256117280366649341224509115034499557691559175968163888902413852176640045082290966522410679394655777669150736937206891346733399508815810571330003412787988561606095332562268797920310121138612921112867757111961012022333769500005755637491585979584053832415087302767632663711687738565008318243636350722977876633055216308103839771865525933073830996530647741233499824843899490136609151035125679542918096920475697772603315569945119784255884157559895572604120903316029437660082203063987028333120797529264635655660228537901054938382273958062938326712987767550809545892189203511379170148595667525909927963532006640689360157579127578048206882109084529028281857890762761170756713614248452794355832679313602677036180073595824547862370945881325524693669874405056786955676668647803348098303039296639752582040708100523626323162540017474424643100319626337900542594080101369276061180760152715225571202660174182053201095914900571160378469388299387415904996352863718147137850032987969409394908150757372229002328645911767299972106652453131879235600881938199254689885818211349436056648587793276119834696583958436873085453719523552468353360723000905028155906250083226433179291250994896448748366150256886617450294550451056543674219662412852322035825482831631823411656692805409850475999754263293224668244520109999938096973347249781287370837255739405751603848348771444540613232329684224879008738888539103868280280153320636281150846300373721973222924186608427998846486428055270501889552399861618877502797594554183618563500680355649772009651635175612625778731608387092352034931103047533661526507015732463169487376750572272130958470304478499243560229544517905062150113599984652191440388634035803104183027641668860688535230209373915006797621157868107052314705387670762373922264768194863644276444685261243098055274143262946116703855059527442441443690268866790256337720708799745653609013040661194387891966713299906042932396704117444371423967544905033234733060745994353523345761914573347619772408286361095244446851223848543611251465043623365043484040282219167978483088881483072462781243236617552851529144252619471499680045475713991598516654226387624718488993709273350706626217516621914158906405721529164649085423464936363914449000216282304927275687465340673790846418268188523335628941405990561353571911206394923212566405581772185350239880858888712245207599636335851936626961682193703877638271745798347201417115438790237966976605360546145316835759809709441637988658284066165875435247570469926833183651157630115254983747055859231255450000372825955823226085794476600226261143232177241567859713717169067648236600305863366027529375610525855124253508183594181504857500175874766211255376392778389366823613263597116120497643777400801070372796767812104889705262111089448554589290862487154739898581898192201631485391170151424809802698399128898418166131357626321397452062077963380657455200486309578190426939472779858625793451346814551318304985863757018038493276635172574615338798314058478303964774091725259484399416256349221541855504359748924306709820424917115493795201287315414070502769078277680868344279006554196403992199010314583950041838020440569044858457526638287324344081471644002470907000908652054824878569547550653594390882406365634662636074945949770276188877902665772909850916877371495417981233323900943142463087914256850883698177447126937513755795054057701165310318880600648813035002404839188140416117123750528151640527456227318254788148325755280417049812039979175618321018892005739248707585020462021559018727418900803514140101524381275124184422051228024862976443326493552270860541194509014265499906396035829191137977613131872885725561679055475056532772426358310695661402717390963335919215119996702783005471189745911688134095951967134747580890933322842246522994811463754365209776415853486713925199200702895656930178891858420090300301960601065789571724167646394613027907600164661926177194949183221011769915032454381802615763196891251785195347333316694221566763981829037777238144393068485503902121158030108821591453053947637561623603606067265273146775173947562763479574596862766106193098022226651511675872652171414204692756986323370234557069610466080827809635411939177363122328352823480073661272909753661751995221799838713202710830025952523130016291475560337341912105374284279721853192915280942300063011364020505710753073254417099021834148949638677831894873259250881821203897982187949953778300406011461647741808614574740379306530899398171061868049026353273702298631428490349168008612007165754281969994828826831168341203663921044851244108646459103321508433517548458222810548227706661579560094094520581245665548818796398217960188492765168169796150746913249586399290865296373001521813384975679966051605703631563296932160913117074691449879136814142036638931415321184167252590396289746504388985157990508940606734415180313988694131514316883438914013542637583397233363623198345852427406833427500681453225121718306556976387643194145020992509234631261385525657390534252284178356588230926996454677446188159670339072758994117144796369334330256908167387432793516932840012300826784294416068961913438196605123797587179013068062154474126223836359564784205039677893420145967942829531393409416052621078510205539212981846556679938328384685057700546588183558564972852779624404295274697879926998444048760332913544947551036492529051401733968994567078436999373464934938166270470443510161212060421628173001289004043904832291513887122949784081590252636691906014075143164057178647828791791124557743144381323784370647438545087583030875935158618037987538655148705054123692420389562551803635451694248091821885245719403157145866685909738299062333957290479637572720601505743624014504032340986997524778321822158467166589575337849526921336657883389806981702976010901662189094285796421531874150539549101805155844451586112358381193786098896316378929467014057069019517919842673522439360594568391824404777284499941974453040257813331784935184344562449791369850270340567154473495703182294285529576012541109965585302742032840206861053380903271405584199235167758893626800994919442057971609484489173352446031588513301892070066212395216941682448037234206921355912057111259276668118267122601534371524763242697774070672250395495502757304224090041856788902355066554229210817329025310511212687470581090723371115601903767678075656332427402845738243809009120706723187979953629688896997854402395509053951941098302681568486114595368348929526893804264478826925993289059743742320222641076004358225452260260702658695983546311792678931326048980099520769505401916657406455788809961768597170982851729983630655735780789920672182971605423195278027688578133235980537893299283834949755269954294113824764533103234768047910065975112583828449182588011932048337564331992094330259612028131125627628244820821761101952577509472325773732453065218431874647423529081299298853267962181699023994998397926455802299075892635903021403383312783750053965184358925881241991419809717272139893940440784252229895222177739024760236198420892704045344529384405413128795105617126882551466985689813361751278190834346848247278352054987376354329433422145447121893271189202916164373574441625771614806259007502502673090220740805429873994902935851803178908997519153504130193748010593628986193329704284934653525724256279779762639656523806022261852644260129813703479941305687975091956139790674742634007484580472716601428291411700637952678550401443647197417534293879556674221331271533826314116247505909414329531240305063914121434735650475974254652032807748411511581437855441076779209626955499097833870746091233307613970031516808175458659221212813060959466716834705343398657605437602427123722425363436077949408649014753383192492316074688061042374678174425567249943518499043610801721780986399707737043737740313014232452589101877716965674420281052213393538657814012248109974084943544816000911510927338001792912382935945454983747429422341437880114632135894825935819253288178975053830884258420982371481561405524188858939641686548225212236518154593552560458162742547906830222361612536960289877106014204579965194248272137103783285737522415196881467380615102521943638644894105090413097234870306668956597129210133096516209673807618455731323941665167417261654125779555502046427609359063906086027604271795619697174434348586296823780229597662846106307368047727344171201212001761910151521954703510330716863745932001501271474289919564061527592333967467845190975028785221260565376202081871500333664760762372722774418744746561185844064614253980725370695985378322750630851650067664038095937273350173202827547370397161513495586069067138713015090338485161062529645567130017679459796740356752150901289170042867848108405424447005242797001191677563505827251012222849725169846477908264840501451862409869405336024960562770302645165394513710622587346911344821530706522689795670252496698843777661400642399027679552119287473181012066786227710134068357057118170549789689382845672379487057809859264585202057694983913825159048692219957690618250598892995994737713659116947069163469536663440794875205944064937181521829850897274089672814139924382632428546250421153184303930827847687055811972443345444219007660368917107871040431515351271636764623802571044918301415865962489969713311243371217271630128364343733469736866369740127759416652123517922720684307123815612710725085772852842315489900159814286392823470872762858085051302694190112238953773704195205242295867517623441047498797558058090213456640048847167990544421253673027157045509203827731651941523867195186486054745761322603276135298983209066928020289834909438691498719690545245300724943979626190917536098685752728591068540388657683575626587082592839962609948005978793156609381454533922023688831569940320390860349760805291573367397462476777856338892667596902761722121860476169346683657343933401414750790671725105609330378471793426765083564602509604699926904015506760380542601425461994457503378287226114279830621713157458957773530677963047263776333987866745660169287033467462223954444571258596053141552450569879086566827547996376756871503889479518870062710124132010101147466053138345369348850982627589570005840669286752332773985167414392125306308286364973899604995385994473132820642796057997623815718760173359924589661725320206265105990395290322044692438612282275501433810601895123617260366092867197995994649618346489938503108726826893672211668327332664990395227106860635431332185142995697203696571372880788188433559604805272132848742315307351608867917346041808865516653725822552098479458726290594220431811412549388334583025836693535742971234761645678792940332441960738330586800265882884937331575225525507731729184246050061480555989859425963377306969804905583237432111443622944698643753286157586667631272736503997254298242538367970762855371695208561848012525158749447355117638680907384838994481750850352384828357911617939606544169355770126201870367044378502419896999684227522808286047528622219927993038134331929741420992706107015577659217258729105487033257884721143227856095846409425649282141048121089078207245972787930726398297447043564541555256935917510229728403482330387638220566477813069075970011352738035370159687292375644802996180712880185001101057404276009481959542164946956260727608016835462856021311497771383947034735539450963438159418452592110347951243622230402525293427373709840853743889412566348240930864867593562446957854631179538359570158391648406394182309657089039633911634671673797353613231177788354415692606476718902326901772530515929801456989118289287536924195488820530994102474846683047753891268948044566018266608676638832659875625887502533641421236589472661194673602719170942212154688087972813174143571805720521198894526392187885021490501693864892120480340504229568675909591586844252176606219704904313567249715774482496534780545830152777384457834771746508816090837462878969878366323468343279234969271140012857095290495373720044372771749666754048148094262233262349152658426188125869180643783957925115213856212325087453923802014350418532856586528442217914783310278066441050731740189757053014319968331391775139735858419550579022873576126186747233970499481259326252090409404474814416076675145469689401104417669919196352873693085723608578749682221109154398414738668994337002524773915802553550410597075417590038687992991599598422885031410404849722302462436392355259162806461740064860300577721535319581994210453124630115931048298437365202137461260372322673122650637542535177967271380253837021012066633013062301685535442970111904556111840087282707675224044843183224212851056014009796534573206434897168184809943261881297251009997944461007027630485087316790104747172674410500445806993988152600871521231052215981349564727067365061908253030602994945377126491385744079421993702408991435446805002309292629001733722430641472343866441266101967492704246905582659229295169863410683149484308264665249518513162844205854048258808536289940136021292330695282823709887734100952069923234545573737927889907829839978490605256368297714429449775545205960603772440283871920731913660058012874337486220082144219518102996414595876903746739723223301567359638086936456643988104864343752630413339099239483304372185791465613662298154030804465207388658406469440098701101619066919300176614548583478533735710702276256408241032757377681128129859340096012245146234320378977431267541101243820499630522164117940400403071637688565074258412398892061486628518129004596973736905682652756583078017972571483976007336004599065511795502419564817330165874548095131472754871516855627962488494176937645558033319079475551008600387469325420236417015472823758694517777657677343532205265268573513769594598984614260826268775598833411502006434823357218370235778142717174668390928422800892120919567911283153927378771029900600429160206336530615386048330844063013238730332881623368848571427419416521638637308160004364218677087776728995944624208629702315652932915823894251067764273076910386005236728514716257470802213511326833373775587305425441698902546928769714559117889521758047116697463672428436516366099810511248723152115538834048270120258359727322724176281331966464650120625851553604497807761026155150759097050149522757129477968223210532388221477999828180912643115626648060779588718114297056047505408597008175654317352801325687536267525236567397483643773867121344186547927132918175354862321627779654617708276052995790289295722901285642496872900956278083792024767360689415624896291867142654879388682002231746091486541151407148542621774440655454753166533983993414264067606991528592817646744562819850564229932061441035538181768663324104544331974484108133771241729081521641558656836148848133670697310154375227873435751057571812719036661344756496182976643455580601294146745150226947598964828248399196348759105224036471550411570097067166915887955237721847436591823631597717149039280633777856282199428373663095641452730129927001476811987781416558566115501942534776587619331016796000711480930782109664630376419594656126964714638569036587089597364603166076868071949387073946260670375499420996624493064130111246537430389031735686248709371351284797238754924942912092890714410174920265130843551927351618779062282676784139216717843385287571456865446983362582596381771871051552606618131006927216189943522428783510236135157570595831123674975090675507697087482890753420121955143004455424015481960618744632861973983962542235330641771584066337290916702288295639934340511871376951738509262442215401716830353707191684615811457128789916873016529519941726165449953335802366382227129899928535227056186218539611750115388064240303907697008102262402404317709039755551611898313759447286912347361317107752476804908794220773571172588422870873313011659176678076746279021485129646893602835775213139902541355535067163560752921722868797872496661099796506486230213196881727016115205548283638981859660645738722289914841880773363472203317514114721044117041637771471651107863809813361993365547857648925762185612157043424305982871287778383538695712452824556231289607102330529298296520241321272170793498821543296663934115218779831063026142316962601782640001463177134030837172964075497726013337330611287206638628203735150766755333440073238081486752345728958384690575299032009621169150987761929875810977524610764887036363123394907132081225767712490202280257142525971946179605818304881239729412110966246452689932163771564915586504651738241681303154856251928521171541874233957404762768707898667772037151355275362003905855666288868167256972675947902741770456723132738811757420944906741282070396447261949725368496705973558076980634919930511297087655195295696592729858958523477483579447332033129596598742926834645232685289152402669104004573787828399245476262981213889255159324592817649858726773810788378467033545122691296947212984245201873859425643994125762831705070222486140536832266506140146767710881147454303447776566802598304939744598162168412844887818075688245905730626552740367023866280987902313604368663536792781915294313426206116656023895714368564438014420274066913203340006880330227286461678899957908473988997387353509680391796365688741897392694189536615361399038968486979030442322938931139532882099626743222654823741296545267906805928491525540982801918228682702994490516665872503373952408392929096345783973971348357388528023129799442401834558410323509203648923403787659815834227042600244552126347680347058007850967008587406909906383814643459820257047181893111206699009871369699336300619081765983649204355872764236199760533401366717703302682098837864726153434849784734020667323779910126221152439873912102287129405468874661017549467920979651590839270523627702769751295590623459439426566063578032377993187933976926018088503222695639894204450485150872703319723544978756819785120439491848620166295994444923089161480269101653644611368403434949173419510770282475425222498006784852623185912947991698587203703412615206214651672364519505178634904557032952391260515241403812562525338516233351159180411652619640199282512824938475913315905091823756502798514174458025783144607964770534369245443969040744545343832661098167222231012815674801955776310641738691358591274101748349932862451798554193412665045481908050954058481211775575786803695053323375048200311928891987937347308189789183100383313191733817053584386649246807732060608060151456702896556668799513065064630483713394683398030140114955931488598247951438872894916570529656761523329845291519304114389566136618014981988747057527033626071163520221932579039768128794614212375299162280945101006472627120921825199736241567181052089042252254990691859472462435797612691012525361738299534587053815589046870829758203150804426331916973812350375541815770785095438569534762689043834756199174781255646822518040618087269615488658395364850911987705561248732342567703517597905002032483071046386914711986232756996036058861188929475510701528717074017636804538124219484723827028844284741804553723056683799536812356359137801500103507443292825259444193552153179110958997799800575142840498587853621490008208883799057749511111890382082576368958071810905697097101876798938579785225130756861562571438638805563746453676882356999519561983418641122111424967624854944949076530289105084875631816259356015466196452161017409993774190640820147399367646686504787413809801737803102881349959435411471059816911530932064752304603293687417517934889854646932477520558980597964708552264421938421368462793126563843358406670442616565506559187646763830152244678034332582695701038400678373292721124137586696981532173657873283521562771442079450722740915466478156913203915068426629537749013975490843219943749973395175323398751004738060074177748875555393998665382473765764617676171650652175163788030556263041170635449380779891418091163614388083984962597271625132692764726295639859823089195669341526981144433122702977006751025651751194481676622984885874492785996665037525047743859972796451822688378286307510933449442406180093546162067495863024051549728679797464399261758647070696161770441374937535022126971522260544843191936842046364864844673458955946847119393792481406312844237141145652640216410260519123175234565177850945192674970807014695897336810113598449259929954741851725538735844949248363931194141633491904136316341731744608110114809398841347598416579717391087292447982918612390341129842903346872439957162596988116828238349617617304594350825705912655205628193772989703831697742067622755113818611231928576879545587299316620290343158278997353587825189941768142933602806346380754223570661369570980552975458319858975043153825844518271600566282166226039005428106461148972243230860207462960703358516056664778628279184673017140765837534875375524843039206820683509818176619753312843762281949539769916376692859606346361114221177596499766979106157301317899833879272650958534316140292010177924131802755594995017495230245532182605527809898469182558105544350045830004100171117207284624483937651827988526167315281822873228784141831782183731435391434651763003339525449246863585531069725973222356977572603741140865417601533940654918482620606201357054061087699303020355842651571407709946328162143642190993436260016713606536237731243633594985843115174871801676641801505708584751613115006323369049062539301187959610980710679002309723254314865735995218536541510478279765852417307618302320060276441142561821947086120043055344380637560075848411656881577252185183549469923471280230468886744399023587469017628301920692190593065418255574182016720064693130414790731674379347033574560623355305193184069480341739749782303393070027708177794984611899420912082467607112192313762670400858431713874644746846537157906656172243060390663059213795528476808591016594419108774381224084781675327674343082601657709668221110328829020399856483974289225569962968376402738782367263635082622635693709268432899457138765490692241988228591981669538864770020319345156562619632148353797007317947747625227085236629917218513363739054393420075371042642874792562562385850016781865129811251193408916798210494648433734057795069061672065263566568204587620171674530137182917698991188644945301614578976600627932307559003233248474066676367289663118329409210999686451382987783126571677479152352409725836837058299140195067954584266859442111091412668891614083491875667193271439846114472585461943271457689626930861071215644610148861222805838346963336258709613301735901967013098065802108083051623513850676983663245226124555087837162658501962681338809647817911051273315165299056579127918445139822782890218191818077400983019459090456262941930366087391021988281299648758788941445499983825183862758293164689920800656828830942892299214387468308006848775901165728346296051270913088149273104136481597119331924281879734792245835661860309488270270837600921165276851019239392203708086380568139947976420342612008485140224721986883016528725157359220399708515049826925881115196179573398754577853020287160704691237749051601827267236353658189823255796350230500740907097669188322455059705386235194989614989391537064618639431020591800910853310621551054788782441651024941222077277681097380858406823442662502441519672686384116020084800145151915699303759265047946385716103065023955776362063522028089675829956794335785188862776530918143324126173417356685128379288899562209216035279247467791957930753075673751440150130704929768561049755388529751609395493007090004246249407824481078999430756419754132345539417097025980910958201242137263443814997001037202667820804924342314106999302989602477719597627158263933301530290695831930369241837519109132979096987282560113607735463291039261595425790701983923040787096531654945981035808013770652492919460889350692999926218239393028544378231171645356639455129685599430815013610257761311634264988732614706341732107416960162689025063045551303434751865066103151485579906430776124182831471479184464877719727294780070159603952560755471531368108074206456977178968790887972418086369813030230679249846219104622722461560412158566804805278926875114712647496253954599922463357229445368536365513176650499266253838327613299841843933653538560081704577861066189855556456744870429197841057479801449519430370149893008350504265395318255486182666404320452856600915093292757726073297460522088890770356329934257084780205985002165190731178285930166021900583098163864890858832839401752647652261617485393428704943960555048128604993708610665117109067446323933575454114744361826880465125515069529042556694038579175613183388952797688871979307394868474017974981419756676514702200028812915109976987427237435528062430419619802988305206062568833528112316231820534710160952724184758573767938844994534907763254490913140991043755974505933079744492102143754609238181040207055389904866099737918850942329467935327348497796623047159959147303680119208202049038694634535344935408141949961622937423740373473217701084607760527853818341207552340289746856036173864177798020454965625052493544837440571579811626268904453475595598276040806798637451298386737493716065776777870736548141380587266965528817050055731348284969853317930937196426296343043708520907032299448343355544653393561023822030077491014521438917816970668268689772207404325802585202055307715702303921219021584122951829600130539641882320759554577873068003729214880861982496800134966822041848858107409800544919027627691820195070949093094870847354957338108594910449977363973774922223320906265382774313042696686279103963556554114488217130592784378539551617670349286163417581321082824039302623414984051072699536778842429294234329569348459893387219071220184969350443914006738980126438605265465693923604951420966385054568072731040523990499376615645831294525768771656384745461582455874306436769338062600867676137900142932690960993472744280001075747792658471361508146379032613122308992481483572306581389140842714125066519850425262454777578436207735708721661305301586057681841635881516244351517689940949625137741059201888127493817495046217786487966632209457912197410870964891983097066754253065297954377380095169206185567623395034686214826365719338645534204776270204252335183317527869853378028773311764294340610240619836824345411912202695611021641892136174090529226685043690316233592128814666125012120240269988314103916185924137009910499594698140317638047518834623692747352620719896503643390745596873102091151641637472960692995232704878589498919191131795517998213935284254317105386908743051861698422019611343135063375834584343007363847566523743283304494427742829840655100812531669280222261412524194360086560485318640965146163149408035953915023202969881273029720856093198713474606201588027059679630155118960019761207929541216885296579178192745991213354715707130699512367324430585343002830296216430909535351193095648945673092147696767707214601112172417623402940703026200046312092641911193708058039680143082729592689642240558926979662550390121913060908216789428423839924228787445669024645150962926160217251008085683492842607942660224285552195046938853637153966713485737255135887528084924976871207447794342216282571307296704804064813595064308509275304937431741658035733847878117985182040880461454447217628637841788733887585355707489087552710807013578029184854574383948760774098256712884116686045694165851862864025604155345686908504695939502909665254706322190981618331442053246652828734740057060291756027335051772608319960275878792124677106613177540845128698903857490682918991982629327043861652632848584002088100942681927050648424705588049976402449864455361646662623282749200826378870754925026087986282838191876502163587230337770627412126543311719896111646347099967021384177136038462549996173817605736040631408812801807995976016991101804164443664157918941486287693735601699249916254374190335199011895796823809847484137722262533951465234219219239107629574037065609072603817962369201700489306153750985731246971894912310918134306403484696355465627602889857092205772627244761737681789039280770950606737665706136867227604547379612784785152317234666702879330674826384386395076545776716090987747260098507219971209459214136629901753236502657589864377731291864956363870329508755835775598910901937817260485195746062384676060111688848412411133333937893257298647311032321892860994225781763088358427219041869380851851966713869007552585967557051087043852709327016709315403338712267284406441748412599346504624593927681285753427989994886123570875957710487056505357274336243398535468184623913564646768885045432191714740576158230550441465708855687017726706232217068814343890378367567875978155923329576749612041032683518658793058720628690885771101390359505192452304767911020180622734821446924437038142278489526180837814517935702299383349485740306139302601370251913169488613028685128289236189813013079902082298225444444842328809650625980368930840026381199638700381134881546505629773673407320569338968286252737672105740835019160034878237637799252654088916563995047830784976709985039518358384753641328381398710183423232605627336676714989744425511888197553947680541872970299480427655280345458003839394554255125086481744775841554926395381856347584160264079452032661530946105751031675138416198331092047260531947787867818299220356478154413922621941418841955778685782860261569761037629748735881832629574759559370733908795631083933323242145550485405383622234114077399359143105398474902973005354781405137773663706929670890904585899280129458825479349397436000942554215470506835627767269737629850056866555974951292270097315690276678333529625350076904392403606123744779773489641471561915916904250887782439441426543334428298992145845480747027814405252245560206617765232464185693882148536746874486623246930837798143240147487537314695142543544940795319576791642655930699321415187209970739687959086971138023156845326149314266336695205112661166858433705700157047870863033196019262053365458270578834162932331709101374644594942879789855065072768340230600432292598546249843035069738547097788810124509399021188100594108260635951450671295701192052987827160231401084780945069751502200954713023615401142375653126037436873561913835877910184363521746534768163224996632495903480269731569007931055488786640157815342091867034895548796670806983600933583377453230077067089081180353701411334268526256302062160435663187060686706700531504548740080851239652531709317494746096456810847465113408270733617115978727404817897794055064849765463442476020971239154044404296359021048555992499864254818192216403685463513101578085910121143231294972320180195395825163115960213524271516449537646249024246814062769950774915511831893160934288545642535419339845876612498525290863071472879901565046742678391838926985618763440350252855062729652018384493829248013757156802918102519096002864621660090798768633036276929740569670365220235543598266345463343407075048981996992075265452064958508481997138824054777984578043114404864980767038439855444791761920884226161159492475008704134980282786513295835861979643475890964786599561196135943615655981433208463853886323953689702704892661821239201624935126292973517902155967755202683258987045322848995187406361740045327164333784644581351217413352883873820717735730644052836534305005333792495691223898114583933218504255565099267540673398156977433822232565029614653408696181153903680385822897170232717663733809871600572051152618398486608141610043480805757022501720898864910504779539378353115153523672013238880802567312107697529975245503728460434716242190519907357702501421763843777165886477613825921606255216066708256762656838781591980278443233855688767337849699037634386597078269236425111864877760412438138853268660419949554457608421155304125243265849603088695549480375330020454115048610098437679142668120254425709662508692926930226225445832723136157431724346414434105758538598994925010960730123589596122071873139181868684436606372517630243337046694604828190223877421873826101111333783609445353447113539297672399298097720929358903027025420573073017207872987575753212740083604046512373398354131914645735737294662311822790500129148158270176505737246139386792967118510145073672458777049083559033059337147612049581789383160900344451297270291709768611644201820858555944878327959946968231335282222024320211130060138222715528841438602122483503759564525553543844531251993479827753508708787342752479749698799049362890864537481662727968420714831062134775570418618904872281447610465397785510207412191242512069002146147246879060602538070215167702607118793994272142758644127705976065154113057284186862262627078716641391606092548661375131661529776580257024234297998807874780875411759731503046091047920828096353284807201637117124818381461579168542406187119029751143745273154217225187519538333177644644599024408836436993576890255050563875537902643801289693406630459401690336362777869221150592049799965442072350013816803626917528563490099904274157286486855232742822218893037742920606952583625260389679520706958851138918026253158353421220356373013304771857984402968754104309111602809220416049935087676755773974046883279518965452929027758689923976175208393494727369690242162867089907895195789360484880090515266244211836230551988518351192746865497897421639512645661859046406388002280338787436042086032758875345952231343300903059960796005561084628865941909114620700118874553267976761716999666594130489631233425116149543200561277184194982824416460465233783946350727320882390400906831326150591369034063026100728668824064150632994195726973740873050382593151157264428670666794095931053302259688423413383443056812714431162624699609126184111213442027170429661494643488880111160708827373842173095476687281804778019388520616990237119288604386556610705385491920956137516703987616464042577044918320073272304335160903697342390964386240686420488868658852279655365417543113367241540493269902776096594161629539118667814564069056128442160939343493592882069205712296921332928207322384631093332984076040098127768474831689699203239468412309367148296096345459369188860978557010255572168691254412857754904198679941489119582881796134999206252333761407123246570939091933566923398806941688210306316141040454937043074832036940006529861253361196508451027602986823856140322182047337848106445204701711886584987633840043295723469188209470541634946278672973817642317465091798511038449354102538352805313187434437396317305312354813499723389523564456713499632404956291879051966976271460554808325222159686055053633592480335610457060223620522125946914046684934396180261040699665953259742830753004307007116832804264935980807048262872948608152097663422658047563748922163282079124053049994397070051852359393824371258604048634317062140924755862816915547637874517086938455180288003463125799658245405163998655181742613885689567269322050463189312084898245948144011262169995552983040523093530705950972185647105941371652461056918192134989520901541630985340856956106426991370954131203104556877378276148936103633100017274011261576373867371037349110595091111471095487102614984463223158567633646745130854677421812057633093862235884897534260774276281318930130654255697031157134915748779136302871230881281635680266247413485148721389667381760385453456366030682028457648570185599058403715261207946542978904726041382778351810377219143342420626580549900532938185935144407739051569005011244901952281076962293013667976848078289034404967262248356008003066724520186410855204499656164935478959174193480240693862085128284788969552380064243507171064081609625848156872979409912617404598980974219049526777910742804636126935754624291990297199928852488967081311216011848071119999519922760111179253185370928248126637289022534279176179771561069339649479921596149905460864886670177463843973190199189912864096688919531123826917899322930185533661519985653951697782226222062853734790505764219563889924045821768659535730399409446619004256015353767835551639361113162710956094316545099946527345898527755464355533020683889898201300091220273310421473705694180223558518757293846123533493792932725588576595581189894861163921324389299290728529407116661007253002464280220822524425864852347505171903087959836630859973811615381817675002887608094752061419931170366334373005843788439106010499725986046931024852171077109644165328004976353825043290791925899782665256931516509286636431635406726218005624323968096846055146110437538244231899996083712080865425779088130526047088616552640903646983687353022141326427161031166286611470763739554329894858910620400126257491941290418077312776236328179936403740557149926256048122852295381185648784212166843701957589538150212987137210472581729634314794419235362053168639037033034384141705864417350314953998969750503900316561268048679747306594602311372501209285022971210827981651942782962990785307652486771825945781022969507536446925713240708257355343642972313682265673950148177387280821391950538391161287378271796283168325242420043009651288887181993903885638055083334397179416320356127343539722310854183316997133454143373458478747045585380568658459476978974288013295386791206482162972502224645902302228265301987294832286766681423515728941866554651729914869904995821630057639342818823069765879244897979456024560377270399482067895654526441962119697405816572382373042399096657977965350275698330736531094967908047766895062340983161553336246682070581081208935602694642634371302303826216279448607299279498917903258770406507780208447206163312655855328811896465679502262098372044911773557863397825930618106283004844288744143913794042116047101513877524461719027465966565509106075555580839611713197508534823276008701367573944483252730118482876564335935366949495789449435513706351994587414768442440629764622349821901169871335117697284390484096751656562802483016243471042356911804341307861429681954422737550407841976895954059125822464051751351913318303022378115898717886364701646905223867558528074671845198672529758655257793078681241335661151056781001112493312207194283265009430620433411369961175159468651628664858307136612329709058138830952521207828747883289826717680202218864458534403178021172508147730017081098296680025837533078296465716425781389223495822201565493855615406947161209978052756733103343970507666366332143447237177683082044360192614001023964598308996171155441684104743638558608861052857385777878166565675608252314731916107838493801508056766232445876098604770200027411802067000799870163899372683772647152168737022889352234109160516391912031114762740165624480169507678945732426847931599082299801518014301687681055624574521397571848154932666333042699802108731896169460520047312034838484486351224492740683293239868278856197264908285259937871718297939164336400265960872949301246556759924429756108940531248995563240653185027624055489290600302876301951558269441422095185607685905765152256350555767921879433865998355636264314271411014656556509776922757506672127058352063626124293651524596718641306184842678379099290249377836123820946411952039406679958375082531448630815517858637421199860001557318222485175012026158692907437286695580442258018855350893396946219353468263946397462948323064547947486236723454741229437746906115293586843599764026082208243620063937331900552861535395590891179384893636611116606592720150357758566597536535952580463098579727337647382240580585703036912667116522486219604392056755746041138884635905436641071916859409079403984278562981730513151420574797015786947047483541802814794666208893272936409484583162713099587226603608517041262079532631836670717823667182339432162677728709549449394262277085621957474528311270048956420743344602621819073692403895677374219431052514845381083428913339629176891456500768912367041035402824894550121917615378791086004330141996854784019999311602516046850124877470953460323856868540768034319659494522228600522520935359482613857514104830134096620802991148233167763806464388695669337365783821131556963976306260301894804109111793265034063064799889645719066985016689770229390106450183338229155476432980366204262101566090966571362263590385290239726944713811451691489468700249954875302696176924647534126193331059637523967431019074576498414308135913099690176973055348401392647325379423848845232633733488060983845531881319758617212971827444612190939047853386954271246103539240893670016945983006115301146258875207777635752886926283272752287931616181174318869799535113344222480200797198729962121866985809495183462668929514383048220364118557839244528505781274730103788790435774980461669559732270032519090785126777094035875867265203042297549020712668539388920975320185615756079802961823213511835655426871365008227943435804884920992196821637186581648252432345051383011141328419862816173042098107347815985118412821590900720280772400312878741762152150816979901483942879991258790758730845600717695137956078413967199820860705860653827584795250799939955282998983522143350091007538539778371343645295965312176962255542088012182411507401909676178766960942564570103148322797710454187655097478869302481310318074657214561531841959885780944868468272168505012328061007345056182887601332459047061994538764117496661772413281978624498100226745967244447705391483443430334751800000951497042731991309979366892808693159370653942615679160807540530882969433099949970644658474033579104590911296557006758404241029008722116474274155658095193013197342994639063549613198221047938546448088148845848426647550746527915903669028121205675277789215207297579547914811563914863533810408866036650167711025326107925576520036699479271578668467664356866556295508197819267257944600798775387095567942239551228897827271328039946829086565951898426612967686446484651102642820995476511852893555236861195359593912954229637243149513100199845517134920297300272787055871896569733583537854699351443602180677643677130479228573303050737141350298424245174998438755083365072346545364846994497402466700156993107830740515610934427030319239878905669765071571315279716014004523562683295842333719143366752292329525868007122409492426534887237669796915844605883730178467639975135398318972271363866679475098851558887383514558344952457477599576220508627055204426831995745140185572614504138853599523784268186796622250882800070880849621527915506010338196241006332335459109218030692178163549980835910756700066874863003531999124978571802095850631956757545591663108210081962578137986139136301474387191707872581597686411999516778090751755764012359364371950494839103840512404130277471349887338264620058642344827713011253145294123245015196378888610758879597362893134021978395286879222845256766079411324228946117554230825891939522750446175600805842641534750344634260282749313812659696854428896981330414507446989765142855388326077588931260218734054179910184913466718373990605342865307294590073429684187106918543727714528281083235472443908730536520818152618737846001710642450598254984789386660430686602534214788260150313994568842045911244275444742800548476531242718236956965597001469713844101868346746903066454493557472925105422833615442838480689932829263250792125883072420622712510988541090244457506756717793422752146768957764788466516785264220933809861827372744811737210264657469224757082279840697938709446452337541814273988884919000485140449885282320158424626437145023119667648968890685621755626385922296549760419132029571336656876218848656766395653735951625921975711984510073146579031423439013318861949522498848532348047207923584563146741265956483500396041127967341824129519897860586488770320644634193696049684340345634864322845512035215045100686893406570584418882304710917096394044619494471813776855291166175590874640835594724036116786586852462964857992895434807179710088579057238686960329323190846533349300284751672794001935095654229605986544238927661808881648263095647818107532773190206175412356164059015553845764230380105983611033934755711701310247902715404018264073426670142866301565079131501798723132040853898327874250171800437722532259423425726230306460511913182911034917830139099427499265840087620338322448389212809909664530875830107332618966198069123224757749666784076303248052248958578524008021045521016132833187661616606068578825174495721402546439042098323163802596321436164520133351601004740058285938481946274367595454166855466143223162099881384868520261545221482172443794170641801413447282757304510946123179645366497143184978534010906325049970249526626845902719755312241826452931296340834425360431467486040862230200461004882830559717802507719634575355892031651570994845044090634582406534443047606032274050337250199109938713212019697128218062625261940890991478359800591322272739142826301662042662535174163327080021658540487371081933874262053151326502426148500341747950422779501807207109404800246019046583090142950626869994099317258875404428648452651978297333539899863329326393456400931373279750095339961599030697859978009886398251386794816590056007951194117001226119171826561912848032884919711382840027647537672758537547336624279261681447257506066516022808923129641462926777854314698284727130587704129577960642871584049626235639590918335052582039488546516693998457179886360018839149997028280818007212928561361780157409826533979171851052624615961090896634775044525684771353816209460002218110745758076548747051488217943370565716142926639334730424528596095404926260955503770976201118082152492257092679903598459258920644665270752410260986374065307481117694699617907053417466427125247818834793042357275248244013019238639927559221230138177862407836014112407050335651580316760268819816040574033814711649200150044408859006698641870254723731334227900914993900881398941513253765542934203654003864926491125838664309395854431152757452208042797250759880503567769926455478412760503223369148311746962155523854287727366163199893696463039005022479080013950499355586718219067390080550468398175808617371240546494792505492017621213438131015820860347389104926308943775875934432115682965566706387571584585302764186645096568903055530322313086215534327756581412003072960282040427379210907898551881658568698325373036734221057047174761297150642452246237954143198905652205567960117548752579101510651651311017050067699802129764333653920878791014336683583021687065843575261398296099641710307587059484625128656732811713739234130889650803446153274491806518875025005240396331163122346902790026884459518712063168898582318768976682817883501266163263519798031832885019054178235515074880431474400556411139423565988888916582245912380033979657263801741542956641382530187099205084491645819363338458977926571425241335815790783889560370003181203934603241234167180975949214924196905873677417123595571552072096439528449215447000270399310717689690973799061930590982315964161914668688565893512026956335808852708774526684187606792963012153146825846864585679136612658018329005951165507741905643979984195100918221109493548490830043811870564588399440423451560635994463635300498218681026501510661200857284235541417846917279201331382161113044545225730058044792651011401874597824542092522138354744271453804630208325058161046271556650967728450912532017358543302651313263731363778269489126068206527312817676573517080528757430072350858947916633686326760367411150554899655761073965014776098905351320441849112053767679347917726578899901286204774685783321007803389896709824855466761379152697991823126693003657198533352273969057104294714066044399232733006414114749396041656303225064294266418583827031079010030643067383115650950516502014781818170051060161508884683435063187733167616105089563099589835938099640177499761066727904380076841370917552285508669422550175379118111311844265432105047683430565948541116025722195316181260429864137062130027535196135368520008104702112523550116699464763815397668254713440877520885251177963204410463450173328539217045992568650030870194714298358293000015139408900768066212884968253344669426489384640647100158445321585093180452443097554524068582978734242247506156302326955894385417013741579515500040970627318665612924870369176206597799906660514932740713639524461402812211356446896044750538812123936189389643387260093703647997124671967714418712807046027281627357721087682597531483939981574684415992527507524145664660966410322274400791009731616843199210977387597960247419981921889014007134611719776450477808359669519924961634891957339459101489976809625389791677132663911376551549928469389885226929204385652061231928193868742269443800934325343191786537543904615077858164274755324092626058891710156631161373186607842775163449174721771368662530932658940122797434822664988108332320419467306935604197160705237067736359831895992772219475226285214208500496210835408240553379671813192072359818738185353616131466007353112680991485945931084601010888891513110208408499304972372861517678109493054542683483092616165905014891282439853851014242920683985947314429992826253811558505090138451088532596443567330962001429036697920262527775239975825699161828259632702077761751733604942319052482684339196477827591504698459350592208614515685338790541135520095881759236036757597720424326110265763336073579699294597250681596712484911782110210163837192345586582568278490497166989350290711491564950705057354798297347178393479795933398320515137980921037749813380972136883831807696339251060033376391691919735621876329516499875556591486488914221133432160582837418106914670662711943107170099938589267728125765479773462923045179912647203364521267024143080923280843343337651873712717939940750907017847254570170689610305348319876067945855395708365237315022191079990400842793495335824487553381179830525733662978509148332320953371995324006620371203157451559815086765286045088844889230011106327669612462838249642306873131764447917616550266766807611511691045728056898003669086619343722321458854518934003535896573330211518662259423070876049164714939074564374962819110118217176988675908734668565519009156178673575226358163632628924339573881118572980376342368094297047299983350006614983401712935033725510049549724892017660298948076614220098590063976462932394025763779041301950038219662873337056386461031580100557069113831808359914465752207771908504724430275903638483576218414194123317856193191075118784779345246404470230495534180608743717593021459601805891814962605649417529701648684403057779963254860541322493027650207231690521205432898798643464818966732081521544003256888263629937562512302330572429495474911531550009543977871317967903200598300091162827208898748076787216499528392866710756791940571467051583572613607803122675943375040972882954221445699151403512781453503055917643073538472157818168050382329553129295337814575782606918199652309917502904336743089938673438362624454509727554912238504632581591632891888232368362373890767866553759003346947544446246918363271972683290715500810935954853315030591355385055699361619644102918760252235174032192351635573581444823360670621392573210086891151441519275912785174560363002388746894144622994666893206700881067519810605391204809562240642865738795865332667635206956603132478934489410195588989117158487793536456611682891718964967881308983191093486980834253967399616968294751293133134355042530684623998335048949292324682799004065495907053190947934040130405347687209122538160904859328663125799839747292988156932916435399948377537626496571303394628989825781182665096154680041963423726092318280510599074601364693990764235759436462647497642001152101870705510434859313364802871770941713702409476039724566234863618922999348637892960522035165963430624020810845828814643676782988090667800574347267009972084089880704851864931326009106484013676560284174464579415566922244503465188778388976712256082085644744608360924306218028059009042678930448566682385710781171536767397852539171801660267766817519387824931478921233721620432773143649578365788978735171069883340667952628183094780277898712023451035058384710888376670446097999548534793357400428373498124426891308901269603921900062031168631587442257303378901187885062179314608664372915887418226072587180500425529703214426802716925712582164104481544305344419747697075105395770316763754162785093136928807174828552845546255925887031956950063443666166333429223887689593834563923078159069520200611195454285701495046402266178706304061682378283398627400560715214805993843071042962004684472300879214435226750688239642182712705430817018992950758973918027210011260498572621782012897134040647070939185245899678708364718983038609542352805584377271086369466171593441313420932199956875630302981335132990738932488779850456536238654144073125097401797638470984934452641418624667838177683490174041856599270629856439874230670504964830445285868102038302170458764553241111241066453085753704367937957230624860267993505969648243322988598017944760927218595965976116497750916095077912663467894444486825922807149922277721680068556578916330895846056385030212030585402815774349435598832501919130626171741788411360714047320374048185867525120817179403941568581393394394047168716966122088277239438923900744123357955864210993076122273138126409696306991201806864506454153435052551407518774358718323249010265597670839462161285470821145723602076396221603084084085610852925534825814477762082369599850419614841306845823103942614612971084434220371647179557841656448982843333823825308351053629415046803717336162627386614579460017233427819990465741089086623832873196920751062724728369640541214187493244549611991923340537464543233529475298977909750668673716102571196737503305195318272776552819656477198269074773352962239864858883300783475013692571804108718890767387561725120942887059920711703840426869889206349225558223032567431313865713318553479098502268594331446932695535335875315341842778161913789928961030285598615801356620021593466247544386738173652476982398902776599989994926627549441110386823956618599475750346862961857237486867950212691871455876429394572371226475031156495030580119921136459148208500513985340231885683370224038255851446276210694370025967171652388735488289783366183983430613761272984988862585029264392086541745782598546370585087786504835687885781928693560131345533524602447723039992229199874801943654528876752158487459634646405700629410429914044728802917776173390636723668176299454139781878735056374845340393361278627597380858763640877022776875200112242446200466558734076526008985050079318810426949380012952560200752298936774014283257283942497273470186354115887010297870479476888526942816998176807388334949109536411952936006835912163976446549286575424307935540559652296121071919452981493981199684637690141934777167210699308947261516969820204330697308197947812165026447021168592220868827348683375732699608173417384213240340645186178800945697351726703948801128017788901567908541682927372028347990170411651169901910797204700603069308664837000627185893101120992321472359444967949732939604864977902608883908531624995940898171891963310377277288489196045474422106185231385344623399288644413220752986805495399693333641401865798180553888197546388720984045330350449216642322177621359569412094653249221148660785858948640579941240944003452517552916335105210703946707945794826072990670377660153460990173673812806829473814851281916620835393687278804601595184634881935162390434064952626988965725602886088274454613482144573861002926820858157679578808306316965153389700410889537840509249723493741476969375869773932654083829233749989108051900394707090816056867507891644773925044881148805735554218606174630335312302328938094910100681636244909421209708299410539359550701788867387418264134676628795873779922450454551025235414468748893396433503173375539791530273953265788240027010926799711731689203880521552805267255939240392752937527679070177363121224500201860004727958022918335099650764071635943214655963246824970396135208832926096775107619939607799006693839521889610915562707731580631942775716196096613892503473132765416706382680946349282833088561499599535596337142619423593817157079646396943611215800753860718174271066258415682533785495952798594814321508054966201024771007411680758341435153651427971474369148120789538844156926173582925987978631089347736880729614035528572573825215589064599097564368176739317002510441303943713847392117846815828224871581377901850172763422335012858110329971073004692865877529797425621106802250785549277969724925588626933155081481822498491567258976714207381727007893838274047049848304804603912000261120706865781759492331425889563822599586470480588667195970092234441618640622581817133025605032502467423398105757537911428074434873080983159794520719806856971144503337576071359568654351503228944587119177401274127727002960579097515183502033924991068846244672726234926946381592422972958409511420732723881406149603423249957983306977820061452393654068850356220794006519794708512256574586517545793369416467567516156139570601494124932742845153339927876120826665377189097968703346257050045515852994989166280731381593316989175808706582113958178422647119030009463244278664069858236093361874404839600825603779659196466228936811591271200367936990079607414864779679409901132509325765748004832306865599624104908103325764359420501797043139541735813188542506580304065331486691897390829188852664970465963478891697263878770015833134843857857018323587445379673471139100007980905323235698856722698776107411379086954505217388129317823155088495950533547402089091886404398593456751384351218729510328013928888329933126728983898273740461260772853108744919687250298077737361002129202049867421638397769827367088847473199448556184473728324323019942716118881138263033786026347838150234100204576448635153528081846447227095647278655945738419680940618403253498294565163483287682639745304726729180952682433973702566808392693289941709133092328020278972592727914269728793912479574175151586660293880259408775451204338531880419776017708405053538734621776793298598015727705273100211637774693486785185777771167439470354661347957547592742230210493919849402823648441548822047872429465629480256285807442677306103002632378457717379296910664509672288582543294235877805384264743075783540049017592777367151706727908279426280943926153263065355015824534479927108536313856812208873342767972744061521331785632829440007841033360582273650217843570877086481864657180095339354583404916568587072622463852333674604420389746017385918816228079027762711245176034058205577660809701052366788705207293535369509415495070673271224457369762489549524212530172580235208662963037743240462543432900800170426897560822624125191479833281885624589580363513351163307090348660348280545965409223758538854506623173286827175670738721115616823266037666498021393729757102916538010479092456313123973220373847397982049505792866332859037380211401256167756451769579288216102989673706834229812805591408672316562131008949736897198304401723891895092187883582919562149283721224264660308755998632109975022064262416902188084174938482985060791784774361410855354642679651842985654633834844972452771766285178098007460516655227371956196593622825800187024190492059222002453322106253544611072846970771901690112949922527561098154771602219493498214937425781815455895719810383131870311152591452003007492368952911909622942315704084249575059930035443293166580995671130712238910431469028403073512280796189600309669521215595394271070768765890445521926225615189215607124503742494710109134843946870944186033556073874438462077493876095265743593330113248670136642363214994753008544603305422964149246683261624393260360382475996728460110638476435293193093855742056366230403722021077046659529494042587213677872241114166969715954682314848533284801121473718678413287962527668840871795794136328283638535641140089876105567660184808788437755616332249021155831359212779841313658626373422543641337753035608305964532603678599742726927795042179429305253702290052134688221117926065727638695062878653818593234239066710642751191783958439448310126139596446304077738468231399982059280509777871422572204931101444327665229515415493538659657234946219325922402795443881332093318803687484146705042020241634729892341004501752138453486600257673632302312279728673778388268157497170247028365120845723168291761156984268656999748877019632966383436954449905969252223569430717044133526679726769941599279284658288944230550277292018501617267408819245192214749404098505660126326351614331608482530224725104541060078264877574625529845814684309671899159685438699199640757403625665091055612510434205871065196062996278398086545779312845558779239237342625596383712409419190847312354660031787138280975010934799951096152664713805914033390573278271787598266162633201771927954762642704389108653338883320649399875418890733664878739454530749931834038629560539656720097664353366960691775740313573196832726375548410596085407969678229999763901196270864057549805696733005686243145079519831870024873272938868902944789123607089744420699800977717296428253955907447055406022162889537834385562513466078344360473749845672499742915540227885927610654732821590517228763313402435980060807345429967383045744246767061843770748244879568484723177224003855162642207185953413158036450463727070442070916978186914906270330773173243012176809857362146206209522360415868254019578303921571965370565569233651695484503719285272095945963336866182846447196222743675113090711023808657296067531119585020484833601958016800336343200165556874625163391591692197118144241883740265075249691918251657624881381681158515528893807484237763021542147691190295956814600717469846128941928668936323797952215835663485206207384484428888922881223115313189977075016162764457396989643043747783433500045719390617323769920572444424723661602383090945865767136907688212329272422778504371987779322507285826176443676835123395380636517692446268176573704408871792063620986866903770126576246405261829861371886660665287979307872485114031007346578313150910106769449300271569464445824656201038113544288181602356877955074519733345157473715535528428478439639070691071722775642521468339255640681278010056373748986017259820656276435568634542422051066360730736619117693412835211683866932145538670947599786436472622207580955751793968370168455236747702226300227879427337958634608648617719267617885437211142137758712129316431538085865749244593141905027926480471348635196658682758077693263779753093724140737934840556070449234780153298116701216401433381624612611505536750599283298759516692326226033328460870660549139220215529076969448224880717184653605383216324682565078638656298923880068329835479140888146402521174879175947144569567654925675826202652106250754909300481665857372834479900526206444683525064822685394236109545791120569105994209141700423889711105782876503524123661980590912752947242622275779392111674704554694631541782130165390339612599148781315349293047619714581595575934230780075743391901198855900732575505695704900793163401101425682337171647317283894141063812034352017641215969545735822072988409209236276070550151793625272959878656013339172201222772653724808380792612068189454197183430374323509617326703413702343539274579314673602983435561294413717610396840769898433208474769974117918338504281753368727007429337298222628334357212344504712479122218123144711517871774109644056926727618959342412689820206427143803408441149293977965661605803409695084487127176833151110728821066644089091011905004481405266854599318938445512771473701430056179164988468561796490699663785767849925025479613092962527954156365413054104016410736228004403122797228740932633605865712729393968983067537712645454947233642616168508382910449792833161140785690490423315583887218196034189895495989981442364858740296621403138217697035421746490957668682469110928723511895187226263101188795286951921375716965967746262057407703661473808641158523774756960427393350420399017946535370154185787541016383622429224222103817995305306776298227923406271494565600822613279192617454319776980352257917005879241879028616841080441877570448271335578479221943236621846261661930082169238576467353520733359563593318553879898433940102864849508889670087280638772941421920466853482548695498227997710730800349366762420377445503562055964510540237352843296537569357949269372159239420051142811866481095331056841666117499590664113081258169879427903875293410291538094220334591965337309310683914727860823964229156178493223778241253843379135696537918224369000580396598418628776483207694572972013465429265678667654969982748810325526916097767534855752617960750931374946084854332500932598196029835611633409701531277120157463162650079181521559640377961119364432106308756145548371415416929772361333734653010527484767222113102647030969180118314682266001204342516642382302706543122529278714494334362787632058695196526502396325929742324951286234868094395971076861520413740664755952858417197341834255041463151955080593629502189771964195337452984721584904017840973356231506787680434459194249594187435087703021753291526860361105235269323193119753454246707277213802203314559596108644055416111924929451102986877912118368471231719235876278571623590667847895275179009448166790460334995151017442214947650576134147172678551167297995909378146341732468781366332765047599782326020213725349215441826150902860287645555089394495787822106509993824676504057824724663255874099913394674823578187104704388863190165994855034754057075104526705433521896078527976104170420322538716365623913844692964631427925532212764058349313401169644658266215846392681710842299726525225058425186045133070643733022624290234706177446345397788782571919260911571937103962290153502455689657021303316472567141611207767645513308438205466063665802840612702719245529307133288315189672726510054501789923263636945582547726814211287665320199209799177151936109673601153408593468709711866668925151732829183709754369022041663938216911657616745885772451323538071273708001462899055805727045833967394703703682970271205208874474408774193981808089784265417890823945262979945217969724727464789047780356580457398584389487354000231863973928127316519254439003437900198591876794948318958955102729656057302195038332193165612268396801549929647554810431857214841814040686061880036552272576642448840653754167360584655602407727186918860436709198445851345290047395161314358540741513353888855640833200113235332490148062199926656947658999000886974021443424343314279042915176897363146010088736171734175879622920841273671936472471620387613713879439360207659503247485933915081633736486128044061628895174977525074930811427000013047786480271817519218394818357924170131404475777184080755840994915063391130466534137282157644597412178389190651145816492257129143029308489931573903492218227301018020336729957631658997406423991798829204340756707970349762727410242018067969237465726530022972270511149203604736090501133677530480947118338222255124419044602747080710122150595507193748819659824881709380585484086177112708903099231637414414628971715937058507067677776062830438692906537971436832814061497177934391303349484995369398736220933520188755744950984340119686408295763843997587180513951922603906996777509419305181797853431028594691646280026665723389644453062096427412394983540759901109804960092705241979939106030325508350586950857999802725281239150693074297146376323625845917050023725223344426678171839546456805046018989731875550805821417068235201329618186746713223715353976393497500319887346494785179595031468788663850645238240709287207648315329635815105202745146452325649135454935607038069278481502529002569751832429836769997639799535766634298552922214549141343747719541200861891413929395013253870938817153519834343917764947835093011154747243341439738231783685286753619285873610331876162706156608246214394007448715319907246755942863092408966979868482730529152715481062978585238490193919169217379028112275914405970336590206774641635769217173522482778067269048598822342547336917384742767363490029282176045165668293836558931373135884260656474261486885356985350462053981190273255442991640496733840115231430701695144769252426564042581404764829822628624146909741205501745440822453421217811746815067362933442856754218089262800207794419217401280757113404871195797467466346956872706711602898411709286296241498597413397954908799563928434875088791558283117854467591652638048696458458333589832754437180723536293514579840379539928972608415251482451324471887303299290858029343593630655950490213868589747094770407010055163327680536906042576858919904150809744619940583605118820063075236779764664428870671135429478596886304665344978843501325151849710344630908179719984750461623437429228602473065878874254910261026783075522486194324653827004057156113343847468765225298273584275659678204315000834496189354172340925842206604460946986915477076481740391087887679952614604870618916777460540801072559461916330616255710502893402293825663822543387142688117349559235351341519897123751447593132728535524815314838033330022139165125683376235971715671334432757690572415981076349185634355747725124590861777252819808883376958223729478490549178988601109984625433038496689857351640273969748183872400326620211492266232088373405721645061596827000048890529200580681255100289698328511321679333374544655433657980180989617477245410602580306303888382986841851100197938275720790858967057883188269369657639855254114505071902353592822483707399927160050810398281415337128792754672861043242431580382931576918239319584240266421675733232340151915815524571161798786407803666044396275300009504686085305008045247248290013322372371373151606803377985712873421312036346587516899471062837049947660347964049645457183637539592776362071251728803451611731470293879756879735872574888761547531114839437727005962494697462839892912856834308817016978509583781177025924273408150579431335872477658084603321507264247168041896926671795154966823866383022673218116313922398999973220347035283654465053419519146989417691844883044014300728571929601847721485831947368867033696746790957545313735159802816464769927531466463977200362088696559602046650318456705452258672693941467247201100374321453023541451385661535297536926487803907288075933923612795120343350993393163180628991991397180163025649947934340124389036200672502579527891379117628700835595003044487643299630271223272425575364525403823920766149338688260059324170233623042256677513106274338727360121232937058614185084399753765547412782676995792939290720555870232592681895964546834814188859551252412735663418357898906305049278970340999425126910356180153217450991846891806876764841771997238821592313800321453481729269628695395334813032878632199257218761938080152209438810200655860550352233279136574289456912729988034091266729594223406944181527746109708367880677131218765187932327283753768726129948783786736999162474432732941284558995068686399002429900253147518346620420782294090621733704392190458063057743626463742749862011788142042699497046839082444049866586005090952562717010719921639968219360980134428596065486913232014418769644304100287765190305209879908382082515398340750779155056644345110580676601635123999233388286064938022720951969790857981552935135264082674070746474326880775288278648488525294699230888405687298382858815675338519335275373058980377574485028990747927512288907297211556196250436644379229733825549560920128545021508028000227659527493008325478296900453700695265031041534238880902965006701237000427521097342059459667341965057843862422310799925532322366735666129645177504885148609276188844303282657799891164001252408225064124513737784233901613057737543401089512981903183653286410161425319611527448517247345653489866928320290024657907588232335383076812429897621905360887147782484111466077427716386829008059635602825117955645323844249188373617817183768575487717229261076176670889097736344358707468515760369038276850702689558142981144997041286288105387542837856652946619820797026420276393346143294097895378965579666320364164806595281073168064537944144093218639668857185032835787852724042588212037058968305315099048014813216955100727842891691220106007784634636959183190535226297309904375880598482669127664445893064827388360800574137600124134179719525611096543001316238942463561202516545081328928839296987904039443842221006132545459807101935130906959191775840204575305072458934875011269405678890567449711188517375578567241737338678607483001033848988746846201404744028496127783946400068713749408969111330825892994313685756018406766476266038677830790210851611122950126865293543224398006441381930460670112426583005988185265525075775668802368807109850077758176764879920018946842356558284359436218149157025190441133215219361522150463311794464149870535062935872197593591482105984145564270676596413418445140176400775372001493538377781582170941368112666947891572129317302958734988687975586954533540693430745382013885686598025061636893039916691299619458998915768184781924283178324987015640317296948878476556953336448378221362982941165820073375346468919238790802782317647702751486014081634214677443150109935902666333569582136721512020125477611670215482678800334434383613959638995862155222469531855310094680329529242747952492347630442188235131779865309280834941461508539948548916354985211367770445387089497809483388525818315807196221024004364755714292880212834183231435673816753488650702178337717183246197962445188360883985212138780077472992458709867318574135924835078127547347739264003337004151846777107348975382230591215665770838891732562323977303764855309539860577575240044773104011210748340890855352922924620015183091701551398862664292273484753645083917445676491895387758860016047611880197323101437158630055212762781793261422103382812735687770779661836320907406524152458913327863326168888996950395444488385502618644819245591065142097350320707105932190315513222547981805777387058080069020603603034642467502418159320909782432825342099172216705208940313390142203950795066403500436480214320019412843549918862126955779647214395897145788884222377403624109533583026392548008529071729156774492007308600512771553040696241119567327689106489776312583220235924730469365595334458885364495892506050482014397726959989587235693103707065060316297601546050937351165787322039352559634545983167939032978241259047471062847679455795890172907821491951523583246062280116175107021411970224119109240880009005554277052005280296123028187602497525013741359205552098504002218403867045021447266158977779674234146583328371378832731461591377699313125002887002916939104544276091968461315076783326284259166293719840922135085282288633100258823539168656013181176671192330271192641521533864217319068880937088091307265002147312079079775198656368240082159674068304527079015727044937736800237923293483386331840111919221872313780710493805074496270322861418969294614642641621840551303610266778928550003433490653851728166200502276842259117001669763412035239660734632018238425721128330353559635883589668061561755377714666209231380834228812439896801487764904525323149327783183952692929856361968089280659535370472270411009419275633225235790548666254147655914484109920276808210042969477935899684842056995303241220480010305970340002195185090623842704139185767316534659267331647122756117697090361693824948137819933791355249659751977603405108719721855242417973850865073485819277238493183524397869237031378516452183646734354376937346375012729502861556460895496344029524199486379966273093886833892170004613470848412481327239219514152892780336166587899252728002574967999260456299634919649681308218872785603906817965653266771570989969360344268306576840064331159786483308181008568658380976526624448491045801352301661417292275629049245311489668201995942868425345895716889459835496000754218968012335586643833737489570969837348707025277057045550716967485191610386560992182968874455104054948319487164504693242018764176979275669307730191072201088400483935028491749783317271781963390007899851480199304371481038152326073366437154811898007078950248929683897001844775157973402862551570688479832337004327335190430641455443693259369746001129708496616214391790528366649344729667966051744647599013430899331240648365872448192971388258367758431927616708005608311997740536320589272174175889829398161176206748411384893942389564750319448896708123853494058151233968675067257948061250072009169178338461649966539286432757687852125534000462655617390490270158051888625677298338588684796865311681099078176343710997232084105591663206367055847980091329243432282280296784071569856326307188472194224725264000376403131138085820062422193853263272513864417714479135443959336732012739012798479942611035092478852586561576707920988793046595106555082739536948537445487461939313869355059306207901235609058757911683327619790868488305881505686665579963030398826895346252486565289623069611793389272597044066732255704137472892770585959051863572229129250554440192041633580118857572185046219282759253526408702464554501814353360013235850353215374230333657528194995320112298106370261132443939878208470571151658427494511810082107531773348163506599020979085665828054461892485225012872225449487440519229799945670349574872754851663939782882150917694082605792578009228778378804021736707688490899833521349677304202482584009454449118342786798147391578580122779372192833080199304294437107129531258501261131114917332471587203793458366139844702576000097566834553799131160274724782787974282078009269708005991222132090843737447444181420271914266512307438974821397340242876261956035378170838171454620108204048758792489491238736656728301623720070552527971060943923120452809690631813970629248091706646653675081658520836942641572082554213970889222284999673414986817091659316958980780694611167528154969046931915492742662920854066157717715807143404956035444854235232678334593459762207413808287747938616422520036183944596094807022577052452758025587682131594743001430059278988625127969500442856462179128534990392438565581017263842580308655340653746944333064239571610603954904837515058828829770084217690418866880247004047456135527540028608067608974006097786582004519494690004958166504450745593017803990715928268802162075593543545037458699764126190182723196837940107604993346516363785630321999220157307480650116581709346037891367943914458689461541597758078173920066237164726369412286812825624650780759080306850218414560093109248769279338640792212295880350678086770577412493001868141419159722880721987473539635936882099063955284794195849933515727327257968461857394918078885042302054166125512233899012793842952922408427723894263973530996732069494735452782873865691292494570402368803703905887716273752465732322818671615679963814929930267442032583659870988443248059921595801925591522392275369368840994154098042916168936481153174791111789442818990152321733195280724153362111929144192362010892934083400554896737799784897722745215501993178870370472897962331866141305133081010902955083133596472669508898254839553145847819084802995894536521956341012064709906149942814557632155811680959895067713195899134615123371980883741219813924703757253639203436241119994108747780315748232025580542158765392600483857769437344670852748249484964017010529244553338091752193838103848386028625959081568506799195271877513633454930453188190804275575352597294191879233694182306800323039057548594124873566317292534263259732871616821105092140084833593705228133948483607087058668469286981390678783997357686933904720691786781374267435349043496897500596094440011956830171872470897929345542302357037957776672432001666588458095425290165442864850221837522141219460831802810058173933213064224555742119730277751923961812663274243156720175756731148941537347624277020338178911260132562767655944542992660503418889901056137297029347359174976219007603576214620395742745078685874882428801083474943278878838477347664031852231406555983207247468643110219341803985509287824857016015179158777240253134643804082510529999912612431604088223867290756714674078308193308534130924109935839173290036340920438739863026145326063228415893241636368281645415380591366097256900190670352986832432878530272645633417316328864067638578441209776843481891636538117393082803570946659855129616219312478898268872910875156418096846057337570379941837641385844542733613403714005726600637251822532215432958752198249398817919960333669342312212890188136089294842827433835621324682444501812326687008760523897265209493290846372181176238045841118562119292098023673040004808859504452820010820287294930189859028570640318275569249628273993464865692236921676485488714184114271458093678332523198690284817173770128972090999839382063899534632223564767866872818085257338146443924067233692495325458338462751686591836162806903123309112068138246654491249451267423626551319479154869932519824549422888579849366120440260933861717464124501710136760994905575641235919594566305077170916476178502835695231102379039778007704153590289703627886801780777345367505250947893070179616660417618200804844901953480902879547278564422736209065025625424672351942459777248724786081312931197212821889772195163539161591935178792721375722758400678303228838754470165959785413191477068021224271010170175536742491471150077096949009275724914407121362115696131698379494871591709252970949444968719637915981801707203110571410452087697211871299976709079437583715654844064312765769763857632715227900444014269661805242363755675757615355213406508160801072811652706439543320787666570512773781523280245986959152039992206174451520505236591493883623731273412611020986366338282371284432580132199823823283493260628038709419272237548074457914757298252171746020768904344362634109427495109440998824243997800045463271888829072999797615338565345728907373258833777018195044937105944085803294367168668432306650737701542366396415499496638174810104142604288366394982612275944825622922576399336571475133587052820147995216542874722173691023028824332125568665619362006428336464330577418964502318259201299600783745948486983146638350211182125859660912072234527783198520508862846591083192678053122240479180140111466702306315600676840780648157583714999377231493234347367703066644702571365109213874583915371596676761547212184117629559464311477488071533472152763759350292380640171895503647968356410837700451295543849265492181453239314389664982385046716921519080215672611928891476273282963240336775932904149562673865633859977171189348098970501157325766141955434942573948650781070095193698703929362338576027378860057172219605713224113653158970660873648735198760131163340393026341346906584674462840530725018912323356232152490554036568707159072598143028752917332977726424562346972124580589574802767373751044419812851394470944824523999248047157536298717735992838501250829271244255951658113499499324631527963991778473677417064935620972969104089864779946608123564883606815773916642345656984432769306805375619769945250530869315469296703051000182756099117781878708082369539824477589995853832961842948224880166984797542590859921628228264510011801108883422610234533030004465482067949418174077507166209409609590443872024984942818474685517116410825961280376072738523913920095003316805213214527525501347769178860060945426615782087428890637959013292778187241926212204516102909648944473417466102930754874340924151158594694714324793104245602885926747558701828300496665209102787603269228789806552876118559341347408174437847190186649991601761008750104734189785424118417613157652787408745760300706074371630454312754428873063947103959795535306344040423363885696578995694562785501648163160809532721893266464020783176604827268501751214391622282536830958087221661318990043162106574963251189985129214039154305498809686895829365321065595484038619817048491837419726656040904951447669349720833907906137711095005608616320003802142365295878033394696144516665605694760218877241004114975518234437993414502127107961560772219628971767003207163849885252082737003020378149027396080066151989448872111719023730486680695057315912860003438878735323140802667514971947444749324315709498586955641802488847634915157242284946308060924321969246861410131450750460536303312002057669151325226665146184109196804444907024240961447575630633870715693328483652854659099935532669540873706147450315551333288903736400925997765307707882236361297389486749772876848263025037421924810906387815586848313961474401917627773834050011675089308327674809297643575613613663500672865596564992533769096783342896275732804423860768618544131461507391399555345836639323036585505027368799464656838092135981205929105124990330710350494874911108698518206823631740750604598412152990497777064201499204831728850614084722498443250806238393218839123117365870840563477741984553827960701343310881401355544913775213412553844208237297732097714682958743445246289128260189207488227690780943462959404137896797242580125281344065677333143759597147060726136336063992082096326680122926220972563611090142594166233237237474592441764774345460713317882114720468484056932149268791409750982650968133157800227714474200760180216340669829837232170926741338386827175656993484844664190231111229061075806022506893263834273967552146441066659771957965497500429451413002168758342134143593910894809563377743288394017916508125850510351945474550282972684256080349887501755654013612176424335961959491696433668022025079180565545088423881925147691477823007787212090482185831667681890855319149919343570061492910846426180304435653421515437991780519214244807380376555447577392781225788743546463314986632619004587816476972423737571881219294464799360767109194831066399743777459601557739269038602293066559245208329237412327499065758392488574482097832552371162083056786291641211651129754107881155066411412470611640007572771488204773013889027525232407939855894194173354335858011196041794736685574124949572256862013050968071291903546874154226774171369748261071595243537915384820854424829516796551340538998967744513455694572959774455814448624376063977932623898941598512704524639990690721227673403097576862089969801308911162519714717071405379013776582287218734839381191251462232147222739373175375374743291600218838933330970343305006683107205730866739446441374206304354980995306604612117823930244713326611351735867504608437149343868122792228010673699390691576047344656090714243425743973441357518575635739364446965180812396318081511174434845888113087328375545112724942335821543594313796471208360335978919541062724826972001949733539879915234094815608286383487783229810755252457635587486244083369369002651431823514584223588043617845874069414997256504517798516673949134720934032892655175806284983399426112023854713508301663517434853469864419994442698917485479618324121188209427713913193144059058064815941673167730803474231462078500635120264532822361551925935125684700179827891282695297553951634616473608096657249927568932486309355917717565783670002900285926073116491235125668311775147516702813519740253672485911482226229054267878402896088415469808168561131222604436582755532352523697951315741062553464851797727288596846524792724936006154377498262572342248206723103307570977048334476210970954670453369809944610581306384276410939714313821900897674253343158035853690623007767449487032511266899349054390710687846007808484247651264082080331113258036857430937773703143195266018138102711131165941260017584648461489602616688868324774973398046229193525280994995724239036612439340569331048444606932150005402630593858073628206485266751406663860821679388796519058903765952461671955501629517341849417650056026178904552093189786466918774542234915274281486423904170411543927529039738455882289250992647792990910226007428038972145955929473661247117505425843184968631479416503006295761006494318768121126720992066591179103357925270766688366981290769325785487260770605675788346588812113726020731426159891275646855402231361982873098856252225315745854498129768932989065397592002852305279385041225397696353667010744214784529878092746091344499675648007808512827127244856963929767424886735351638095672329798239002151853111968238975368901654080740448889397158985929062786542920879604144279227665383830022344545684127094545340924407250807702899692428526137882213373094752347550940207679159162852461366657895448384424084321679554417494734390455773333049740700571664803010624805615900513308636717574611567634865476021132730248745429152549384640564215795282333436825294257491058776189239927598864492907281929543497466476455328459778680559691953983689583798877977798044202592746175454966853201224399163676248708738261464946380572137120501700782840256616266762251634590613084944823921220372383357783544893049537242354859173345100482242654039164672015569989390893805435788494600051880018236129459127899210371192889976367238454755695486614964086348540943938352325928497461783957466527007131299359858759755485684992163431932522595434853954755865755132777992767156027200562886593104493856373096700269317238185208804594708012329984465132286921408068242331169244995957830143532607978625461121355549480406483205596641528209203703388328987587185606850289393887096587602611493364758381436775271561988897605645012866784404875169775330877570619211367368018663242442003394041670489406621834619691698582689573859176457910580832928693255434034989999567102170120857950347893487962088575842376729352464315043133366533619959055794002687460835969193388547779214287399955866902315979859290974051577710530242560803881692368021007153935619465306592009015063112170689486624141887166883236125360149231605816635074751958021290468615644437909532062192146496856346420070594689137324112094292646530967489481204894565346771397696915460118406675464091941621607590039490205556720187997067830150994869875241669814481286559904814293990670343862520997513198449515208148672830843214239799004791547252614432440172166147538964118821110999527795761351062419527433792517110508316717352070538600382634928462868863438803352038581195746242513806107593799994810909273303427739519597997413558221551793175496904009153419686605823290998328202462865430509620806755728971741932442860397894968404651858161006192356073366910299487522055865839363417412561537984593470313548995419735656353165963717593299163406780394364103718891779074430776336549520846912301254035772399858699807747154964713033506064457238089628313609704978040970988098067330108400627980862010422104248276196873860998745160635931976639983935495763465631464057649637576610136770541004711834438305508988009548667199958531773536917696261616517897654682770219818797584474466169618594719071160381205187531841690666922503510554167563651895095512982742525922807447805644727482480676137057464863653220906489037397023368062246051771476804046073311220802499224393913441152220221779910148294349900324732125917333599267682478373930891518283536422832812420159685455383477658293755616097133893709437998130863464961865800158012701019597025795305152844530949246984310215261455937619311525595536955985862085889364551942583732929880109276259795376907786822709136531366597688615506641518893710784720747955494392431607603521161061443955937549944771678329792053589330738564106979299443550327163692021113664875634080892324271728826515084813547021512892199608588858960860094531877377158001109283627069596671437062021545003402083832498242710128718818771932008973856843345073047901320703870108777295756285435023948686732271398618063315354206673707745863229425112197843630918195269912878034409991944479659032594004081435191656444570180951992937141785888193389184956873900914100034410064887753993829084994721125039213925922942772333443958434751512482910181972500960235293064399023648885715949221420455564903488150899533425608145157465220278554763885496004793478131392177650787899251034475943552297385770258475453114106082186366200458879909309481101199842591122606946880798957877574436422922962605170424719194645398285045177960515339254456715962374932246168480295996134351988834450709822834617560358434328073358451159719201486906184237983108627321181121511918539976112831790168437928411007810566382055071758463068573413353317670474864388593734920755114424262180389722909595795088708760887662854491081050789870469926298596093382640148109756499197763398295357850280910436587008100806572943577188245949575326924303967117925210019329106160442994996493807744611880380029559066947258990746641588048381202861317061386049343814259101511341529977705355161054046823074696158858769685746855388415587189546856996682358261625082176929035918896051514800512664639192570068624847937832122626259626459322137715663353044723284767026377249865617640997853449700250490642274486441990538344546825355096967961175044591220744373492789171771557460944379859415989612360366326924251979640195636415870449032747856799371112807113351969298097376344162131781656264354947055453970697541781460736448003745612979191624853746248044874210782229315208284060749962045493918835885483493995247647129626358843568419395135917963760610164896613896014347031510183045236668559861483943459055855652338833260266828627209969346425640735912846835603994891620516830333893496486037584955057585074914322887927925894870208332557432901428744047038041477885666135773251928259555981781978073614703752678196031447945429792586662370740812068740240275599803276450653486276882798127932167105522971873267932581423180190934211433727682610414266663866365610810741734641559240742922262160392821324930282193148327322815383366412310939940657689462765731640357997084827317387824273599439816169200837883965166491602197696835834785193191043416555965916203531823484087554218400062701433649899070694822619712047773088662988743550189598278713527013941025681243792086569527064300634525518205168971132727441398447028036311283823604968645394200218648269082703214673939652736454744075144398868417414137154613917274323882044509059615456584907186886831566331185972187297708924088540025569476187592910768268912595477313628587649781138841933314748571755634800726932241620258070490979720647806671513965545913535437800969507145354429494637167659933131420703712382735808835107580251486563590050546057858627581757541254777690857236851177568538069593111005627087912854863988418995135765638081316196002776661167629641652236696518526502612153266661268492776220593315883863077004569419243681906340954625513790910898393460286441143512641542192269439714051727691871223776539450830218546216610882534796118920043312862854547061114765886957892058337355910393396700095846553358176509681246112540571882516823979632875963505562339935039754320428278568011230212928851883692557583765293062631384759918019388324879928156014566827451216267426211863933587202510564288774186060743405014474757452401816909118633771277468582498139435038599742754099611880581741327673043206495089682064456387322067780210007721707368364303612194341471914552289813071428409906554927700088338771798553050346696224435714299814816435642979238351685445870952129355782624993546566884975489065372490816678597144642135266341645110573740471274301617292694539115732018381095615746781964382155521922437065014150425032814758740468569877493221587369498819004055081358413911166236347586491185722025302855149533606930567986581488994360642821522198747486454110028621961980441243415766855799399049231913207269597330712656848272177249523293755979873616624125774987293232262106338311206100518065435320094150911009863597565705114826145125723438385073401621534945498514413407786948617174680368316910507825241318679813761248238995371852232684122488654632933344992022209767554824201711178225874481582207169762547524704954307374529154674012993311521554279084586579963893225275433862336566828817799446326334941889598974728504406983040143648992695473403070507367966455836931020147956115942095900298198395498238746765427234574707585590615273734158713883794307980524019802084450059578990106657391542810602898954593987080860326251701398623777560410654871188252289876948769108741588411518214769110421457831609170043912315583438179478643727385293704280412474718029004182527663475170715913684727092265999744278803403834024526750502550025073470647865258441608525330992962507880376187399088590209791290459117497432514951168861238568060344844423439829780334948139958489108001910420278283660613678345278696296940548508721740252906001839947321702866728759245644436775182227161917813863301375477574092443318473409423798205302046525964121703180024239802516422438991990427969623071676893713981293035197821010508727210751256410718340493233375044002066498124775986378673282453612708214871797476849356383279590931615579139490154355992307408224829111672383570458816860628985320326574440413572611648646821964615406822523306988631906828883033748653914325667539642323269907424433461253465877905087911308439543349918490021164273442557741524190077373319193665650010621843439647305877279093834471041024985905306037131443021663928980118287023768342181284628947717026074754598022225058439529274046751168929435124472462737533513553499710953109933203455063300877009840482592435400646288559031189942201957297753217485555854155885739452851412241551436124805987082640744124050327044680773007014757189778730975860354398074404804379601137286083069110097631741931714899721872689639938118889065539416295080591432649124875062332365250010162246108251050729299370043797315102055287614781108714771520504080278247311764511931080143712064292081557949478422069896907695036209567756273038319500457217647279492151888723519079478994375097390371842466859289790702322128781415429024186096622275289199353319607884752519373605495547044776313819686387550644412251992472663912111164279194855713766810758795846927146319059192941937002836811926423966671495773568355409760029777688062427372843422147068681414406162127381746430585364620317399149306724312053530791961868977145130949472625313029817949474303034704486852731905985823550819045831680753566850212930488693364091973780497088830730275337907565306348489011170072767915827614414323204235211807349942851341668360013857745562811143236224648486566912109893354287177571323953190936617251471629326482414885820574269506483826204188492978643461952398466785904021139583584935002163495698801004626065128615350803329410232680266061715799732091019303641532267578985774051223954307566055396684676683899352463046117083164738993253336341533841896987545261347446778184033967519005394634282821154902153043073372368695854886907064656834253204926965718949086174385091594695796321161646830453586468136850698976081204806281209496129544357551943004565952017938136286272362246997440532888648300500242974457990591565506683764408773888900322737627083489373598084012681008785923350921664904616556297212429525252139573047270443517461625987447395637827111892955272195054385042889975821859363862919859795011494604530527320904065474193635163290287659829121760910884651672695364866692959163293046977546093753845927609238455150128067794314154292828892266674044361196541365864683004689472032629547337413684637511229614537380328384479062272919471697471101814053102939086768682074233271014706335915970310437626183903993578008895525536758714339143289193671624374881040006823013302225523031704736880585422369037475413145671143796112839108518704725022632577895356770395262058396005521881904211867100621637130882482321700477124525521444859676223421442001527696382517140746629007180378714115252819869818322687607382099813423727275836953840131861594538921412906574298084183435878638569262101884887365238935223605252277841741776835524024087947437958518133153043182972067903481236417790091873690880102289402584090321433843794355818931237236987395611053556814353431993029026067423791336831236566238649468428986337094959266951829057602326372847173152980291380575189257623652215675811974961323585481954324997860043226648280273626145737058602759134092640668343503412073384842447095994028148988183319278111171406249217598303926757053427258755334722100036103578447302571400025294262897118050570715346889352433780783983874512927518697594321907341808200214603887260102131055084557158752006559159794393608862543089918883923017287019611446115166792501275046582265087268371716920318761289361921697517063743832600863096362295115638643661003918628526547757898294235115111337933777881275311790498367507374700044831782585071000921592643942643672843885988581977250923706743124496234125374847768884320659396889711155764611262488150255367824029758907527050747737064181084715057394487283828875265496404287183609687263611933005355084321460505658352557978129401238331587059208337284813735996621396732143448486571843602134521067936148452885573110177177353140555933063641184922608567595833815356441272855472768724428994928047285843676065044255975305131534748312974954664904502221593368407765714176272278772197774380961684583677915597342788735052476809240176602094167716714721414505949201638084573062025542305390634932061506440126585622556712914958604312616589485445456961571002939747028996892702154541910078878961373106864781611872465855851446040405783639642102615256865924996776226504795541697471312444205575578880165074605375191931300691721044311440902624510856407983629799783858756161465156937153213885096707074740402640809288865154404417432282528496802630062621383149516348546568427730568853301736239440714311035007255927914113293575855219123320741429709421879867233075932402383372892900711125781861014061380721994330580670404030305361763682942199899706620751083555651157074796276830479903996519082266254888770694422179787236479729545562819704907813948638811599253881055924197352644404609355042447139406754408207854095671642351141408345298700531681458330531858377405015660818231793565945471395619994439898694308823141132281043242652362637683175015173215622451645089706880747178792174876669413573440478071140418372484389733689003271891001359501158809041710122008356314235517879122992667344810260343103321232411844739970297471409380466470550275393692167745693017127807186697847838460272752774885729862407155177364519932765506840996328275010602045659326066344455969782616595558421443547542076592136146578647740643019026017059987406360628449249437724159130230596231093337180926930209211949803358003145670696486616043360036620841859467831301661948714553365861892659184130553097398943425944777363980239201969355392538328143770769521680736728901582939697441833232566478252338135998539977797791771321268156861129085644866205808083722580036949760507327717511654355033845429435087450444197707521013876203553959186673006096489347609003660682389740581019177817788516904921724982623171057613530345724158296245226486316284794993944159669044660616958292289535360515363538903231994420598529220161481011640915575996124086213127580752939838520994292885756535000558112762152271128191308264799320059497612521185100282479538440939134586702533567957083598046990222093700521089841751878257581391174324207870450077651203993559377976340722341270177017878204791281438853683430325916081766714229296258330234346961131756117183324951030725174982650419357535339967205012306366274298363362729783772760797467769591231636683640366525439810280747097449365484256526158272542310996518297229830990815262662636072248244319093970606448548771686191095415379768107514553907673577165525280128132601275210710401694079172136245868056402938664667646900677354040845817161996495892750046739772503561733484350796279174724893077738512509999859179358065688653756441748322287138905281011118108682180763398777587223875269149934957154279560771911620374975989902273045458725094723109342011086220600584918978718170465884735366611546838852557615300722163320405073592214657230927294146644166260859349185611864036908212982101935402980143644896160306915564695890772017504471514573515263130666083268268232374064697600325008563721123087197782734362171931913025341285055393446385571156762078048467887442085433275422291404009967620291901760482486524555072522317391035222167311057608230850914124709387413911079106635729813560334344241237936249341208193494601315777666256359996140028295416273391000560086457595313141053123784897522431823647691911885502051039536828399364429640222963078447213245827786167911616568533691249778677995602042307906831006041017115618057124387808407471088002545267451864055235719026280615109917251114392463500570747266300992539495372298454152623976845633128007846528816032385184948869507271755186239640794183134525743542162874612171828286398471839915408166664820685096707279013373706653249913469055638791278935340526425113597319707314782301242467135823540808713830652109512549610040016651303084947826106472286318256162637210724877680180632245820379430594576196816455134789049537601763429473092530883805867155300098178718567239966295831855124938719625544464640522378405773674761512579706277982387041800907312559436639870834883945404219014117273705087405488340948242762018636703297906377063613802980189194898526143746093089983069186333178292695959195994656186384141058830677801893807769984832745898942326263233917524113668749410317168231668292812372663192281399274413371745550601906560801766132450784318251492521708263393915920755023706522973863780870323752207044522129842242940878718757825121132279709430395756159449757331887187438154930315248683110326356697066906472986745671129941756093489148149154685619580100590773118040371297178500656929591972606629112079901564381883870807827148223452556582199401855014974623580467537822362743155635700768876231496238127176735530769366026441955326012180744588061630794839108427293780395954072460976534201971917385919469834198136680633015696391751968201040713557177805834225690683385981948087491581892011817439596758308167391291999095809658359541656430889467619017893326599709571792010422900937459486883236169491041385123732166808903124310184884446718997887747676817210771696642145564639758947727538303364402250870192323373645562722495596112657081270669902196682201465437875378966340677706498739435048981178914548133772550536961315946125462549753812787546795780800527846190999150296305304770608044460477167173444205855096054558113920394734403043903737963447614473094254234411156254901222739859269613749133896868259652959205672850028092884410511930523035384707681160985002863358156829747455092393462991977843161386035300159626632084753324445984340666108474310709937596331710133522260447853347569631492682052995708855152043416247318138240641901600793981084185299709005666844840495227833857901431070915984147137146184075295591793596788988820074518346370976584772892782774915731788205085769825135596548941886621873069949207425512569265943620614890885195161832947402064182301870281286611056186066183929418305770501665635537280247952379380067087137019736154390521322542592821951755945411005830243596943418210352134338293656303835589460772175127168836766480465785651346598532919834117050140255578701596799779964128374065260642288159365574594240281516077754110974374297617614854659572850313178671345926492264733129031891273262043344646352958700650852265995726789252864358365195735864249236638354139721101085646918179713827263018644082889152827533677625813752730042412691527386412651330594487157622928674301647688306514980707694667204135645459204498539195660013023590203563670052841591601441571876338618385379596490672112511976378002294778726821347748940314775630000197631586151045613891602451502218520126576356067520178874994432549978273318642513642987127295741668037750417403257693625280336630048954713897633045711468546271345427426483717123108259565072834660486551721573377951738534396898799049466814601545152679964805078012581787942721333950431136796961540148306551434534656695965051508847072390136212082966812500864040330012987091089196610161046487557116669714242621444545082443437320191123152875996254696923847396249594547112481638706047102710086317003534214638364943407651456495645168474836849289236775515087374597869103185503825438651284536854321704945421006966814835685550725298271775058012310310519598590681906378380600981436985680906926270472639348404625011064126722812679380797750702308163322554524697608870491722950636351089467686611804876006843713307266154672627395741528987818768049081023742924517595618569059690576141951557651699807979178923567961964772346452079710670331206862027567737628686831891159376144621021846380512284066585085269138003035944248647156381143828424641619003553054799114323166228225428249871792353226174379533107299874067612568306969851881211599877957764582476971086354544403005558837655186574618459948865594506165296474889163426476911812499158088894405073835374836130894875099881022507020811396628285959349285992014280390356580007680689030371429655770828273628099414863253349148376022286772500744274138792902155411259924435214005063818412152907735491400570352179103101436789499010920877417849877024264738911030660341190994937238970576688430965936820459874629948841154901400570529866216160467669644631785933831824054760887237915807547926273739795739686706551101696826063540607680886164084979112446620018065072634444874520719092295806297252670805293476177374379151115498210982544439373204813336029900335272205344178967749972340339775801992740163640336642794695237565722215851038980100593275440988511822736031105188661491160567782899008318618079114121049452353788838329305282522312225842310728017065682974150505654323153334837645247132941912570944482075394329403520785942086477666425606230740714035330392509847549600786717441501953951906436898985309534745448335442811384709553194049074004433646436746678611928843918552131071247603897762199587431748323584103536306985066822310347555812845463094472649772185193084338768665685649638406652426901757034083344369557440362342895828264597655574214923064936612278534687379645961615806443336086404696615039703006155787301209281498574052777694869411756048343958800047484196108368149938363232690590751650040534086810722343847845483624205436967847025097303598937510385535258251964592668273080880148279784500811447896435790320857481391628761637397461993520102145097647115040030480386324551855553012126543947544724218119029263728396434353462522852755127442797406933178310053673814673021325463904592168812714465465394156046208391028298379186013388739983902699897577805443685741819278126150091056692246413279530509592103851161272708519339088180872912412913131617970904714405452360350290030384976475554572389396873794725041491126282041724569486545127707404658527264582437576370943753595598714935610544937165890945083563163597731621972885982703980586892637323144689168750906896945957553608397067044271836742667968000876167822604519613769080062592625409428885670967549837348414015168062184505057661177929916660223840574563777297077172850452178888650458457790429764089571070282346824717304733915449446962250369857425406597249629487075755442977238391612160421983159951324362580019999938364212660257303344708957177536649271261908916545588146890674561473768419258949697293255373174707346946836724795236598217404570514889803097776271040530965423818426616567056728007492064321488325375959228240132923855385090232164742312352842566979891536211976859996346557095577942077348360548655566730403223480319915296922509256987253390259468560122113559403558424096984079496268530973812274514492662363459449716073116601897256940447671232688251424666032335869214955447841120807486384279449438192618321767775434752375158314535440862215748112516365437252797208982132209777314571324311140234617775903165540359583644806980434999773285457844756969529675813749263104698756018811934945094898205438957404271588761503204200236254899150507133983721325727307602894770136793151819496738223517004670840043731944604030243236600898557073808820877354089066018691432210305785920384520861264803417719780019533040571630460688209743338724891108945656319353142112020906807413793169402253767691762847375687687771900597924271060314442196450519128568345730573834169641266907514657379940837727740501421947054586546425838982996374260818374115511255047486678446301553116867285370492473689832888780907143348680399820746001155752050248459294525599410052375472998699547231552367555061187278688081757584301358597985510850482248472709017044649232327050414674839715849968117444515222791310383573312394792280316668067440329715403441529844408493402037001687044694354005685059426345685730764793446611158876331324897466320040933863818406759628140903669813177826606135099084226249528176581053643673152398609478719262600961686981720161329306830869454935935945673511904601405032333737616646710727209684391974820332175296854178837939349330923712958514825322817079100325831685665068687162718248379895646096435712931617153635686876392678115541289362075337375150673913066665582221260107780782576646413639936908314826652338144892710068534545435426336856298374242172702062745369939681812871534127378335811167932162177839740789481778289048444748192561906494800948814443195443792663804568396176322737307098580430565204809222216212770610762032399420685728007045725681324609491741464551268307191319500497732277303249684737356022051316505401469844863084643313942026944225159962796800312043688776421889769580561847244268412134408945264236974295006808012387962699780201453938542036586874831333064007933912813001770201818423940557321560465741021603324274532667083424769783361263418227160089981748293324860145434963918768511125020589523971748096040896069288420194020581855949988968537380876751975616442558193882311175477298955899555200749185290969001180854271340526445783853120944873353625799982368025507677589082198660535249084189828328452540307285669779511070459253895707960872317000577254631630962059944052949664633648763231770164288142191541455661118963458959255393037509744114380618362995169385610124736522386179840255115751303249579183277504778956467819068164078395363143690189757747186501512268868558873381852059458835870674400549490158217669847664834029654802943996601607391399732098428727164426605839799137015505250507516295371529011627452599821437565791755044810502593153050490960271533402469022661260497047045320326378183281075320717453396287570231962063552331739714553747741293891342594256223983630315556374957878759395015955720432423301135916843461655824146669770526326782408800964860757603078487924148016951426589602116805453489788063918582190234869247787397985304238287512258418277147895681428858950511268451406096403966202239234775993508551983364518947859762923564556309020110733158542896036869255383280717345653936386981621974248569650320088842101160019912118500713222484807147589637220205941874295333767095108705126930675992924408322386699751886680923962873365126828401036751269951594207635296138265479849378110439296659337809338512909070990833466290640727965594800408248583111686183614212922053481425143870311517331755589225302627494407156173705878271350257540689979981206348039459922937326256395915065009489428043238995084130374244354787685984954332856231583805368563558818175432743385310364474110455189130536037569014000343355646445641200127660037801314273236145773245892017794273237109556777953136538051416557261059444450654857993477877970228176890241551341174336654213419526126504652314282951529352739815229205878364081488766498164524434174805993850591723350854222268862531936776269764625233811691457675433275975149567746857170422797782166794905190488550550259071490604174946068493709460520006485911136622554033019730065567297779464837721113848996591073167106759877440165496699476675842842166227229759817656282470292843320336005127317187850414968852015759427141728844953087196954018881638461501136400505728411446354204264558682017520622722414038178593728290552121724469997706787771819136126179218246343881678608850353723028441464009378133974360987704508792375368029070118186773821959604627633589849473588994929834893441344331199274731389804843753721564248012313098772785867279754494067535919104795494155287695062419997365231166632785265854370581068491483273142399306024451631125803855588104329189472296299007517600344351918445429334723692489521001255254498961202739031241413430769933010658573436486635888563098446523257939288370018124293468461073638988663603873255033275969332014375297966095848688540260163355907184462612765524670886312402161702602400794762250898897359467157967932322043937917456502153897088485015018405622221244656141388086216194044793629434171637933159487075163838205027531699381337832602926610931441908679870896487833671741196638650296650887689048505704551703532073707965699947285691538310071760814866340664773973453318264622160328786766164380977084122635311376333182189980281197276414298936641164058034987687530947959653552949476352932223398555543744560903505874321049775036686798760670400963835462754016000616226615378734777208889916895783773517774515222012562283822723509670410305118575922584623662547897268916032010373730182141906884054697196543976141190195914070334320645297537658955429960144708753516136123124290649954101216779962574517444553936453348067788890613263617668673518520360361834871086592912959901497201767966518839807745291629329756885722264753604818591482812069149976978284452858335350604005083035600479717101660499369539179040159039266431188111481942537074518842089862078352355984399735449947512090059282629307392820929204168577919796380669068278235855387451605156983029116354381048222177237686936088275065228341321573133987492059955542474730725098246532666399716467228776478033050840111266089894595923975828262623974308575972665304628484587912129206072363592808736076748223447133926856996375418115002483035367495300294825559272251200928449977798183073023461102585237570259730845696512295632683981552375804819546416208300002290324911052703307477597970675153981440699166052881910452732366248456684497001007164318011539933492107892670277319762710576251742310533138695746337037061876599069417274333018221587377974770830987461574221512347396578717914805342119061879431439277393375161975934388670846453715903329384293591509107505630517760912805429350549606194430244786605866679663363013264087738495099007430093336814821216415543546292336335132674080813646808170412188897703868967491526640076118687137026947215718659306895861885087834969443874714724299855759049989744673521691085137912934940373529131951430746133404809782508936419176306831302246040453395028049047271448238490836510114910407910683463028790517633956452591456354235758151378028525946878689353201336698012947916106819836164636920711600266963540537962380755832199348015457588906329171035740864642718660191429278572580480004554516495258032745620097905546142824856227046574482794381526125882042671508490742888121819418171133156966288283814614810542279340448636380179771766322166604422153249489524411815866598442607551111969479999745357490049802976168180356676096478190621706814154038341436085037643058584342682796850284145947877620275250863763516946705292460675822640295670583075769858998102873285647566410210541290214845188045972195986010259441989771971159303611742440668446964499866670141383650237076610076441566393357993108162151253378717774236096093296656158900827065035830051030206094184023095777596869953225468141576714016931796896283125480969374297302144733211843186966723361812314266776761721611453469917545099485568472466520342180136923397488728341816773947166307136252006599525523715726265062089465192994222121802628630006224688045706840812176322423796471924045389107349780900170269978778150972470617229010902132019342556665066505564751258586650245002699906503960824462565377629539053954139751128576307347375071820497242569116409979763569789916010476694353158361902934082618648181784450909351331582556513255342852042716463196115618266586997396005004896716943288356360495160170089292241392284908899659494766044340821732216593647064018750174324127295716396376873285184024439418633369216540791363398959450502362147155557433394998240295180633001418967071118173393288528499461256913099157669055159136970282980495607920613032445400594893982452824497545415547476104295183878580518545341522061445493503899772563883419249266204769673229863767389555653208092787117559009784420779011135231783784150380286735818518490055978270185793027235541050200876091265576218038318242925849218862680033579520675566458123497979907197159590920103895727650736984983093187723811273745242058404788493192418319023950398952386313856130389281519325226681966793155876339896269487083726265899981678096552678999539015805852010806266549318821501000244257774548705263219908078632376753336079119339316501321288619142280007258165063836075146035919666648013407481134668346508699989824200356439650027148036705651476907512870607601523301781601413700333932078895005725032927956570397283433581309048040556755823577256786429672383103115916048292482858146614317813378244529788225988038943700105888861744893715789809350676430075178478982281454407789655783712348806369186721587679883455740018238404332233565584816050429906424018283921349487378180464915309187113141130759547513380981156604334144929857301893358654058620253278747446173928359133856375729584604646107728772279683024121302067641082780206561189360423936188729506667169523088467798298221077583889674672422578277884801806593737672216968694432942064619899608752345844257831102130913154597481263095731688514994308911328611385334568763683244023417428955988334347664235967928710748848695003543728489256071888919095146606513822710307733147829198185026317731893698378963728130635241366099467398780408388010201019004448625537901707236350863818234745601948629428533142253446465563817509444200236663325928866113426105533984784332550915058993384812040292172680224494860790654102632579672759796162978150806951835723265461562255221334188979582221905335884563191061786957974325238969521852514092445518792075032199593243422197485084416101841063866797865549712095398059493992478125255251816817856373911130152732608915718050846031454877679545549164731454456200762309410872812602023592318037306496866639605790449228816183876582994938487028407265557042495570881824447263697021098078670992768757295884669190698573251824851162242868450662794842261808634416125823156568873780072587068177755149356872309931768326016798662520837275556892550166481151406545241570973507464637696033249928294674422814339191438842033455276143228017130435912012897295275457646819751120111851618067473319598231376845436541936979774468148323234497439774951739550928407921355413182891039018912765623765604068550062421283310710376157433974439004832560962425364918223352174168101646654001923884497642719284191593643222767808149196970228988274466547620125799242334827687974828418057294378842416153262539603191963375437107467749170239989569841333995105126710084929994137647149202565106026866800911208023262092197388067279868214770727884222895353016751126500353131321412450461171748915799864928900167097714423114307834685662454055128863135041138582271386245770847966032860833788665460290905945517613666900057046949067058112846126835605256914610549887968123299380904568987700863371652951379732311427187054287602081579674338642637741526556263578288190134649248486053641035674211456848571631850848064545001377958279085929844784695794095709070103928554971540392056609115058926310862438654597685134981231263209463828925182856826442830573450909080666697451280199428311357458960404041505491990174547375676664720400049975518573171745354122218552361559230258297809661035433069804249973293916297884241010692018253764751094545288254411347306135595554785026105668630249344194082511282096560184523448432496569736107241981696183013621981805097685291386343332205949487219629746440869999811529643137758867146551785456187011544651063424453697998825696711329543159494061699117621624011585129312427595539984080916961369804435489739319229517881214438762203459338380862633179267651842080463928916458764200151852714665902177742119298258695866960215533525008428310994139015204647002754752286046747498715350650113808790000950855872943799061342248755690167599572252775843755734770303574113501767146960856134664219211368472850938909625755435525158302158563981819604917814352595806216320901484501849118131408672160860112531372016833447393538215941827230869053540863357849182410711327138366492555590556140593507307546043617096556360317561827967061534678658087990234496661710014245016929232456211172206320783682643133372828695105881732113220460524861036910848861931406831467910674972158445461071606982679549073834289673833647351784828490708456299619519199370479704543677912303298932739951930310916554813938605272149897230327160409830612209280945345244300017705235896097213609649880419199947659088285666783966108468377498783291876554422147125756531577056060274003611261485009069797313654667623318908273295281530484095517230057270637925834847007729458272300266233634364073183635848176153439411867948636955835241668334985747311739035543815327442212856356841200697121314575966460583827193659941694658910992514307639506219239944146974768858552089227634601143597112330861771672507850440599818750763205394942869903773867279390179772751176588265341253046550880529856893407899626951782362279511429900634214569789131549894620870076414220764997439708689706705389121996088041856223838718183277982277452466522447174151010167647697523343482222683009842721382263773939241267265457128582306926501468309742070025748373831054951164323787076094705796221771518135663015735791909329074247951629287258913865579301276004060987723273555836228118255082750061788250694979433098399792590739085519733105371054361925762374212229445471290086249907790961483757580593363076306208511859225244524080492175315786487207736869951283248757567804955841942185181634869869402494905030343842872943501549544809399574016015483909418636163253593241831396583067679506769460086818514154945231862221484956942169056166093774830137968276699444663703868585624321731439208248882470117577705401439072549626321959802176664212706210343703920019424431713744563118691550258217499665303807966117066995160294420706385343722911182737005321338263008606025175284792286056327174469187979245320488226848644418063582601441948677257917804631043736198876614647538979652434810344950567288701525023081946502637662612609147760612430938532260439742119123611488149345011370204089096174780674923626727291628308367337003476453138728451089884171868633424648479019028300098088908665706887112606002531506659692817217178493938793469940713989657452114821948894049901297754713378713159034383083398005138425316974253233686506683104159729934537795902047150206287082499846916451182884585461457824131608622495304015897480101425267914764649473465060607316163775543754323258426569494738827145721516067092246883357652292323651528060289791065614751413082441203808984859566842516390391084804946377004937738116482549660647655467166231044003669577020700615810942840914257382275952881953654230615150622847452215154049186711858380178141625131512330628516356343368540564261102003321342764470315233366204601856012593077102161130149357702890949673961795858635226839014460069322920555572448207417446183687456630303403386715956718565617818438715754152790141544039848477913100306617783962244690256096106133266137852107636079297442703151505597168140978285172721923125824126353858181120692144621873275188929659544952091241131132358565144363612008870042355677839449115206667911150352317839268912232692479099141490050153235164603928708154782482938619822000123139128370428154583906316815825873608019695405797777185436887529716336080253524502199124509860055416057458581452542207170798025274283689153347258485201624020331908793164867969131236722574303500344482639754972057202598251503087590694256607285504463210453514642111809123630884217188217553672444866976364567628377453224571931049428125420954092099354632755947938370271275213488904020984012000418931759495581868326020366902002149906077203937489081048265922362685663529979398309046038806181149786936616233181530293618858904545654342347373576934296038237317166736739348237477637663403470719666102575048483456953391831668314546111736631639926415470182856162012274216995033857660175569977424470818084055775128595221406726671771037726808674387124710948197568916642398681524047796825025975867155047531565448263403887583447197607168297623934303217604371224929716569994535181679805846340542471716283022340344947410095482210516153835144899786743220911652653343877607151851479237225183322456865357493090567092169271808671403736577583018038107041850409030993137963431755454285176375007992314759854808965575261144179923562779593905629608425188333684922712650043287653156357629372982647358735506289827612383119268950551199882535836302969162269059076249930251005733822725052515149790128961182193188263035384969765810420880705331521915298214348530549044225797103501220560591639995030465946401033035227811763707688148370533478365186629384715353365038398796488533554828090670020178382324231084671694476281319133887477301144708505322596127001141666509926807864633013744387073645773625214815100841276639036173072565302421068750876675992050473329533206268214165278947977985483866530851534618929829601111879888805479466894455849996656564913195583313991445836891388458760402498373653624723139910402996529414040076069624458955447472296992109474408137935900441707984547289858976446968043453814623481104688069216412020129101614346543773595126438324705055448273301071073875276830735496702958839439019522497385521838897539983907196992489175849111658393115857744293520996240308554308971163013865268996063779976954474447624808171301970355969028751216335564623353530501549104754313003365644260435365540314247837290960932608393761929202185515871447441570320448620366199909818352673416063333870786744782364487580895314314156211867926079169792224250301848327437889040940374619183314182704756524483284397448647006261248862243510483763224325632337232529083310799616568105449697878058652656571327917877135949572385839324271881509398133375428948478971351424282504590247857303364324694849823757965912441703910799003898494049385171764053929564940282493095926617720419003441981795436358914645525614357814988312325485101022763542284766146648877691892757067967403555025581184262345852063111077304869305677131358605881854923334507268141838450806576869725604689971669463007805292756985923442863020444272060068390028400078809231039835364954404442102330383920914962627358182583349487203730205896105243104701413273936479948696172662457520105223124208179129338611866490041405778306262452458963485146216549797866806732335327985943697085720756987458654393305471772195922394681381638107817102599127290021791378704437003184707558913773574709473664420604120413238122592443636374952278037778904156831849004315768513270764334491294398545886395685369206554439531041418599685370004000633408396983529300873220813666898729373835868223484880469696679561696552738139140898073857122713118175869535617037648861951305326933940768555794105330235389637093670999606159519087544651769239581483616189351753353694454706685140950174570282642490311814148193307122479300741077658477701079820638013307097782789050882997918594962399453871116871510116994339326811875492336022142519640558088356755214919126926837178059957842049382874657449043633069382814760421560339024595864019142220084592705287735106821803551580612011425837354474285238990245720837890363264081288731110632427288295273853987845255320774445397857799916921220847366215827197649759734782698527542851089715189383627696888274256674617391750441294177136617272661541626407550829816149885252954461387779817957511700430621890224064231337451607317142952695654175608756483129512994435119282398470709020753464581140185013692333724080974003035443165089519079656750638994125642502864694748244462750418858588778702821921356476489287763988326385501091148255487072852501683687219932502667258513544513634080807602774609305279536556449147979960683309536480255393111227027180252707481435460597022564837669038206684496274357796357095476914403780515725660758690198465871518264767610920997132199471771535540458721923198098424309982587696345364642028658911014370252960153416392155725414550469872875313106070559724312325718776931545515509390215794759268811514996994851589611400846189952433627578658761454827344086783105502451781748822979855242177169509848406476247358562177212360520377226042918012093155033968256649512100250807213475580332549561737502231781974097933166576938833797874049056809794423252441449618088466006181242520609369195900983056367771199934689055496004812572752699129863364777125252299191485059154078290851091089837753132180022681953864108204668793302255261844642794158393303372259152121861542596228673127457592109249200492759220866066464546402680997116617679024488887800624727863778840344680069327578121314355024166610880363047141395086686532715501985266528509621612356136491570713542277705964783790326912366530838031858007824238105061981874078695990992388674213359445472465768057001586908487967257297838908410119003467922247565496198978686403882820536040710764170945466848557705203811101433545373828005624586782750114472631756081378883490609748646888940130715989281557377314698426671058928839607525573881945108133709890902460069392107313593134314347883085224215389676140059034634323089899677514884791470939762562312931621054212749134557099519910768299911574951811273019548764575571969760284386967968110505751791067902621131922542598989738217009831870743367250083614215885685681311888277917228618880793263184510447071891112100733514548508265603677380571567950065596179634773074579996255380949582906281937166401361778185468998589192986467584597364928468816850638978571104442132689852951407661022696778138697153071259426952626422717543189894147319645173654444148132413220501099875959525375215616290941598984218543918793327119709404845558213147526440410400421761824698863048730749089716161816346766657132728233641091497056025109413277261993878267401033531334661400166586423437192730879754666716787585943498504239842440122451605809677121644857891854842777041968451922633632396176978322678228548757828115296520509823906598281272340398448710565537094380837718826301634270904476494874897153026785077894926790463140034534510936160810401629371604642071969282859239207622374830669749369788076125163148039321001711769236052974174964505180747955069964598567198269704324677324106763362845657992004243023171909322851777193208665511467553280584352699017620406313942290452550513242264951835009854079016771342519627491144096827109139851477469850933080813033234728441762253176605789011366799656353489393416628661542321298017510437561841097680023131098433864391774947703917970172135815100850298665310628411831166900328085286991145815748906935912366715260839987481223567186889785506915990471055290703122024175333904906408097728972260405331135667012666867007066189632652651720856194131624241464369744592113887335339934530789283690118093335613971335003290305800770686773457315447340429037943079750093711613259163211087792918266041841954248905971039683591641427522810393839217710948406502737942982931585627750858083975155867354894646294174991149934483631784341461688657998849259387471478619217533137266893327580287746743502013927456648462192361848716108178482913784184027414364205904586983887520703175108370578908511832051378928470631194464531634689899827459341380012543757004191756298610719770361563648444593249929560345236824833586682291320556380868505351474148925458075953104335799486622592405179522917478141723054213314359417951716606358189121489771953252737476633559554242060794828292189535095775454920405392276022095722099076594633917976652608953401076063657787097026987512998288123395645057133933579606990993260658771466050093193685286354234566613842333696338756059605371673644697732761636495406288122302964620223585679382683658745068472346199107989329537962278287657868261502193741384046962006872184418238559114003837888396971253647104329404067083341901662015543548982687160651482762939965429644992831218648272630053467516128302249290093624531524562054603371713096553850536818341221847759598482317752428681128227379734477457024503113322073276237421712769374385415299613935421900174618498988686402471596130209895451985569645533251173246315641890195972582589884192851037590878564017892978395701181267654578726851103966387948703813709364149873065201416916655432834345490326035306025000167448953534139744918458918760451609610098762683168234343763947226861908876231270107817036104987515455042868544197990888797345442579608237555034624687647714563805427897974909894845051907638541151755666290760898911742250643600873792917069270627829071252172364863810501214302052967943169276574511619605824348018004549119139270315579450307056435934037323758723315657586453028002148031123704386150776727553134624656060037180254811784262829553210939931834023641999694216167411573347820843635538907787535682518890356358187520268483762097362612798525319695670943639072417278395572042217621109404964158615420153926235852118225976832939752973088247337874104714378856273572863777550494321578426073552852109207156907158791338861798088623057991351718082850314119973117260662278911295478799139763564167933176338072183345991766553908490117888421240799680890897182342739694310292503624262993057389151442483712951476954113319856554786900807253265479517535900981533429754699756271035767662495967958202875042090436649173728417822560454994547943224376413655355388255182166415606837624870953854142028372317178689741488132861305564173652709272486921617966989884479542264411665949171418459927901942582999515876111038773879972567404159744718951052650420888271358608302601240176263605330095252742860202036072173043749176710475233563469808555456395885247150496721310606511871892181699174284563027794722652736675214442150587368590340192377499226005681705175431317624777117526415773963237426783433331932890742105401885625815607998279603689298425526661711962667281602941868939454180647780595134265755381210861946975368283166731519915541284429942269623093905516104851354952948991595998013676838694905340021167946826834496076761753577833255431661465393439788790615327523219611625652062724175461204081050662066248970117688008182964794729685121946773832680404547010234503255158533101397156278641165237885310443540858750203368413414736880832582358622986389705104473345649824378889915591709582150638786521855721518690273013580940958536066127540780395362194516510192392665451897692062076060451030002023032944320047345656702357716835549633534293864016305899699701381659751163825671175395368312654595318703053035784585479535656964094768230465771177275924453070078385823697480838675792808387199263880839167041009433460116905953083992441950381637446161261160561105605937720882459900929813280211712930401154228406090078421994808459415849365506841436102412063094742040571340068872808942005520726935993731466490473835010952122374594520139926368418450416819190359982913783033583009155943360936007588359951892649347749283826696646388233900485718262662044278953530584346239933169280058497289357890652961542594012810227343052043125127967205712208749533279993503128354637092552936751043354544351935937919766955465318583288715996504540883568255613204407386583253957844363238840342735513447941058086340260800673708194185032525932642402802667791709266038293943778000672320209614634079940190626968708717200345924530647050734047617998777201990328568064518898200257754174052432092029011437549898254684067512044633033832395673800858650523458993168443158087937130511999589169991089199242219864664796129110981375852434365833242763254625582898731128463503623892289016653714188304913233907523146145530597142836861152301259213697798501601494791628654839884641202090895322403202149253342220572653104751548414330029694394870261356069949827825857675213508178609458083862430229901117883557727177577421054221499587433705030332599860631828417044965477418231677491866391744083895942444204744382456613169501734512034162875749547501769311099360743198266823946710791891230473798087262122685807961133553186037901969775399548959755325983758770908557133457818146783659770150357981200875836617893350046095550162496965765426496329778283640281093106921064937970038398816887757967031400965276539922784251566465510022279126267955339758551860370199210134035286976911967824099675432392913830713195135039707419984702212798527260353562825299389432397184037918543441022328119376481139362863027320247821124280982622512104404103142381113267690480482726282763189727294868364530818705671754330536730612359088650861696506701338224221502090713948173909535418347191437804068427996073611303641759521343687229942747740570490990249052159315640553493895605754783931318991767566990874581797017675537880981821121112152051145769443013459402717336518846489781564553877608167811862988244618663194632760797641323988397888610063075808182173673729805484419616296459135922219189296010168577152596639242132808330616540978658083622762224073687821693630972037637273874815115123936755190811078232872207454313277142430668180682067784755514671956568820590307886796394713796362487326738704879398909657661161363216762362781648193162315915461074840178790105403802050491428975924680257561540563791978657133715178114496572371683550437314980650064855602505422562721305924467020065532498494601236534563660199880711627304678286488464389777320549492919517377364773485117873627657045401333782163681732605759272303949150470071873275478870342787733064897204321753757809570290384319384694465159461483745241314171301853482717265001939295441035905234266874121455667144436116547681962143346498418674775381372393029177725683301756819256530013344617506441921864090111103845862736832034498685642448902309189451260475670536537347451894953574478686377778328437128279139314426390995346204762528590036093427427839903049277615203801547718991685699347605074502467600566996172307825628253944688904065412434230496977835347639364209656990062902055498362858650073905428975502421149281723722792398472751928226230400295158751867416193579506830538655753736660279515991386069810803785383765637937323084291894050145407155687983270685666352799802966997898932271527335782688720685680095733448742033180068562246123622446448080080304619577872632552568419201670715812468651934312178005804579665933982032234371868138167956701185532856553939143297344919118970253121430591570800646364564917895615942538571151183593781658005037570679108094909312587647162216210029069306506113284291051863476849854777200224261736634401270100366058178749398890870684509780305734658017757945562093008373811412218534054873170352493308912933599127910262756637505717348242932090942190584771478030924030478751480203334724063151703194704719109456209295333444501383653977546239327103609750941899415597113863751003438122512074486688371151684060082435239213959934673561433377231466205209685626777413565386027478379512697013386351735380279419137962078691918231715114648864859823678807519080217674848548978891018624029356887977830065234556277140878809790517765635938412105336139318742418869363846075026478352034591698843213594473851987807207506994626154693211631766929514317482470816070931702820103835841663706163910621387988860052819430024893982402618496379652065222568051061908625727865718993015793438406874882676438680217162856958752421466855184245278974746107980222626562098486467767659386076266516320947080511103115022913490162960284197090962941163189722870810422316104712666331289927981371914723141921745693471200822982545066153118775189041385053028802463219291085411658317196223469370888955129516773890967433576797768012952996145868656396534701589923096738889585518761245093861147230343398582156375226427366158249506909518744123394161307954340026778589289368568870705441832105553939453359016341496738309870250202580069556636791226406992478177566882711155076088896478024474092405475134532370338821348978718158650659306617636667793691125152882559980809237080612345135077843950007633390989611081940218999682164598054978135495873972195922834965701598788467757569710262713824054289231831329964670947304855101987817897738426185113098176966743842025199546832584984344303730441109032032785950013707243854239609772465452244685204995612804243102526253975324475490839887477241413002502248583788178554650502417755914777254898164179575848804297181745006450650101903702577916269692174501817206550137117308746540526602379094281689341440905220276586516977284045738737746361594428273865198911647384088002381748061260930448817418948047506458477834404246209752361070738788578449855839721653977655017536377972222348004793567563144494954914549723062768222771346470771107674476974960642494289767880328588352961732108424903685189946064980040224683674458974165607492701114861400072536902975703082927786888701591238218739592064009171328966609867275520665111764051206238296875018660887555042265630926256568033281509903280276459899354181502365219347846696283604028689294198086723037748232173708063890869902356801032378617758321918098886267728128010708844956149407059464361342881109233151708143465081882696115662718032278261844610973269632940182879389116516612700427325752752650193536118715275130075291690896470748884073384201016770325461537082335798035781011420951287017762953577583205867413220604632477935660317500706181267145801870250042885208326044085444453714933721897265752813831949480925716137391895954490943484039098196013446130317613714340664658280390781883221354820589066503884617311174885233160862770515468606591827763482140660499061133392417576351426934884254505099124062917629837051732381101336651203486160007854734329887609247319587111829841535918440490951120330651529138273597017140569756228356305406631923088806240413967262724636674311054246856225014184663840556733425595051133668972485446593635066579001209847500889298207897195902785060056968789701857496258482098342941959244440225079712205279012629660306281917512753337424605039793922791241255362794002785200311580397642635008099441572055966677668956910504857857565890597671436050032509903108370565871799711242143943874297472204712052257521680790959155240909830605205933692490892695521703628492007497875297201468693747305575389312423102155207990259337400449572247888828432496631441401189678379287345098559400010436168434749872645475517745022877501410707610691158883006807182204848460746735857378747296155895242913424917562157830431831729854584845356645752818620707943916587852101409158934487404201445620990634260136385844965616292328544223948444108278281975840504770537611825344775138196399387217262361159432285908888905898699964371263714454199374485992311131166850089469181647553944991191768598754489498738142736370373655419025723512971291116130431761340262795439318224438193166973213338576367309558975164043409784894112904486594450636028910328865384540604379114975188264640821712904638667999383334464003530264063256688112460997420264009326194882337117224596092102677352772634506648578980435802316273575772746945774809452276536636927729272852600886125434001939399470377599846142589664390134282181396389076850887358815863136603582835698686958494997405131474438504270955851688175125348230440407001679615529778875928466870157951794768985447768447279419940350389800185391458262882213905265491753298121826491600948582216151554537525649409420908730982969479674714563500819608284521713758082582558816456198425159403881176591560288088225231752908869647061195600444302296542912645918525694953124227254966230743500280442259398302882154069009243982076289100481478676649438142392210401329512879858603664608172289912548736997213513222125037972780854846885466615946253455927567137179218529977425672284424265584929867717416867920694211335559410097348909509831320684397569862380774435484746561907373884161996225139786469393508384082998588129208628845060744198797483556971085443055629611082425981686071393256759016363951143424898089732976709353786284885755249529970936074315954651726710458487455934735958600139244416006666004621662492914275953642795666879916421867370774178388487477365919280172729846872631515473700258659783081285121115140161025086997562379690166184572570183923033125702794465592167596270824121137633821340678292383359095045573982190164608113245570463146890430016547049483284126022380858125378427483498242129270468193124968184954025334080786356998247603987738130579644313085534391200186545251472102419888520869803349856403471505063257481688520076592644771813404084500686959952138299380971200447964300247137504228352215569738628767679511943118514011143583641063476742411608078102159036279967507359584119358960230771005589187847227636037127378984745104029461457484388769100436499558638647635305999271410188213805642843655326464294599054757268541865258836592637679590832481514382090160891448211934231691355454979047125554349658917091366573473316574861074133141918376797875079339124293805183957433190971843427497980241098255729802157369068830101988690864779685619643451293878374851835466772873591684625841826474924405696596533747597483504741791891962102531224827466647343912518184760699219130313473326040209933218615868969272765896104629448220803572617253673917744518465223584789246590848307531436221830509546834923675042214774037210480918169170665829715865921734933314981280424286658354656927692883431445733308189911116009514170561175604884430616760848911176585175174248237745544502654435972325545574654056084597255673846284216930347742706140582185937937738947956249715138257960856132806027070533890823309413925918181046067865240854060110039880700852326485301450498528608213414839808783098525374727479667164822984969604834555454202622907904367465407572770701060575257039534873480857583364580930025993654129605398343881784546527906167154489710267197976060022133445397232867651689512187783385996482321995907156322490373907286418258053406968060184168085415524945191933696102367877380346985627537501794811892008835178671463667546989157377760898311603149049249120481698653466518206044306679879070999971335659712576677415903089178864611485959369930392222887641518304766845401085252780256610892085750322020413697998798748535601020991412435517014379637387351190029568511527112386544210961808310707034320953508894421696861816928624083681932680276761536214124005578179563188836154720584840410422212889902949894283118349564723232125068891594953579395199480265895763201746794957320278253418615586676925288165019996346598620829823501355677488658386574514663889637918740894334080022049727112783580878537247511928428394512539691218210122644880185619990430746171065590081060369444037625029495141250698038991425025153408056945993068800249272881417434861333617685552292222972791953529919837279015901686009900546113875669576918476448000003394394029879964619920889943288396781462263091230936545101284605647317114257661658888784643458725819656983035720445947818417267425717320522281327286575099014317432765893862112170734857677077712399263783947909916406482184581328440506091320706507842596235556493611921764467417361794205745271950638329763571189639679536192434721973178824054779825520018732306537654098036640348497469655101418737085866687257900949034893656928016148363822873218435434929006191600302866901912995978243577571735697487863525266553234084924649858315171345458881915444325598527100101844063140390906611207083942311108238069842929318584595358666602066103796059089007545407213709555707651809416379884495347859279946071212898336123133024427666013788287869359601652427239121929969853381052987526377202058722349359817403769013260316682624153029943252621158720201296494038884607947909520105736430503173351307490528440495846497647101909768052831541476115519276774533102709770298542628082668526905062475275469052881752015413016938629448748757766731978624717107807423702679028776559066572495957669673462861243180638972475472536361668039857942928846791473830595162625634068907789708642751604721642158037265984482469470784671809016879513735397748778790576703550507992576577284036515421229833999923094335402768305788197662143454214139084016916804793354323199759920943977240554886408756185983862289388690795611454085095554234506872303385217092751395282644499854293685385533155537730163002679252877361561000798265658474013704064213696534090622256441023512614376480604821584521918860351363969208730016607555157227148092148992692250065325544716655332454328628874504227939479647801312619944025754242752391748881005624174637259984987564148348679787417153596488416177808911921349501456157960688909162457492132335043188391281919243875408171387408719367314004924352329087199082886273734593114883523443394017992258202265902979910168570423923701600109859984082804573796295217283165280202185287697992740367539908220623650772377479668645002427234350486937446411625015438397807075086756475841996035855225599240967800115877675099939436496545169795198497133503750333884142245869628763496550270911349274746311886680222760752122120585559768547118673616290640695784194682345331786837714735963320712495553603895204373686891065307506611062783802867982616228516010387637949738307259729322353643955956798960518143912194554712133950126578454790862963412555810978928410294070766360275476429340407657626980781677404882098452669459160644859008186290318032707045431686019174618369257961653225839818719098066148390983192302812978098712035607249328092097448043983582655916826451409190783063577038483894091481015456682644788733973991349952575445846056830315280941686703360008169575685994407608491444762695405873984784028279720505078691601120279662945318619772591853545585288709123972948873755049754015863799921895883356230235429450521629717590618417704754979604959180705529406563779502387685288404896320680418489152909100188356487098070075576269189838748103801778240166683330390344556546371697792486515532645398146998791436992459101334703806560434628003351112624202395366485527877260974627926005909464254598063568828861271236613451449942635970026520909264428378849404148134456742838228735909016883588011750484710230737904673393775297770472803328881494688786130545569921977193866650929734976377796437387278506876335757404461319912160442901762277298067460469821660898777918881690093694312965644301659040193206822138126466455205290229217423280739389786969120803594961237362632000373397386324072334037633407418889494068402968316073724060924373207919419664837830990306346502126792633434832345349217167068289163848746776386458861970731949632937266230144269934579190024714831076794640128068488114164256138218539980149207127185640866398636704791286787780501398013204948321719121747661143146760038074102185582483177257190926650425802587295893092986532708669505815432369500356342863112495016472234178897508009410722459853688793761443840574272295954254696671164956927285978947838723341037603087703531629089663795778402749268313880510638503429781729953490246867236889615227046861819563460119367342645150854708755804582537459381537943981175588493202835346012426217874081683042943201191686862560000157435542097690369315671198920969115802858988029052576240447580689832831235723546680632134671237760212759412245048624958415264316833298819106959762243279000666828711439642120900130694031883694034437999669138189653212387762593184800759710175214220959608997174042772393718171532365823721992298047651428435259353212944285392312994963006688682809477125595124880233750120791105001982229767126277516724004727111375818496300705501725174265631966597474340129833421382571745686249947407109889035541506479736504081706291420366177687496053413938444268471159053595719938976234881206614125297692691326550103116829206711663502161529002131393558244965844939712842740078161387324060734863818599516011505055289570417789834256525470312400651470287395486038707987449401682424350758300735739158965726091617806593035327355538505719363378650359183583651377123512467107580584445081432234008204442682563837145224192724974645100437819282303669799836605684447124082673676113588281196494830506096241219847112126115778650602137061043883992016059286523076731197694913275836867617676429082510631833238165013330053714564243391654732286247516331374969710690821664532811847125414634944861332608873440342183814528676620707975660435599886281912112379347632705144440292105437756878008124471560936130173652999057524135728021104065353243890236655079591949926724016629831813956905327627237914366398512747783345038412922154147423568248061976257378326013289412033740717305970514422666837728833012357153408934722987282936283553943759948059798841945100592431653250125543203041620210796543555064152813248921929101027547208059360740403358822824840575593124253622133286837579443176217830534277449558972636089864342332883981747998726294900808123121309041101633773612117822494134623455335779198205434695109700464528305647667548322048630581260891919305512754529024332524651756019662136265821874693824935322234436532445122549065304140939180162586411853714220138132801174432568593470554705797080080014624112951456191812191945745787756323307783210692670792778635788339241869503220227644863393497271447656483478753030391456208409817944651724524103433829605108195280195648155403106716498731297601203001970715285177691742137043640625712611190368054110214197773115616415008509908628554998758621455037683224216051505331170821700888679479547622050706103824394481368785758995593872648379953156590333869864124187310616477444055220090887237507739808590261339032525907042859908379585354235945624276356178523813476627294627508744020431847489762782672704666221550384762301428247941769484478778135682711279633122936940216927540614515021228616679577571081586466604718024861537274645288694832217878382551067565835802101159193469982878103542736346233620348239177085786317469298505646314329085650830044840150594316762481233674247185976395722850683243047446597546110368321858608330869585482829277623962608229588599524521580328597335268000529090197322609285515598694260737008993368161104113051059054761959598245303794144458422284029080208339629227091751531794674365998878097173292439263240194854790575859682809424950480517862803828407665871208050019140016716738573818791411616625331225737028143834007456497600137154980401444862467635285529283263853814109860491415484671923222831596958145074691016263688826666865137808704406713893850206956922885245699727078445405810258667605071592799337887296488627138282063114652281017910519749189423403713797847020201977740483738851447978275749447601936248401441180390940871527717197109215827018809736019036540354242702703912159939639909279519683751731570108345098525958868100620848540243032254024032779297494709076524369198798243087408978855488694724746070095426572402263463498010784549158489181423972206250423432236350439534582333578339318814574771056878600276278079637018946972445192672505225492617965110231662433554792444319590290147602685074405129881227000310167825957637059917958413006488842076978813421631818444361209847610395570506042197972541255102458071321870792744670933398047467643596420142492069150399077652060962706107720829026130700890236782606856981940043935639506958593731988440931889833006430605636210108216298802193623995498738096510440814837470577441054162048126733006575458148042853162648896131555319215335982965836921345020580272436964066208972183491124514469081233711052688853918576482409509920300461415665824087567060105917934628072684653851805865292054914545414376846478558898053805549603674917630488024869397458533032228887604247634298452475096172341941967735913716016000960072747127714387906569493180743124787599170680934825375372205953952598928937187651482264670307011793258307415680956829587637580769227542262485871205733143838353440157258606848932007327923983683181475105571516834197588726490847055423129285299605593817361040800508421999881130073142960851835856003973535920872627018296159861337199304119034385452439765848457206262551219940030481778107142200777327521354971927614941065988554704541997820950146488901708497223100055551149199650168828814664958161366936827645004638396748251759203091530403015370976960788803134771005493807071396919477235178478484483180295067186174500031501255649904327746684179854667410798924937391424202707476834588957172062346012157336209066159534040322585185133899209288855038005594212911363034615297396213594027587016954479615149175868584176615315346056520660161437725157779738482226399724797854746721100366783336630187545022284817934900525867955751233601160725622696558438275599344998174972929679715605161045212891062285131550354371399266334349914261169025880576888197694805152351479720557006410994734705049573210071130073617829030236080346451392755899971812388598257702791244771067348380919771569486727881660328736570162509389858393546042462770322020000311053601713158181945813201719542454143204197586189767374225766140970148096184237586832931420214070365477186466467880995011880867940889301109300914614860635739000486574515361915031525996769602640853879408167847039645891375556893124437889722620835514911733294155024206462623083497467185219424254972105848151438875456548489269254834781931114760943612298581171277896328121655363957758862788921886959088407034215038985149724716538160332434715469509845795387021722551922600745652648298539527279734607104771488026241753830477422311697382924458700696308173667412374293170651264045372722257489861394177212062748281187487870646443267830202259197524471494097198764299704210842610295561168082497688339689729183648712511592908274736376834036048109174439418102273699326318478814135678018622338002953312048353595686356459724781903379262042705142023317123547839176822465284508104780706471963073692351493459498532014717590714955165043705540013064501995524201892013729378005949864276563374309792486833623464952226328128480263438643701537505927056464027871135235331571547201576207153627145363867816209762516924545764241773134841312329312908021509158227384944930338061778050869406147408924252465872145771966516622717557370700900199434948953308177294668156265291230196027708044832038579182590443148997369369436356134494727010223170085837436557431413440423201666679989078460908020166835796125258900147090943352774486465236102117901311862143553905665220293403380272859416967815667121996303428967787121371433351332397303607902341643041247188810683460565106905743611219034266961273224171670074977250660996289360382067131688672378060509404760804011391162288137535993981659784811863286023159925721533065684893997003615754341445779251744758185669156912997128521473771907310957291787920613686693267412622164198830228328679948965368769670513526493782643763457143206172464580703507799477596595618973561074348581858921885879517042387840729332942035045102334811117571316978716349135701071764481820833109756439295535210119404148104647318850727920588609479146369977299999996038115000691199039230261481194101438219178247353960857225559852668241630694364537579045921978886497248981049450576681562034603657457217822745245167136644054599874452840039558218266470509254158900012717182193910164230966686757096403544455768135689349128734858243593751075256814643166423435071153762517605608694345806841424055114571524220821961930424556128211213569565152158810902182349694959448316669184858317530807940005666006582400640361108546031920698486414475411753204557384411020887162206259373041692439805288210972272847663592491377663195582061568879524107977218915795176708242206417429765220846566610698182788292175467363218290020126080406970814325964071832399781759778906191658671658530658286821923788426202430819235553644246039292556434183733891935569192093939915476065051088170107506111088084058792346880633762008325030294367733207151528619215708322430182145541715979627206627359324995107573896305339860074461960958353442070605125407202918960146093791280940901630398087229164258050708801735060002583687624298210875619518860450726896948025884172466995543948974945091698564833992796927197004679086367293071954904702424224904633317872023374255003734538449227669167222040797059495949347659534346355254143905245935010739404897470439387849078782460080138989307584165097897764160697818212535585360227197428326919152254435674679327809580867707386845523276279166813545029122992951918199066824048975023703406885017844771495342367485967250084561263338654804017272758724909640423418402183295057700400981471419919042486102960463539439168926700493811856303294671244398594730009538376841370421822049321684619725855442830368780795765176971671784500898319368425472597518508587577591191742108484324234202080206938764777672251746152687035362498411916714417773486493620286234810782663684952788536902059543308903177117789460409592765837514452937724525852723939959424289289517015342935005732617366864139171215494796232046453930468727079217427885218741267816973334472049418014167422455915460848172058088358531891026349038417143255930418632531770819340233501631801505588542464913771142829928241862491206086056436012587834361637991560140444737154154757951683455114770431337705743595372057466957078463442814342962740753899593887529733374519357198495341844147590354204084640923280260975266066181763105592308328231798514014966406958405634772696469745339443603147826739849895888608229757893538341119489533118926850502737219111235920853171603686441348005827156244272161741903999834323862738323495116356732674408119608145768210059098094033089455176657199958136423022624891038118711489252950019478634970570822385857693847692463430702235602420915799605990910188866862888646172810065727977361340553129824074376417214451900476123781389202563443559818635080536788642481217295870542111847174271949134842852965108307183215686436786605560329839518607834694051759224830208838416478412046744862263104088873948429995109451874863901538774976350602587334946626568309475830169660024566902761785077970865724199477663468313125568640578861898165666149239367719179444503179856455436801447356786636326925379639483489329535842756665994974719874007950913414669866470758207397668393797240901855950679541643645144832636352712733156979241984060369649163900788677862576367733766397991008087205841108196370259143644441017615600549196725172962082176191669366019326758360462341506126322681643549826450016401420384101955509001865446124757259092894572567444281444689464810592442087347682027228200070898463356988855682453064165865868567181022163606986763962829472619688330654659261913524275713857929713246157692640587958937025259764468431379708512192872214987592616082782463914991982139469826037863992598664916797948304971824058410897806389251494397946454538869994257864142545147164042832448187789177093723254026670244788835902659192833426005428067405606842042898693081397635704342441368305228503825604292937237800283608457181941936192905844495354381399641391031066148445022308558417146126736589689868471830402979230918791251430474655523767560997668533079341986661670048724856403484682454171759115754790852803883798711539684847679501597139181970050067029248970497315403634597894226731935644760705841402466728382228901614190214267378336774869175960347675891955768526179964392799570683229058617240472631175492624434975207474036980950332719525970684531856017392192106509820657226839854171242631925983288966648489414713000998298667514965495770932106901626377096181481862503198068778365697262857852903054439947141145220422444516462731678778983674509247841405764106232214936921235712711193625787252560028370550586837507859788751552687077945139223665371387599061158867875674412601101848193437262875028666840147771780045849438540891570580928882570457464517907819210303012086044315286092711129214448910305060857474665369595202986106321655591070015762520124445830598986319563238958772584656240445993490762673775159722334221138770432395507907079159532818916297754447359316422783145661061601753228483407524631636490508277253993271428946161590490701894658112654048120219256968072912067488007525395452877365006227868678635198042004821635981569445720785192201132867567910840728040668593742581732560139026995436865400389987215650004362683054283852865988092516795060344954630130467419364456657471466730273160016364829523431881932206223404850762447748809496885282414534443753084259605260052937447200073632802955273648538189793788359162266149027961836394928006975766029855486584707087133956666491818277597601763689959283232523279450485682162955405093611496361703095676313619569794589494864435214174656936069084466181870484138596786976929920860109315020555321425950346826765040826713370359564738418280314616686510918842300932106528417419685532045009916705360332929579116391429806161281512361521428776867113794595418685115033265140985724682954598107749809809917454210800105204923887334422583191185274162598179222648036837148281499795297882588457170719291619518091802481572429407560162726708288508915119011666319246572626694420856731783253001159225781945048968008993766381511353665348490587369804117420616648225809046933458720297092548008558257889076370798922985029845703466457836156320373167653202516276074675343200827263583801287135544350738250576671466061694529787214460003533242106788818575201116532634856930346130288363952716619164256492375945716958438845722685089441125208298141482319649628433529481822134689796444319920420749846746908350276569736620615206165610839058735922250411826033254815561905077357837352642469587567804664285443314352524076670465055098631393612123273350429632568277024973869634192106434616366741464409470469952716354353544550654019160445685178965287313352644414349372807052243638007768379746644029151031817850995333432821810825262294036772345968382678859527258029050302618334445760743390232265695171769863309959094258528605244314726424869710914625775409637887917566471497054652250425110674794219646275962432126343275772305515507814435569568774487536244611096950432214302506096131629977177019255371420916762711597916910524618609390957440097661797282551082269382900904559736606843270260201908200207876318241402429647698447523165152518873553370015341880515646583384341828225668623896575216690181740832616020302351158423087455795023275458232593340785545504193931531444922539409330886525402264290714668525910365742849238750092049781052242168328341794943440184205990775243820839004729060187249649004666888635954875984239447318191703723905964875108221999318457760869542606602317142359492532737691561093240952721355355636863943118759639317710958250237114228900392209547745463598534367726585333681415643900848641036780133234503847879691397353466830540576810876992862002352291857151502377956223714261591931967716143111965163227874749279007320250410483079220000813992405569081770221157475473734540634103207938836579512910448074899009693367121170397452878443026840627680590429319803577641119489734179363814315725167156828136439587661448704002461515345965294851090470415430582691245109148799144388909420991531814160353058693030937350278858244802322542395412106963182364546563579136686861253349487606950117860440742472433194834005287662212564505877452314253849440721791717558998651258123158183010787062245799683306914982488864713588935223620607691665579348296751613555260865171502699171559695381249126825325330398904810964889061772939126404482845411990101136433779058740983838631080578656032164510209233634231259901453027001308788791542773958352476729000036204054877681641900562372213717767533874602642039228522374734615371122970651350855421142659843307421908326093713358945674312237647911950007062066693530285471318497452688254006664533033556611314004789710451633889571963787772682767417849771071427326285149704896208322458878945796589133169818640301712311600571673110032706120882224011642247421188968754991741197442525747207240963656427968249078232604512109446206540299973777588831280342012478953163626438188929455177996056465305922940288690696491466401897443445561731629089857446113527386306873699321736410259533624911644729734329647029695444996528772371119143299900313995527566775497035473616717045487455150046648552498584565848434314778392982057692711721755370984005437191899451453436592468545294258077355937434379223398547159719404288960575254558107710460042582303615172147279402123312999946911986098279579736761053833434398496347459665299829088590209726600298838090989475482186219572343616501131903961257524569888090330351038398408529294511538859400602422536820045613489065843423588021652366345014958797139110865777298945734525481570452101818734863870497188529890461482006317521951509049492535238346214553341338544630601320878844628868851711817415727479375608750814512338485622367000573966037139234961888488534010895548625499099959972841438092813362435780871619283544994564910869012954019888441736916700569647635817114088545203424420076166996189884982120888995060093660972644488409578435907748253072687407727904260942865021785339269491422710963237676069837307372253692798873525430023837202502073429378266374481712845356344472005431383618948091392691452019360478839800465832801360908953094503246783817203916857655173843660663352038374699117417149170447967122242202488234995896781005259154185353496358436384094104375419461133748248857677562947719153428308841839818118576343583710208649736484998331996777918149347775963828808581703742000279641138606816414895523735187034749103488730684331878258977008325996639499444420048444399642580572963100107771239847519928489521905999734644110053432909494651859342589830901402211202121785807011060084232847739446655210542218354698560113108662139890960867594448434179203788570387109411765049457133161684590211902728783498171220549913313008413240609238170159860867760079722822868274859110814609730782414539736886767927690316541797545626467875281324240696528911264980179839317555291807806556027552271215029779450742363961516142079310160376509344888361553643673816512304350828675379918533420676627919847945043168118315259573564670414310073922221389966511510385779479764283191772392485725461041200439267579092856871486845810345490292076839909486523041453415645507396248282153985758098344039042272596709518092726849477401780911167849287786537349233213073751326300905976377806548907405476082722127667085141748061803133695040625728658771800294577913185150841524273710116309486521386378800655660423092343019963367072048977979434310458434202337277918527973538610036667126756596525013636238595557414087207002316484457710728225840671744459328125403987292020063964975182700268709040566197537140459612182991195799932925945937932872869582097354314909899093886605719784434274623034956944713600199253641355348947397768094128949306965755102311543843587186946249537043239298504351291623676185132324504690371349512029349158697506734906649839340900068191767170540583754540962850228052848225896266775830997294134383917774225951192502101565416363831921017494289272337199303088160556888027020985028453388428192957549599312648741035530901284264495474989750822634099676811068893137645097799588204457556612722409458374480554590398446261083700549693219615551873374880642463718959194839448094760120697080088964702580529044358527938613832821456305217261810024061157081645922658044290276899924888580558928344677076140708187059053310001766708036446306740959056475873255677479031064366011585388709554027183859648242219892304469494827967854333002723647140697710563092034772969571466120735617714742861517115726589244485836981658185922190814634030814273626030928921420792237969676088868957711889702201429356533509683187937238735053437928709715774368853639767308272256517911777000324102711216996281533233119419384944650487145070394767728319427689419542243947380910615634653420783995616077374507128746258721587128877707231992948638986112129011393523083861884127685650998734387497394273030731998245261538481271129686664696315893514282269543459792214781446606792538977934718163049843662604605539959591140892415434849310291247498313205215624660350730318432679109849223239278373351934710766537229897211103332006536675123880627769985817402998199098880439092489748260603575211959200006687213280258786795330575872243009517173898273419323204976344449797390718740623894948173995556000110942736856567934197518061636856337050875034216999870773777757434181769857153850650714704994911992801501877957453945719571174616428396450244159763288494403816982081341352370953647880924984460022495062286412698267837919601483720969551527976198657581495253674164582897848774856223316935501541069980141593058373783680616675826142889517733791779288901544365172360483198182595768902216173538618906089461683300431666787028682520941559984259190592718118875894842590802922340399223863628621055371775945591966437951779929803366330795823169809149270956275262140091355842521886621332736526011466590459470528779908217042700890250744654335502555299222436114102439866782174156468968861193435156773819193220567363797441949688726445110959543585790565087022870878093525020818652377490366475833257273448358572014098368563102990322648153117580406559991599581687346249214474745450153427620404649392831813845524075571998855114030594593166161296898781701336703330417873107083474886340430324159958858285754571500257380748057752026109896169621797893764168602431602531772453880427798554912648925911308472597690786365214060888478156036748677060755435031581766610118580678121737731023995364472392581796244944949411439921662713784396867267516430215138262785285143353107932528592954141583935462862076607979066326574407023819042236557485337135832064841097262581774665606223415794019994305541805706243356436548650195695471408266497628134294542251457160540606023326671471963989014375087440913531064627529866689497709668006649653132099489421742418165251250406031550030190388803510339815787941375087244582790990950437177699238682127183801573042489712757660236598416223443571590858045087374398272030913130111561469638526195106906204249262475699434380847976406248147488350965375464193679526409386285642522530664777568922281137695138500318339165968482649656450309118659549650803650709257980189479870021065608673073543871467751411929989690653992266669348710189509415698605252047296741510190909465550184252391441434407042230474853434753044539659997392271461591412742910680008005465445840729160061211446220721319008026226379599517378685895503036120861181821648707459247706333256432597782459939686302117782005969556467611875218292598304579483888939052158490048319822953976764493412462117445004765530352005683466291404660620130854409719523557729395365979566825803465401060752360596332359225420223513679583650922158363490567697303401504425718912045379064986045850175122481291442128988231258943044972224222573362878973374721153294028670791103892008251436802765955248996674853603558558455686148032182924890904818481220311292150729668220815076219454751461693567589090821889146095300694125685246965827116492828485514423675414543446821995457502856613982419211329803577445847886525682431498573680141956390554938378182686934738438158312350308260345666022885249486934313508872686213750917328411780279803972979210986592328308849075252623370351206720517134126339829913842952769834146120630694447438220058188487539239728325012848605745001554326040268323449614348887354044113002117727394408949236821709571838010778769078749863559250027313655022609793387002933721251992693444038741712337524151165567282350334036613406373436813099528714551815683651946473194063796813690290367945287860615339084941228582290794826741194921080311363555945853719760531556646897689909556655083341747905126982462732668869139079008053367813576351944625441060501388637176578181804532715221743457392282040947781708500710338863529995824607058880688603190413519200827237334571611627831533287569899146803139925695397853690511661930231566452721442875254797150300799421803827459016921578954592879044665435354649931025072626929598549914924329826668532394473692469014650276956717289562927255995154269323992699385255357102583608057904065013898165314857242832167174536270209270870563799440555677139780872830488653369133904842701073917651353463708719320326557774725814907123962225641361437382816374933178477219120508439365664691179392151309675472148554080529658478012723779832415138972149560540920717090888252511155778327083567185068656423991249519245823154754805751254679560525968735424053268143171445705504688929189440516796289906403103241673470256409863211997143203425842588767132986875571013500710748319171910923522492293924918572903008680009990470960930338619589284779226402053349654273750669465455023732953059652793440182818270133681444648633718412353412490963542144392735413835065274351172572921082136018604852635655547934117134701766679040515150558924825663033414579232749807754527170937450851468888562012066824590431630743127731128414709259080735436163582536703861696861357240306140170426528477008195932586842133665531191213571830716649916959003447961846452334314484476621043088461842725018120659194013790428153685015050858664721941763718088266046729862804105379433514415425636596215345065440271997369556727002460161031892714000162293560443238955031922168534351244666053211280603347458123835646493483308446329681667329543479960339367475769265697089202305775443085233261874094325118337940567595691203704639538945662576428355687921688550733474079546340728830859373111266123129571655008528989358299593594973455223661865621005013458551860523839437945853187114746363616111377894628617050697281223871099819398682094864685328239090919267451606580604367520339358065244724241379856028873676977434866386943600636524789271712856178941215170785103149474027964028650222543968601048930494033070666367565880681879242258141875654760686594277443620517304226571067593937218620875880995966870749055604050811062399537441906425728894584471469426540070986543024660397676478940903485221652978315881952164662172070898279119928610295699076165253113391218462856955487189529773433980790093775091263553529108638679475233374689051838882319981501103498837598875500803009129982632093240087509834639424377668051190434250357323825842940605055224317015909966490835538102296613870100808996460832086540816018197101344398872505182487900702559987840610856051875118783223416464855457144046625823886421711155608176077336333382336085444397208950270159209486969529057379704443596108407138703850309706006891965010090835286205470841017459287473258081793968962885210530819715738201678767259040101973287133686860032849830658859879736284567842502257752990570883100552816519243301559382580866035567541606942723256834374888656624641892722038984937998409001926137370551190297511522391520416932076694163724617694085640520291802237917201688164163225722530133725743834540626223091165458758534718861374126921397533903565688371539464085860137905661544353157410334383755025867571565780824355126806120327607318714743975565516161963672656238356676013610641095854293418551077348545856319849929690288347728262974344055312352322339579946070550644423147626952882217797642112300418883551076942911001012994450710228151111674427044369975784001264630949161319016084924595395262200620936929918251246917856634238395410511504210132566746379858305625265353533716045242432792536063772784316419388625174235578876632733484564685665969136242538387407080767693876650353389245144114193166378865842845660093708504945415181380764969703698987702805247516986003917002185543447057379376676753605281364123270040198133403379086802203065523710221321126212481889541768238649035073353154930790505743855401837870770340207449514604066742159243507725317395186603574687413615827360937509713616467742699469565870664099769576937015640122182510816524334478777497653868423528167611929823420518321699946598655101879093691811477175239236453098784322912700748662886982865243892476291610543756755177436743844534379126421307735929549159013557366986944150498510729974056144482797792551156989167915657173529623331023034461967554943143693001336564154274480626222636057191089040173289182374396372633929699724895978552897706846013242938470631521413639012455844851404940676563040122977666326475978186683828541506395821641859646181049060463547406700322881135889233626650182932777159859115793453166475553666868869464876724743385370220749331377643174944688535049006382867364895202056657475671218191218422785404476820267435900836401488129058284118664503982798253842912897521180993047063820802871655371978440764051853749408554762530856363479123766321615351432683423520742057043149738716542355570876918086867272115159517755164243458335147542599217407633762487057604237890600614508454326575436822046578083155461636212295652136655884878883022392886401568490167514235653522494717492534843426370177408803151852403992202891662194946093476104490188473405065347582508234433182139420777809295521869186305554766841546165869702579588084707376657228401206180831270697506372380895405054631828019038279516218585259181149278257240348253063686747691008144583964878389827350283158399170822834501566795578008697909118780952691352594254613221162885686183637613694192376197763335329433258303230213695806166771238379425392266263458272419938664529365457223768372988155603241991303529702831464031791757852785167496770819424362295687770621571877983542387410962479926580036906650611168831292642631385793985736972319743627541454635429296487752469182318466397576951671481491487669294990671987835104020673681518397348884074813012767701640812800601971137818521980223218451967891347102027861707074410869270616410371315471375533550980004971045281613569327636616231948063325187525389308378153819483051392294819167299374647605978769913965385900612915204968818479588372109540377331419886399443088554223664811582534741233633221759219171290151997595308815973463452941151037264831636180652929880180277854384340179533878239652462616272411614887486146793868002927877566083200274870429082190110254684321732250467198945245908527453330635674218426600645729714480250210015148664456849938796484268878834916656681571042254981756943884913885241306655539508804959673714799617424655671237491565209433892532827430621797471983336808598494225822798246842173066613974625129390022293135871831423121654004119311000115874693859467116313987262046605669414497458829303782359508009709905607469158284894947309627269470115044552416131516881742830143814741223098117716948685507221502690546354397878094251277729790853556371178002450360855856936772439063829517590467758886299255209948918150469778991410076564168603030311279210929830152821899626290968707164141283547413160442446548500397926034168466562302092589376659378335380223404978348160277480434168633810297705160286756140622820598640035971167148881177813705627401472852615882559285689044247119557045343303825234970299223780390421385202244512171028265203347333659356226298585812925466151162352981496369578351722571787123388910895711466129016100654594028083873740312324743663907205963094425999930094143953962136897086544404867021893453664677458243648306645754090216621828455806353047894221225382547830754737606349209006088871772074128212555822161975474729643732060815072622347005197557633272130434494129229002231360787710274554507967399389118492108196420352008571755530939582573025437426760142864734231742051150777859793605073386045189326793220138792278935812047573252803171238051989506815565013629980151595261108307715084746511775718541843636487228129428389681814790895376564555780669153217564670937531015599350347248693957082780178969945030923267119918043556487462464231839750152678506611153356395335313200194507888200900283609499310412679987855473925499823921072972762346785055398518437957697379063494699581740498021392472407744624023417835199091075548586255364200838317137057364637352466121470081925716930493004028815077615367973242853860926463297810219802813884596648423232516851801925427996681494895580722110387635433494369668172410806343091512615409078546311280387592737947130185955761840084058147310189563839533118491717232574451077638043367431166809060777679991616761165381602110239398973742518934047071279927828842249853861387492664543787975951079265760555836117396641428675198355122460364880394472206041312298046850013729494208171613569142871422216545046792878512340605019128268801312832919433547630135311992013624231216693427807803880996457412104333542755846581254092825983931254079691313082590152366856517392997617082472581746635646853805858902977468104530187880513145427560770674728615681854706342929603276157804496319023958889427341992956619290225312187985386406494049574329895341077795144902639863728699671680690311409271366717513163992240260602940397006835794463854821783706557432912739851426999379540757697480736974617440205293571341078220597085659391898846898956962088275062464215351866183133152025470893965190515792867799393646515126839630985204536141183421841715964279415934098389867675968733082039511695922089449746389004978856776085392080802242588048604574268661630832614139055069637194396462793952658202735538281440650174785439130725076577238664422178838872595201546251873138447484299215776449471771777828379845012163116890139118696134083310629079504739678707008121441492520476438485027335104554241712653437921892549996891309725611274196058523636831754303476144894843132730260130456766512825124920281455606771876426582133232423015975115838114598206413318717581870736251767007791489355788648765282874097043036744254034740934833276127778544723982865473455864735413536154463230359150153923114868291139320595964425118364214289547733993189272002914492822029775630161994767114137505742342492289117465952795386350413669144199211259166697748293044199601579691589655070884508421690688542784922621862275587911122983689584161198125171625504163891338984412845832952320660921554246101876405477010944297659932698892205240892714886828333671392048669360428199680007114166528509926470679961936147190324388944192721400709963183662092399346725825007402661829884532873333657881861999194820990059605205331148210475115682583786514496958838233330203572062171940914134446531567430461203340101077738532542825415909311050293266305144578655934965146931402402278757298528765535953400249105943659393265178565165969572746349566349875284805690307037317316217759722980397212695087392348085377285050507337725488224276074560402183920814480958949404088311513979187239178019544868692736942240932226272024155270043965682247763506819314749648756944361721696272487920812944081495163043306476852073921400670251951690464049155578429266513291944725437158251504759350910544290668253171120582619393636031013559043534448015818847731005691349873999682058738094906047426877336511357033702027185210980118111974790155291948998941456431977022170644212720180551147723140485132332194432920044160669946705080636103014212232904418844517259742681444589982050750498963887514415348437998156446450926532668532684855815096729693682062240152239724615914400764602797107474100902648462073404656948327368768646095888146293005287747407891996875455847778895020309676560218181466104016806658414865280081043986720533631900009989629597607913158580611961796204487513246537967827590936134345624067730676005010116444254378799274464160167399523485035472515067726300401023748531273369218947583341268689108819189453604814444750990985207956720324926491661098660886534272621711980584146755941849996315689548400802354670290111275489694837244328769787002994923502308912610665945320229928360081079115285548347982761339702253937825834769332791711512363659063047554403717089098650396887862764281531563774852726113545972313227761177994897694568026331818446672418905031685961549337339472154891391265950785915627446112636196496951199340146225954030668365666125831159285134216172670319826090288043158299576527756740419520873502541429926591860707494123564780786553464280561658370137395887741413570108329792943741241869008938592624641769003454797587090930573470913347087036945472741089994667330650878297586962534065151927848805125951207174021508733416218358027114806354161875820069861935725440585324984619430889222674022038534110216773814526547580081618099673149426783405070473421907889936128297623959066418363620918474142452418933316858420830242313754511923510174009066050483466966485073173325236581006972546546596110721841375255700853941434294583008886682512894972162701212466766186844896390524260516053129221570215508365449239356024842175248875435692079651823348757529535165550690481566184768188027062182237827668291871603068827732367781779866200815694948501538074438102401569046044800320837391043305522528766325796182043753157349553129205692921831524789299726168873473640604619128167656642134275228494988176868191737932329222803614033013743907367154326917812671890508278173056684689651551818243904426158795512155794892126907461472149579417576681274980254480595805403016225442555190540490843641437493752582593522110163933572983471992491767561265383428664878757426134602181877952649212040119492232494189124613818172605360667101562373660346130955045105489020144505133831484209066280892020220421562381402180672950200201130508565170140332297119448756499484229030932820624849722631384271525396244056592038721170575389188195528941582283363077221817108380129288600863667876254224437744243436887687298568499847344650304937788012298889115674780580094713542808687158366591998114477817621262858246514140206008941055629578603214838647369413973739976584438472462354070694414102591511122722973275715062406158000655279590451878662680426604007434610106349445646163278733668317167988509065149123497160167328005401375782335524643686526208844258191001379364511689790505685153659835245268363192222666769193941939480864593963508873074105180214456171027899610838544472110838477521216181726265172633436021888737596808661195268062010338031970937159563768617408074243920944419193606030689986984858979312162618468892783329777248091130483857134419057055913501644338141714028503796331217773337634687756382370406336104239328373198863315239349111130080954163139677894759717429798381173297632938345118217910060773200696230151299036880650115349330562178786784060047782487272179393428238749725658038504236253375542309915954283664731628905406670173153444423812931891534209781094355119259084428131310681876035578611526839613771988980536855667064242096358719259762494564003325461523558904031307156589312530125594584054381603001782215418980513587419116754109304374124849879170461724612585429758825735951634342271363699648658251107524563845477451942591108085536227460960579497228900479797918547763534050633214689365754039178122784785615738403247759655482256987438950067174221894602233089685977804244737072359007934453258355441383886574773258940296458555812210718381503322787221310984821426046519140946629480591096532481803002916386791779952771034555598139020223214701524193254285410339383303946566176211068395653263232880142413783426590113550051112263519680129417767350789462214319236351575854546547426183325787083534468508985145192431004730335681768846922181069764594335560670652039812434175230991834604171869097886116709172443916114076538702191106543177162252349021512212919028941918747010180469419302117852357906060151422412769014873218081313516156931266056248169078495081018421023568879413308896384711823326260829045736828121411729140441768562946836012652074163791358778027968711348385154314941705428108569678944404481130423097745281580338035691055241935447597854530754060518425452906222286807945050413211155030087628611391401574556935196847859739405214425618464280660804805979930414741535110404566131187794628843798029125991628891227053673516340779056662607947209901673654359773124919410951339158040520525528814673384759424597272016312719593866313024449802336595706399197604864442015479481011909192196181878620417307732387092540224376503392984812651271902450201119564033225674473924115225677746368195780362024332993107152507161771557351566862139266662008555310928585145554526982095975487817822403676857361566845139420931113490226493070024270880366204136257738771281961741010892700048995015410040393763473647247318354862239427608417987426068956079200796893046824205604346819845975405039500922335311262229941352627305845963212482758455978172730231793342400029388574677121722250769228806422833649482884085828940512554882013226538227945468629027682124093427301359682447310716988486558716701237958755437065234160941933096573402791516742343767931461036582399397102075386912663890540604867545592645140936594142407825841289563812548495393236265290495732315973419283230851688922775733152127200348101685674153410232876759659555893183544527869905523768617235866714299111983504726096461121052009632038031689728126116830724791663682000229323322725965436974943837187211223817798183307957056233076861857879979450521220497212989471303017271207127029406752219806667813877991472000468927459093838618425187015354335498280919721034776447750372231833012662218434378286610979716091297219769137950380075781846436556605273197754783661600124911509686644386875380703953093665905401459727090526642808035687352054723053183314702110358154084167186240395250968676556529589856321636699983270673657650509590921596542730657649162968054988382677561848217479605055819658296501020519645115989090522631422470500957321214172295103675362033109246793938093471344472640029999864033124974904772399058824579900177757191734167594675791178233534437846453302749809694880659385078714123634895722737954019065597298871447132380826324643507777288832087695679507431580730714774433282413006435043777758166126015170097200546416887199819247401255176973494024099442523724621292513903244492080555926590026417575561934632304625329662300347738321402703861813401111361602963283377450001814169738871149239988824698418934954514307967590978642108535724079176731725304612454402442769641189142809970005104827554733605678959349886976295098715803534454493126863613070988411177564124712040435386643345030607739266793329559643563614716465467303832395389051557956538582062941634629719540725855657120230889274692261330346544777678038175914298482726869841941448739851333316908133750937896687175821157770350763825208376771415593040507184846961942273451683847808666239023588146301077455473212713947382319835259918999320120277350207347735416414004352141160884945956813659061768545848410910276899791388059894715811115565520311893399407154933250361051581808219574837397001744764667287035417342625199777134335279538965206890473779413817810631892297403734531695017636331866107658364800414942783500818538074685159667597603081251182476485249735219888373706988274936006489741248890641979039886876060121784824136855744419514740595662898871934700430403555072140463431123520534624385603015470365180244256419727123862622893983347920196881844096018674403942029811421721543275850258298354712902173440330694587204622499418959313842918058325843001093659024166738931232688255193458580889065581696300326399867301411118474581993835200226253197762026843518417382909805075079041337026340761204776222482195071017394307637765704731278032696418232548069347533990934594644362427189900665817600972468333833010973329006846339981376263662470417269666351788124661065468333686053049158315805597909509625947752235092242270757332337536544582572192828072186030299961103627028644457218378376477841126314857465705047913449486721560286481428717527075778944578643345598868362005383893303868120632562137923159892560568323794111109210548301091250192175853677567999664955791607331472557823701467371837547030915172744142638310695098955341679704545761985417215577372372593311748957133552369669860847500862500510708176511906548081256230760900807505767530535345496914944520297484304152954941137612243138586844213617079459090836316254989069064024719431606477281615863541648469841866453469391214342540102654989644323526782401297040484443677939133516470619553220471959322735745637830565519821732010735450252098954652206157150602431049918888672235983620449682506813990267671249088608050472361448370805117376805394551388103420237804542398153468638676619161903070695320896354503338362524749579549642263371020292957941959851809204247790379766350279184769931190047667429432128850542666891451221932178438549042199097940140829203012477250436239032109173788252910236409092307581374972863516025073414266396524228510898549424026370472306042110561096914390408399720179787965909568555303616598524927410459385345840863447766892607346380059786283827515983993090625051006607891339418977712421970858514392708687407155159142353309041530926796459609428991178170205682425744041048659933363524671827968152197492362772000981166796335519160259653585387955936686436914038131976047643510956123936667192648009596162503165369867968625874379380926370403474998658840576671548980253174362066847267556384755209906925488048573310032042851225708190450616135988579776913998051002529292794725097073327640201046455233408358381171501948678309244100016604310017631049548842887854187932182680739440353980782964083945616643710714348514421068327129484603755524361593909814513919226682722841058473194222425267996100179508216431035755507427685575907985305153973367575993625087903152334340922319481882377173743577160574827166452461554101015285969748505606582729604910840560784112460966161626010865197918758369150271385877655761021514509732087777029436322490357835517335544075519662022192616454954405965183248809891438981649012658626229357329983896802434570516111994600186052616385777421157195743421203040275258596950604999433431963311811041828984399464814511776683945524339214196573908842009734480076350000193879252016210483701112893674117666021227683052672438990087773958740034178209203421835686259471875498795746761115168913238950990184603894240683043843451860300136502350151762683687089857045619718501185865037974524635989575998422231362763593606087648132854622542669397787371865409431987694029035511319690325056778622478513813847795791081769030728950599817691315854549109489996341037555972318801576762008178679530383034341278676217631778365520315972278002968120511085889808093988736791536541154655350690457395642644668826205636368542196678005493426549546160070390184219016709683000948699840405099466200003494068043285413100411020977471823534011254962603254440279353928576849227248024560642677796021073986080321098219177908633090937822527260419613940162753483401089091209179849474412123441783647075794310543823932183976030409657971235746157128905408178865308391731196248899749618375499757497395791559453796847651219256641443084531989063461450463593062510068345293998024402198822683686793638017305894079040602155188932234000279368513648562490374220731201896451163824459582659247440154476744358561178056180841557103209747457503413235542172593242490886575828001464123030026647270908431787252936534149074156401662794108261518059458068775570400112442094158822808070957938208634127419461208794897136512013772146316593446775112679650183410096564064964964409407629525238899434289818974919365614277077815508849693994626283868650567613242567154010815645765417651943158669706668064380710785185446926239815936088862713521861302031292498476765888211439700021864666402740094736743144261597389570253785133943364578163705992001834677660665876327886242742274687097432279765033598676235252214412677632549420252465767000558372223451936813963109755799793501858672227665639038473812966154777417981999076055504799031452082493672769936928440788140906712026871205785521874009499283863716707237426661377369595923287561525456179534985738022841999579851653220708099567702448119249276064888532723182235484652411688233530105758771588800960269534817990373920722798036089618901700696602302371154406301375051613849891950921954595665801990401032562611567282417806849651697230887696161613509828732361601282048267265376381798945398871751767763403063965252277132687598471395057921431100272619071504432830816857848585504389293828953760182678748558381494367270829983963465638368342612392704782594105917529273184689750169870992647701303308420486700457701580131903758965367222684930905708994248939183597804759193071943535417438314304214958435670702978008051645562922364690509345169156220016588360996301985145856140167896556755995266424870410608293507066056595006811125596296606726137718725809781049145722098417115227295159100972370636833951119329517452315976138071585097741092232569281910787367607681844694746046478505435806026793256976031291727372831055963635710372865412266272066953044510013077215971834228047944368001330515903671567479785167306639900441906777379730075209019598111312261155746347820767031928369208282229194926980120909088977317966518697031345062502899594603164762732877086860389232595254694381467222931782135438834055737817676649035221147497644049791746185319629762211666433925147135220407355589450496062250942885380060988810021245409870262390824270662755087958335506393611608834689819175928100678477229490028594996169176943403189080382273411082310073003410045323831422821319571258379240372530101736013793323645284878779642735008201194479935166679402877764252727061139143835543142106588009223134822665899551341017356079788445228146334407120372203176649255261884917734103998316990611904818790695753788978339892613718935097582707512719726458806318525903505127211690762751372442182702561749570680378856239967619353615958212966031066097870034059066742325848721341683805988733410756231061972636188288846876973517635619805133874536618982927945575602010686497675805587536440039908069021714219455356665775797880668311908476690467533362439620159670195080497313337723612393743258972243378596918594076648244067311767553242827848375772839648065328750300199809181238179647820625591556227469999263216438108505605080870984294353149283210085969323057730407751720088660926340691033782826255759791781128635531485382517220156950682672631479346966231909856158476471847055664049712653296417468498093016891341300245593981893697506362276562696246887396991479641964152245335536296570278344303106317989483961758890750998269514952364982050846213820464312330556855289654758535836209007611515764891244582331918558384314464813489706236876590799888893763975127410556389820637903911040067805055398115234493679262178061530829365914406962088529387382453685589414570125296948596613283968451388424036679493190298925186416258570147018545067488211904422829465723950609920550402733421855314452589667056200437956903612950265770611881999764817953342525651096986425552348520541556590388153568174329774646376175012978638953980006744169958776600872063920585662514578912579448536113416771845366749133439022698143248544327189230731214493158195482972415152106255472642342155135211049187396570846629730054756629033221775021810721064831643990350616892188957363287439371345543599319371947014728464234586686094161328347984785745528108452671742923525663865970705670467188535046801707058606929452371381477212270250145714004501180679216446839655975590641740813415010028001821435718111739496347880173724241943095025837457655972113454149005374036194840628314570417810083818599961791230694309653775111176564790714546843384560148244051679072378644891438333852676356179201151810903708576779446348992269746708043445698891995833877755580381022158622746214207900385322341528591157767472546273941093500248881109220740886066071625326247261896413991487689783802997063841461834012282774291818431181551439518800477303718931234756269611510862873922487204826766733673578275652983069466955275855337647056465727304573639760490108616508299842200283221225514533510537615238797868133998043222629961787468901077477380382050141260291280553714507220309862727162706701496215515188132236143426556689823396752258674416203497894996578004252084361187170266597047155846228087938365140994956424589474103391147825234213831218591764807046766114284004262958735484916755094395515177444740772765482112984243448653531245491442021243347742828490404114734447381933925049602499326923741252814434175883802326534776170829011565066712167237905537989396809604509543407538666808526636213489561823988716719800650247812296435475114234108214813855176035507026094501434898626267848692243208132328927211382996801081091613253392256080500867011140918488316717301884064351189115852607343657620744992110962084163660620913077178544656343054936797497287464620214636539717141767580692309668250611607247018122550019115374736905311256231091563568413909656697579444760400613164872741851749696008875065151331339202474649042146168071485017323134986172227571516065122503547030159312204746422288151736350112719816018488873074245500228681146141373013520326098977917711349773438760380474620558491492710960148394069714403689432979514976836405952586041178075645395162263702037841723551134481713383240888067395348467888580420259353478057474365121172467085670661520048261386237013133058678809566334713551066010569873063254470006856577887477042694435466645629761353022741324990392148813732320748053391578269509451315586183023743285311390610706797227037501846511985686675033361744896276633856731400140279319337603006270186342106798382124624775331234859174967353492914240573091037057646210249579195370031031261818673242199934428682656901750506865841310923784667202066172693659118170308291952627031749602331183666344620150134971664167849914035201609347306756448538422376175028706056741216789312289798525861488003231075349284938010517156848297209865522492278126710479879683320975871825438646208827482470676694946144712354618743526639445549425700349552433886488422429619055598890447559316336978494923365013654795713916488595153372404529822338400704307251308321596535652952382580366442528192332820033188601836586906530439498032683420272057133244551728378968662692738954411462101017581504774888321569434375844310938441336463640505433733885061020154162301458240870668392111333935971016091462754881746543838773428593049699232485208156814503262343907765505056374376553977253518184832182386392169365772634469213572381023060907563841244140756440910243008680404835169584145492101836947671767802441161081084242674632742080041484760774155874633110009219895158579665545510292440961593772775444983011489660991737661250303439103746964644648233242713073965732666841887568154434925547138290628197178710109370755669331187362268205383888764594505130546950802541620303291547260495742014735304909632939946886405982447853658651051339327078075066750164374278071622695533931472500911533236494311568546991648982155956042396626628815320108037065570810653487431728249099089127173834625600073348141071219162289306524670630843155998630811372453499886143205761600345991431097702415274003425093605955976673990744935236770476513429718444449460707659645252090692911467867496831038494343087633933870799116372008980765850133158606539187134933104327788576856133976609196648678281664963959599606871438317275168704163368832116053686403314800262481492957265305072628242813707850752941630637155110286486478284335120477151525286944174936613206041557609780660946681754136968500878254046163265495343992002351243268973016004297099068259471122150059628492548141241749708693591970244479796981769354378555440157576218077408931728975664866982198258120518463649626031037465730182133826573601019728023433375456519736214682926851271634702288399692792509439897136386594219987753252031346874121809251471647060110877567987043677851860203689995692460859514222145871199476649105921739424219400597736469891282876716303449367657320040425214013900628826306603769230011465768892171451021654653693518644132290849208510456464871928401577727121591564645421650137711459105421480883933282021474677847823303386596568413525466687056836834690166301954763715885771488268461501669851014350800064518645244133349722283295806400849450885385998305040126669728873012812900873062413346084142984627733995834916948455975026799056128188430416579676643125070227262371328859820586414202092272207591448832548550581240720072553850283062008509275477911815838944182747503446641825435905623264919586730912900082705219234225481227073203324129591279662783561134906477854197838125533217392026423318218707583796208439040569483670122267308741478802637351695779091550227978166090556867066252488156124118123014878757752972547332482568171510579691787585873315395259977143992327121582943430268150145073770170128283441515554407586175594481490993544541650060556421815131918519076599023504396081713618637010086260354652488646855099072954291928051418177946513629670925947855802829459933646503726475672407260288055154195146918376834266102741086711854803515298542466919275539043609825020610146808215524481279151345560923295698107354866091568141253721877897957823045506883067863348942564918445749651507635301071499603398223897296308023035794436527745372338054396773999011151702527995229898335175846904108152878106925446504338990447871138782735277616713095923932109462009468932925243291853375756017526623415045939004281027681011233792421144523032684998495490934501818993942928218999301442397176544772642708757388632896608494340495782414879949601375193453719726519772776565820014342361273123124617717339527855229714673487453704041488963074000202471174266740859631068803349465374851940423688967057704970411713042822360147138807195910140339808170299752328919886485307084232445379025112735618497111274904594560653735128675190383310850406872027834643279562281758451834740433496576634930670539517695911007461696798803980046101139267079103866467181511985480165619121844199013342643575086221583550065434994448593288468944832343170309788752265636143796300227687273016136538281603177331627791843097554154357990618919705404462242384811050147390291812929883250498735046885425395108274241247390848686327517752435775674780546497451396828243384639900387882540594692654257188018033403036596877524043830170195716012482204107250439438928725376710227576267546503891724230421798355242541717587288375893264624891820873419921566164017861477071756983135078344500457772174815916335287991675811123940920421767844284761638171829952617594458446226050528646803167061290106359576397465956771610013786142348742391217404993783040491147431185453834108227091573939847358282373007535060350613247386358700944011531194310553229416004782107144141307323215903285969665088228383129441314674546451275629963535739444178914579438386388712543419037324177448595974307027015757472651161575658807377530185300780576949365591528465961109507627458568370266482604865693863653944521747279798952779815236790528492059800220872319196748086419528938851132333494921065303734374381024566630841455685294166745110908863162541409311512355408463557347044732526559787417641841004257867832490937474353355486428087725713421338710883109113845458680678556203343189934049593741168382519202605059248461503669683569688402928999649427072715734365394534606807302449777420777359445563378260460140317971469846083584118582309289187458748577611792522961304595592869476936290394820545534461916962814668007103813214654838782831725997768643801016799280880771318221196799833414149619660918143831375162704615261751964285421784928344221424947838903757642959752940554654829786658853115495032093378675380141586631949603608199299082639193625750667177808974397467843411544567191699147762633572119605614106501127617018264714247860161074649815812421640033241645862298547867896344426172470090832820289437950262812043611479909719280187808774092435266900219479393134164365891517953949312861770798862836513456094458623886509542511741831637116861901294263017100972706523282640542750631933807495742736073234346543676083314522663001692986956239307373401095567063980623341255575860068616385552350896409743310238122265098624549374707757320670126110556293075384782495540327392842954117435294117972982701194090020141528701951048288463627023975241580818513595578146331898599174613736124585120767409886960430090582918355999451016145591966623962575768923769706031527565224590439329672383138156399556358869607529164892037018798136443353718999078496737362450666621047359032725025030948202570257554301249977990407365630542201098627624390982011590106504471623106827383461370087856625294026105269688636993399654675335369554975511798805716888867985717849431114572683695703061115212476208358260444514307464707966720341201871112668998414636245369950357745743547625242809771283774886346486843751864583468042037381771094667081690607058474149878462651198649659258873850374643727187043568892064815695359641429002839795510430395440869291491519959377104467581886032248233520057828601042399622605729410732139803137221677175021555418037507687753867154966117506606691553939622203107383978500629491118110603642870649697811100574105483471270530159994613975413156495495302196887665566182848592351832987348279284054923430875889252104990905102230081039693689144331423037298350265125423106409246219051524432379041106952339798439581847121498615416034651678089261487590305030288625978180286961900042974930212203696920894563881442370212840099199964355646038103198789775432829585383880100661930643309496887026749869530185678110757649684309668188927447655072663048555485678454642638417222460570184854643822588550318351456256937234765858251235307537554659115305468204936775795209497915513093734288507711904876037289673957709328782914543879559629943851733628661669098241494442678862321444366128174463064616808646409513255499589994265674080672238637840528853159021829126626338056649082555010900553537450072614128886435977585449502746252624367960727125068919817773456213889401353240489886005917866457439168254828547597008439919715434443915798691941712356576373490294303367659389449979281785761077538675219198527351540435029096132022488763774961226940990365576973910482124079096756820606881388605312928822877956632970750238088733049824148984576580497236633396768408744865202189855804873516205290749254742552259926722080025575293811853963784389713738851183245656255020871648600499532687752957739490049194533319615647022991373334391115025294362983465865853434382283093796296397203944801934788217770561062133251784253407878206689658684312310004277160660483961803488404416864271901832151651379993502063078905939690916043682714090126824134902537125303021350658679260057087922947072889886350261548957102958254739176400492389079148296626058326951614301164580741070591422177405096277531737622408320840185499652757334008323197573851329352638863761478574368476957465608954511251579136990082340760016307616164186715472252952462214603431968195571210613400372359753551024193575738674835082651722987902831112692186077377402740556743563903372318190775251300599409189514937390125834023646239649945308587829854777163036775793203301819017049838705048946918862304366511783702909964629848650192111962210204442538551851964809112085240826414746301045793922193334589781093115253244898539217843018171344641613775725419095247354385695567853399211455514781778973843903215241455593201729002164217957710170627242551921216238995712000720506661618951028004707277689720000694574471409586046648995197815436669842055511708546121377338205661075748250951983943135359300829162947553910546701641245453285720365140918050771079235415704601110805712565667114972318833664398624299282942356721786723848410222111050718876390414172540026629092983926780618518008576659447233324803467366375451199345894016757841205436543847895797489752623482325454312889290055505197858234398162769956689170693249740080302673102870984685155479093151479387095785321637988322578193587285885874053708610699806079111732138414399087214348853604757635188839895043991571279577519863784570998280960013391806070082487150599143023902816202628005169699444545687011974711148927392875277045577270503036589629231900357191629602921587852122134931991466154146541937765059836473698737905436740107602525703883294044342144749862811215992091274973307339740978018866533485151441123676016885002947621714531260024462317797234987673625126301494667632883310710972149300505534879546202935579810184373606882989903920412477898790601943555779214704283590188481234067266607907939612950617237137257810829965003093333280458251935354105524818414255416484647273277041795571726031180294164899666556301908739312190177913686975729575127260376303099801718971447576188258983170344510163443648385769386574458126960587380287172960823247072048695650921245989745574210033569477435190340494949842621242551451100751205336823287716324045238832616609449978241591271440539744883266139981257880355965043222035758790385122074643373343470544656144439077598926111180624675626580042997601135171259047281234848224250689253770537291030996261873883354666811348983381235474545382073375578093811138861742484593590185172141071741510388491517935068764847874599813979207047798428504354686286812564709028972997837128409515263334594455361180843100886400122322083388134569041760734370770671854441117207162942219507376564561437319538864588171766049606788348602782559723525748120852417388441800194239935040311804512892944941084777916641342920624797461397094357453941859351899983817940819790620444710242422915934848102965520749486721588701183315863695956065091408037208049479487178285522175431227079920693786659585459717859569269944395072418517586358321718585651520510770298174008147914794809506178313404037490603978623166635741749802874633103473899061413656632510597616950514345633654244655754443090603537303845266478833451695242583970778776017100057500007936175966351241942982875253632012999413812296130840133782409604391660743382176452134758182328092328766835288767977266419797983380951914253487638445508024869478967566413055661412853070300138321357143959604627743240798299099836355469745682133280553355473306115539449797840908470202187271532759114365108767143097880624383024796430282400206336280179975943780669680079561054128584474054203326555228920324057780870083478060487426818520038846635272414037015491969490168930730711056964848448664833802627753391105388811403440720297505901047363475837150188318236753590259949489708458357943267710553482764365890803652394533995030656521334151036804610634452944577436629184579064405160812294320252760545212903501039562486776768320797740715617734621803385266977678255655935449594460048324826931983438556481479433057336231188764823790436847474007032392278221014146523752271688514524795899382296906097733898203880068170387564484960346155577137410626047005349412989136734106833961212808265450484017517860124096779846020466266751089488171887209652183518495972374229008627941396544084691142971442840040362423005065600805796007441776842632284953185359736570940681270853160429952797699855449184865511093699124220164129506116493985785105589008222715910224087406792246853580398939937458534972791683956598440820665763491251043390235496333353064699465421447539872158808044925512227401303539380250158748066580675106443609353467370942266293009128128074202801621950729468487686293073430547120544801325149678876861312905787481186320644484100527588593038668612071744836252388562540129698610476324134053944164851416430642952750394360602938161785723787155663770772658609829994096062935384234239173371083111936538977574005009770856412071282401981430992356538448288358638693009621175688307935418534995917697696648771353670467059872527557018914950940358193389649177192183436919363799525561646539210750712970829778447460974645949956542505621860366637477060080702188100911354509408612769274216772233828627181108087536601517019988445002718439759253586437980796357135629008071278942958612407743863783460598420122569514566298437040334620363496948913569660043622777434513767233353542866449409064139118535030181829377228644401542019014728508171900128964593348269314226351471472677677226176952865831027060349152844891304364840938910601608588831173568497857434086160093177800306481017921075343880215414145685740654875835414870340214537391757324271249371010546235004954160868914329083391235956332698224484142226183651301844795671281464433859987464202008756143353762099336052479355074727762478925214635719704323579126993254512343139511568415012472587744261842561218874017425782925971452559581836727801343735195553546253837064649835930647464596469745214185385578956294951740749132491461607574964129773927234307061638545727993584139168138063508644510835652682703044411089925091500879995472846501943956089113638990685153977399880395079688903208432528933537780671820894653403935957958080160362481671204574132204756471656114328803843211980444137455732241905125942143667326768861680961063264646814648399604024011790394469102712107298762530353646607564583411788190250969571758610081772151814452345068148150418399858649829029655064429152718885186067581444457690399110366179881840860420304528438382519442239333785511619078359019245424581448982940120200040963954246514279912390445420809950940006351470727298936728725945415290898088743799000840651427681543137543931180671616737591016469036253409241621498145009572027058867974732377146470646409689550154474503722744846832854172330295982901278477127484429709342457990140541253808121844114870196419845104126135556844567467260779019689528134353958626323135849256696271702430827378739357853964054767910020375356616776512397240839113763068305386921530612350951552841791414121370290055472387864304288778606546739681973697172083242804478330369776220913023301368935792097518816283965320132446720801873105973987826808624933315988868130302678148411912640748262815985071526970780329189653399168722659948845960177022106947816070082039930871502677249748117859932850571631063659489602334333377814108556318647174896056604005661567129580927915232055982714352596456409427854810018438761481721703875760942168807784568155224061943545993870807343756523457853867457395143262459559999178393172167745735505885805000906743221599439566107569643253258124375345196339958912927848182869820080105392459800814760608276138129213886422363156664912466399806318169617687867162360472183959746784376365286609370917090691406438783410071917819216707223896338270480756120858244554151335137366314320918486652452229791926873209994132003845117586043245315301865535452622510189731928966614376422385984681688006382265478330585474517159562308117430579504354447154977863528303901369805658603069016758444594768772276219645436968982840066157306898561413974934366110643653045933714769539909931013594800329436932524714977798450360638366579567668980831064819041447263124591760847941850358319851252115196536967874693255468294326618576354547527620078691065962824234721782603501646113392256084255094825189308927269668775750124600945646802646204368569984513799152971322711752024410823298724892641278324250278790952337530726219328267445666835004400722556768862700629793373240943096034839799304257536176347115615083822496248068617381421665686321162878311760908214505797530822203318049855792436341520592038649156316678954057316055527393525190209511571530546729535387207858412679262730991514807243527283785570487853830110259160811212508237541533275126599708300213996110494307079154465254679634187609916497915481529307311579557949732880166479352121938748949532701114533920619344924884750081338743491113902743530031255763346905551866717281873470557450732351401686394609465898132785586992888115985754038835499842232687319486005472951549476902550133026512804027640330800557813302999435336713725143743228626612214245855566091536997618380169255132497640718981954716236274087437136658217216512147129618662569755290134739756044615772545112402283351206492316358158855962645091083727923436108830866997977659679688483001906405237933406523907912056506250958440733715289263998482755249613187142463150364998934003672659295572539307631571666259329391490239057663928861760711365471446200080182975142549841482972209001562595609568971722378691867091384075543089936147937674549396827977116229923921704768027185938780688110134088241876628919002304087182075044543182509737498573638017447177088476226130655763021014814022900281913923403539242197047790804444061437241998073758454646653228478812398707180968700409312479985969657698347769657040312794285314682654608672816733160380633875349652825059593097141341609153304948666179850611622624321588921954062270662593419965615204006549931288575181607660281975185504799140194576550925474935689334852344865711488199028355605679177281005168714636023534955828647423951487421273987299005189968201845057382878964374969368480379897289805012256532421287172312041291205095629169554325374031502425555428374414756345824555155039225914144113644411749178374760526376581930919575100187349512179310512924849622354145854497313261369898902014975079397744423975569250171093343886932915248479271739500845708313865003649830176373254274764997435281787840743021968428383448282426178649757921230656450407395146174422762410116039200340197764293595159216712897614893197914063663928033610497199150398964098602272882100956216389591904209910568503867056361972798265726225911810373467708245294271317275327367941513103505498190811405809519619158248030211221218919999882299370585906474022289243960850595667203710809874013478735558376234936191365183737243016831358236533671147063763206011453408587630150156215706494770268157796865909612665881620906546536651249532585281588633895765307389085691748709465455901346962618815025167679510587938850898283261631333706582015717510102695130362442036162851686565411958058010171302153286664177907578299719172509090641315257774353462925260078435492448305311830036265353244905089954951718892938832691894759290642212025249262054326751830556855685377431940740746373659210863551442124583392315165113010599127876935726319072629768932161344802109646197636583104005665287874187052213869992909523136462501260066409605756686811844977824590763060917854249923177795789021989541249508102314495254296206885822613907485663793627356723148807819128159871760081121415659700638080630580595327941037736176653630701092373053084629226812200281573077880055629036099589733563431624039699912186644555796014826852657169846139375810990220258567172235767393701245267801182339969891472302606546090801797492959962754717403092204385607082318590870375015067066622595775319341385346693166526785129632447203988144944001641819999624762822510340038319837995515803534949838310365985073034341937777842259050320175979828879172463818124204009517703369993196100211233109051914090750213055925141909194247236152999953221204506107127238185292399543430528826377974091406372727992585497520442824592444170570781085706306433576024554836914385955391335395065477101750761270301565429641564651484994224806724820273719956129292680144593688959455176291108622197766804065183090937636614862721083437297624141415138583749232792440486861832712826399250154297246499479864576492691812054501214597483319252265339016742265624055819441580007538804963865873282604746253800853510147224192176481594386153791570889336092063569991117134110824134480050188141895730393003499657219089797334056144293298810619412752678007985826226910125700483890349554693932153437354816018546862489415494153341842656402784619108291737864388425079024857770752130468666281517421186948741130207447329196108030905761799314217867451954547564813261227062238690108587373728548935445116066338582159955182475272876949961328707298590162584915555974424055021580986616894839318595422776977096390503422032460255987960861121057664250970447343396739517499281645129076178505815771102255954202059959690717990625037095540986596387899197399573031667640338794065697493441767157032491207162328913496211101148197306536364532929577069503914962405805919212103690601540662610103327433166575335169732760176439255612170011460135012416517218011570048887661349131059785157415600413065060915507589003288262743251967599137195480008195211413478072016703021150165522786763724883110704089233333811130238368714600584470681353980132322059352164243113769893328642677557867320406486069171887003335436422559031688288933847358332097911573035275663958135255577783790465307993920092866197775791192491346049323306715900180450641601016982136113602017204379379277573264732243490960581039482832713138557690479449562007815518894444234189791926134818871762346107811369068175160061389670511782895567393156516444611510453888079908053573743130361222507853973302725806096014051091044814191470257417438907728957416440281454604039328321981561759230000186235519984002972715065863444528170643608145348835878615034368480892505514081353930668103049774266180972902724744993668699836850405640951493494978939658299698180743531717432372275116464194788676861301649311723069249128363057994116298875568047965760944540991867814922260809135514531437961297564115830466801487560713276807988477432008325380993390043462806690378039176647034207225148215569241100770596867583077438820902350242321586308388501401492876965763957228207107266851912788113372660872104728721173793192629772732050344862262512064149142764159277558440183789868150717583890281279041034550848410109349817170180627533777669299803896876323248692405742182400008816449641712898546738899453317450872880346752523377848702971803416333803947733481205210758206422211190635271452412583052141739019072977502386584506730433962924327620027607888710200077904620753391274469588110618842968135550919118935773391951518695377593732772971842220037794258954076321748939035954287838878918700706071759787715335545363425779258099909255213822783808902708083528303501711444015192391036363441691284292434176513676793420199737862979880865908777003383051555461816508633414647452865346309406554986378107616301635665339314830884665193916269280037462671164878861221221533265707289872040508745757841887576178169218536327507705192270310641951794259554362025447379880141767785855420152280046272276563570337265788043516444562870157626119348688721176025191821334341751217069448777474748465342391967513630400718510903400548248194366984414325699751858401838893402529156175502811707573687018487126186085360273520364088971649576186998520719249303299019990967267154203807027565492485161966822860726786418449387559711433456566117655264829319984582172541909145011721080560936815911008722657962325088723772883040188957973973244936802316716946372985672492281785482907747300750483164083873167846364020622123210339581220929105446198943284526859126012389163859648488079995118900769914124900123490909544582389324562449619208727693798961409653958682976691938936011543656408387300609696753391453760180500300355941166472581245140879809817363098568526874018603613801018446854260571967381073366280713842153596512355644413117883460484943385674205442682708228070135719747748287295135516962038647504340460390959775217835077393599239782547671348938612687171110599250960292680579356084575046916448562742751185053666674304350333178145090823958611338668996114806515147542548528956023228073772422763112304137144678810945935374128535669733734475650557784645908470306768842892679921220828768302819907946610171065412921178976286622116727960555030492819243203775927789062261402362053288694271466166371047844362836178421544688525129658976566629929556836445755455459294930893612310291558506831875431072223329748111697128688540321990285782270347850380825846770792961815588071395881074898031176558532436478305258792332594810450621853556623799813513780868889924942621068921254160570721873138438237786634179381778328261788037919638748190418802599838614931950910544671393778574076573737575557397432418998478765090877647667490357821882387069162897669362739989070644626633240928444989490121757226150692292941470690556236276230820597679224307510090659365563180267247979491904329295954294755446651032321995838872466771840551647737107227629649813278179362523357237236078289750014047837462995029120858095408227849436377718189927910207264899106533610073080348318272257593074084423990761020433148122645645367982244053825796723247877481797236229875258088799806144103859594995265394096140435731963441046825388167527273819073920743648379012765139061089368837802324059086385769756663458827701095328904102358896971458305872886569468604763922077490437248236160106141197093841791859099585473151362012725280588387319854680294542855077786628099429959986189571152543760054897998692148147593070868170333097000568264260427745466272085460146161669885967969389299119318516606757444645059229491181471485043104690570227124265355204137475929715703312954886931689835322420687934077125586751744869006748408281811283967800157969683016081461371376692217003316611657186228549074996849030389026524053799982644238884443990999742022507421861802370112409302042469237653475502055481415586029549848179480851899075605125172422035023135922395522199854129962246284281253474865302608680236057808628268519221051256847368093425368990286761981462521770373070105955990205348689222808838029978668238041592500896186442446913699067923859267552901434524623110453835646819153608706223379507082680537857737166801745545598685555542478709513289871742692071757302152364540934716182228254951863859301273444123037069580026240890623364982318232374338416729802369052974666011405820231708021868946900127330689909145164979145653708186860206002320769028880468537016310757501851963934116689022806042868084082427160653632549239265730070212261150391654179330240847861294764497894862795632699447252822534979092018530139783750611970448297294489264152597389327270209568144873157189104731114111151221825510274238514530084620563668319597448187505604522433963243262567821715216215918343404791771661208203184147464482765788435894186472914830076991974703581525475849821037690815594171341811324806047155717131211372718230271754262765782426590077608272381577582296712791706763518423605300051988819863081955657043360036845759480747248571177337253787881826925009878791232244296479420660072900606249433834520775513115118555638522946139194715168389616794411306152228259465567777917354419224935922740606916488143049652515205348159204970158187330233900839973821587681073100623912570240144203075115651747178111649878773901497118649113025096069404352241678592729046220363657301785036151523020123855452554985038405753056671879063657440666827167203695124855509136038396854906658910314432694032307573368086196957923913425259060935328263919079820221540395065075895612303688220563666375703491967877455839472414520939884420377270930062771038612536606755174776506490356238121195312011502545360094237999421094245309127724718452752940079708471233134485775703670535017147985060304235740396816015053949962787113407225186881940249860788585836619997599266293622620100668282045897686142352917915533678658056106147680957662045474518367370576367462096721653891669003185201340029212549012567665264470814710507985072856001563614063395186973718889842159839388747039193634454780893469745657048911786774871899550580829212805525941163156665720663229670138493474262784762918983850461684779759411759052420731896370563373786855066794123664709296283920796568477216056777363489222673723325998359774396630431247568936590857391676750252698634627776063132947470282985255633685603454522972922626152400882960850295838540416862497474552917471728938538088676286789320404779014761774104382823377576085769758680894430171137068002519730666542389539319639249140886363337568652785189265092205062968242392788494930316860073355402222119148262349016289831181762780714116065715790858773830963572124415694371918326160577928086247285806876500077378199186002155973980605877478418082902683787649636429506013575838639313514326218908363115645182183514195837201376147681895049572077347298922396038478685936894972953381579068110098401236116285945641085086291359298112709635484754209215988286654630797929091702385291375618799574970859804656431563863012645308636566176329567476295457254382549498330251526176915659528237270088702851335996384647898522749493894145585756087854108160365979566730699613221494268898317555644216514145820026992233544637615885284644798407096679119634441172451163008967703428366837747100700996856232718094475905154426148077867823446886480723156085608086794867896001665742585981658944531557868864542102159347817497437445266995382758695099023771210328596035844733026458831301967670094140516372992763219159290723163880182553065492235429536143148336576611473148924501833280483714034469575539013142310742755509228059076983067134764957803659471598279370347875976175644035777217682927230802169988957358765904767647260194091237920226066395662516436003949924064377617154942677169759348836993199991669154837377401271664680309979187082925442105168493249421951457372916265904433420649643258710912189040328135491271836125376544386165243790516061581848439726650465921698455696487785491603878339226290272405334453622735746934622396627617257418025323784020441318068028499647574884431552299449766996751704883639297076183828094589674843316690618969993970146224521732055833658805074671057045424761744123788958881054697754176184982276324266854667999308976662609875248339587813753354444810602154985328745212091450493616261863175213464886704762592517194272420219976894618032284875708115037547129915099272284219721239602103824087745310806453868538936036814717568443091440277089838775326376239848138741179147029209988172938814116805672620449835894949960786431921409366623022914643692034695662623792635054264642893059275678722935145186017301319593553896138733403384148574021896563172215746604562690211279626943034734397447296600973850591599311975299211895268699985837803685063126709182429409685986937298807348349900722659293241243004375035179978451725462878148726415751806780876440977181819180975152974568702632160333674456170197620639366792136906091389969899531046814867329687500181626953656828679644504550331617577787185376821463864035937680400173340274066260404817997580717768126028026351368478681424077879960145628332238447631356647621068607441129624584265226761479206055694843494644047122217279916504487473794683311134545549293383454537926502040582715505123337981264344828389576367940297989020298745145566167226494588525099869810199030643321065496440287218125356688931704168934821586246042753927542629114814601571667197056580656037066783291370419066650797204864065611612247843088620333672961875341801403503676577341895066202867276296918325693623845099409612929254092629249976145467110640205522360151492339106764641382231339108211051814185737821616700579295132052054302109709290457261624579830061441519456674591590388374415730012074209755897742576068301068586226023565839196927050147433058836688434874502684655667284104733008508288165405961466711100166614571136694421304503191514006265736018770439497491404872627315685296804909873888282803933151918358272886266133490173928005032526913160007963734372612442305645342306467247513291351087895268076619867404455567455850916481965932846046959525420485132193053042608122927499756000889310175610999751867720718761477021611022311013193471119633158393117146982008118246321108462089804532486993627869578415972466590483947843134277816778315029744647738148676640897083848403752637688118262906540304042469569957434411360246803046117792865423093336493742323376979275454017332118752967974365412643445055581774010299674672292594143666066557979109881126921149111181816103605383786778660422202415306307365382916054508577891181046542254813562817893348528978503978492205728930983019918931066357172172592708856979439966045393849062862642308649782250130970627093894352374071144961793131530687844022168997327513619753352543519797820352780883392874650391416124543311567482699414948650693062624858398644774108507379384808666627064352460721921020396032868834315127027493103296420340552494787567292271273755078694603860644896500093467423854563247661749648349320590222557391207217216453889503661462762119185950553715921446344969120190644010274346693162988401638142752304147446335251386117928296933682399616491026535318590830593329693752425300736380933377913435193000562312817777612986263779066740036531286953975519874915334604721948034118344910705056528123921522664007809747439441226810788856851035363963442106373806623332943208679698239476377534112067670171439155988513029745472984501768214915167023994315956425392890633297162861662024646118336091955830438748911298046486932584407746129462050727391462461200024930524987660082046555401557287185204928489071445242029312858771187792529419200387182046863404419371339825526488232892486100978614998262770709302074520941865680514072974423420229016266652443708984636842337585457840083355863746767031476385577174304934019194112178678014242011449233875567918236347207848743137929310094153086896973173167043891112919522478852088495169374903565064928990726290303379824227270811591163669597040176205821918332515346061873637084297478102222681070959868123316029487362203440681444921072877180113362678095420308876649258881051589374920479759110642194363771393704944570454698892511968890259629405428286207461358141983080315923511438245762931502596647488588657399542892514749315246454656611651286932316514743856378524852001472705996349744352125829143032658326819915950443914743014292598277367775079256377197441462673312751777029313834827675228973741700689255937677114188523883724509063981899096013273553554737008162110722944664098492905490761506624264389726309494687556583855786800574945349944465807178194218933199596095857894940015496550616617841357114974923879494196222044159682213234864341423876182217702246878472831560007228933879760731369180234156503916645063426903852281891699539686176226402837195240993302591090041402449988097844458385218020493858875490579052113618911448969793516336003190163626186341408594413740529093543433034948990101326119142147506241901562028393707351427972722634146600094698536317813824085213934705942651015192532948985584398615413187331420244630536647713647899988880981683331251684211648269985648487947646948708239478930137818371078067468749111071065132249735105321336397776190793896208416780592097513287003139229012356224964769842285056889853153024661637716343854485012673414639798258452338425260885252426543634647759113451955527705709507191662972019451417610758292041506735601572200915849279269474912930922663308805682625104361402484166924955029523503796945295300481675311334408768098542880149811457850132371378621936981066018646382222178997940416562500968856457973425978925930559373274984127457466534365043128317479143691536967469539778843688045947421883405344199057674893582051514921357628521625622456676820540925322721311615512451495722376182544067000694633949706336710511120024436375482564701984557308057934433086006827591783981649490662435598012648511945659769697266298098436630997715000958058948639056263588126782333551121965540894821599055653189109182853779384720383749087498003152763014791744507034995234084413464344889132922796712034481255046487345069374088302917590712614104631948014290736763073792085246567836386120651397835818594460037062054833063943681769604018799330839642501927864731493182746038482043743477506650008105110797151154246168325765661348982474758725194075310898893931302301798763102101585634848169163901593958162426378675366018917237168406772787367745776709208017973249146231762203605860140750094576056742987558011916817715289127465729182830053346453840166066110160119297687582054965282955869697139497677325564289335049977099428568211710915739003393495262162869296561037622975950552529536703759242545052158425504455268268341678831733788343060839118563371846332614401529227527019416933368322743662879729364758656445238340231669478071751499244697741464502884243602376850679206745623646495070548113245462110198688825743531061423338155919769391876383193792589976901679221228797978040719866268205231133269335359226958351551997106453338219294062396305567877348673906459921517909241203943901905422167425533788675650004249751390734841202851471271210324248041347957332586170582141629390433179968916539616140424071253375097901861086135046930403676426780221496900985428086708816126304836904751614626545262703494623762458436155233495242898969127645841213403006076740804205361298033633474727684873501438487804097893701889935085978290958563770325244232352283677452908129457993080576712029054203328510007984882650188330549765491533240186674263654912708394412283686224202237073587620752307652554726243815636120789094502973653666451342436657660039999228606049520637897544774205319476391632843382917239891784681411702591409692679414698134932058242590324731789770854450704123014198384142160312957364995552537820210288269185265102734941693491320980554825686321515287193057291376348104416847194899307346230139954786419843854711146298259773920198438694639364104840738250302930296137856761769858311931172937516286193213976013585366284477997047739468328926439331359815758699142449201298699488316589630807948155882852612736821850822576324580532377731279121830394934657213354987974065572338955258913765636464535376197879066275267893712994065360706126244863686974172580829600057558848750455760906299454793740287727151510226268558568711870834238029463169853760410596896184339366410819874796031938119550860273539681385308953585993829123151178703423420822308894292672811376132720095827063788982730668437598457287135556947055960810328750540235336662028360704694863861137632348258944877847241844722464299927198198975575420420481996503634988640429001927381368876759372260539852498330705379795351923571060564403939290145983141161770826974101956687643494199987810030217948122591181564090043324920716552955460798358497854905744682610295512428209217278493476367337969443544683435415368467064718403856909108756379023182508408375746611133795842461078448106337300376902226626132194453814194905531865342887347215868113517468056099627004145691776228340930216901952280032933082896559386864234169342782880694760833312942996107790952776928656815090691884746103948834222341351679558702536422756054766761396215656455010081096311097136275494747686842386543161017010287294132396810286997333213635671097459501786989408836409672186534735510088376179484853306792431813746640146108410794192456504590725477337976374757307829794135860565721211747624174967776879859653698417651747684151047176481003910852090518187501909816724563611757803858442341723076251050522297434233643320639407304597665237568842146506940180927503576931066126814412485274372686633725863951649364493129302754109205278137886065352358934565586769977082679052503079141517296227624395566267651205900789687390301946375043679160285620829905269134202078000767584214893215238540564212170843507363319259219606678318961136129385993326472128046748955413472103111631541028909238876003476635682346534788702195511220331928123636049441865967989272731985707030300901204886598515495357130146699660585550830430560167710788205920650575457773015958241799866473672872186399214646644542060743576363117240318651038037090826386835558514098603020083656284295159585982578942905112045572602200450959588007198487707663576224392964300152926497421060202408981811292377187730460191550559527180861819044146389565348520623187160963881553152158791065547871865538933283579479319642362186462392140541031108383533193632756824358355214531917035899137502745101754180661273592551903711023214822284530983801105183376752745432377813539425020341600408534387617432541141022368210782511841351344405882887549053524469743903762619751133150879203338582058534686055411616626393176585309323169324925042337984423672457437956456264339340597330861795214937653970769138124292430778637657809985355780909092001166242168822693657633147626519061815998813085691760989445457300827651501150136746610812265891022542130952370680936124770686605166097237286689452888406955566214686240763914461663022503294288465714928062024883955486860745795270344315618798439761940200339791849987595266163510546601112495749203874932450501000398000610291599649332558409016610975357585784580257367727148439336840900575261694924088977508997982871063758961064796996142075051759252688293525290795226915979296477375850104225062471870935648455875786891891936693630553831867556189219722618314371024267162873003180392902428344640433588208154305733680770023409613229850627598168413667795295423216557594886674076428427209936628217329656786273259394758473234473367115518643924491512517635260234190849521826473878022710970605266966037277514686421748169254722563521855890459569982714166344930246056092627635235577152457710830144873299039051796900838861230367836134592705370731715955085563134040045448122867879961646414778697527592754660129008215000495561515353775837354869406035222635512632310226879266310102947331032483658990683199104147649785047053667311249615587134436323025017083916943854950048916378058036849129911798901797222081621554462787548424543283576124919293710092516686304784701147447933637564718620815392250029312386592593781804087152354826041913816391507357992935711412445094534587514987177967699247199813301878660745482567672894357935161897246908784113346061569426860434997986213163105342851117963953881428637177002055441932367526239412605533713506340097706785916523927590607487694625798698989991599289501397843348584917011712440813107262212303214919716736086913232202552570659547927702839982358931587744752657547768990063729127349179908014795791473362928905612917263911074999643655257192908967970890542745337043216332831951370002217398062549135356116276385670487492537830797748109299903692645778109370830246040101622130015860442344273337001250046363657399310311922191104677807864154444800771411253542697886097408410315203579787763022726882747600610684058322862675300085083682267772410098642944631260373612232865375021151429820328971274680148854087234350975866010333943486068090386121226602683856873717750642663946751846387009079488451312776148155052631460584611344805748667629878843296929724538734892083636066573876367914080322000235541581567474006574385443375011892262278951665137228738719399746684364830228146345104643464626974039035009990030987709998856537692453307613080544093674239790066839510226646095380884854993771606112747890748107148042010475454745330625524219558669153679454808519790163876784033021771099481429394115632888003285003990932253918433582780905316366831215153561728165912941889947668122884155256147291328612443578528678752360661738305825704069125913874472997802006476240781599363089843871126460492693149190298919662413351933638999150738208814959447057574206867756340844110033592775039829510338705551688413045621745965023520208121580804058809081041515601611113632724541693523846388567288519161795798146406219385420730028524247855848934779176662262597301222542952707241966406076732871914761759682765273257467220968554510686532666175127895318046720149915393544605296107052894995104670113291941089187444539320624134295384883198487471369581928693849139749307677451050374507316137420566258049574835880858629263313634118566214587455215920030579381979229223529000551881116572993283489708630633338948752326027039577521039570284343860566865423441651345853716945209581135268827912697132610169905519512627248277071322778980531165920516633865634686775530152258699547559251634351531983317758017942678090796884286538240137224200466535523428277652743839915715799365019221598966746953720075935706837732550722963042302673278022161159637821993266171456252707141123162705739151908501611204941868955406772386867172198404409904047167791121159364330386069238193276873639280316512574825958572476762166254115059693051321570030544766341038269337643554247752814806679046849067585586145393318662655902322749710108866302095050296628973377234822795932186627745707527408821314823990378695254591044348986917351451839451920813522308931315990114043354625215147980305730077278426350259557660002516602918274385200629437931111411116201392209330114626867147842258305147201622115270074681617059526338217830504508337051886446722243251474927936024329129298513457838705337867952705879960985719445611808951545778821783578400151001873755632323908743966712112058789711178063535843510303338981009301001913763285013690898514425019715691234861775633019463283384084885646653050871865656796897371721387423771447874171211807847800786261794450205544271138195106641715212199787735976047163381556292376925667565547617139623703202606828445153192766700710203016396966953147510837912208134260053765711760926941981361424925211256327435782323686708503321204133992038989483674300816227119539048652930953108711256186428191851784804872541860503712692081324132439477518344307087553672520948853042089146315189312686782786174740268474172118972306916342322995277110769495676692361199929345284843566607018602339330167882633393543424299399936120473620034567468771543882158098729453345827489745622970795731744916345889637901601002606042093665247718529450413866598388501035203974226007425350016035721248616927142620048643642113443821053014663365021425010225654664294083855360174138997452538584323569191559275950628736409776882405519007080856994100691952499945072438904817789502419463425956416520707422930362043219115770111458761506188922585761452381050430755068849707895127561403910490192128477230170591853644900713879155344644226825245255265522647525431877246588149267360459459816680922127403393545764935616080515566450619958079640013906389382598912914613953605628847740487085379311283500252931872991320986147795531866970967179502764165994752273559521602841002672750367702132483320572569253275840846544795175527164809425474903947639805100685510102118971635417825743735836653997858666558331815057950659008042813471735527699782358062660384425907673875812823279332564306935976785959276021410147512229958482082833353563447599596134664048668928139525634553946572944272010219947298377243183066451011421115531700415191106272952453310171713534608506379484186814972922347774837943464352188819582145725527420245195326284213869005498687160430087000648993131396483761968537052546269252049377464176028909828064527463338253226052273546611020093472028058402568208190381331362167529678959735081682439488234926202051005926752490016305739714957005262745562796857113628325398134057262942673720731347360561896294365501359338925676862739907203075718935887962915578066086210791772893054976018510610715807491666183130156829323003865791139168499543241202727753038115932378607998251380239238585792017771722791162975095475269648902975156584424765571542428195974792374886133616973881032521859640019691381712857177021443336426154789128783264158597127155493764593876132105395990653729946411379155413337609449867962951011207443078472168305466688783262674492747418555523301167637089105219523081390693796121079342197979304071822061917421548322423061106692761344107187432528264276130201263420131492310874194850872354254679543320183959875869944641473636862060125528297796478178224448561580772178268131543498619606195894322872284276625756493151155703051849051485097510890721233521593862671944589472129619470903740729044809904715490552349970729518971142213489037168947408721320640327253843735864811471037690425549711815842846600145308517942316918250854705179634452799804749475413466778347900387235107535732167792157738827164142398414418007661621878173329610129157495562987754547696637997466636292860172784669784452345930150495927806490117521437285271876344784622717976489403860245424311480206168432518449642449156763909636199144853226155182294558181825595613948349297573593023179452024865585992563063597453141529897162513818262429391665584997110139791590943859255518924807276471200239959726026858066957558074851962457372592050022251304566292898838581058503168762468724580869995379202707593065546467670311470877111241947434994865437926991902440584264728428157416188812534778796105266268837209452552060110812149812733963862876879644047242026804209293807735020344226197645288643492852050588077150446456972958816476477802797668325830312607681019726446501197250566180550429299522162979170905576514946481773006293991114100962284168515182946727922251470180483072777077450698883461720855316460673588909272413257302945318361691284229470130125966858413093610316077757302500739259194254347376408379154943009097267050342217258459644882712601199882575204430788579745096034143951616397897976823589221195314887651002919754251664808691304004629326777123508363462652476286254515732344705650199481724244769112358461319149641160351938121874719478955697227324189333908870998112926036795465137382165703362473049890887951535942262828373178080004003556097443973683405591053912739106367557065533873886034083820467887096490734222130540852075367910586471814501799811041938445029658079609953549417992478049953494550247513873414605341391757278417916295838101798443275706299127058664185737309763043525122669283201261365575546770307107258362445990495621248661494978902747432599203495348701698344935510860204741245618764244049396407515560033554882313451602436761740823057905631005228165142741991735959444932541594095537391289516022308868281854343220218839801712029685343971093212336049654240245345508894681016210805459464202005740932342733377800594243057625092810560809703712303180184054413762783424849730526603777702822437370174278951400394921750598431064576632130221290974496940366546019967359838987132593220082685691767674478456864893356616912035633821447849703285998557810492083785381029541985495961148702820999408322865846173863019609974077409456864057742496401303419239531506967390082700231937922267112132655559476784935679990368782455289023558555746388938708411563083382095340584523619158860554700368791906326944572637446175620776858172586901133993574759970779951337871327657883841032233698000529717546749938610445773369715222914668588806577670090319348759555156052732288492529523824624203011756889981406375601331878076829458559381574869938295899663356557908945918923841189629460250620018372823114280097982697604242550680154682006654528583208333455256763135588473742153147351457347827536596578611966194195501755312182936394737346188296826777671084815481023696758678267852961795608516261469671870052787697190767140421585564258067040877095072866084101029147888707620044408574966657028442317708294370309339400044579120783890206916889560925568808732290273826115997554826138939081750414747878197348457499371697838416079290317019262567587194898847459183598235421592657205635869694578083753450300153450848312872491255360052389395750435119874236769495099003943847787704219318889619111017881545651036945782149837873770432817966439383874365870832586832191350673789299374932272882574079106744577363133338835535090522844543274863415774000185877578505778738301541560800689343580095113305219851142349504324237824890475884152308596708490196502148121199101299883050601335449843956884881252624392981746835864820466690493226784749107125705834261787307119558205901043452324100084471760206810146384213066323604024721674986642546778819959481432105853086149358417069356903637020464163567255653638396521891010775191328606415936061862036605039191905346006993336642723859720782896629220500506708570292749437577751085296362242731505706336791657685731021551454226978858278309560590539667080586702362653874812107379774128213893210991699075962810705560055726148512488368456994954574425207980832302889024864532996179232291041625640514128850606812810751662432850217076930129549284131741417887621406556052400089047051867292476362070994791776796527901204363287304713270252348473420910641065408951146325448048889759466186418423909542364906785266386127408485399638300110325194887082063846478316468389025631097547352465155946866027798741181669405187023764799593837337470100349453785617823606545075464393450778176223162562203889540787001213006527735231623575971961005085514000703410757324923048460972781352277834245856529167082652436588964755557745589558944180044544581513547302240773583470132180310934973034460385777219285208856118176306628350667395331392786971116726161912655892813036203080357669610099194196135932898131065224375818691436862869037488306964476054786152766194369798150239842482617954380724087909047648385313122664831533031677807035889096632335172313518474876488779767170755459336386652070752430662947724663960867231495131595832409109488066909735965801296334522259882002680857004311352860974258202357699693811854203545664978780106485448994966064248728506841074089082420792740027458704787669067021140279718510819000817898842299266466780286738455660794040162348354431956584485697440414040340735231193112506490031297835651414804352169789119988868881578087907734305321531572851755256606794594711493243826719584272826546654732123570783575431634298957986485660731769633161967445525601453246611535532858897826777023342098952704491473964858083475510677310140191770355989671660458879098306976027610477037924297544764944199638693123388900041272897529514123842384623426549415210201083607156880958968794600388476998582966478188189540447308161433938975249380206495147513526855746237392074658045422003272075028282514980676786760729508344305019810499790112066987038877784560189594405031520453152818905425994804000696243319799526829316046583339329935757690606695920452819522163377010629658415401921939527487974693349302780410111094602141988198100898852106454608586518160125997936487847916222805917687987437927510687371632538635756948996045342535068620040658576522515752839498613659542303484433277756316984757488131642402771807801438625786260548928934297584189178165829374928942093825426872153761857218123889025221689330714322851796794403351325854448033898325383969437998760616878926646515456205993469709721994803082123751507429554504444294470982641565646967802918222834993636395723000577964415765812742906598124080015737316302649112491653882563992863515975593946170884269528137673371659770393603299839646415948942548961231787173460596897337231608305138650409350974695669950289622709133226483516821144262572308653706788161857818047917926799950447043767598143516815903226650463842410858073981818324854631991866500408672969065171448881894355163540206745940183613134918427875621411400549666759597346033630965416418060463883017801404366829799587250434733041757628603584889901605461760336942701720572195108441106583873860623657512293387728995127718547932146814740751359163266242065961211998514517593972729261532917050106452518442390634225925504620502626956164928043900269758219776447354168748280867521664057855649705723240890505302714541212307850284037414590540308978676521567644254609424216018399435426048316918967621692334043643980682077271418480632753514578456802401634106795012089236650948337377439207158081297328208509640480657755450364964189985192586778693627146777504367151362015817255031206165184565764142037346481353033957631571915683986680590332103931839314268370608770313209910465993070857143951623873590043027070713400022635726712335740709878822107257580643441284928782014964070151613386699354290805744236206851448757848213433750991125080577831209091851512848470304247789448077516261710697228342353671521771014701495039553097347424666834143486839210675288255085874184795844057069467731293743844390773311501178640708551426028325569192680136792648463629055757367514578973460396628284221817631579765135475814435195560656802530303264771822960569602098378032129339722420964458141833245490538857703591508627470908213982105438265447209475720938663723134757234118087865925783028973975650980626402965030594879950575647096833106652734404703432221237258315616193204681212398265121648877397024491235373648504001974766424718457905077262188630840880118834755366404841640894160584583435292499196865003146670089208769429767674965019667702359669128545430937051200493812340807606961756070230774605321225431010177548309995597212532430444499337050716979838588154992293685382108701213235675097360558381045319348132148424219970535186354170600917061917035788652813088662621124067723633757937888321365014432226990207388730078757078456772976033043935137890778356425777497196865683720949954559843751179183522653912439442871813763068512355192447557783720409781481800555462410211414704892939273341996854396532876440434729245513767608117434421299355081903050587220169040449578336837666036007108149086962305057754785908485831301288097173120521722430872456176227504117796716598402034557703088914637748653319148126665309419695845384550222896062143208863911628543920616649573279716846574834147146179175204655480653328123704329417697318405993868253055199482674008430686465914951350499786472319324979370316958770166536636918759675012951044631427856781196253391474498372671265533744234548154097186723676861320967188305395608225769525158910651241449991852304510332007382579940392125150321216202073567877058333279893272497246653783762385633854268648654241957048533018217947612881149304519500072143902798232885449393252358009877096740820758216863779251068036240075507617539563770073669251247740387685044098616287101387262090217567441144816374264464638707519894231849021441805809346653141773065969711008425969145848666354933851278077713554781814289332413514360890902282002840377029249892622727055637939327417008991005221124829734363085258999769175363108096842491507420170152608258491013166524739944598509426520306426135073511401643051156524179742090477163422543026846833958472555890129447670620289431366737071764359386174006704371674028725935111061719557557748369848014361361568104332829952723955683104128893573232186242325777564553917082335982112831362296407368424876602587308725627327950336912662284816109676031697299344511559127320872462372316180852302130263478577052612472779579774892843772954443863624149338369756318768735455574379418872400366293092588969351011794463819200869090856986806885983741300049818504679856336873493638728528023683291307357744335318023439269217525182108101932753149706345102842144052550534403661916073777726151937872892630198126544884125205151846019476478827540849739788372321971103210466919993451800202895981297109251806717861366474123331018770949527927667748078039523526065771264040731174537372381448760758107415974487715386649198839884825756641231407288500339897666103906394008965133076441094765542606262505252350324014963805410224895378972226001270393694802436794423725928825158181552031619939475844150582396973536894988201174013495595226449359123767716999997179603964945420468720817262380602755553278169658381647527660529596275016987571758184817455958365962241538355853080271279840702042376197266458046466211413746269880988887684485892341188225564469787597104483983925283600925459551059227588643262917569958247594164798386443595369715971814654322128271470819373222130637298737087125782170174126457087745577767908441984509305311295564631832810373698966168520857049736225382951488040651929212635461957957411357078334970693474338194069271892874894213813972036902951263626886509610177090416250335663211380140101654065947989004658103395258279147688448414276431829444514656260972490895530927861587261830769942634791810805262699887690140538549915518693306105213603434453543107566186614561754955208032978984503495896132404344261178947875110302736678466808646166516090998125918067373049874546457285982741188722380011548833072451687558395381531485745129958224933673891370497994830044359250804396316613141363877010623564377807853226013591578444382574103177423016319756249496495341958502951857158067665846863482908360368836724128805660930771010404028336573203404052898662493306893874242142359015805228322743172815506462975269190194652229924374863379612645832550393298289794399628943248288289287440681031633628555863958862293561628296569570981426504718603584481917890156732089083967866637338398761297585257677138342801944250493580685031717610245215130563980447006846693049335080210627051135436465131357838213183505968753196587068806931807969359630280136659956397899939722196699035561533418683341629669869925076503246559249932673373703792662459527666908022621330746316357660556413877737725510420461352800601745209129704833711771733549786933880088290294441338253214303036858665071480793563027738410324897745739763862541223085325748278728246976007217426361730196583223633574188889317815483591686263681986761176624108300281204165450706797478373861648674549872303703726296258414236829371300938784709590548062980476246480495193232055595846228782763211913980240661157533534602637681779184701477568294859590141650522761740025825327420612273806883590563644274887124278496016528137427498431229509413229662459694777725878278409316730368019202902565710747334570551806237367061037420249492108269060986581735942552735144298286003004702926922744622283911936060489202029971911184811904064057972973560935853735570003882531963626810158787926938228274946639022918323405066367974920130085753889476456521355699247197043216617151235234231527469877713388060069228100625979234771203189522033746339505286756299903781323451431348509871271333490870123502733457749374302491286149854468738015542862312948437022146102055383098242018266206064138843306155065344833781075486157920501874837374260593841430848273087190657173036318209200654240095542075645775845588683708690955835102915463963560451344261195271769744667582918135054684641152060279844056013317873105924540921922407743212416690817410650468472029926271233314123647557408677137179545192660158969299593513863677328620838310357001575428354218244943757180143714429125508114207848130171673680211634430070573541287148003905315656412934944691972642506709952386249975962895125345562806921628218789407115206928402156677521381836632909437220751128439610891907197770302932928888207782959785140235668645978204775950736593391812879460198109769397425647035464581608099753300790044919358188973942362504654155242021199763991950139947625952753197409500469212485149526217913489100388050483692031568200759094355808352068792048642959414484858547662967629223116154680554442528674542415898716238736250519912133835686168465792882557686955956350714513286960289327122479398949598797814207172374699211985623780000252081277204269614236845331383339023473534213720634954685991486925811259311718228752545322053162379942057145058926422440202711209018899211487597244969746826711332537857346347778825303595077607021363092404097086473596861841365361939095788577657557336653864717708887650445902231784890309822168262977763740352611394738692161304433051387879824531400368801427264893893334806884493947275196270045524990239493154503512782196394984526879821241764559853315876761498757315338051975031677609028154665576331136858032995440583385786342602730622415232074118739032156248291247145111053225622511559496877151335000868517393581798191117609042930837439760906098428711458678961003993480691224431942440724679076214364367538405714236803982668890201592740036136448648753238455718576624605741127908746055992885405852400198967705517579175852297971211199087142611649688291593290904363512315291157485898631977804940814017040567049768760373560587262225138412449034262757206352284777430287398342197570994068357184291782196115054297561382912623448561414490628711347531718152879872821746880085081360684961206194290359528035191340140955071307986181804630953683030820674330479964759414286610335381169966683755497982909287412953000903658743317273742543807466482528685205003733791021684099860216867458293424728864891264808198958966407559734331780430656884147971934994331299866178722171607791307115865785874724870476187796086882987446906572441721085139760357784875374665917380517910664527284677926426830489997864224108306477978552950965869503616500777052538596685356817394554755216978029203800484358999814085511727440290537993726494813384781727442107320127057766516885191800047648377679940104122083443765668179157797065791112401057626547117749837014579064379953557647845228966359338408449318318095689076655707800767054387164963867158368024154361661241027183749631326540754334795231546043659496675966623151495633248504679335444689946670340541157224309965161463540866154532335985303039530083666023231311273160619581543657056956425265698907984754453240657031726163607390460897188631275415068246307052231137009091598687092722735231218035628506765345356284039140741584094942815355587220956137431798675933535326539629074281299178222076701276339489370112069961382525312737541880285468875535538077523337160360348599134146514090960193972297461231265101996539149166716209719891535370958242879371289554356783902611046169359156607680646033004335606202319030456320501613058095168672398159005662611954698084333215116717299196427731270657142913496429203906644283234530372140868472861270242658904734629678684057725594556740637783858545590918762018260354258247782314859983274412830535429034202921351479436154212204389402188770868996989887941397065377187903625400965582314336800138865680860798756872346453069877756474385735916308603960394833578323460996086540106819204698959857072603133250203809258834305611865809395061748387350237822572775203320418259427806210945658110412279707422980094202424173801011784784436726398121627504798094938257747325119256698878586361905325098399488827687401428372980752154046291458171413231327681846115253409047166998648611235213644019307368624448055987604931233403488680572836049614219084181336317437388102436255088560145527652653132364477739298092744111184552642739787595052642490795755573484246463304670201024988454291111961022938977519006885975867689966449219135501556727017318805300970229786172824749798218621355980684884713823109068415293634911808393338615199738282137315779205052555196859561495517763893319422880805648873163659431646831266056808615159327222723607429562662989594281769446914309754788214220236474540259652452355394792533852930719779833067776287346756678326044795581495275338579942838333177400464807893886597873917560803517291564127327887481764156202671387278115508620683140842127206982026800579140123632851831306666980318549815234947598124314299700591721744623657076313113254103890953623099760190796638521460024727485693403605095163984357905114127131271567327648072329869843026371937798388593040955037528209861430269550929970386945481457024584399857786299074976681348162582790320743920745275150052537611271273864974441740389200046743383276701279006911207975892557346654858252753571930921645994631486990833933147030712120279284835577451425751230114703730493954638508787103177864272818478653681445676872722382951473390591616046620273138483318046923876505591173319015255230098223315114429643038230947043696162708267277852719529289984730991895848551781451778040542651427813048387505539268935185265095262967342400115013106383890594201576037814201537992819169349894629835852467347543535073117296175857063044225543920327558727701432319269850775596550280789228679012876641329208620462251235448675763200349694541570848315592671202577017800625712774008044036302765473860666758522599888844676702989085954885485652086043724239152834173610541928526352925447560262815525228014021720813969723791141699964334860155274528392935962503506310511439449761526250306540046808102993418414064414779260420513186880067114018782863586302909907544693473850261315232291812313255382205659363597779869157366227553686970034256692020750785346528742074219146385725604923786294644312630685482694720323557921692395795989443409715366578465280610117639530627259835465548622490836854920591550688558955422125503648679728596118563025934317332409113658100456714797836152207242121155402244797952969967301946345063497484083919715859803712110418682147963217751245320531117064540352815150272751047600492184446914346945132516868850379083258663348994290468808005336600539770433551530190408275273400297565722792683683640582612483324624252732244899423241222109846118030601549329828065256285935750432032583972248199391603466456186059382649466058638502311547971170052018271596356438567044260430212164253628316811664407202045817429495919461497336904921289152291033697964281921410642109779472113922650403415603521629745400817217225544598751647038156689123407611710950032609931431503058685020770324489623970274362143127656996672233825118779716055332011052079110222739757577206813785179401876007208689190267907123152790037364784011717692591901067158599067914569632621650397357450278403434134847318610574107287274477208022131013739841375291780593917460400556624730791191372963410984131068852018074876369013301498219969260044955127369255488539333726388794748573735400264664188828960888847943615625747152767778706988573032898020055490367903872907877560464011101873234321699933908857977383908516792357836444957177939075801540628950817766344688093154613058190466891097724132476559886020320493082990139078131721762224499131218355357345964368938842837844025794528688793403210371108642496877072930014827165976162372593391916957664799361795040434100529424256148357900564367724464987784017070804052277040259311775283301104870647636680769879575239711270712569366965183393882613477509632900448305234024543003868198981144086661823973037638214703132585811320292212563705650901864326418902236842706510891118357536314317965000275963654523019559377468431169188881532831838609368248711992906015994425374012133553042431280340057064150347357467333428110997875351153265692566787430947773598803041166888629473078323160068273320398174646449865143093331171081416286180889802729403272424983921826403686901118330068240090075164200934315629717323384425451757645730341142210010602741817258991709196141184131103625555288373050138833892815631648594043426451072177655336209206231745381597810394253017420535992304431627101846127234696095910447671875232305816019589219674902666447060753312481782066280935256526242761760250731255633728934562624431683967242153883291637339552291348341262545822030500617985752138824687190278012494836222398058141782632685422647400124773408520231230259800799666537068961268182434889136157891439978835472435902046070566716364394017040735260230026845506834393553649874790275211744600223677545302343548826466843226026044128829188141359325407376261399839247004028438351732383812291262795422204708172080969457613228380247629527023896651420366115229565136067729291895166946117482241643898818946647840001841013320663306327027716962241972227031269088820586169639783082216068631580190483327381945030545556028094874703611243913515884860216099494807268848202822568836360023225841141416314596141060496572888496231749226157192240154565033978112001955727740234886763603458854087947749252144679830698096343534783545122240407328424158017651784304484241846945832824552551376502955885567128742542463562225989486222402740985743387880638710288429720217947402652391982064729785408880839819158839521186125538983615282405621522300968009500461923331272691114785910637638100740710661672223557091202276219721642968794558217434534239290856879967108886769880745076455013668164822558370505133851018493151719698892296530806146335110708222900656474781549917458150860401179654703063157018741248007175860185477585160507549105717386159178357602299074306576993094018990023690031829889541818883051289502294620488545552959609709063661227769092375693587681084498201159080567346184046302193041395087504530533671742479371936949054116376668735691259836691725156276178244700824848071580168776615301213149209783171324229262148652146220100570212629378374023270023149112511703123227622327814119822730797149627049164968480733461737839215055083380084731208402522282153680197956129408354085221466655486541176813777638843388190072466742085085668246844708619388864519902784610228557881605389299647892486323543710429562467756490725881970437123043472288899701331986268083681566979653999764054793862979009274977668092366787646482539741954566344490163921432029668823402736155797974105648194477651457033766608477355847162549341932952028906720498542330203006065692338634636126054693637417827076401475626271602868696403510093584407836337446591110556821640083006533016600865862751100556517694035678528276295034844580880748710098466485637845606795702589751146866853086866170884068771298999302073575042625751692665086839523120707607582990642824764434445003580975292860287431632812659806441609141589498315419191421072155446759487044319312894269817739487269605432204523509608096771232316844107288654521198048937147658717253673808914746308147285366364233708626853411435608455710111916495802702985538199815285014313195706493553351295149144184185986210779488953005429084648337015811231731069486669507003526168997284254250772285252187607576750083139670437428410690148394387360356024556914495391887934803271667166137401684285533273402338517011732323683325959558508921047174793792479157956446019495368384828004216451753508261372855676972017111053684172918908166895176701637147152163355557781161674526280966237932798230627505172496138069918095597965318131871033573116771154170966450778497800854318340633419140191313064657585508774228138131734738677901726741203942932803441604113222207466135148165507321199281113987564400030573876622892074767873929117372978379450000645551717301321136661479710012209376433691372717859317474860594385950168492030951278510141050466267156472484570085759141540071612866206784220849388593908259870141729834091310815189048304997560916704533672119768222333207962127543708280076696423747820149956525183887429547620678378158301239156849686037283026926193174690101931862202296121974170931893339741216192523154294667376684226148620818437010173632495966809204710832590232164000559690047175437204321354618231638137100739167482820684219398796355095889183808751099364062060779638759235938303310006137309064441491398014664940985657663327944918974393372174248494192189077446896583016367116236345766943786810653747586607896841614826906027270669829998165927286766700951871164000355270221121312265607464998831923297679038578307514356613964891212029453180945688535246430486147273027000065814301223019271479119700184373654870364945718372158540241456499970354254200808980288855184692378438247576000166716706875632379281505429077444070507914341098012429550442903978940236701252283780150319802332470247657236591803297416553361345248489924023248096756933125696708982157491878674840392591967724618405882973942305702022254474846616888693949578367047791960113060884551422861435530475996753375944345252385326600719149516765732149564158206876739218844690138862449089022155625403588375985197375791933119292775470524207720595294014751291684406858417231547378732760575331675320499438497735619214496144470570522848726927363388563792155888736863287159658930489750661142443945894643262852220551055509831779778279249854637585390658851307124930736510522946965449705903816460187845020057847516867725073672112227145249798876597419319586731993266559961176678670555385047029186584481636499952090256637291123364957008968538393909111499975356518653050769115554733224272822564463952022773555555106205001899074118194902009063037649182544605438832164882076259599374204317514322701465740005054469006591336740768683464810540855442285920885573686770916796258602605384032603717034451499639755665308204361417201903647810966060139377254244633264988658994017448426446952908030657621999702245864331732984750550349771090747783566421152682599485624699584327386143399468003057192769172858650924099348775317858040746246957647547176903498779202371838862300470418048738910362990408039496439759179719577708991625358460628283691529264710043557553329760711827635595437196978985129107946003773713864008146904823028956181113703076373389023215699614883971468114353504369302027828093745482787182771907774489792085626030355406068883831617802278760802014020988376173792176274103263741764017109903698810324547590718839978000718795441620095345580051327828007940896914258691918940039947927619761058791224449619829048154271260258815275565178892996064580857860942207844099720068153871913509499405340371042888417039114725015687438072590115183037884855940214591830906953935683659992041161825807946296224599068738520001951725744512253534611670159135519999379445936251902665552163473741301983504639252359217738138290995313582988371587730180052013553997963866302209418014157103010339423825035068448920722606230325161583931555045326370859534815005966509118250561973673166437607672811632016549177650195432053685162302312335807556023622601760711549704442668603913950270651181088162604199517472252803295587763117252102125779366901765993180812318291870805806170459287567076547586212617324992249516408856794351064115165776768017774061717686500413335337582883147151376767646480547926371308442305005103792888661933682527552100412266227514910093132130751026402588361996560367596589415890338194007691393677700157523504565848983050785296044365141306111595344854946334628657657394022062949036886596722877797236764093697459564982839238188641305486629827695280045879503692867069401251350097217200778732699073265974403683058741851379239284211748547454940172705696533170690957427842783303642165545754168217285482944269638257058058571934581683108150997485689640163841441847464872655144520965929102462063972557222732062817986589022822141852677263994259179309194086756682348929187976351130723385374331345642971855761820470581775205327928522561213908973297632734287679557979321596547948590693553059944628928628113174147491562890375908089283544139490971430989489522211069975586753563734940228718836225569803927014221995234011725333555813033750474452749874053341299589681871797247887657424046786103203575052165444367286986086241977361286837504436103778829573597948637508281597716045118016400733990012993670147611617737708390307748279127457703644053668326888017799483117727027717913684333551744671377079257244855907007483140508541834877126392886627566747109774526348550149577687242471724484572559024041657437425806927400330907448647568980950099602455788270507133398660454122928481546294966169429431125337478246167632530946762522551973224904797041416819529807848866348444635522266516346363975468557498099136884818275900515627724277303585848612559560163231917505940318716856406990562246357471363165092138565191773936263871395078895361871826126922866654830405077149651467470136953607975753999043480855000828073592952205223088694782921363049613124037423013833109597012128131430535177661847555082157601190745540185091766880778695314419900131736765571293752802424586868201580727757595515195584899466832552952438338848044305093899754736279559197195035659086663441846033931256066208260011525135518106072749975006795240318743711632969132813922852640514970412636072496469812513257326753524026952725484466086583343542981254087382747693189562341380917220845285655083030456817125008199042752656278950421399064900662159340591139365402763040330937494951971726935327783063051419169222843517161452472426805356284115060063190660167995236253968795799427832190919585415566159775807535290276980588498735306685367945175592736321671170736643318088773015295586339251226089435737341851427768964964503670918138803045270234803824548980727315029118798932649009889635792863411543961102219790078970453559911895198989815286899544526644333678281827268326022550291037361365510663500244868402330348497053188670025625678458298228951055342746590496781362492830216959875173724871004747501981865353280907570157591740973215182308703994729247452197451943374576078736459448763059138376380616102530400234065223645321243909084863369895406690931378941089020067404335765071457612871647246172023929581810256422682140205450447800451533387324923073097099812706167703605963785512274206896022222147270056516360977987359867080900859911903666835672334568102601620036966442024083722345614290738296537257490799538947262243215902616883205372380601144190535059819543137905721922375787326995734989433689341419442586881413400531895110997961303566645507541806005686330464107694525837010479378079673104147106512996960407591381445023656206254655211763574595298922009688621696712019407040413009906705352654359280989863337916686951765160021857420860671309089423289767694424863522255627942576059002905315004860806478272113361342709573108855823294193436465034557312208195959326750325450184188054619081401581939598574642630221579834071147988918977633194739425052130901230017859405323992405023267169445377252772590959836648385579381581061296207157531056250737749875561938240857920687551260245828796200354543182389546150921687475820405351406105047559696749388014406846052526165522345434053176037077795306833683813493100642005167100324582526371673108294016741530451465441363989930895047486192852036155695043389160267079737722395326387137133635422227726603809325808535345652363599738315490227655007680086456047209977507009268628346773444334921094139911838134879397082487263068284833605849596639561829651188368754496125782097889536557916865698787828445349112009402357839430738384394126441531876834300638864520063154697163896987662132804782125979516312256600571982961054224956896062978979808155147638824775205530270766944317022776260264163868456273607234806988462511014575730993392340134504412572685561959582265987419892093047780126596420711322920861600082792811271743134559203648124802902840391470374145744089218180760948733626560525399222971465468552283312276051455754877740255937063856914598998552701592274100536606259297229586425359048959604864842513919015615087099592052835127170020311221759301041879981955503227871457456554346076068993432177217692834628261873693116983891815198111891028678587482870118136890648577483498474542622308308906869303427332113069326743404715037341464394466685747352657540763803681450745713102865976998533172462417529617780559939435869972542594424589470989881538922501471994710373387311558210395908025140106732716262447840007980803074441249739879790676022157634307309293272063645223571464950581009281733629967540189983045734373840999276835777376430213714903533499690729053056554942889306877686408184879944101583113684275102972596858121992940549070940188715392348342087055812355506409309709489244214589821116711126915924223592598255428969454630334325754881277259190572393082046035527321490413556892157509612986103878314558504192830208211375842587822334599660651080852986870677850948602431485128187449060736763649107062288679971596428595073900847305516283695947715589173261991824366968092847957754186189544276698434671557698188175994390083295340098178561589156057111107839389247473103824668466030323393980142637468915781216358204399499121968711837041471744459375318852719154234665685061341603690209663989588503732926365678071822518958720830018091062905530710566797960780532870058382560065003870233338402712011513621443857201301064915975663767015701404624929884638414759911141733816158330089244959737497992155293560088489282140613560160547673100002550758108143798752545184457244353942163055341349207581854917160927255213552468234266941639863749110272893442950967729547021521927227391802322584029728213094705069420420996804431940902295621721287873576981750022075914931372034244844069228647755442713538469455732693350353725169385839832540774194203627713818088096600032883884664105064475767745600117269059645212352719367189016141467067220618333196802000601576069254540562364393589981558951696433450818649706384775544308598217233401887302333329705504422600245776653692006217594796205734003536059606347591840355505072466114454979357660135096116320482459126694111846234343467511435235183029910061304867234219496929341990256522555611871969798784169526892116323023682344168111915232668980568438875695039158706360378162516521722448436432083957449836810152702442236011274705320331943365390560645669274357232678157690166274605752013591196172257471382564248434275376210532535470990296737939450527703287772965510863720365311876043730057592935562400735291374545550200036101731331057637395017284152238655252581222288852763729224371402624557500289965483002180713349218410194587491873978839872718219658510298848636340472493906803578462057574207719916838999630484815851468289594487143385415751856289432489304771099846492540079499040697145104863005713202255578935725362338615981438924287828659908152750609839995011440183135938946069572070655674668304804143252331509156925875904530889471334142746949999406640752448484302210504019172139200572290047173677458478938948772795760532355980775290103549799396459722854550908573054431810100213821582749641247189574665711609059577595535861600762845012144659556690945188698543298176348770940569338312092703709229752601504944295703075538206720246710990461880745691873517624011038547770882391962598321729110152891929437702875619931051559512070496662242817042126658002290099789877316149087823390101161101634190322723753252577138324482583947820128344184402975077465761732756847655620984607098577979137214551446902815877699514452742062541909662249743914274969827013630806743279058113219428939141256970344978067888463351207810793291627504731375731217478612258149078794427286987550943977057125323555676803818755123457153864013118495127401466706323791830428044685534040434353103618104444963950122018722664744510781398922165554829716083776903766593199436444625452743955952735638175146794642047046084205563271824714685733019134396987667371268321185306170805128358113132322716843815094438035815006155909933117468223737025731074603728813627843656265341423290407114823201899458216667175398889514662024010211143457461535840433255918994715164678363505335493989559858642308444264334593538722413043364795761830369391824307750674881149597630852761295029066721624335812826454711945013600247628682640100137924550832302516433524582052165272508674242567563412990181696786072024236730224203068995193929316693765678094824389855757156223795757682538279878872680513410759170493342983902007913686729533502629059607118860577005651436126006112061713093354124001042555652559856648742889006991015431824482942900053899931369462477948563779523376394959919791328121886728431151964088277226221438800333342387959173835638397079930503063000557501268948110066654939156771278838611285527679533699627079319093309029513644681164227613356203307223647270471274091133177711161127654985254648821906840407569899990210216330694263518734698391812240292558810098110899472828722306778409104518772363166618386843702390262417817554964975063190073519819303108126041790715371603936129428197409340553955019419215566249952235445857177461720480438474137563797443538501013829782309290599972897046544120162962143429362514620617061887599143554414333611983976829689135022690103165081160238074009948714118222998700177743510884602529881084574461548171297786242438102085016075090030230775093617938140370726009341946135472360468626547188230260007755043177653649424485898241835312157163646007167677683080706915643029345246480471175308785265729275350780147421707669033081965541873766442421647302343634063797935492032278032399743430437905404820498468061929354274127928769383386357808028996271495004646903725598527155695032303685778925612241288622034365919398687696954471372702812784011431974096963251771444150438529454148570471514335756419984219253685953809875409358024340141856034597433268617740038962354141357974795071999275437389579290616281703605540208585260441340665471292866757463207482110405755198729824064415152355704981817545842839425273338319892409201297116839867092901209081921372584670368555644416160980318740875858404718973582124337159666495879552101052887866898541480862312375536561042928618779318587684351286095888770480890406926670972701543040007262207153083552607033571638385945871009993363369558045198556880024366239991508966941357835595916462632392792009264324710002569297363332707785453045753553054908186371685600060122719638562888929245820627091707386635389028158122239537958220371661189134395049937640265180341408680148541797187339498618065630798233583403391947346614177876313084385412587847536125043043702546602341063433178017394543493715876162814468159586211268378745230235314500920643925633513954949796953775134797446972929642100485452325406441790050098072241607928068044902986235662859211986514434815255126789063884218475286676502453291334502047765158037399251896504536849548624133177664356341550789283498959787885994191888693213314334285600950447129083814319236847360694894214516408716067811352354295834783346079428214873677542312137834515475882124818325915119032284389703700986705677742214860317686032014207895606195609591955970020294543025428364915998002588524654393226057958574150016230345616271494294554824076315075079944055428792518257723519874642314410379239478768750319398823547279942350748519262440604778078854787268353988168302445285067475839370042687479716612179084464815823967834209490621015850784274264318990508589622383012197470861924039070428557988492265589015076665888481247724065821570196858013529391806527885594073296557987277726901277356664115823990283206647699699684843944075716605979895680781860463593681056766125412336001406339579915997981074698951930995851585139810434287493472655080048420175638072317066112296350160457743443741366396736521839631653199523520239725862019782223648903371881807036124876276847920463728336801775608598541596276997418391979359872875082823450037964537906382567487276157719056061909902607286975861219263882470831442701082388118389336228032159074327477070108777520374239192189794118867339926472572145472159068329608833417284169615445623820878118013506270205338186491625081095837532626844538222111625741278588830713420805662271271654640669929307341623447880081080154517956407043883922196678517817128928700712607628315966784250402422489173683437976106050270356894706199635212543973483320332794345014571495568160227920847301286338809088740964264636042363962265415532578329547763606150186175077367517640482682324255023489183877073706744631553687145352767422989545381261781239755329974930606201330483410804372724808548282674484420461910604526460982466561015584782805554615635027257209612412766414067392153970206234474072880906270039396639350554417198325236456594083310559618437477622117693179042461470058953201265331813722532136119217176978250454234812350311988880698948356368181941512251124075845537330861321600025646160247016741085059634948509613872366114315739960820023854716314703238574400056285541028280857969126704403319623081114229445355429814617492379820957690976931030878667262717360650160509757303039275257052284717925874640528212309750704699779773055384277370568693262081828449897312567554429558026990247649916307491610469738084418595123400874011079152199067165994901917817976712725003986403295517757568547362043683264775753956827792960308591050991911575315055982248403583448709434422976722592011611798071447721867496883414471439264132080029470421153912809756086489298589582097096888624180596849788252955362431883716672521040582790133590267060441479357180313307287683278418712021630214205592791067951205844581532380083536577986839442103808837273265996979610495683729806407021955175783450838770799705665047339688596234227053922533773440605627642938364764508036552186500958476117054579243312559777692060451331217862296937803253658249748239001706861143599010319103349544724288494867701346995164483518697190378841972603735280489788465448302128373955763411926776714278439969594159929108362868822524987910529061859709539451558083402677787726809570636261190858425331580490378607297415492180109351935759958632065760963167957093819016140295624960169187525352231647954187131180722419322853412218025593872178163973692369585386240048777379517558524172619467515413441051470272824968280515622645397768079271001509393346716114146137614260617005282442436960103437792311042288616568645763747668869940296062502960451834589391453060484919978890283632401631102122337830944934713330722112906378906746963495847607591054716945260553908327115468643069347099315126848172901382608351442450747640443627399632118962668042494369882781633904738143240325868885008843748021182423146967537300768184313355452202132790999089351565894942637842533536835724493339224033431011571013074872857351827347656153653021355961770626852476642280002121424126611566447683461756405255653803249189413938810309710363647075257735743022441328288735685872619646582313411421467610169404580405999802469219699983350736047932268021056590488822959993892973329088930468722186663837506435328934304188418761956952460496351626761472783026789270065369777549886866269701183498556756816257563880113586624087097576378093123007315004579009512445509091119895930133577530542595257666712759195271839018610039610310418072124886285925700736844645403735622499957979914667315936674639946661725306216206184763688583893136787011978722791208198305189907354173380265564410644768746038326922807694684333507480806676687479849872590697951387410496781479912891877996054222790717720474969421140844964162448501807457350109820424356975826441796725856761362595707511297023053272800156360209109936973590496840484115738347643813815269109126613067374341001165214271414724064262336822195975624834143921266690032113985929979363588731612462223172266025592568846174442535806383965991595972709282757535908716736795765605559550784133697917953006765317180783992662606766785150445866940967627297731476188470904911085951259462184636063301625258581847532761180310386556549369861685684780158404861020438787300051972015640944219606744527997171959910005424661026005656375922434160182615173467902980813097625427516431565375547412227512263686521228199612969748204428135674530778917191997251072346383445893359353492760017799851091825990708144403270112210528990583823739723098527282124637325601963478571597417144634985235035010894520488044100365189415715286606653307456231514518842779270243134412636803767621406296141610356323934725899271220599171986803046970512940927751783896319732813344655523035510335040052302813086813420281803086570056798735993677964728161680528921440026734620475372202971269417683153676523175509563010330583278643894361920292559151300351644541058258305894931588698558036199167194153985263866976849889076174048829079364168832368203784801899335915917656331460610600336342749332285930166527402714066143250825273314595951255672788767885827495220850524419850414756415776605245497349834256147052150978423868838079545438830602974300857987644464331036564574392141394594038531911314516420894418189856816047720982291535447379683172418124064597228424692941872161565181847363715961960680646599042335780924193223806703917878723256064930846645434871172249845957881937442574077668959674571315229263112462701930587919709816741933040389239837221045891725126911426584695907949958063034906926325949633899468620633097469994864163541476942987915261483785719133693124602346691978965749064698453273137699141636568120891194340384988464122531956601555412133940276507322240303929351457872315143829544449057249366410749679184293819656494721443947589582818990275064160304614215776079419442162624824750899267548130296453618195857554248428705025324308633580483965701302751678780837055017543592020867945763717169591926900859150193810567725673586869439391219040796375039529361513982374306645453710539241591133717238809915752743601086449497094417731019419582739777242920000134329923447029201568501415271617998061542377850770218084627497518427942576299134277643841193993084692998024974520039391354530268482004805137684089939543994061485853709228556024465430386241277758745779120200647355223450295798567921853501737054208408082059845265353505951584395429958297234731204964750887280274060623211113387493798362039545143692096788111113840480493697493442081881876603265146838294227621175167910354623516542552324817167213046018204575903132503715415280619146348690667008798865852527923937185547684964154470897722102845002581468940979065457534504854058564917425218485777928914460170733744649290421015248535529785247805906073929118293228141993804252921220882766868122297951660721662088653566253344551569859119598260971327874056673115424037634790229289084557432490974311506929214925685573804605358322775277506355586853995851663403067453726890729387106464094374945379761435819041513646490363350804074698205439208976517331534385658733714969132184398311636101361892286669039957854251786902079065479198914977258962037496601800362564201267702335144555672836460318142006886129829252507102610908336200269024526410310571324950342005441294836453536939850386063866038708985825423978545581443406788226017340223266597325193352505046996104890717322436510731305956244304736076457785664889941398787741442228748208025966435218147352088944395057736442682812154069147606440110215594489943823482217062036590933681749619606503900489197989497291892702368805184076920978778037255868202530207264134319684017182779693693219449673371311159104770798262450817227381800300424494058869261528839917243047109294310093797882022096120821756812788163872846285326826849232962281679358504044734979615159755504717431391980488304126003229666961236422393747158664438484275054986880426051217137811061274581628137894575074403579824854267079714856155872812939630026515443486951008555102700904562342056942561533174593554499480848926976097687676478375935365785512130237698821078537048952023828825045430577429439026667243254528732870109287593476013972061646822231309733120352761246023496531448225917166315073029563500563891608863965884906568538274360863460168350498011297851456123695242481831538697237871031621054075140085186163053354941773769030181230707965434129327493172532964100420911887821878700811171602380353441252671900590066327541702803826937554178844275177303555063176012245169510982042577595619795849026582672213025534617987762962531266571364407317747084135572032225279493347905005552032400912693637568636378434239316666957381472937837392149102715366696663536796975583180294056305067955966149918898670001841363130135298824313133214440003766006980491661392263870887345402126486358699977771449282668172231737737002889224622213379911847624134194204093509869381651502334159546751067148597218770471051155121553798564261420749601764918974321930493525417308662424686362563709855103972761517860622519365312479363594829962367056482365407400473215116787579498776170571503805129511192785858054275164737453271720371908822507530398084629973254225067278818746288367668706937394952030401971457988920679054641042569334965973491310619486556191888265303195742903236324935054080411567475859668125003458094755850137762378673641039541998392762815141342963065847521426441687365989834102271069031470952959169025072903000973116416424140100753409642433519834378903916396945702544218198615950864685152425321946017559224949620382622503160751794693393824546452133692499059712763173355475774838304623000445158908564675406337264299864440578778841808311554549775112950949125178588328262168793945085369596191542136366343404939836665947776608656225428381202745527524952718607664960987819484595178806206154573524710034595002855709148235153107414256352226358058691475144919319639389881382714953828710420983272978651889026235718758914894495386027443089557196932045966667973390964178049250726770500301618374645434218400613220390147778029512516456824070889514060876804722756697662991173984090860301999685539898202222019271524805619759073504137149832067605885031158652754371362909268712967391275279956655527731249408840179007600901091365555121724934677542692060652804192461759237360886805028157932306438546642688689042944164906873130895218112751932616296960719329205039311767803987575168181652506114808927078576077791884975430486575177027643639524512577052703356026226324295564761650310491590019273543622420784505107710006418748944392629514694103863320884689804206021345949882518209076689411878160059213834080364320051333639084692845037175896885907941998628439158554690032027467502708584315078162028914146868058412637452730308553308173019593813667167848981963781254044615573319016404509908233224959589948797413287836421648886019641773891255958636464604726748159336521085116944047323718901637950584344245434742600005136984032336894177616105419367687338871376381127731865112365129757947421121860775426664886170729238370822395886602704080488731866100006626653884319368872922520462093733841307262551510273969533165418327987195855443619862947300968550041845928820584744795783778875420394419767700816047941126276237225516855438525210684328651514176248159981000806468099980642262514991345456299939544639632080347269490855767643912210687529408076641977451890296544835070299457590660506963601150235931288773327625549772196719960405009148711450834539286490012900194130811370468763296239929578760704827502361533707371854138224115253705682918510193538219278663827199403172960807101168162060746391677900603665505997205782874930021357489729625165791137797671705377216820446785079715703063364284947045641597254994399384984554743794188574057489420038687788855926760502730422789041105790354423213686187907663471503731802052046816140824035457149215118377316241115119747513481498784389773243412814001318077306188328098828705021636869868334794175831797184855663346388029101823595715274282455443073616589329231358151706761728964000161748137378089931977599594860411046658923242521279944266273461290976243110550802700754984817466085773951023286564919658990930475048217885267077373009037288930829415278914895086908816136724823049996235855595304321597281275184268445948367930536225678502344390406171809868318802114882703922823223446725838447903835355699423465407998054554372272333139338786068834258433523281917561805837348750859835512235432492969596557436439118731784620260156377156070008406666626325964838851275128074871536153121582110562248394779682739306601349755921062176347750431136968359747999633521361070962496546747981292901698207739986638906019501779960192127690318629555138152089014453421939974681381224448264479371173094731535126554484833185389064432268833692822446196933713542173790780515473635214764608310541602065611145609219029781967724768644425266189369102233055793668975926398855438357519320998046797106490295645982010798008099184674649793179474939710024276101211565476417470332167747791072091230731428619448295558407432641321251981745544294624912878687302601869049849373261591350625027542898593711128629086141513830272021394296381670085278698949331094769382696185599321124471539015159007595682904494579525601375240215717146335166254647554871388135691775121909323604708614522774506124102724593434213587714248209501191331323004774294958857951648684338900638787585980789564937806028567016039691316980090011433088236456970040304666733183188882730375831331820440211914855078653453664474030156237566686554511091438093053503367508954881563432669369677963731219252905449997065054882932025041134912422192826102306051325914507289374629574233174517046878074497100294601196492612235170796418331598905833701288789945783820698418823197241108642696934970974241430851615783034893099140716536880345571877600752020194140534323085113990865917878413078458616120977794316815733506189320025717896873877718286045765164045088565057130940749551048323691658019128179313831744543312497662430539219308575199171624982285583261769384787902917498684799745831757426905997753720136344446765991594973187461388960916866582768552880792333800972058591176099629314520131056801064397488566540005317366598070041234158496268111388239211984011057015353447471597501654211155799369449067144314462498913688711453470141334981758737115592943027755507548008171777428642566621956935505369328150490759702849604107893738745866518654983165800183439061400280286796290402706775591161141110134133940921768517840515565987928855016581951536541733548871797649527786642901556743087468079097327048577090004722730116693948603646421703244275762866165594386758501942418796770810897114187950670235647278008138218135978397514753726871869090121320950264585251367069511790986400782725341055546366779825073922542942300013652445545373365886745015068842908855701824418075863694160669138889886790271531335613526179681112717451348268774650480676105192964598504778316120231933255938544181559224402162778450126355806098525721986052323771658584250293064586682293070141938979028045791062793688165519311654264754924674902195807999182536558161270989170957714365553597305656838402822820838715897423445704029548496424615823709628253511182239604896463266055604954010451679597482268900714616052770792011545641325955048680755068714037959422391908186837980279129585121007332655210917774638202853357698188016350081079155035018436719179808843072147574176737389788780627005848829079004935626574518988559259903495912314371109205027143127668683360482395384395762121465212618877209875538760290411016399380304637568068516416206138422566844668067995696751157739807405632687315941523807931660887246488390286805470990172887454921594503301607422852891917279320655226731559340766464743996044868253749045936215753869091644015572233798203611317978579091325048255730293214124111492986541520386174337304341651950419979566498663847405401753261635004731172344529318681451304647190206169241413447520457105780696556265257330659522144563149750857624233200243558034344510987153044695182925207286267377565405090306338049632146556540046609543211672391062123137040714139916489099694985459751675026011091631829708369703996111796049823893750304099835268062684553770043486841407735278205300282159686937163024614941403557065693685580175409411737707833410512177932395026232098142604065302126415662838386369123933855951528409222512253795094172892692670816748236764555470021482698885371672605114460272127096079476993815772357591007083861131586438096490241229660548696324133376794380144927301016164326587478778615321801907496699337058341046095020631144066600580649313655919218243319677150754462975661020629368939994459027775020149090271547206404348012705017893658038653984301383213564636288594325000190098087787143876731112606912928519422936019272559960085264969493127220401000104586822056326429735229410863489517629018752067561884230011006741316815558237510169089798146225740876697812337556183569534933721757390826847460284964095831643853929034191032737138699517047986453687678207719892311309467408443240989957855273903844708035911969860186311031997720300361853174172001897749481920781536207386172836200245841403854077167653728212607566786580564046789303827411259656081010707484520074288506291871207802271208324619251382459411800882836136783632621315127284673242168851920958410472588991996247372167424234551927765805493307250468241635148396257401650756700097691095325321922611929737048250389141698096558563182853816686632255664663286242662208530852717499507018718359896843165893582593291427675252112769852484689397487378639432334504308818856263659795538246861951290665636426328471873125145359865847298102600075757593994182825347773290998340323136950270542395451685895933648059611313088824536287798400758530128565205229354897711462526931591845276598427903740729242391896610034936443042633520765370537036488468564400963179114412509410315288613809924161605547452104406705784831740159221658067639118404561267359933772527104930682124720516596792792203319025471806110544877616308232269107675683579684952022964955853406469532795785328788007589139079978068851605636384773208220714475436425799505472649804756458935192322250956930126807696695126182348013438236221803432166598884941247774713374406295506779733546487437331242971580414326720918086903403362550412737498891371941706787316830023010574047586622276386964194061934161471790163518808881810334423189326759715238009083534244397247289721069625112300294391408924171929241198915354505649115292528695346861817593735215095892931442016159603160375644234340589800910225792404820125207248133240099595835062293987710275203160953793436010178207929487752138402909453706402280302525191489740453488616374527608114093740784975302127839414104022825993577736494325016709502331569862757969957348963064856230085344694380860695580295463272966345489228785418095670264941719396056625378522906222757228675721419099134905651879397139342990711708244373306063848978019465798273522619617554248962933528754591269743436174612288126017989715585716961926224347345705962605840887751081880830899911181009794157798405025164552391609598628478592121672992824965919962893406078603292816505450688551326766232886598314689923133882461718353655623361912154605584671292331546794030090605545833422265158001085407460629863257810943747791172049048807486936878926858778812370139064654367190666736492027768760358903126720422671083237546984167448165239805592344657930101880330067049080732749628573230352434701660823799372425714312847488824051898173659927378365668675458857944033497054641067104342773786756003243943776564553355594833378833253605238687806215600589740144629166464920249694022887055754384607374384289649479739990706986577452443968201454857094989733182326312329060518982773958282324894253798316472342532948421839632572416343264792494837504574016811502870598290912542910260720022950086676535952132795026836538594913411025489635129905827460949003993355419045487725949193441860257186490324825677098865567759810434848500118780436313403749804008077910669259580972683346412270861883438905100148269692689568945566705224515849109603577660631615748352898417928608957089912815969213510128833056337235414206143397766478000321784983420031986167738655629131703567652820663103029232502746526602172901782957443723152538434832330630488349612210039700655122467984723298970161026474734200376673513954857082694782749478943279510377254331681955954217227095697646334056757216440572002456428278827641455735911593680247968465460082526296339760925333007902013063433942830821643442522623230475873198164708879493388548326745943994258413075376422752542838661597273366174795742416925685121738284861751101681259904721166475469773178410753413136972026019473110844258346846369080177194339608598514128656360164802964240935607565854047122617332120569643914748360567785252131713838191790975813182605296476060967864788661208204596249377189587285100388442760479481446555196782765851757716639755456689447602870081881924634398496622862951495574202926297313350061865641464013854940700605039562253278145889328739717053250329714099006453902082226221742591781255776714549750768386213627878968181321408833597167635170891670509216483238295655868135018479396337341439955381511242745608632709326661675583958339938057179222696397483772553297739600751681225220000510421063015921052150290743951716005443286081806585195395330148715261091015644980873121361079797641199744740727235113511264039785672397403412156093479373141971958896023466446592687194339548828421285266402463718032160289673290516095338354250388856415433218779506240221896627138629970090767839891999453521627498278617060563323708376998448036641558503756779689028624834130934418742301331095557498764539519483446633832835635939346239300065479551693649259008702286718163439083796693548716610830509684370324689560357946790443342850112283763454456797329748214292336288191779734816155979615177586882517566548461400315558252976890283019461762651824164525518947732994279535607635762530478396600716916167950038885006455589901001610982512033137966627451515937480263937866260375292737646058178268917459666681028180455558159065858032603473082453936208637115385833225861345206385344155342196243824945740586534144341785776901640868434933570085257138088457397270214203865991783840032372482282187094530432466694703929572240816462706362158057159371467635029467080602965609442109271736924236518494599326470122421323897916503886223419242995748654704880275122074146410751119724381153276238103022015725487144219932690963712772912053680771507549962090288107506638683248308995652855465490958601035766717891179707582556672534200291073419352753896787603455313696243851964861562646849228607346560684543022989834754267068417772103401614909361812232917254822512748541854912314261410968352210700899741447760692317789351669564885338064107155494100240207134353583523409282465403091505539818538775362349029892572688382567760157917688376437654041663375821716468259919165611711706988291746390896423728554721032576414942984490755189498836874295972173442906236443849041969130425079047000578187695265364179260068636869892261954184197769533514374560444913800837907828309535273897810868647874401832383002290144138338775693824210557163836280084699573109657237569063444140966009054146939283941947871296637809604230086305051492345808544104463881265689856016142243113590225233807273779657102052991555794684359280829618425704118088710835859150569950911121435651849757010485960993469515214094811546536051803392307830697893333662347538732722914817492483760479897014909415030139478755619139773826297193641149582852940356461022957505475073755899189035622523640479323403183983663753738961819257926410226546733709265513554450582023416673556691431803665705765865799474520398030672961818270054379586989918040594767813348610937726728980382512192484564446380876830271281729468769365239407561416892477668557125732624826607182921228859591668516783992514960772642773782247078899201904119161851240487276061662914326365432810656435637748100714987101011871404349392600471252877756503554838008979160737758981145898632943908066710231163217473387656604463365001906178169062785800438054838391827946806264051320429800925836421768942366223625250677558119731122971031169304163038463297371983111097133451657133913256414480356004729688343902462675729573366333563732917530761560314028499269755956891047172088439181889016238541728892489353221359762847405575235108838914363276173219619784569441188288305886670796642911636799801406945866971135358114996271882788567439822383068091126822184729002119506265549052884760821889915119512669777790501629316280466333286658134611900487491932143282730479475670854110710284359953584126076597938323529370598338717658016384505629469647368183921282494063945971117468084147834421028375405526855499638931516065672081339796415836876825432290414612912565052251563138915998720681662459534527068287227645246485719058102642323586700179666267827930786849476300386064014427363211447521270747200031089634491120374911666573715746124883797109694764048142268327897147047393025401589892795102593142704580396698996506893075969549818477110115880170535845480266026817042429921220280128655815091236801385379299753782947898770894742045098811927100206093685918997277271510457830164160429083882472562005346581160773551676089443522602312783401450054839206704500938968068041456276908111053950025069691188261827917416888989131086024726040725521446985546970989551358177176424141111567975931427906062044363351432782295431872171586627472214062262440229966687527153955903014285013446647667187194443365040250043579738069419891151549227239451952193778188012814591592353706907229594062054852321655864311658324848444857118803691859415485956266205826146274261935698652065486659200265186857598786317051269575071709314570986525353269821384829562439018305649528580240749166381294675874189358046371850799804866842561731278398065083894938576166409021406054194718513912300303416491975408333307873031307021934809193558082881293363527733406517422997356913965164864654939455601620813059591564653396489549493984794763556848885164144645766642522768934779396890286915794411418181807660213073100019342767020421145986399460634240501375761450617201365767639513809681260310429302976699694767324459813306033935587721473394764639514384114671002920016805725926363126974319358522938421398381259947743923474641847291777142308192401984563993125164530166245312594495885468367326262494441703051271269799722444716353677911364067939514807625827910814828860379241453266994519481257568479662865696404684654625315694510866319082719751376538591140092397933335115019690229212112767698913957758822179552567298179726177157311380823412025946551563170296999938178073246198729659019268737024622695625660252290566145508216760084003192065528776253699833156616986701971871672359230425394887029942916431580806325315889875950565993985272068396335881375781524789024578873542235220719349434922875065897889461362818601674983771225051542304030823274431138638959426317215230676526512966721688098786737325437130311811446243931653129340031310599282262234134575266534197131658148651067897530181539307512577825327699117464054028531395931134379127195854075419656151397815319043501822390680927268105652165638337627454012401875078637468126626005086918903053453695364403396646872481965371953266393043615797739366291517558236718684459593270155389235684399633144424284560945101063828863794417871713092598303631827886342505199905743698451156287242478315739278050741309838448502901279777250907791015305750367772459778679923421009094151719005129413130982930463807419475989314685214527906169155420662956442296965778743184941609699941453618815607690596630169391377689654684538631832922700643244989037235876812570832503555452587449610412576233321071465593602785927971195336184877130890956296539988279230795699701500883489818441325538857863158292281323136287776228868103192598103722243916866916069528900301806747361885400218710767611147313836755093030362548615406551072453280165459141834061019635847858173855237034954596430233659716941397009294719459610012489893533678980031564584307567864391624486522642362340164637637253532912690412143703432059506485207723142218807458557260082622456048617091502127257277377843506519632122524905689611950346454687919131914864060480088702941219010627521004060318271798620652065674060613943152240071741410029029559553312364446990714866503437506294506290415620455448959253943715943162364199115086973065886971324289093885369091431821440242991408278779501614536909225481789673499067777293821559098922602700806146219440127760129726128595407642187715371257116691209495764691241036660542557441160084047405190305005105893475559130125650297093263520823577057989679488863313094652898882323395194180472195189322942849536737149699365460041639439774510660678864503009173193638220536520062957128716898079521160591407523097509636356724176839621471642232597940149445087763231050723814754585840067561279295148985375811803795355924068288784126361983814869264159502464803963557683007884526703471634759461749479217856424958588416005133184214745175073743316406016364823302806713604912138427952957092709725011137854109378133201076538599215242470739578812861662698106598169096067210940322056401913289393327055268270551194407662176497780959776773059516587850418928011245536854024372036171542402330869935149877870060845771942885864471451169707843308206584421597645677017263649016683372066391101088428728470699248954900621107852841699007251271283862217734286740427920287506352585625782006692030738284787704418222940930412885555494632441456359175586970583713130560238191470056942093217699396671740306057570810269151809507580440373266471208606772614810329537297595526337225506162423865260326053150663339165841051893724312057491536627399101206092569694219663439057597908628995057448354396457481466527438793427426319772106020093245889956755158443703240812434990910333713129775640660773783105089287684025004296136054903990286109108574846902696543209678403984372176408217480112788320608467913660957025339240091269178401447030109458257987072392277932697978553306223663412254014561996605307272723801269281269382437787314127376203134737742410755833556531427283629499702695947708056606651430207259987918368864827384846159489054352527397751012262267226326111511687803100110287817834220699905150155067769547550564659022070784915098538502636167947300672782387037653201207033438139896945293362100451372236678617425258512071896498158701622690700235929123412434242593898385658273378688154227622451981488970942842029618511648220878630487978299564232503189681416766947273723658975973853224393016232488171339349701394660603748720852779241842651258021967910209064759871579884013820601017742348770959771623462110915835105731533972210950562173083818853998454464273668915232100051595847205888591126753550360334098760951827772346861496279989707077316329502538575559023788230911222854889731825068585707063515368713993571408013977205476048902557962939073798751969988146532846626715644594209644111577865986826109967900431213411782239590222496618954639854089313106530195248392452773002211233246731454713127889477901086097389245632622466742911037547697816895883326911120449995796221310193694080674477929147792646929207612901657417147116209757372995099010150710781222300485595453572866720322321117067634666347559566020312125442541117432891207046196870551457794236864562468540940213300249692776597746883800130594436160107895489411003477141464340123979738536099168566984687933799873831180927448450610961752620459116567763094301851412216900962199708372371848813701270232900063062256075884365940307398365777341695462242427441134823807303128980790087094632260020287890414085272796933395219621474268233753950746395092507767570287019602865690000237403627771422756862216583152239568171168730792324568651561671398727963779736344789905933697420766399313931429903174262558476900974354096547749202933561807200225198244730091645117043913482413331409364434368808381619032834134104060746146924459942155724748419150984653280465228922901478589080834154871961290414626624072515445804270740818068630892913691461499690640286553392739519366930731763753696086500840564138709016225219188319088232285366657092299017166315364505437498452639624406588729831666538074210309136257019560598771521777998452569574308166818740426884736085267225268763040567940721071762300202351857408045216554587049613348095829895754688054225382109765635733395158433755452121190834214868097667692707925087995293248576416213829342598547109957963043876551104379810838376231904755951643606280387576102225340676303557222498064766426804638272495906154671515424180398916776268917242474623783699721991778994992780079468957954045938605279024770195629042853489073694078514499827549227191955428359127434908325598213323675181143616976235796924875860305006467058185157484786473041499495696331082440358878823742497655652386469498833232368247974150444456506264744623977369792712351075095602385187470471532067640492542958231967813643986024620336868607553300450828583972244011608226141808326121799607726870643881642771049907823839446389446068846098988165466242915910971002744069265033152201086987964720934685452700968319321298214780732411435293374357297965729722764058273040436523252430686684405651007524108036499477242716610200128657073476335397479729434191799439922917916438648646670098286671778063522517404953346934507272413768237504668887399941058790136295084367494830936294159846594960074285658801902422277729919383771653178611683892112550161383805489467209577207700445482089646097679103075769220951206700737835871760791632046200220207635604414665899353335308800613722811181595646052666145226386924927205154712388123036302107021509382071453899002637425651488532440782303791227191218643617244641451840528451577841661385089106595911992771294073165892097036928179930931536915599879223711460611230962870983742089539506933334908023678885160261348202116003926142554020282061238578507105396066635127900479803551613393930525208151910618065016033179032725873885553168460649099595621159799809193522182364219312563602112983990917207950262096033554437908898181697637112090030198143874126375666748551984061133250667276783317181778004081036662402067342843038280201020617810166741394749430242226895320133531626558575845073628126555728100633349333002516172950508857737325188425902424085718013770613365147415575276572958775574562030507651736487351223860413801816400184744760426962723590475251051317008634904384621323059063696878387106942547971575116856823857765253560171689537195110030831913956996361808881478364611224907856390939713681812962160514987148548623226204663119222979218263776713302298825807030234298936902137627468770985157218621596520165937912874562449075595504452440877305078548825105982044769506113523325020032305885574614509008226952882801433581806967941300056566970263016328250642892907508909733449201591958185073626911012403187917474836256563414629259950394373403473084830870123231957702229614911767959907250569183149123353996405320430068290996966671620162288923734008226597334811841379287581382751856546343285956618334630182045159956330814316226731661836887986658878790645245113804295198672369377012121185194738746914125166418599203886642361001656884588051798533275319740363572319824123882569790523099225655243198678220655011643024439003366412087167043494102310894443832939941252926085018772002377559476561415340204918239969760442853277127431606633931341130168107780606547188241391410787997962395147447479471011120258173317233324034448885759089271169534056665685490656907091662717185767830873773472002492353099434198466293937648958188235780563184865223274160185189295963248541958038810164025114216270906658167462335857518753351398741214799009391010388278759194870016487523244348386354871842101645950044027665302593856453347925992242399163769218031806198905074122642276869718559822633561714085631466338572866170387884361929955637988988208953379420868598140628720998407770489331641625824810105495382992674674830549994899606167172972187090158630569114815296111755126517787455222421814378242689238755970402319774956506259858965012616401094584487100510919984526474058170657116923690248219516383993613242837520096292574608644278144384194265899198621914136160538309573859437647599291645252375000246226995854769944427553354094517448021639063781345292434549889323695505828939150636491281834275090751889079015434960070195237790846679822548736257461317954690123028504912818666848581244332813504376701761423883783346452063999580732141631202404602834429879559803778735875464092328034010696732460709745423932543242931781022496170560701988431582716411701538264579982383903339170822908048781779752635924819956209454274162745582497815160176965864739236093711470253599710965122889742291065482175843231223254322141768071607095157305059874939636576470887233521263352925213946902045492723487425460710777845057440731800678654765388264309099628539618158838277844514274001402962980340652447929700004104759175308660930316925289648570381372262535313887958435165196628334410199324355109300752479264578792541742450052981575033100292801527481368149148919691046184811587893007502948521341026810861126526012896509513739531771523763726927881272912202551395674605890456197238489543392668718348597754231304135919388410244302118663245139738325519067828344650480851561777073564812566239337944244548884030923489817093739007806138177883290044906146237664298842286675719718251894672710664035495594559288142426532454947258686097472202836445973582109156765832301821436075371567349254385213988208777258951401603563561970547515421870911802962072363466412382181802894040919464621987438933735623343720010471811896516090171501310127260070890312400859643904591692725557187380387217228232517942672834970711459350666888714245904807089280081124955452019406115711657240288283815969789383108416763017200217411346684929374824846715936506429708974272124837757582321212227650856186455900663705216313607576991898357307129227771534182018942853043731888373132405276807030693218924640706474831922700677181078890248597367963385784978948298035113506225770877953028785148503441287601447606953484888880012255405309495135629165541446427104175715632269617855451189820664053046437156094346664509739916070494413665116520801191663806785011651234648965280850505675869657982286969903680294137656185855637924893133316942162467968952154750892268973333438361902868478529367786919678752882318507219723843518354347060319836871852619024700760010449625523161431847282090890860989749991302043275573488113543654689481697597913426461868647807304585470727460708075007854783486887121154815673969188630644319160479004308403872934237320994895225170795580775800222112713570140042500869275463205169356970964623288449059622413208033818730269045125708960024527699887754721095385001460604963890856020587491478626002014938374710836083845842207603921609797313043936726446718964698855241744488448526248328275537923062209664333745191299579909936414736192320037369624929166055884047430915406358895068684661295072000256499263288247428895060225408792739487510619921461504636919533671170804206150673816030908605203179481043804670615740238356456073984578467440909997547991454696338331286180874387155367084570812991916056728547729487442329717292319680157644493067937054687626623310278414702486700195076905776750417577162749308412434918256083491062102259417152214989524523397490649909100420832019049284396687938485168855385214735739780465473166771503259637912937017844894951629273701326275323642776285359299926532639617377488435816359561224215707563682460519768167350214392141123564645986043972765933523323559554002726855411664698552548195413152698282193348189051351656277319465062937712313903353287639789877663910857532084207481104139759075059212932204952413007138013507544687889505985600600319674389467343276808902245502770833563277711683083794348655075059203922193485796441385072109629741081242614202727581820985817838498803661738515723786787026755215048501582987916591808042111107683905739333875740771265692898436481870835675709834104076350637359691377934074763516550181357863773348875488460115146342979893652901574875934030205778916633206217710133311326896181291964541729185090011323057822371189113070781439605240132215773641477355359149934017506061630393080779860138149864463931304615158612167003988620083438764429823166967910698097899759512930659593062402274594398979003696577436391015205765770128801109226481401895315285997836338573182924771494869639673440033242048974870983131155214448674142765775813766658524691674393988215719646618852543300073953152061831159960233180204357664687444421449842504288581947808329696671328079957914785582293422168493891292978362903284484119929418704265538619436872464172341671353635530043957497305745158094441096839303175326679035465592710332224565442780816019311593459765051166322434036915747814553481096986973356034508397461822734898839056104260801945288242251423031813183094814749196083099601842563534970887941589841331227402400894763606083862624954765559146073787509950622222556543252792311700019944747451232976450514375705029294443612438914314958730616892727628977768299298094371961027239888266794161426292541085304567529963636154283481923873467516250400370690553929318370175864201101821201706897332164506101160332113491047982489337576980365399610917020684005474571991682743238195430500704038827449923443515431521111516684736340588340387725461951734977661093706875499210134411141740809983122301902670954966949302300859580949901442885261007127125484660538956537632993890493808947995981502925496055030487635390923830717783384196585376581427846865680147346418415906296863170278691665260919804075495776518749806312582754729175703673546166096353156908835965540967524145065881213299711360925814216511978886892735491852003903384148987763628221343247382747262447152854346672626191427352746476629391508926612470627830528632163832448518694508748825487316439796934172586271468133608533897757779820925534456011094781090605028454912112151637569712395301342382596986637372304260858380979011662917542589495719607587932502098763879411739349237499553873974887489151349998558516159736417640852267542201934322720303899719009474394937581654349076186820327845090728832560200044422755602912606451568120204115627239248850312447784228036909856100699938863930262525482116928014987397321861983506778622024847869985126955920356278529404020437674902725616191972404134116456837269116845365155023354682484265754405739266512986127495711561847700105548851804766131071177542768641101871314418724380211004316546438527814274962756249033090679318964657287684020617042371906114399650456831544398563918599380440613209793680755419254531448356005449401179802817031336671880577046995865170938316119192012109797333720307570887389376186564033204371988146816429471096049768761132140065028382393063043439039625040718131606524352811714136029760083208038503985750667362967601966273908912588142579623505246557884886831381900838609716533134652097072904211399710167413988238657763921966954509202633638729053235712524725697374864891452944355883705553090896522980473065347904352365172132855522647463905657774128177686939378538872845414090118141219658751180284400781532313696477505136800148281446896333225541994493815274390329784979722741866968392192305298085109026096779806631479248650457412807576535095514326305553918593081848868597551197577717083394673642964126671463311047108230209472298113941816439880900521857998003640715695263916993134512662647087162889060873699219211707637740501040863740331071536503889598864116372137730055359471386864114104867526401759611367647564701387186557301082322094381104999142918049478479860239050493889488587558123777483868485602522063587070574583151860021148676752896959555956553660492352158083287780014179156482913036004314797432708650077493414303761436427117667167421382832898119965532992314057319175712956016458321261309195543213440387881790330512153166004088577449765928214875741210107936098669556140606075083308138741559618297404654424572360497447928273412903910140260672000169460991517578752598289720048712194414768402468575980435082987278271811136479122287562992573741939154762587625976556507571818311059512710023285753073293427244270307413356137205991769629005232145569762557369433911064782451066905511302753227129177246782746306734569254241047552045250760216997699500188360027212510070473835478185555882188055535705357545671358229593529684031605345327113973150769270990144957050388941811642547850098765641143224946522361299157112394323190656073450940972060074273813208386800856757600144364177843952046355873799908570838818949501867387193017770133828688420618147347359488544668484628414673049484983874055272805244775789551708707646048238265190189839932830619022130601900330064852562717924995216894190470839076341267471679328811125316015023304239770120813318202436369084854618816154789937698416470584026472552412798782197755593421928725995909398815219308336806624644191681184121501748495023588937965722745999127450492351926577458013383935203402170018294820836643854926962704137070566926656222464741323419854535341395388579233869334365211823968387831655414842839238607841499577684648357225454802932301301054856377039701865781848014096534399110027574917129214053868166979013956035812550163647328961243432616388417354523790290800279368574164555865251338421758459324661480092858973458429006254268087539842290333406707601238964065338525818479587362075105831648601949637704206994446620092555454313320806232748432527688664432671004339995811826072147565232912788980358812923869416017426876592669380070500180525902216513725093558280034975659801677532210315151591524170918163655884230846222900764533067082693958850273915693647251653974765827903444153209594738336208584569246413543623219206444188317130751013938021395007097042480540095179250704929266104070184380960663766471565819382767416530539373516359220994070695313357630662543377172224398277932038008394533211355719775258509631172441445123686475796028705200837807837955179609594495649996899085576242848213219926724385213822079299267998472513778669490975506506491157130031817351581636308240198183906722928131392427117177819612971153934464085959996214515715451239752441051956887626795852479564706891340768666611978203070070198652797694370142276650265088271018803953000795496641710632575738532330573860383661173777836513726493426821990431286026764772855832400163905648004140218842200182192611687347477259917236818370532498143682193372010939897173562175066963206877911166102311867164044087586360614277000788464470111825704805504898766174581294963299656390002924188532617303030054325971165064154631466046389914064678593865442893385784604012490257523360188728704230829618406556243010329371441530953824873772775037045808078240801369164558574352351954199121344783260880757891326219399235981418006560120900591888350911359335962304215210847715271688746132977723748520412699883796872748328071318396452138233024333056574116286660374122938765444876358135046673955167184785982238901873462398232760072600947351209061766395221380351277097197241127865396038933825853503314106118688004563585594519537107681761680435436697765393172624400762045759056459634487232741691504670848923377299967355132788724987649319431063981362031670803860210181039592615996033704098909870043955748049579895700353947245400191177818483773775218596894719703846410650091439000275221376377387915367721078244000300252161069824450814145425927539534598951196293913159790500058757088139443285842595447663603158954207531043309510075106799411296351997237166508782027956920521533961359851990199003250010315225033172140075768156856813767271011230992787650780396825607466739708259295292625686288918681334188123194410166304259692432955529298716150938415976896030864135722141504540242183604182168626505639469976587421228781877289144145357057711803592002203361722607505468861133660511777970059651796779305320276770982629375174743365495054241530450700353318183500545353199474547294761546667914524419127734778157230120537546549452021089813572574586952244745774124752307595558396305976621962303916392285719092018077817037763104933807019479884977044004055332253102292598797447277640892867243524598884516295691811810148395387276361751890988907791165551046077091663728736891229063995577863432650338091823525909188473898964442280011348302782825934949924339661236482924966145763758816985940951525706392542459926878302658959457071761156986639126485325175067715190260484739086252176836764783116536918931901784634589537733776258115470018687132026831466029197885824327806438114999394127870445992525673609946997928993366066362145640002008991816853258147120501357940015204788255006993662688762087997190986336571709438664054104395004382325047309654068929033591946739948227355968226378841778448168237946721432631261884571060621652486478819872789243795181667719582116868435818238423939392902489988677842189413243433714379417025476221813006213606275185147276191710924180368701288885811448756455705182892258954016163982746483827094569185223597613524393971530613613743962785113697875762446648729040324327134446317862368495520514574329926619528678629232576744176407344159185219051503609494908399802859321838107084970292755458239816317076265315452352376415015591415727399751966371642081784497141202473755562468839069982960809859177365017423160604953297605496175023065016532255548563670209808079468631570941758289793975607627204941219825260826106593607924511620955673974143216609798401199510593980452538569340244832181592333167543983499507549481119441148480342059337703081510053196042987621538113435242181896024595361046907851402014768759055496262514863954309457297470393787811505767027741113585720441868476374584167200512378748494458351758058095954750383612959355989410076452954130167584395859571781875047041171046755919649902377836832643706203700816575132085727779399088343676278473752961870203791605360122812468511513422777852718947657731927309472768491385478375813042127205220737524425334426950335024907086168296641352669085526660789643811915481493504869909319842129142801586606947391920380388289273036419268499474981593593632626837699574353677346076775848935399180087133765112845156307144112198149055090285467561098213373874114579650858856024128470956977145717986149865178316629846170167540614148732397958806863858182497529565269642847699401850497334654591499033557175397517439468909645771821433470009849820884753641459139120662424038633429122614412658351553014325069163313857286371019882854778835342973492234058750419119596219348345667468932476262033993681039790552937250908840005204887005717103560731491478723987760136328994007728430692962360065573285648249575258963561083214781319997587230181878179719056854609394495442427047853928563474247576511373631788684245965328528160235807110517735329701029486080053731636264604160868650041520076650237380457903894827576789177577312786163574100570082719845079572065449805626315472319704664315364976641970880173023976376242225058585625107771902165734364990727607603160712477908662429999244498000447383108705813581086845040996996985683090422519378801348168463552709925838887983933658658005880243623958373241131210451824874513316211876254439601668875314102357487914378660910468545007301328032861171609731054589613094436143237896559231192556489661166120176488210807298629674925132465037587020667613294886023071502872285197147301742439687108620756759304425370630018847580187519748282733255044398260711550444327904881930108863339494551756056855760418341225625723438284534709159871775705650267630433283855702477704072451815129552816799901474534729044591971908631112656475879574993917798409679251012602770516665963391980681248659639709634624839252917589042289900871093627269565447197112673497113430072697165351611258663726652591518279154172323538152210887248566442379692165464274060390727043381228116447002189655666926213182582676711265788988830949667795575395552188315446617247510637651252585025589447904812287738334713997623293760755427982988175068105523230731073406267344596836655749365973479343201994423226478549531250343098571086015360749334189008140090563940973241585036450917237990423946629972339545570531810090686503395449745616119823000314901731364254377369537233946364150052388820694498514438975799368896034238733575474736680074504181715982555897122390259646892161920944002342444107782874604746271225012603503904310108989141690620736278074778006802133977896926077961462262969864417900433419151107542925375570404194217397333231551476684251930376151960339566259959918267113379969287968635372758369531019947778150763032806232067144120220710383867492503468671612093616439706965892196168430160241475115604662554159942608078766147725208550516089392517367175170998338839712733015133785824267651731687969963113119289364810565346634435727943775689942520285707764921050210206575878864183349711286020638514894495809734408280269968913190126766377676708657201534189287313786791461881941390187159310480553474040148484128911514775827866460356412232737173174066444527203210833692673502024697760207287033718783813943111857460761059133593803675283377076742275748220695658911334709962807181447557373723786526384983620136064060339420062446198990177233355833519604982454060518887906426724283948605531579926715519357308710941586024231002069573772162433770831014969405140481451364785030106801920320959848679064070111132264248175755169047761815846942905351427133282386655220273035633046353178933005136117056674397828896611959349143188684544280369333811267688213492076077284124811442361053617467247525818191194181219363589377796933893755344687049644549141901510051881397691624163660037522251680248010459621974193968203057465594030297952792821005513978944711311082141049331112662829234568044296827175799056297949860550825107814859507716923504322355693551010346686789633185417476398874979686058082294110760235330514245840152369816391410319268530580809992130149198798050257682977200267752792101213597415534162633641955350183746973321475204866468469149177254805114062776646821591231134834939687463332791255961712818645475749284432792554673995339369490740241063927267802763577793165546942188778462637071468747211570054525660681692555768376467118075669727816297538729792158525991565769148598429970957939259091115071756674030132013705914856892176588671827499398275884581177155614263733404727608176482081836964837785321346114953852275640918149009300291936370470430429619490327801692412425289867187687835350665156190663942921825044465613646366337827797407568752184905309866698185989301022936671891243350949366429610260430761700674727654855939041762701024764606809598331065393864207972890842330031068879993166127131875834655776098363487153525752407258538867825668875852552231012607430563693339128836683932024223530190838800272756341834652987819573909243426726841128432242544042984734900896008658647181316151951002315757952607770003299241709385995509292171446321872463647046124972616855135452802252251935485731541787424281958255712825622484584899929649458403406990701086443476203919789197315779874819830726597308194315772832308180146518014421651440678388091371270048262010204615816991519519317897177364638562774835303171597726827437612166335844911056483618437478211657451187399048172892780161357258855742392712271418864272509586801551562512912819546476303930298387654420977316702649308887731869047575798855730090698285522945525354623604901046830111033990813572062152707627622514234032799826088357605657968975721378434244327364624695067729795222031684441768535107597072541783850405313828844993193410278751288465270533897051035196477656217572632651850309099122359717338900216955550571458995660360423103296712423949934686832362383656718218566911973593944401654023559792929517991336367106909241545718375860071287566450190718564170507604389615193291298934381513443073965139038669126835173779326883661108989629734567555590547881400791216388268089225234582084421349507687671862048660093992095713315069984971195322811176606637252243074190281174120415839120470605329059481577083295656946300130786460913397993451499566624145583514517804611412648748274281567819351305331954837143804052471468153481339117669659164325723607839501895850737906305702874014374703314770185230440044306339701494066788374517003460951011623104042905893863658235538234955024258147840125235191872213617545540306175196416892577471627254413676875887295537451569864631592429112131533433192331384974735106767043436402404036021230563181388673639145717867570517851873392586983152256498475846037166541497287801624754226779286864727743650446724515724571245235507451457566390020951930249258731331924856300795757115463346705516001683881416207473097002091922022768946380975999454062224590000381460839795559891377739700404730117625522301390895228128264486565733291740831258565324321959341916973481476906579274328599863166488159854733384367809109472876474981159314940885151065033885624737699350553809682210053856386648089067390672578727820871946538259029650937895216811461213013624497410769795313978091408637351254075811116130194986677006964655244990852992862190713717039548705709103759828383083132463675468044639108373550953182545591305136830412913009357970521900126387605874738673725251112859834070518594503045680709896313652866606654856844016640161093074803838437090888662538228113665074860372542861432249650411478668235760174462234791435444211055235609846084450340102880943327138730338650614104332334309692191167141754450143005550565474259576247947031212101418489052433335573206915468765589684975348057621589207055983452699755854657823060325644977805094216232077124024775021588894279120441483146556909758301647293518144257096114177839408677754775507356752097316947164607348607817452317883670184042026454842437223569228374904277393821077580803049738737453042881218056599995339750583120713494742874407805663367117360819309812947835673229273547567411477663878411940633161834026560916360403367550911296190438693426632556863050245374300579065030594648064938130014889732510616661355211377230636768429089167428642493170158331539227851439135335374971866191856336752386303610480378430787595137679877263555666468887283773085638361226435188327947341338942101255785423476050180018854096823246003180071144420229292233621511444352947228248368383325585901675392845488341228386439218686650689481493009059444998247222911674297800045086040706411945757484479590354427338868841437947135905695984695509963965661987537125553310567025395755002013126375576509092833567828762786276012573634605368927318539848494998043026078439321448515108562224156795154008506205324831091405142376372352908177657603184906481298847790594148079467587631102140517004799679914892799730411834419090116453338884241370174012169059203761742214390651393317257146216773199063954580753329343780977485316446544912337796696069921495468187382248910082002564818141289382739487388194751009367746997530897491824339991423263594466293852074473538615452390172284880290153150677996712448306815502694787275953524998040190167221048889643028852472515031345131403482927536845049024241135556028611463194604997448143341019762868524424899479016379824388168552694610364400150712128624701058155735825838784524768713099530140619712297244658398216358970738980695446652060623165895737132556410393689917696774278617934192966606302033805938336415581626348946528382156305422496732797518815175845195162902258273803442071753235119150363451789623801823898128116446948043160349270788968201488824500449894934869467020639741974395441745890591977182903564626188576490663798911071291585463000418406585275343042631647612030537556888661054821984918400632995582545079507658283584480276830007274347657230535659119332369176554396035805796085094044116544260519448685510846842643694237865995832374829917364802154954709692670027329390576892063056818494841430600230765805618643406604486037792212550184951185702333537979823961098740464328973973054856084637314995425764584697528326551789458374715449448754704209957970878686180851895655932470324723959813839196191415395608030185769621033299538535292229325544801916075565079329261520694557439448501812743230030842379027667230515224920466799646002013587539994341709590327035471757745026248960654989921242101052711403645670064955743227917537106934767180708440925610099895763707631406084669711601543795558085038720889895062291232403958918099641847823677308967128068786182881188819771140660975105458186745475676323278031479220179735164780194694351982533093562516731552477374353603273902326380862185068609178121955020942892153453022274326267453157154727183466800167469119115085450162208047738392378358850652847698095995136968811696008164441195834525441936420693035914108623725268446792822071811193459111674251534555509974533785994080939915172627192050189597965195149194255465031278853561932061559407280427573997829220508801246013110948442893237561947960376969102198375254207156744210527461483420674366053699054996259794588359965458914590266797919057911624546024353973351784649743856449402129813105263382956241034567362939154574805058831363745917610914168912754305991011537928363647394814705345946083020512448547099379497695747195312489872020757535124201875766159585750431179771227240284648709140854864936004214528799966898607145170979102745825972001659901971506226604938402769995843093326937349743715529445631151980522957309022781796871586637670193060223025662643467185867308073346417785763685709242230159695296348857099522935734495876795313974037363639419707372261089456817213722723371742307605293621127991892684925905596010956501793519982857406790418524456325013903604645768830851399002785391368291348657018903961045217075737149852432670357953130215508219819880791299932948442340614455324420544706147321806844803818642968364655487669523162341848473064252879113905046783924771930361530370417249116545567058349829159439144017162481735827990182170504709542113532786230506137735898390020005665509811193272155000781128213345275952814519984585026154165100275681323458356835561620996232195217580578675320863002453657436580218788292082755315599778931462680691774722926782268764001927745252088357732491090569093978878959020386127312137099472788232621705306997457090430659625646918132643456208789730793001823497394471377686846960254177251398727163996887128759963030801915846191381560430096528621152488131068482476991097320343211408487861490524556713899194326664907080902886656053929407832041082411303973434478941231220878417769961795298886644873522102328652168461977496854360954472829327154350844313383418894481399195664267200505380553197110693875039821096351531586708993653389677196171950870766912385357554770479831579393158456917307701376770615598679227360343644165121933790145799148141746449627129219215832446906262319713393538202636142440504232490030781517554463170112401162250135509299393976251911338833086848795760695094465265628651962894876829595589936771787106920821939917997398306819622281918395184890347809808196340698476044381777613530545580368552208531315340293592190820633325006200311028880076014907412398732159134023491979806346105268516676179610658912710775104605434674754156885369900780061010824108853908846652582120307396492441969424093036184598700201197108063391452564844828520168423738505757930485276706626892216951436142378608292345374783079215215289508927273591300473653182061697449397144963027360825246287272705603791371822841092265462899453374208774137414020108859379546012983153199922101242262342105426538878728940685880832760496656945802834635206267600059190888653721295798244382309846280332471104950157000311616429350558746049010161277448575116838614440505512088319152245799129426246674338550977502618318176427166920343578188761172591003363974530541046642163574289593126102869594453266408301472449995497906912141258210096806291041219792923007841470227951877339511940436054616471511221153428327377151703138509539861103408287148926632501565111419196556286690474513032051964552608113861371993653077354404055567028216640722981108877997145488868664703790243333988918852457400413173451449693356868389279012600933187335790788845150319338108880784989043918136090848368971345579703577009386465551581007750993584260181533904934741862736631459653322514655100381150053628141123935629998122290504975309030591720800344631845252212865747208052846957129005803541004518340835955738365290325765206156647570500466631919514580930965717674412935151158797023458853894751441347764245761509063715641509816178640038870470073157268539101982659215686407501518762320870377936842218215320242834812004710869187186121379383301476793009601734246598013732207630395020391819261089175584329292794024602523702022943010068642610114670119650522910740490894540622288064412011967953174685517786543178777188496797051828464320545578030850907945278743651049317723897963841721912543762481282848568119075643024888264172161836286654787366805507071192958553151746045217092932246326484339440095160037460391027126894784814482078206961122628741133736643596326359072929619271746013123029210067802656938121783642290800242045351375341422829153350133007981116652146014014962776895281773093107700990272011173215222931538193992307046427144778113044778188471719046777363737217072891221514368259873381749208830526648705206445808759574707957213735699844805701979632175511350947193720185663930072557411676770979885780338558775083626966004122760732247113715552007570111073640308527304035362794525164849299188301150651372010661752258222947992897669130683386276213644996293980535327398874765076738888370797330898295709669304810712953883151500363484922190535876472209746826546820546826134069295641063802148125017246494302561389256281984075342941870373222637571744075171406820171664627661052385918631310707543970767624626730848256103395566469036041040082043734295500206890304263774359521425736079587407441246053343343274376721420841173841133912876017876141000036262039936190716035516495920711114274987755199972687292952773212630218163947268425269500742799185908136934579619887977283228041700020887671423690334686816810984617055686679695021299484647639796259171740577939022118106284673398564282368782384709150158581865731651154282717087511854019463276559784831348257402317842407916870229500147316152451020676610114069719417860293082723192705171755763557323254641977882955853685765271674738082683778999930916126793296845095496690560931220682746285018232289456206426726315008092381441528539895079939813713279701538250090457022147191452877201759465133136045729590997400663910547791087267804533462029646001387896650968388856159909056087966639300969852281652707847751878225405236037697286407104532224059355509861114209455605032630231712424719311866568457244670576140809264256137916246089424726627818369531045845214468434137798099732650457475792364700817281203268091372820947090634767277108855510815635233323016814046124549934751374047688783796489280422215892383420443075741537263610074597579925081704435013415301158727439644486574698184650209677267906892088730164328156826510928640456336881258838080106154473312976431100571682555000638921327911260164439542894784928251562450845874312337151120987335029679896811029649250649007749065289434762324870260741705931974204754475184671796395924595870547869531034563299302362042226114022408497552298443816346454955947357333551193115461354702686582254698190367087890581370712336706491079419927026860762767196349193547646679014195610360091287814764760568960207678972172680811533835095819191017487152665493838196239190639652790264892124716521483147586545883667532884486178712043197403183786902171750360290853144730320436100579079482076459336007588813897991669448059579027067724600262214609177000800864521605964211045646087959715670259313148754797314713254915040604606989323539344770924118701910679456310497627238578350712335079874635267288024788061874400058944572473793150246861613690911171136415673204449964300632464254060756264561760336916219897362941203274344912543940021745634079292741617614808224881304016677894454953759350128540752797863072159335254774160066622294400747733100927101117910322216543509624139157166687982804397206110942156777972924668534828706051229234291475478680772429642873016974734467214640985608693003057716668325701434008695461550467477297533134083549473276091015386221893253190211682370543495303678425294795082853887075574663473470681666647733550777768678311376935277190998012363441785063389888981437986590701793025508321252550988139467716277467595247303983211018677027323602922966522195928206812361728262574150501704184871198624472997876486586761104189586542462018722196945207673174264476058803123187743975194957022004530496867837624496926306307335123430631377258223837999284939600544712276351891033177112796684178900688913787759914234000473513144407685149706255068732868895529266549086778550334272915484476410362403516053422749235559464757591819426606306634599935293330438679421212468388386817530025928473738342538245211518114188218729111408322594912602597639636454900161698804045289301616240088705811711691037722232452811657273951577021142717324225239877742566253848704614505503226362027440827169117755705070846073768560544110452438149104777039089493518428979277190122158167959167392301889007289628938282118087577419055666168363812501720195491427283750837135949498481825944276797061438426437291954303456824600960269054512833374835557335571554334767997280493991961737421288320918987331321506825318120310387985093563848573121024898794958300400322387450955464630876844826032687813911345010282757889054687128313357974833765919278338743476982563655316405567418321285791454534525319123103630395932968175463756813164943547836755267620520158282805059312124983526423022277002152618581428222418468029732230119375378847464112914022720873333704273441640010620779459782571769054901605751995776821931875235973875623027230745309723651509075313295094796442997041377378881983568664778440187734822149544299446028999918435995771385399055063996553278661776042590868289376809604739122716365098278810739980852427506175981042420616141393945960405695712878081429459562723025826439903072448883461248550055993252775633015489744649247963960109083213195843306673118940094689993907528027633291406726202046048268357515292308526009379021143044849427804697339160527695001572115631226458587463989498477282815009740845748557057000983678489392887639704204211902403729334117066425625765654707742698186434700198279271761341324132093121087692423903685880624458699010987715943777051524168099892844694293990111684269736074250561397037283913165589015689021979130888884229580471053221018596871607623591473346601715487127526350188052730455590548337835982968976980131751714888467891117299400074673782639491441068685455268919599594952198778006930092020804087204468511051334218707989199551987514425768803440377270264331941802313761273531775540570566076456309028595546751598254038871883652535924547913317872938726757808892765077535700047020487642721164312706256773774667981010012353040139621850625179855736558609291700773888975723801703233283672532059204368732889533082764657278315198902668339625577447355310159625156494497502981258626875062841796029635112490142311755804862636890772125306130504505031285602334986737386679627796611535302677175014051070156198512061343243202430770364546721177729038538988394166130055666207040887463924830422526974977396799767268890438429362737062041229640100912616381023225661645948119317335987944994777912156092527794030561447967695301724853566668181067857884768629295515994989120034231483154545668210689419571652753099742835610440565142114016912816354564465602551347006428917752672183681596240820570316800021561578454245920412583224549715379218227513759612547504209843592014385862464526792089932881744783040432776167043666174461954675529487238667422480522179014693336594380186665723477128112211369247819655399005745419235089674941702345089876537873097547557731612656853620337478589468071539059170563718246614371767260462670014731504674488774805223554639160901048069670319865435810501533349566161636982987387439934023521119354230185348927567750714245182525145644642227213841826705721154673664170712147621704413815296886038060086050706796194533815702330349244525001494557816514001950032906425749156919162425556399025459396672673086558117568082256731255915352848040408056493125466887599163726091668918821776177152774818345831965761441216477605099140070431806872279584654443722644521240487953868989608839282042445657952243352835852696953324564068553307758501447762855033648295733324863686391615547417931586522651050862874000584828648732455095881156857115309427668334462277887982385171105554438916939081236846612566484904722897134938382850215883863065555714517049525594070346280968797072860070419653234202785548281675240203395453894927682054023602882110807375589667431692136664736729037991951301022455038677691865432795684776184908250527906161102491798377323871613867537743077939605811664363630054878501634568673271558529190461645843405898398810392328852937395776891673010049592918128428809340429273465414656994154221670283132684963298403070507214160326777143510953962057673779258827005575947390089078614153449462186309080649881732537814231352580470784926227173589875359077017329363486104826806133558177219973297254765076867963265913864977342731453699382164853605655453687548798553642494543686947380711863748267492587413657567075080637602206093024205961999934408118175783208840754437124162504410955727064075816242135251933441273121521691569717216696665617777418205281864181269974155397468052570284480170325446394509664664210266198105894145001055375001743223833419678280097770456993621245733434920017037600292471995707963660505400971205969037625481732750152942855870306223725525854080618005487402164024573569967272420536378557475324056172272875108813698029662197339638182726090412726995420051086532218042607877260685786811343916945820636184207246107505795983561609583881138997917570278295369070113911693519548308589918819998785566655724537175662687462408009587108390712893305005986813594341236929019903144092045930775805312208478669647889708661189193546294038417508330918165591808591311884860506401321190666436462693727469239547032790883835609548390753835182327387667779463898630724750462040566032868019056005062255248581247763501560340215062814709301851652390558699773420457722617487840909424773736186323561145111292073126463738528701523972795430493569535880688519574534572414846412690317199232247314094062072435940428409097679431743565278995431792386179925912116871817655158879630365056977434273779215794343625986539407898120488782783430660732135437387847096077450736474675986353099067758674323916520262574418310818311110332758661588900655164905530552708260520316882809781145642217766008594392429208124126192265466196913137455998228572056864700921072095628786884812996603804553772355203544229739987962315790573703672447398933626330046709953974826398942037865697771193683685494069635721364918950134922003453588784318281689526860844955123807315129354570561923192213555567931488338286116337129900084839990422633004749015401243340088898941032536918471019244136174459153730203975581767304681580388097836057628689703960327459485534880047026501175850975943582130190210428662040274399853396439873085440826403625145319655362430410137809013116075710193512199928833737690478328693267596952500283080553658096482509514655327684242709587672696645084623782849706800386171875226498208321482651810995872170116285124430678875511573777086063317042405617254913171922452268985323479325996492705128857601408718341979185435556354955110715662911394393940397061638880340233966396624362440513965688145334504301778419997304503966718232822934038976360278998366610874382942250141819290339306556425028311646386456753074715147509038112078963055958667064438397621667642119736531944184338133082136168478724662027293720699042751213012906015770573423908618530556511643733399945026126612604278528575764564806577038147456233147176721585378357460395383779567811510408997441298065991909370371182150735535433650683717171548458666064054268393615629431705734632952758829712041958641119344049354177966130792407938590809687010895303093272791668994417949236798038933644320044288502145716650745131542029791764216952587301702081004986802992522939961329600980926750918398323129287205096027138671890660060730756246037388870884335290557524434769884962340502138428739258495020970374976358274007327596326579930094742106345136194479981372790966822351098518334301763420190391135199825966073147339724212961361508742928701379270338928463007342044767519530364662488242056452162333983252566990275076747071081995072745866168835495699821633491056083693303614215649584814829261816962439960364870258968622844966076526831502460900878161362475890588954493273566031171869380550824849818286915178520797766058462386323920135836760057954740437718887353991925290381739060474701565433127230583497527511966348930574344195301278199504379718083413916581532806035838112493898971330917301733544884593643916056201758918865514651136970714442446014115914222039399625727245171220321393630499808195093382165961180692028150465385917352027593676040209201327752915659904294370982523776600742171830866178730424997187629215529123719932936322148207817170378666834308008282375646689590167716110497567448733607247700266819110151516250726994902313708873334681377484538557176393125783513107301263373534656837483914446529613321386266536007244837985934061758426370948894188453827852584848002423718719458173434348459344688136412551289048837748341029824492372222520606371112296217457489160751994826081693496836137092268811773250103566988580971156879958140710654531003455590570273097232160288705732750447682487831174435975270741152470942466689172535358901737193511233488632342447774757764813968566906990793583332378495761397068510822155914686336034220249784806175769164699690216624137485635921289647556773503257538977172430606027808829307464604003862269113843405579498321667131730349983039238220250445245938694572330407143839191808248311942511969982365294656601639605931320595976502886438367233499745566611418462767884494212770119591004849402941509128201119225906104918397292354970594875567830667340694906301469800506540245126882743252486560175096419734850783093043658534651598734809464623684584492110592241793218597284088734331517241939116828083106790186294485332183301998283366472991079542142150138566119690030684023500079635993292817834165809232562259535526040695586830232953247157464767625189838919099779627343609148727627999257023000046020128567044054462441202009859052058464252601258505751959723363529999212906211634259533426521635018305236841104518662340539655044287347186516305098142720280127387074553858661721949076155228524683213819496676930344965922386310666103589169039100688516602988959158461578995228444197143120183886441964895566890129388829231659642956997795769414778367556850159752720055068757487732121013834562511590738337904212066206052708202451568549228424053531036866015489855828032644653954129988403368286256959358197428453242139514209867606593929893462617615220582284642959653795525835667734473368679986562340548835013190160762944960273303345593391233205381033960325266945935956814935963687558310611271879092785891703320211248532103598112998926142810565070491551137852469401564027914011719709153673039400571562767621858367005708617740203292718993315586331054193461220049057788362239052997809290944001943906000500508150745734879948091589029559228783654660222881903705933527075972684479328635148900014235268250673264396343478113046744787481422782973953204205459942906480403290542411362934455925297913403412567319756631122465989673710155611217199919974867821344006670739641688088141020421715841665258108851881683045297084489408552857346953172058455610470457691384702675687210922509408560131691228968745361808812949107900215996415471577429689479060520599558427942662133004779328093694397955190788367825444294691537210377658107660996723001395217564744574277273995154928809026144437600196282482491290221019272441120265564524496469038778727893215521794307697386183264685680570832803768117172023370619675777846015970485944759749454683136805815201406870608507746855704998094510670141187448479872136720174836667794724375208315202472649452946325734166550672589491268768089489824256349229047334591477042808971989922865763582491819397285467254257376263831982394294507859961334800666668063465790293605017650784028773276411244575602806150033395851103316939920038956822649334042310712455120126191160998209953700953194997040121196090353941406017575946023575429739577553312028803800313357611937250048331350719543531980125198796229021876927877984440839728845234805562193362738336030127167095760591759518542875843266315568219956616506445712076449731668101932821933501183802391285527392121719963730276198487309287502608981926627192469482733163134569297047286985997076847076375692660964089071762147047523451122496831348132977100997740167598551607693510679036414036630641131343089860531759672860448723088137241262228966276688410385562009007274515631692787156481608793115116960627772490847649846821762046010451643827880512953272209725908812289021051938378472080092591999395426196680218353310362596618102033357049384835035355173042992162630650221495743436809271716091717745540813902445103612812543284653739815715847502279093565679990109436046063210133219744349736988244970401169906032660502899348973964732151364814009999942757573319459595188081131619932488165675000327593274950906308715031429263764937661109394165517931701150987471378798751438355564740189904740630158299840583741522533875724182820172293795657429274812364695960597607975809935559906025522693321682266787529826675999071474726166338679574906439690983296298073406387742398063654615237427105075762777430097766703273197829459677729938589628184247706635473026723752409653743609524960548297910088379927169051268623763010586147947845947544277023072428462163605234513179351775348688665554114048250352745251658082751132949811515454349339570227989419150188427838162622392479882333109511681897613988756840946605393898917846947599604358590642529289254631765720623506871317709955973487499623797766002240651238664968777695278617295127654450193138347597209990371902044298804774803004706746204671202586998044174087329131960907840185157402438676819078964658485848678166155699261878265718860472137224006487758947111964955383304992644649882331651595554764359139223986725219052620443074911344568925216384115624016796553448174895830597818628758590000925867566079514553543141888750233840800906937864162933135503641058471682975222197370358636352785652899338602477144736773242287956471456068269915635473718957645925527895043676153962027990587766043532021235164705858479712374455379661118150536736480192627634949107377313479719850692622790824268444476535813108764971369286657957475940582489034744548956772805963584381413098214069552975662046667814049545900731841729484891179703975986199032903857341526386482792111765666156167669628373155592757448754684219924277021445398523371894966276230624874150366580314428743124402382665883339319878028786196986846227865313971300796939608841659372773594144222940619863586290449184436829028845705443434161216312073387007850553773279941282597296487968245638794253218319036592745868556510944558962450841746429794166124732250529845212031654694529246662423588636370456672020039360844102798757448145771557602912255310241460445333327924571642772101846549214084354602194349997745709782104783166891772756405394617759383729613948154153110138146685197444772102763351799872800559389914341753355574591567516951227716233166570702728114286927710698334648898113592636516871372615588323714453338692651555632905639389376842193371690583506691774430171582843737465471184270883765340375758900280748836795064670344011038695322925295280045729736869426558679753521990797144461492181025713281389438112814395672164439572820742918157207289410914832354343215351366573073272929563403210710373603928209584758134781957069046011822839390910707224674938437144780760333509879616740835050636732688831343144060713327051680980527733779476983021700935067280712939508517502724816720353814881323860206045314474306369685048857373732261382629061360513592414744007743280595585369284656205205433864575769593153556693442879852278893214893600066790314273054866156609775067390394398345255104106425916354313953062398806035038302338825583126601312161135000986832658237637551349736939028414045216505272932997820755219418737004530253052090658073850802740989091801199348544751923279990429934526083131183270143866246163103801668425061033807585674488861366195021466395576113820487384169943548055918113358094708816184878332639923917835388593591813011276366637154071415546883121233101100079889921727909094755406450792346922712716300432332973069863648193605281500909293549470557911468251583732113516545751626724355855123238491126407275917261211225679929613923768328842053032379087552257283081140200983815047981243613552020875969866980811059415723041893503246963813738564244242899814789149507916606925055878117015742229051398524422297064789350863069480029889249235976212266784199373491511281865318435528098953013648763155757716138125360448626119877557794808343306900663392859388115573705803120058493053937017650490921116292051785777948164975955093227146531074153679327613279832780883598531786547445987085537367529363006439639511866658258557807484399562394130054401489108963058743428038807918080543334924865183966459736585412432751407893434248040315215735554766266062129944132466563571515398813498047466845191242655776588398054725640835143281386761435154391398328258436639593981034551956489658975303300555819481193635991925608584083766142865682736518476602905394914890438441002163602611469636341175152321772077703016050472141020829751722193443610864362383053716470068670735130136129055436472336237201663478966118616381381891367116569284128933903802525473549004019414310519217237495608090690732870497295365930037232476721375878155526197900302827375335102228112886636927095631630809517229642107895490008168709493117469446602963016888606198786406970114870559509419251795722584088326865288971647618698734034528020599757677449670405731476714160682712641400462681498585097265145434882785555508136909706265072212057342048085340617638165636517884610258133905265668212261411634945357599280021504131117283514163805496981028706977498305230923449175483600128228179739503866343576544572660564767904329431561736671129443951175793180034333827532145705939903278950291297730658616655431624647672185553604364274971931469437494156379177986103276995443005244138213605180928405203680818373077405992956122594407962421206761951854750722106949979330168173087914685474161367997931666402166037108512160900937387741438959638926387409446721387302620609009043906008371116396255692268183001345482936932709536494646899783947101474347297708212816146824810356660585394628569567310965575843526778983300719259481731538021532673931873659027391739026894808611797455462795592344853937474090977268286807387239391724040845918930076034899387023290612849252299824841140264817427762547917284506948141956610814076647608604575153353438904154416516547992451002892865600386768316899413827607931688417227312912381424599876604727200519354577430885505080944089971984523616407955970426775171490025797116952872079498180424682743053710738843677663966631926995941937892785806822068175837332704412704540889944466241621487145437972484246503974310756500694159286736286802149345668929900491559313972165114417649358092406210780563480008997178780138811568626604491048444812069322762386495591813278370404961120579739327129540255125319240917486083422031684331097104844526550471163382304996259480339420113416101218841574170594547568907350714211012311569109206963623358908922388151278602688707853825854531030291062461988123636031239251846219806281792086813126601310645119909811407253600509190243572390612726281694409085750012224614622621569997917708851210320427659919372215415640615174101996410916488563705501582108831087028783901129598825472092459139000621607314496570618727951281697173732248563267763596379312588604109200446247120964362738981938574231006504251690980453365507389076114538950153630280491585485065239560150456127365408578422843626905531135017033213784294180227270242199004809475924267466802361394923202068303564699764576103608802770774505454332282746809363595164177229647390564059337160732070055139367222877425234995655626375052286388714205067448392619798992063714686744035135654230701572995513386584092664950979508791342168532223018296112386430173922761365350580055448786122852162626979221934235320477476576289408228119462671770393265169887722178852841088374359618829912376624394818370055615795011934447247958297106665579404840831911807919067569212535937525625117830198040097633035708025245437044015937745734698356576221408976660025016703265636831336880320229047339191413574261119922461912327504981493613093601326674248065554483110906850641231985722981480634066197359329514647097623322942887720783162014220475211765199644333079077455844629437670936566118549095562663406633238793316181063653700741914852321659315109131967428415113424557112374530176895016386727294654090488341680370983416664539529555557959586537845383572597123136503982119164824698511262822566500965661503002595199201651297231380537967475639364001828104007481340295409702138077586260955245243827463103745045202072095728968503714656447947760432240255797277522355339093776634441004448509486395599970574448263843683229960173274062678043621911065083454865909445497491512427849602844105634979259969835334289483046855584140291606412491308707985805252718726933921614167762541913680724042180369473730724681058308804443880933128108233631514213056153143016638300287097246452549977858514866216386845997256771635502904671174720579866537249013940518676802560759434769222595179703381580767713043691838342052773360243753456077245352194769418644794904233958463041302078170451576855139940987007033955755920066714906900332912692912757639248383170449895104162931056302090802676012632501257579457244329756578438972707504186947062325232446770461932202020754342728449002551036563778864190806180926577507766645987045483548416071326456044340207133735283330047936179271752846095136137922125930265904002667617373715440604392310086230860450792559778323491658324311271137011479522679260198966292308926125834102113366246497440091692662573732271922111320001512957542664756834267890598644028131390961063323961625221485284604872520249634628701814489839777378882723157971911625159392996398750696849406213056135673689052847337131451452780514356460850917162888001713834293211276962028836736704526810893566480048669147022534115252107856874578805698330303721602156512279844744687204974348680977080713719058892869687787599436968573506400326724632568956885409703507278808128457160259070761159646016683171293086693547281248190902581775185213591269589487728307580925358682580790430484165382800847050202382584057371537669803492057366808979749967242695048227223964441145013673080262342924688831077534895620856436493969828927071352060755011361322478085779286382622811961472629713955956134997761745483280820004745576721940376404181271340441318491040225935371875471480172718441597431556773816667804646667594346054523680772472356341743154406755911473651792717375862798865143848411834908563815274704696250913859934988430283254067851601565686524066162671257194430146843456129363427882835366899071938857439027430420582226797133383113686045001771904468987820354440331448302938922826540483609986855035165215675622254867287050393508704094863846897087121040729211783550565756341863105037199034058218932514258385333793738201017629027366240289351344756875952831674879997783392460713085946688004794474768930271200798284280966102987736450785034394689308179133233615578673401417635567974324381213761704120827570856881247515867944781319038119140711890922361958814676435538112480028929262112086525934413053385392617346480179655057894883590675322804980981878874585002819542321280139730191612267249380444106576016223885110078361919785229380795511223801993165995959692229130484164405294170862083556401081254740321765853562392271172400393518226139448902402368749377299969125135340072108569891342048803358370950540954044895486812358329421351652636113340318865799018690132525897082479143334245019358360450596233907679231982590654008643188249769236467018992067443388451028587345624966438622937411123928414965878627446068266525974931978385674220186672632428156102085648668843388251858495296707148964636778408398328223896620807766704662931544983198200651902239072319888032873700441654714545646398385016957884949229036800278970132209207966173670502348119023433923242425826268820085576340359651317915741034773204445895088042040653887264959288887178425742710631697694253475203556517232408167609255449257983875502819436349489263671302938469909389301388588349032154016338042182288768514267541497952178288602312792066849704624889793847268827537478435045304900212803357013467862941476239075297345446703523628747605887220464094362664310128493264447782765153245072481859752414664332753839436656912054767058471033214910467911995024401949378905425191170151935223635433989814020524984569433693824558213990482936896739741409900540560539016628131250857011041302381674746528333275364079790339133267469978089676657431110603827265984522498872093529274149876176248224242710768106038818104746236914579447258736764153260275064712316805895604286883817713014381276120921399369541348820116269948427560505494617900587750773499742147857389856613870064604898393410484099368250774663557495101562501967277711774703887800304773892024081466037178396538077660445368941002201876844892649298696584562748706021625854155699028741291647773810835940038027409377302841302921303075339866932511073114868529745663744011985493323936526738997961871226405666075655804118024400264627659209698352393178539531735012865490187790326791441087940959774116848297706763875743249279790983105172332171671994140001023056535974682537921241669031356363519225148655241678220561983706189559038768048004193327966735505304125184686787902614290828134833025507767406325949796401215653485849809105249886290930125436167515971296587126610665211722633344337115661143064729461679899660070940058864431236897003433105277798513888436354567554943640401033445217818944782026680340197739100892949567165046292640218563738535410004946968664496418370372749927497290373080575270530898500569000796175433476145981778067035026702077825440063157696353160667338055666525379899712218652362346547648744644851196726955148745138979349203591482494022305516874195783742495747800787302278554183995899999522948839759038856864815374749535242777922506706371444659848876154142019966681338982043278297978001608588638320483104521212923374558430625961161267360605457541203214641580853441666650464230745857030351378305605856678124638640077715422495844151022838245326594351364524146363311785787328770841564125554493148814181937430895623657664526816045686401801065655127810317039476289163912850229708451107250322826018908434253161757939160121806774785873002653827831982704225155549879703603421956266112716972461379293267222071954961608966167317623467356555786328967361568363690719244647370292375208374020341819526779582357668169736307197867522095945917897719224691849594874732875503638766154948229380578568034322412476544306234578298967025013416077504852431956119375327410586590992445643570795877211214078960825012958602059829217177222962615371592634157654404922657035776003474050909020677433576694436288022074949908048612424998144241994977970427714913339955843525746231660860792083054478504704775740452831400168294233561643877046655206847633209882447612703090253976112033304962327098008383877696220159222166313878601213528972855276404641595501985044033620364466890771265292401086442218522225524760560250215923635152339923198063195212604911336985333105014688072752016870232766482649445562045763763391961421683043874011810347850214044130115984760677579200169844232414682711695574779317716730145128798705347640811592352760617333384414998183386201434642049786438697634896397450497291801243968490922698684978206434217841193853399704074527866375053304219358647585989458488417025833323480570812741251202127095091230816203498857111783944580846207566152551115910004132692568340198307169441103358914854418620477097794538205226767429407865530646020114949656139112261511684731676952257337965078808257976045552388313271026439085537488428983659188750576430194895165385897243542530221753328785452783628786918048872855450986944982374510470001761745955628543932351596220877275929080725095159878093040008935980270731695737914421544600807926536712051254363065235749168856661361788839203886539511138354807925278032376580736201835219864812376095359831692977458393864884047018309768805872244263475685696083049514905513050564853882748217008553591148756187301466667074010145159904945804679470976696479030255465006123550550754782737646849580734822830097882154783945344135594647612323182861369357289148625311133936942851374725021624692999304186421454997421889605955614249212089333117999797308691872045314233757143288786668294302410014330578234444543948029330267097509965142701454029647130871251405404097411014610502253672735547736514669501015262562762012153550251861181485812970970614550572916500095271691653274209745672897125739720043260894676468397408667738250178045914000668938034408252848943632647998850182934720440719901799069966416145499786433950572512353780922533678397700601661203401382278190467098752752515488759255500622273091307086762754977686070194364993437861247657600147275684115875068318561930149821335395639940989425255772132740655707899280632368427431011607271932384404375805656690550571551064909633804447730065060258626634607963271592119613872475188846286173561260564089520536758991010971701486014146474344134266674358499176411460241236721537329520151813491619950792136841720548903668665104417103528722905951255142182067628287187014749751826718318292966122518359040761837293967495852986426863773331904930183926391692390977260666644016217331296086155301068441025432914125199043331403050829540946701674821446303471251862797235597279467242417050880893738575005679655613299876599633694471602391335769777668073725348708129268408406174642769964042753664555840192843505892259466902609412867309860688811688989820575322203644420561802021704095428323615696089739917970008670908766914430830618920917861497371240464259762185113305590978474244883980316975167625852390454441182578966051564856536164161343849077037674843039412075316166361569373927510449642117948709142190772616894374325849940689144108871636154055823122259280653437387877737663016026599162159242965432700162391840767886075378531550775786246175209522231449245248600532794895738649143515042262869120053895124752765406499782147568814597829178283984117649656154031245012682587965712029882941506569092590393409363972600511153294557882407045008441323607621353115390031543107632911616538815112646227620427182439510425240177750918978123321283247188336150637075587339481960554976966092524597030485111499385272523146385736778105494490609397781189451723305417486095273838572287871312460023106358020245641041860548205253648954855735281799163267279265523859698134632312127135668277523586687823716334872217032242195529066557839233142982707412278732034696976025079147617177364840552679629119688403228526721176986064714089674571779626344581991742344524791962718461537000091346668545954383146080114284879607282347090505695570207288209217226136155993245347961798519648753637184688273480333547604710790931795017672049776826388400727250335179607370364401090529606802351347017160907103806743304207121451442005194791376015271399499005289096444742997368119489673118733660096188615433090856511736965216040492950614606803719264105123179073906534642097155291199108102092854816901629186315451914339891892495207534950350740994817897790199940962497164022320761256372628705940965098143265407801617217485953664804146378940380615944450149736584371843694350551139941919183246975860440762299184361002915388747720485107942283664401125719312644765025142096924214734949425532721657939743960271388447477089488729175430916166231950307875674114527926303306763436588187245739498466259614273080970732236650978321001578978159516347051157836312576744452234694359945166493786726188181984750184683231420855850856370373743646033140248156238639070075983378249255458225804967779844012467820950938728546411346590588458949141962748988314881314498399249179248652449820137226560532337994382582548284800588547073261531907934203529119927145849951754626967772874031592291182222741806769231913336931083921903374006221205237797150425260137624747667965753734350511907841041329051763722591906977167321803139470836063323557960418313022742349101144138434288468045791684308784997879251438379104459654881383374125027037163573812940313288348355603338918690862859606184280068268159854454284631657354768362753964486685463309579914797808259279476227458797198458421605508638815920335773789650332603308328389299102858120166024604147560103556799628289126406618940772921512456859399686377877715758483529593713926284180872874367923410858289501331543657304381132720827121197148958883869754012684439679817499734325251789632786714223085558959737852808755583554044010574501926930373593845079512820421792636163963734444908047422207043281869258984237911097333954309413066284550426075570226705622414952298570322823934718667795464309553608330991184949047512693271553368679213856170177043110244913904045508956850645864258733030151310714898899895846571589829148042997302147130822802215998407277260842255687254376596842839966062499283841804694925667479670752099550486073816855856255506994343013311032183634038762340572282110465512598637051627824750090575584504462181667358134476473408360174633405270939012814214370553160605465152678672397252175923667247415615473368198129122818888172389122386077098900793713975981611142124382173156480640540395861203199312023585157840071426175516383109974612863631890772538164192729427036878407347011423098300534307145485246325860990809918100284742337799675149387066709770889002318951787922472197160849900236385352786806159272878307556105045181856753954366043715507564353748418340204528990125274261786944093585736178143496571943413218546482581793029809265225479760060326985961692326733437310582278193894673820681407497690308450339755903467571054850751675185578753659775125563501123307229312640082136383749927890594501817337685840196819029477740241706777157106269498995132802283423037951897122916262689295202827983316840726260766561078477133585056517812332839897180486773727128535304986861857759686339573413474468732033924436700093129843381571769174390511842295503294981058962748636119150704410110615818251588413900723060312750190926725118367635134660694185418380617613109672649997605012362979399758389932390302170922383595419083308214948049065319882160452653418517089263157592253128791287825654918392893531354616543868227758496268598718748909257675799148691771440898582942443501167656270041271551344256890465083143232998486769443582049909407507512462498831399673873980128262604922724870419634481515185084575611232696363384835198201319209873501318645388130787456954828330355704761416282130821001442257083693661940298204690225147830134425929906868895300170106669973871623313095844654671446046883334099283048149224622018394777138084300366575647823157600662592217318594904084664629854589542785311266223689399102839725898758765940072080159176972787799517007872893583076005369587739051881697995288054979318156106276665983071777805671524820445556371247648046244251230634074779451391898511377884691766725889740643261357981118720454588048910064549363059268515124935980809148756173303667205007296734068145061702258755749518752333681681759587956564572833168364611446945480004612132150523343500627082404906440657484258849393706169387916894194709152804656607092961080246148006411615355898868684984006956063576011345051823251126029740775623752433809664704732349475852820013058879420574423715346729944496732068896467656449818645987658320048398800552709520940422517347097946770397593742534024422750911456083321931195709073159226976341784745871549670179799046272655083727722880809113990058345227702026267939744305290218247921573646028654314788691538450191182279286494583834277000693051971173754802770942495844985395996179260947417823947498284998851193735132261589943818045929526901844555450318055125684757694736227000664596499309179294745808520576363731885339582885413646753319257781783321139023584418622290063780811416596074840762196328392556178001423306618821709890632736305830971037586594584191596821343191643569357870756004758764162708238808856524790420728053217049032766260304752000378070257794955653187963675507197571838687922697535578926792397301235643939966488975851610313515287230662471782398753769046964779126801296324875693442883916179771215950325431793097135243335510724668424371916886743463406866704643996923708322933004093804642722402418743607047555959412024975273306884288265046182149537587067197144843620282104362273294862259374215879006788913188983255003774109212404582563581120920999973448559657811753462969828931739154481388460266179871739384081210467653395062696362990450214613728261425855924450627055850253411183859037658103258410753924675110045071744921026764026996651814790029879503656814589302331054488954251029438027972909422180256880979278033862830436641321772965136676196497221996046836894955010121955988001038541751462545192341587698665674652519176879915391713704825954984028878944129673214808104089778994354276939053105322824839267076619143789383531195618387602818347054318618273487178711720862300546577758123290358888810856176244113335588126074054814648071647285650705376732346674000556488149854561663969758203639528183513998226676311892088922932129511553936219995238581244413882919265938894537278545180080116536649355295598143792329883411738677835970888345175295716523729196612976822698854726454036671749447835894604072058367807189774422884322259730978381421919201317369782490431964376443304354808563610162240432639730429253575511766020295403814089889544036205123399892171413130430839371001937194493159371842184543547100441988820304833374559719601698489747981725134298414764808475613757121572303899333684420296607430650748064873619638968866291103570370629656640428518438169367234093364535388191918801490288274097517695980928909212856233321189065204983593401308070816242969439958182241701567406050368519871165096909183787562434030641720039097908530209518485083793439663526741583557693551906637249397772187547153295474234073563654473671026108389147323318313290124946762782599449468570882168109068097083682269622277352940686126407959818575771990513597658649162018578067759099759802896845884038648143350497296667650384771301580281430030838459623712329455767149319951392772986194598839353415198268977781529598420795308385612815174794988857640522238924371687099153624675526335222632519945214685579865507474968802268758295674931192426289731154640725080404396550323914143155554814264357779720839758544331661720971499338365410822419427175536996906488511915025707414746783515808024187976725104044115858472996618710915783104958303444562260015993838516279661453740109534620329232522039185294113939585395869856982459589742222953334164993903274525090830864362433735113108014725889885725826942409055992873931670166245954270236729817098063790810976033265551644921891832443918032439272617824109272271267756900625709615598583508175072517757267288642320826324407250497509571032402313834529314722205927710190962938883181304818645824947990354596923016222830131619019996478848279114940270986013635129429254015389967329925048923829877768559636697824990283237707772487794055613143260493495348170521343821517640782635621314458868084072588419148410237939969093646671192371311156884444458636624648637101618136523081542691491626176839673221966052830990140530043081838091167932412241912473224415465068122699705715484723317400118515726705888904928328370378693486097865903262766197343379665198222167736102940338721419171096349713680980613035874337914131377048654142966005052044779882516809831291972860611683717158090228765748774488531811967496561233115086789507584286627380926160688751715559515310570969900687297488896564120576750338915791235712058544974793742843979828854535407118661966497004798907820698036374944400724609445519025495578870206142299821224556203516423932153527433324513901683394498363874569333677135552669082125148214518270745015421353711992043437429926875876540489094739870226586444885583816111306212356680377548412605835092300064800186981912701804015713807428159115026264108306762062775363654239307703131096255773748243022417625970268994627302937839921917477834478570312356644406332283375131340911003557008371219083961005645964498568880998162191107037309021404501496827870270013260907457821702105721393345998929790244540143843253447148404225646399237430304692932532705080383113481252087483310862038413550191315895769002845505714275499483240862012714513327157016679887731423995855372547349500212454575999590047743717755128204713636096318402622455534811742798552425230035987985922815540355134657562938947736307675015602409474705761726839788301862313290692341891649842334894174410869040139813534796197660970222708324614609166871332619178647305227153974796424185812429026393943292675023695884336350696653077252146198755809700718201194736347864025573759392785274849120086596775690111217407728438946223081545616811005281322927321186941400475459066766763776219663911435119057454448455811932518048310498554401208237090082450762666037727450016355212752002473650724904712017686870056473883682989901441712413154420750481820987575195294634099155347187803270393962515254801271337527295077209185791938259984354467747188293701839161768362725480848958626528335684965598528900574378119207975345355912868741737397837312832963614834811111378747162055051778750676880205057619626759295691278384963883733079424911336236049574562969429759734412071321189614562163327513307861306022906047221872850240514272562214283811889333098745510207222412493339459643879194029797020484838509184036663629529900641208796500849920784586840269121136732277690426466328209185066025669607182288686709240742286995814399106973650741411014952928830524024927298410228422555891179637090830940384068012761045548555948074401193393170194754478798994278351882471208996226659155351483634977963634786794279123180857585493650022549846158309875024666014808390851283549312065136072150270811862998000173494931833866744032874975236781664479630582518557113915893212220364708824669910511926530572212350883646871895926267976846831476389661553801798852896998586763991004212453046095109146817276645025613172342636299957030968142492584932108158511840696730817055902764775580409141077513935746724381199403312200419832219490946528189036830413876611961764453460331617429576839630487331364094255204310158458854543044168832033759848140918515521990284110146713044342661399752419564880820303445628414745943237760089327245148189376041669997411086344468833165786024534799409558137218578427393403577778500202367663320382671245432102298353427213246887064851930543251629577283096956696723040540213696637184132808992023535826658415632693953597053150488742137018199021628205233987977442420884812653259023168482969578094381957227792899115088235969976117204095522736255777028292133578443978640795939399872989313181770352478697619682762194262628371792626379067245055697113197123923379094864021127988550173022842947671983555105539096180766951732246770170070976430900911777335299934202445707869254866087615828565940534882935968833896150737469247272936437363925786038102606146807346774548838765300464655680878432705442608444609436869709332313099507470803569213490698970505344643241374021790729601008014653833476892784764548138429109576028628489979015101881950536365805965273630609168847523548297764781051273073738679503832914622120968638916467196588876628611488346078785596470054148230441866912548944795981594596762337204175422411822176643429414340061386017602286632002834805878902330076781138998592345860596530566339984793192763448801858173719749183672168096321978194098057436009683674197852775146471506436126357373031850958991345458221067931045538119203992120532892743917481103867703663197507083695507196789496521561346181372241908504281541861736672876469684564617063904079867150380313461381761416337443997304450337328899167531415344204932239218806105560553313215411913533232289529472756449935352309826780120049874719008047292838596289369968375437215585961563437895098002997627824541338259656527802387055692131331906470145732124845059731347166044885185523107019204389820720148319205352818515360039608593989151057633623833782365594500270974832098404975473972581868650010651028326269758647173509719269066489093174120167615636513429810779213584824818570580914051563489968953508528086706388830716292672261568077083764747365771800752956272996414591254661413649238454492911391561734288481142663695738805722279149660480196597920625421122428217117956795131527978255489441159193012652647469023099215683356275314187646845381452580304458574042824200864827022932152355813672894334047301331164521868279176392533427014224264149388197335303816846261980379015639030372241117178430006782898501654048885085482557335680454326687925544227418902298860423944344927183844250866967386973261380691247566490778396461081309964906421097525775786729612440108148019643788831350048442441361311605965191083003178804606587558185619203866504908371471446802086126621174934871021007861294881631439234873738826039813778338551735790174132386099431991916001841061108089135067769827317278226837046546805973319556259331747659845453476295336370134114186585542544996988301521024601144213817454452997142192123437428459187448104531364950735210751955067045463976519003916444664316984009121909130657922536570475376391678600537287479496159003619572772838472480388699566723639834432487497883950042070269554425769826913720131732842585164912327506382753807135496151666202069898751686834712798155774512151758532865404171111682480304653208602341193072506855509582972968179322709610637387069349650139152794449078245092669894722979093954793314138676895411623099753885998485588132965614015147445715331553163368727966353781869103972129049538132430670702867849520216562620055855516875284017473362128756299574618101885747360516132932105160411099191364757551921397875681377154665394736361198961296220784977432298480574878606080491822686818599478199934931522452858166308253503116932329284938966873965377116335410860215127031574518619235351104762595220632526863174028725958619441862367902795607664320284195471487819201589841117632938290378541544300303819317614432598430324794071675540433660380521931117386174920838008183152171871712355162884796641771731628836801665224174772357204408114430436266315384023136463721621511580554128050347996133362981009876422293858239205143653814593118680064489408492119019919960214282780423471373848279579293200398086160430166860334539701423968687405089010341323659549982591223647691319201708305969061468520284737994463899526811625256727356997283040793070968158711019082154173721174243321373021018933065567819324296619215358411868471008128695493069648188606453138149615842492027673352291947886310433442629146809648385621991929342218419256081252158378667741123750297326102405083850725374586538405142867647483156986284796528546355845968927778745963196588931458992963382796304233301420531194383405369163269438465506077852070647982618157847346056512633531986825101634960680049569914195237034024953323755709324205452439997775137153044882131627018605126937382629548871043657638416905826921121432875347896366426477980196791525892660511922115649894538281810034972681214871820871566677408224728919298271069687826663715275193947150756225074269536925047087999672573994951998683511358155824635020452375597460767000835027506658418420385688677060010705258966608176614111045620237623223975757171418505684036965684399767172778909535857826944961057125600014057663119944506990923878243247628055870641710967965411101456000067792029887549280903439141075315861067182219554180230299095346664048658130232159850153856292519817525348444343878656265422931881963542983322998644003475796249216536269865359985796749927328144024014486224122379047306514898612316476047693778589983302323419540930590361796545383371736778420921971300360578942266300870943616053817611201424121842025740186002128613471346665812713531635457473637796920226336373360427383359357018788076481101740126438744856390701923273071594401246391283403744520561520527884534862392093868074332686827651655519100785626001325983834130354105304387981170315070442802076703650174274625894799534502605688796963330437375773641088973423231481600258502785521164259616260299729973988278456668849460955806323812925307115554629636826168522823498356294271744602854892247324066959753936752086315783449727570396105108170049542605739033264510032682975958085924540214310647889985842670499859233444314193059766472253160778319374902307417941130470401506053018007768731550389302639239099248294980351913262860111707198366064583884074496892711456724993055384420127788113238964560150247919485821489855039213808194867884417241427399764817594715507669125717761239217593849320991935163268215145554025635750351985555600950103104885116063750811811110799486283912669346536902767433081830314896594169126770057485612618066828021478197152282144771627017006386272974689575375959563990430986674582000330338339597463426806263658765572669859979056088247143904363542475068266526220598746855228080004519014117700209037581533462044708930911693186008975725429390211907116298244870775876101464736428739934734518093426145070146628525078060067479854422872277923948845056972832290966223733423962030705529695526247083856917080653547842705542381505806897295504812202630469886956376408557604570237563218598201867449673731015080369065627100622215298862879571914861757778808065432044768666590363431559828549742616684336580185208736166269429840729755918992561129947045681074154905249822377057859667846056244388712357802635119113654132039373652198680337695206455481149603086123560555856642511931438913446891164580777109294814594573848458672926625658278616677217187586191694986366030068503702113066539181721892213705608365458696068014129847629932444553784910034759474933152780772135450396586952556588463930308988300001120859325472396751733567216480621670277745117921384132381079970888035646276596351658987215522409229414578330309150985224437777050084293364138837979973990474477678320793302425956034190006483325277273273010257781619829933392213249045559383086675663292871742824446882941881135613081095454588807731938584529159048546256569365600460644227983159287013443696760575767886670862705002230020277697640739690503121653713227921693309066979678138202425310563583065310870752105803153966425343447780511939108922433857052249197123884030288795234396197625686083557259685835410359392938618776971452256956752054325405862238320009085113780347669836358675640534823529245572446873202240303768356395311154027367580167249285149904231916451137327546798937458825014577337619645594438119723882226042493890774476772205319853503617564086785201124347773944484538563690166649708067345599520646066493073612399291942693767171807694861976105723278844237322984112048408063379277745259457197336010738886918498445414510708488070651037778666096188068520519302973596418809496619376157491969635261737169786529810314289191980865792453430906194253134360076048582810804998799568147415024096580704100160950270632366254836533320747516542427991347825696087390638437643654985550056159428072741664252596831823076255387038430492237096190671689808318502284033442504399262092769525089506856263860166441698327158018162180707076873122016932352574447851583364686701402722217364647851431113304106936681792021044669008452725096453363397904173760322100184547411455060891171625301799209370416687793538322257979892748243369749683624684163424368432024828965191068865630291923218841749407835551865059181332607195567715305889538506552258538345210894810179737092810964974084575062553207020975120199246564169730884256724362656642640275420792991974508125565578912605410734777705612661852373678367822325874800557478256771261539699482002150203815118034084316427314298021855038769786282074239014999271276441518195715257268110070904810968891420774037492949973544676731238116935006389223596774150832785269038775110811587290311059789794678288711261368360886812491092137488851145898343985680617203812497281765123469281340457129273839199898678685613613631193887913227698564295833180843913153599619318274257768981123385355051876939854667551363103887025293787926798869571680169463939189457286366480045926661984327635188346213033094048576957567362842189153355460151081076278828166748570797289689591846013806247006017724417888581847576521278536938318024785337990999928481835963300632786783077766571754398367370917910331226427687795750181675645894864046337043272873850059168421614669787882814668841280571058260327926276168637139455863053528813118652074210482636566160221769818523489262754252219478922188046019236219007796006976269758647119472995061927315592762942076861450904289852348400703903065529034150550239238936477524237332991213426838488917020350731470652438095970686437566801963052729474382817359164475317777835192607911579248810151609289957890844139404201715298997002504954782495032693549580500150157057048972839769681782872802775771602810632649739985221148473292064014461527754644502013962335098237783468466045298402101728545806214450900924628095168042714383908519054819256217386715803212060021383372080951882466253517075621171814537182414832268887376113594202572634798510926136628782008528138846050269581011654237997235001379301471695761680979460231602101011168111498779891503130939701311408107535681058677434824882513903122049240973849597474259885306064870090416204631331101170996309466581466868725738815047077739452830318871501480851664290547766955512289791330916399368163323619366800495786011622675064394271441825777177275991961153462663613605248865424218461390668659849295689133984580074352981530801547450328341808290848652137979661593085865903949704529891472863809404680841328055039012532289336321855632989301286602668088990738835890666696764360723313743185206819722077801118740344655124342518969577433136249437699684277653484050962559907492225808053979860247632310457534921734004327587247517058041907127194745067280776293157676490581918145993907599980155769341900264142462949148164362631552427098848414887507061369262976589305834998739844604515090899791005467232967130400649572425297996979924772906920048642196442947848324972993434886702440496101763149201107951974103538075273479500507504095039235557447937971940689692042893312812681976013173761423592826191100366038257355546684411750808716644527141238904813080220144314600899422788025495828603332618301048071207825283236201326361643755582780367160183020256197097688364059259867608557854721662319068278265923381870888830413870074007328415987126920779226964216300415804331574209483659842833602097860475101712021345679002410134047859222730392739775186043703325830635672649850326710041677819404566610650219880642432811856916967466743794349629425004222320723237503037746285141736111001380233740277836119255044237952703056951367168582250364124687165226644318566251216209721775357872394835880086414525670305761903901830756773087063025726066213466717821196118659749766655981011991130279481437772345720868457438873003580165658790843589783742740035572162258923326046025460847150178201626282168462202709839237026100280303659375679352098901351938192029040646749906647216903021459412535976189347488023554713886597838567635970779709949199033775941627291499555451047303882960112989729754698891609254417249463169561707249435192467615793351677357374082935565827329382984786233116737451405230772856157844232202993138176675543630473620069705145804302842107923390372946820783216889213849913204083353609782533782582105815255017093100720358995229022829697904619282435611958003203130134738635721162842651288251056010695414428518053674278099028742308652319333491243166428380145554760047502802581320075972978369433349515578158234838276885267340659612575176259141195103067242186854815659496132202159366925241656640842668900148934278490671318215182570150819423124570404816809897747175217282946034929865459335147954273079011281495276861522795960108145002384377586202852121863969213299765251532930003477714656935069618147233083988426779577905476132378684386367297494081444079973791072944545418626349909552185952911236818526234560513362705287753600017335187915158505928876462319123697045718613562921672301125903324764325425019506831006235274741910741372421959371255847731417231921651150098932927583787406489031714297138181020665913792435175069761570282559580464858710020391604559871784044702643544378061781061783711566725923059381739811684490051406658631779036744582540280909732759383866635937744172556548886223654127558247005564465903653644145889996206174035115732010373451261147547653863437022070958579080302081809820022536734063146359796675310943460610228782460216198016754054870393000568570064656917567536029541578510333429947104018305881903298065623118711902524718480143867370626885274553986062692643340833609840407635291718138874329443452878254800019373878929606706073028396656988776397505541865843377140334563546817237465025936977878967951501419080077434469207757427667502334998809427303938550054737021556543644792220767852267809288394706928293351649208629165355277948775338701671193050399051210819211375686345945555387741957929354685645965524072726624696916420357783163903680473894493504912857809714355990826651914453095499324427363580568095058865988597734563387062280882271697854224964331220010097638220619112507148055232500218513250608272640617585735327931851092152084336321886226340198066367052443797989715007420362021564744777989644538161153270168031147984533250854596731170810748006359513732764653700200221207425749376067530286069703280677596892714003783656286953201797116169034339815285367189239919190893856127902594023031994019509727042564461746788574404858134997778559755005184377044268628699442642060983393395822707625860702280349760038343342327968433295237190623223189621849332444502097613023866399177185005224128067234907267933730704329808095781506822747253089653046395403007976820060298275275292058668454155965580601802579987005611430552980779998237686012382293875947748648362618724327222391364219198820815536726082375177365111489695841836192983894846522604385324699322597464922417193716349976153220737273813565004051916977391913503794319910822201011211760708485605900855128056938482447493917962639173444906841547237450485731804721856045388638695582307138552576125944151438274130507619485184918999617715011677180873630734341696511653019412409833319667935109355805014844571015363114345753123240970749926433377354069551853304335728063631459479151744578417988643216970873026330582656775077279107400049315343942227306647750364070105125791132752464944765264164857322608421191868014517357203374648515889727728408996495019978705983396435182435965598687104051077182392179878465426022299306445726618445785335911420561681313813778263091906057715646948819711758109952408739285377968952594526155857164617653854392565166993566178183843026706008031154721475394353321036421180695988049975715956940621118999142955263593834879511109734206218004559296150583294965743492297479443568534742934400349505980660857462823894017692696503939264407522453383910932549117315021657029100972770033809387312079796523054238502216031952884527243899220812471591731120973712982977364306111673859704198044494288489619281524761095080761226323263733696385870206389279485875512967434640987287060427563381215258478494764540780241346195361207607578150542885436353952627335900744871836589304905976739499312108105148527843988936324614524174876274091897837087059396565113277808003795591832851137386257771681642224300865295568788247963052303254488304165886413244383483609183095552074121440041736725804657662841062334199259776936069873679882118311643733152147378686863797505601780544707550026922303386613831829385360692734422947287445814812586133445618237070134352508036184476916953222052177336820972570620152672443657608696550282532830240986681625867979874016939786572019203249770601737397549819133691731702555905457252009442836371929690246978076699651433052403853278716568992874777799982130375415654763487133204885673472463668592938044018841243279635703202864345649895142386412970906304537548333354476997090381691054111792001618529776818623852665355410571689847369163891307529942968781142064907624577436609965007989687227806945081307526597479648507190208535967650813231424133754028091355559166948434036928847223957626638315656770658945497696382818548647247479516816378966268580393235476299019189087581648576832543170292074084193710259947262605096042851822261752238928101882349849821730612268203861628864326965737611776022468654224693792417088169593214070079385531601903869862948187595844819858862006904698765206659170126497743734493218700103088898412241212427364890016147346680000558684546026570199389041750737565471145899939101300028083882219592657706118891022980775216939008728868201997136607665240836374599490853866466699119613855034179484565003487188145755437680021872265669817621876379074079225518824735615038821017357997391428673878201380060349224306783975681851029177524087295738949401658086351322940678809427867875170422377213783623053999376853207917556664522051893137400925733894202315754733518357200442140548160606627563899836922357031370244054838929150690542661683892921915133243690150169587639315257387227622693816854429193148227596121133728285689746897767003028028067826675669969906391378245723033202391874969328120047520200948209534827474310637291144734286816831107705014687455457910605167241689726343601137106965910857083601332267811096929160401396256964428488911201840362986978968171447713850677703383543590027182478101252298084557642610326360722496723456167856953140069208535843718672516980735848141517318458360745231292290426514252452440736102623113314546613126307007255322650497755001539733023668293878146315109073752023525269607300823501687143817343504301717003375081780963611080494292816940397385212857857101954395702860554799911195668293975802621432553673632167027653422258879501517984227050040017852224752769724938697917044938308730296160170528998264814397183548620051198126385107141807035303254701103075358340428960183972869916998938007809951066611705368864701544583939390380214291077918912758733547396784521967734081426145385356173400093454041557262324897521233502906091267316503812358920351256088395792345592016885177731251162688219205023539357792672287428644548239643380223719020536317840481403298957489386845822627459775465431439182149787444362866697964195107588780989739574536139773076413911049501495118923593179537066161854406628674036142206847151841013339274326073849003558250184242695166152846924838348260956043702846237868419255723052833939965343561225229880807826303302130752253020833869876092562897400992832034052927463722182525335908759530350312759215176779110668074070002870818764864883647099599443592240503256875602917080090535099190224731995890682565956392912183331852226901311376219793849325301582320338449804605180649953509793917714451915473138022023119898751844598064924562094647963486212925536166955170655648917401840397234541192285537519056070590634765306839221040771981767515569649988282426219543893661571108705266725905424354171703612365440637231735187615155677446615063903367295531632344287982364623659696100497296814308640962492847425963866539592854794910426366563841622098558978431704563215694215763819445854089380367117712017442824745452199981433317338872660781339841328432550651294831606904339346994063334098267411130674508877806782943013677501638411772121121197475658281600377585445763663324620330542960557204527471933273642172053978781095740965962965843013911441656062037434121823652930201517099559638795824443320264010124870856849101747181511188872242894943591082300128069483945024979338996505787039785074554080105561949301759898887262700003916564468246888123010115774894102070893650628964873871072036595082381608862501249938242323352673609646341217004229653806708421485754884141475054895141910960889866128909045662280453081783196615525765435658190375528776142597862805464078929708542160485759575850486335096033143815769156906998739034127425161649509308688600275388748321171861778455515158431613788361352536132253076610869682681787641058059968587279547524325759027195297516083645720885578848676559434969613958126555710428641032033880246172626481394152646643247102598692257149403106641658397444545437277979018158087272426383721045250150130780932033191496076932815743727089030743446181420143885425520905832247109408932924313272452761394173161733649946616175799604663191177832004919501501655740211013732878785073824339962588716060136539110604349762540658382619797709180152329233577104459222912513841661684880939383288025426477340487085270975434932760874458959072161614337446397582549930914599610396755528735981327902414332783660096635465125853554934217712917769652283202425235263609000681398522853179273167610449357929353412451552857983985158098529711138280098534613849102460171580037351923057498715413324252277608273341480465201992528676863806817058421268927106494241540792741277502612657662023987758748024784273319419127674703842409382387852966971088389268226272726581383777098307604174147246182134280219555023784685863245871965982348774811597998073479945806210882932063110723012995368562201584863922240069389957140374906536382767365274992320381946054551259101230977649433732092794983316823204033367665365226344097819890354590057808081087385967911271443951829475495917878263105534791851111290678647199700795554942975694033477098898398342105854116330393024453135261413602080678403036974920673369135007189506233413166899147396233310064785535976478991570217802132953056987815658489348024483906137936376195120193991690422003123405430499386609242388306308601464768431638200580815086829004580823769759154515070900699755357078089976306817699217451993057600629301433637169518164750172472321077663962677825934124172254392231474599970452672521851641221722440818625183107916823914280691399834149720465485073561443332348700684101166369074320673151793753928659619802929125383783404592859861126977537534914063010918137993937394954981234093866495785667617712090464244297272754078144248593233585399122981209161175191604014830964613096305233651937097132487161728098036654090839915609910337652194103158319236480204254386700501708543235592230741479416432299958331690288514401066912400010474411937935569112391779678675025302694581894872503888793578277988364684011165799092627987689867353923542221246384692385144111133778075610674857058979656245897205437233331127134833901487020782619047929058176296081021506464942005326440073415992787674122284874139880095460506828450183061594523650680648817841862882464207493765550478340180604147776076474418600213351667952752069758428343406889170134704588069240094342210207770017102905670979331316185435677900526022759918991992152616286855545460975506871387202414129544191372782981394347671229649822578703683029793920752321481275128906001125951957879333281441239324329259032101950715420882697642282210696811265692768185879117357036530796467145840914781621726129243769529538494252963979720952059678005588608583814262351724207697203598292969706584433252305934638121350162343988917848997736566030337055925643455655125780353474084969030391029005066373566691718460729334743896655737827395289013044209782245287979582190968962788399403035209213357075709155210768027395540472365879052956025729606112612043164965850523290877085489036327490911244865176751370878948000791994351946900888862283879029067584976934947807093674258407651848628439516254170335854706037311563333880626451327945161701059981004448311656796242356468863976159867422394170954555199922403726919293178142504746516825106194128074847725893601978741738786848533085864513037329771488366357753040273953764493419096559633803195354731212227697842551282849155018816570129527498993172236063388230303895968968395650086334005723319481532681439161142165683194774182521472719996148215578482666836200354230449195015059633269676826016385953708134179421013415778953882687972951145470835961801050287680724281639506207564498905850701486243663949106808406758393382718689607635074798723231969450005527859297237965141024057290469183097885754080960009705048676150203150238789697274680468230236339053147184545857367802456392428450273786344505686934645665139637004466024990668966203595212903784345606741506070799415057616270805499815722288827084796450108160821271833405785071601837880161930098668935663694000013301105130532452486638938409509625553547479553252607599654681566966269222259874417316399714630639404091895243656278317902319479714660842228383286129921482995560319854506583583911688479369458196684699101729606790825836144101378678392279008365720501155312297231361193586760300076892100506978117559197674093309560058993524024654234500564316709013511363809241477744938255763898569369219415873939969799754352550652802179435574829963845729013296379658952220448921168650400601819847481264198396856833234874821082833634813789942271019314617198388036287007713408487312287070447488966831161005795837618185780897565704261219344789780269611575722865987727073387712414802001254188726926955705232673728423491928156188380038152780916630176768660177391042084148997066896525558771588382658619955257699055569697717405076578720175429460440915275591949414266052061381726357116175704338096555972356744257155314127821030322746984048995898878752589324621671099604902490203817895895561390186821798760459978908943262152680830819191544866884238016403671748946073164671364397379956916809399076573281323460810777238216137839214936192343082410771997520641518866248149799813420883055600089670986974471664850736275808087395945912140142182863550624534349067627542480810418095732594005785427100014476574955118412213908788402193095340509959009812523925332345595399262744331677568028365779605612672678082275465938413654249010073998889890562491116136600147725957595953863634244873989608735045798642519629094266321207339809572224063226359892960625015910241374698084373959583063808361435534067781104961626261347872914852891006121130966938085285094657575565515938561611031583403586716923571790638308709859906880177548855681044297598085205819322360651136585690234899424443711208715159389107048273540806201503325844670099409641942017919146341923927646538792813358288198514313950714555698603416076460594017850090634497726795069471702786805804656800467934696504763358682751129134419940317604203968595468713679436844417235468939337221980527835556332088263227662924388710105800892287975597795444239571140922043032194777542369194320121586125879963045143435414361510097845070593400136473411133095216879765869224511079583804413025851989403424411534936618767780632700023594786047664009181889890593067396307556891800889736015943831643247064451602895452188238817385083498817383927017010099200683297818031958091215009347813217149367844352707204442742137022655775220345483941332983763511604451724559880268243618577825668528137014466008784667244845893961743724385282626883888954813359908416246194737492666181437038928179496219084014067430848004675951150680492450420626821049348451262493053477953862651123468762293252251852406882677452320703784812919457749728008184052862733487478406324242303882892354598631962219978914296771577030131688526702123710492528924050630251808692168640808683443933344418035733310666155207199744825003974260120674358438106316092459935288964080984354701433781100072957434700826384584380766219325003647136617262963351451635648522099476050080976359143438750047981065780718649560696735306715096019274607647834456695421496222295395300545299735133181199394454551964600431323917914078005885344463317644616840399818813462275751614932642349682689418001350423456708991655982769855754341964897777644802501492311529241656583266938317331311855947303747028680493265820985081064062860474867611953136089319235481648761044006542159987326099730640205635365719975547933180906425649195049129212490928374727312264399230564065431041697563856626880830060594755202595444251123000639671762890161069369503407955347220494155869700433007019757928492918854348292538492668607032698359508257768605480425349992027173529555070353977493713528856216524326436409493291375274950432727226063527028488920197610038713836199532936320282479959321212586841201276445933903217816081891282347852806142269506833927409449628198949266952875834154604872428143639829455287998129236945131948623199401642120992933604818644065544355359961313525482603661680019823934740940042377459255654453523272431483221144130501544242956187428070501038314782168734065706007286684108402973337511514744232176276694876564615020763344425815648009541615783988196908853937362513312174112607528177006512907758817503847549960724315053410391696446642653017996694969203331992956182498642378867884199679003595716475127729033182851479035752612045889237885332278189926050662338562347323662260617799189835797868917925513554598505972043758794645827245484693629097216883314334299682916765805624437287949918729961368777252339624429827809420226695387229822100720829636537595955053952664251751188012037270118239255914131220616709535787889217253975179093427455100766389015638204533422297867568429079138022487249739583341738869436369045907243418535463032284505635806632829268364784809647097389742043904311828816671574272649870350499853437332219482956559848700795735861229294754522781696551706605505397831870201140297541525527605338942492466763258838792475769384105894703139369673791227776726459726225544153678632973734722554522407991293942718745961133558751155965751280176845102937397806059872595862493660032749884607792794013889176526672055702976443346958080363197322524098395447177131824224571332393610793737005688859660640814170397934243930376024122643562514753276524960642370412771192666844882349212970898348685560084511921224555910506774637473325497062093009753663318411928808598454449497994634534306838813689519205674109993474850699756780448144892376305444786656394148232271331043759530303993437096975433277692525942588731035272621375236500089166206242578910619808061690605747197259042604439319043719200023637459336507240008007283048800112189239444349320208686843595731555574796960927610620303623033935997755099523353365233883124113044069041329411793955364323524943320902588208830482201430339754444205276307358895260210368346131077748556800520551411799452087043721841728144430991184264885348362666078153019255809553329072333271652866336782476468302216360448420964689999026717665497816965100937446441594675667889553057126130403785673472138329069922952207134954094765957388012406513928462377924934432548618342015537552517375240435239851330012296218256247992067757619409716374430066599745843341698813718488758200562051105734791714021552649457344972349377655186818097345603334533804019866914303638241463680565438332854834017172699679690328431642696453805136070928552433707603352916876763251226405292411075623978953588386553673787295359779248027360282621902397193693853859752961582401306666155693602298035084931296125584433644542954346667377290249219388837510813166051222078293599994321370392139114726853966313876733442876004313419756455715666145059758596264392174071282535979133642077691433362992125512927868552815125394820421826889208704112057127113186353512889059011819710137459750007944148736189982195691326099142066730682361831653071286165617819693284941108623107031185468793337006702719639294066768057514989869425580691505833070419057595069778285818873169620658247072812987582621567111773499709759685004726026794687418202290336433047574618161817743206992411265546481748864221519604556578649318375813564033989466343331374163436190382221233117722261599220391330500913313694719059523396536623939932120156103569291853295980660590941237729872122200801274500409664098289830048458312526041605790292393623491895956895048204893784486296901739919237349958773828341849745608120889989860735392941341688312215249952893799049333232375436815885354063566583567435610565127808232930056994635279868646269710017165885773852973478206760633045805313044518853251615918204455095752264453481492695248938888326272015600431132803796582444793208804265148303365820298243023324686373852203150336830064443270775472559108714743594382988385955315214365108092838885249560516067900846920662859892234611907548763732744112573583697762729383122414450349721080887491642754471004892598131238262790362242829454357301665392879064714208268877485324789351247409684581608086778337437041671230901504460026243098428545261766106125572453102846338532364564263042719052517925601001029989435101363627993116441648244021154615903279908475409866827434054305767161027716534839451460198513268528682614154044603706709608298372592463737604991642282806925252158171264999963602059238870766273084102128669072122857625908032200385329225384575618912814962186695508981187183891463546571754608220858133829436111188624958138365205741319610614995134822371411116149080087792759156556955307414039839663664000466074988796916861070780436684502770185197037240330055309991138339068698741984582912576207884326473535855957274940934751398724508249313801561384569611523695008026483009186287813450264410308254163040004167773904193614049981977584003008992712846446554763236947578411663270145172095835308593931654112803750873261837511168231407713366913956288461315125180370868366447803725898425180781525309426998735881357506073324853999403696770089790831876356136365304240390238168581545690851159087241383184480887695542100569592669822171839896079951087721307057879034436057550427223033277096978665251206462148134092242308999807521074532400221541846182588907653415128264094485570861648644236613146091854802809663910403157542052135330737197866387576819496948858048804899566973830245552234929214702684765130539923134557280475842585238356236304038476878124914532424463573977717693915555909911751955249193727634760434205256677221326508718475247700421314004092014718631134482406110498773606972561959615774390832407885215280418104609018927259363307266118663910353489772733255569576877340015352706692208575789184662255299898052225025033995854609716569151921033162805518699163296504413958579234172709222839987125425132646712881179419028249133971107324394297695402573484615430385143820905226863584842323198273494332281225185767003041827754821429549856232381438116660644152171137530175805373576347122186739616716747869782972632676635463341021889007986406935946049755332438256550042126401838971810059952801816800920124531831265448810916429148413272147430296469795084960017381607387530949322413479763784052576676906954124682448189767480444393328410414252239508759961395906834327193428638768932480304236084256739754873405025353220536067617128796108894598141367957040019465474927335344808462758104452484073454670012198162591027276381576828066958089398049896902585634788721207240596810793722250959505472329586673919807296396389639119150360133074101265161636998934900068423912277769069276442283776954187813543648380271012743901743268589641255270650518602311813185441096075725256148005135923047776887532126722535983244881445576876946957961284084034578658982219990005349975285853124186844290348424615863302096119709657663917844141059895537621034633512086487079630762262181230654769577808753111732160994739957896993514214082591848857078795273257180903757564572727415478655908278206699137331071845636267114729409471208521657598158560265351414687685034359208344810339086957964518779247026994730813804637066032808982239347023473217413448491231332956543019919380372071807935026026921451536583731395866469669630520590289330561742709237219038151550571449392091769709830677628836392713813696128242570218197240624004726011664888258299053258297928557227305320701055428343316449304289512824881375482666078044921065222168464401155727879720636738469267064082401870438473062613174215053358587248035028834452894709093243619791620987027429961753486830231916875477287182382445777868556093981360702137734903621697473432084348532893404611340211651074502848407711879821904517974692410362815355031086258428549310258161175162899011026396077856329312052400013418979539303314877846208351432605052344862255931678537772938113243230879270237973357541951145855210694291627087828322660807838009450697252408419468221240979057404122581604915387146620719391390022972735851910556018694404987411686793461913517295063232104667303494439511411485370315138960642243124177757371479335457490774278245310359170736800466453266668076425128386387210863798356791673242746214806671456893680701414388240661070312711360034211384747929775254153929839573885807231858939303917322065885017046433306579287983361627506450722470963541771218805150939347648484226001952697727855377665063435687482381362443408769284684422865680389036734612312145763033646190852984380799406782389400006854627272450370678631045111275702860759112312788449921943584221892081453218908867787870141180716998740105942651849674907339385590400358100905298586241913516532854563420657569830952951290790998426212001969709139185909676203064198293380665704493673574963889366650362198408638310497207205200374434965954652973184040523887444206012827903522326480698853216441886184717222996304660269260915118826767245632285926195445764170431627874499323554856850407575779893651214596684005661425768986024811554069791620967828017775841425779713033916041337668724708577136582572394452062163584909924611851326055477511051992399695153604663866167970276247236556605186172825490148741398191874242772120871711670269521016311811851111149296143694918638413658454096011717904835932061472258201632657368563496971059869106008783703268268282433986840297763698667561625075982256185902113827254041630453268188101998467778583458449449475177492089035288683496436227538601230808799730974898758072783455636631941009337878967544585542908484589722025587749110776244870227334328878285931511331973368221411566409923182759287914954400439912108278404463766138250969447593765078401775366117436871418293813941503256616186368006897661011129502037710190920674307657745367767277084657700824057998905699112819676757419979654512046045011403509789785184086900133782878219137892159795272200047388128655683885357142680694609789675387602001252568539503815824132858625910403453171995773996447816616847440605988053794134273153858924607596280243448029195242647593484863307715046681495846622122271962984416395213561206753872199692146809892950720765382990528967565841510031812008547799348630206881548059960844720357116518545740353157202782882629474778449548121612885838858276114161948679137039707828396211839162277860994348270424615348933464846554348564896876922669345148117263540036125882172947039258815846313100472078643222593497744231494299132338787060152635610498187150208428572003742451525662184731429541775260278263580562723999344926585991731638853656916212081313304868739490483558946220415814365145228273110960709596605026309631271046967466241132006612856438048819391578781816424693391705516229012847161098744179552539420806503944386896452465453760264645175138792545625230789038591910615232146410529449000937633508026785042230960992820585171320341285238872544435334563413082483951237901232946541286782879144167508661764572477718583213781731297712336881864866572405446812910531543510437407449616950816371850182314284019346043181598792817949606223329284550235124739837526348364531016043602220407961448942558947164571104705935246588232183639992038440385405005677173148673378752476749049845768369851283148790351840285992374687108474201459734751122592833260379947689836524212468344581483657822429050295766393383944039104060325786315859283361063996844023754506845375311806947374792422895691948543748704146563389380940507129748426744718094858153273112561525448414092639166433418474416702204681871872983958614831691550638232511503762743856949389338571071518432017803442935569584117578393842260046528744167163703332158157716619026789879380553439068709105394772229828484387634021929050162360032937895757361231066754443232608071217282961049003693265006891657602856813755215632263412755499165385866214843145825525965588926130140498557139650170362398379735525281291151746868238601468673160656841898901446718758751476032561315729477500088884132639910827136586162943781770489338283318670578261211872501380897593424448663544579651273780108458586598645788182808308599187432519413464139370724488978108878092817008457771141349928800532476019572659178673676569069479171468620486972708908793483352032567152928941147511029299453476679107054119477123152609327096729890274375666829550659746353594523046688324563463618553021251256192812806538911193034525053849090453932752316858607433870578036174404911855545617522264784326436552890295869648082277364901072531892654723501109996792889794308567052174526488916596664603220435008820653394375986204798428351195297738799085009667456433703721196856357461373935436486684130507136932156964533949403528234746789903946326497645270560162292501193486762635751104852299369996925781908251018574254874931643142444797919962997927287193117780018899272652007033951283423592457429653481107529891998167424226122140890532623764143960650248131595451106018821551727094790098904180753220748983480486679141446588154177014721833899474235773766625294668297291406627521846526418624617910714254505409070249181673191323824915728560293251145651457884957933910761731749120576814191290626272324119503669569162060170108378931423534309605899928900717857357937933813067758283278158122155507468355808228217050325542188345039999298899331096542504045252762354799296930938782251595696451128211384764438353732011363479993959811142337529213004290696428155318369324189943961883697898502603568308189692573096374371542324672509991214715333152656359972739009060444795178672569288942712929920536922472326154076735053488748185020144534410639263946440840572575438073844515685621646166728698571969662889429073071463063710410097752976604614468904328262961642706933856247089578597057145941495628240024098114271621236310931082732448989567464967011356427479694586393881677224645299212795467299772107169066171282231144318168966344556724568027428940186677347464658607962178402410765835494347176195246765989621447515645851019140443325310785115079638097227290943844674270884962843896448921861310933868179911125329560817635515690180569536074214667523135159283913510604681177463537625937686532752568992389339800318281808244897324455088916240662798809249490435579259075801152156196697253644195222018895789712154727651750717943839030129434322045473936469533927986153360746595002161908789846008159785820387558069646433077847896970860469304081470634695313510551055274507160352904076443202128783846467534096595631918266608515605603641173492182345751589160187639022605894229783621315747242386346941839118123230052538632636157934749246119602888048092597994891123001368730409360960616968604484964631128827224308684850744436414119902885240501848642031887687802431949444625559865323132129269072000016291527266044893826650049259310758984610557404008471051983662131687308375858969766188805452580047579681880982161044546364360568720528355085781336675211858466047266919452136310349289973797370601977859816465316678489610701161496155612029618522416148737886833940715732575624151236129218393810073274959454836720777151977786338203691533056033100782396183608923693348786067231197198821392701476232763876896782346954664503741613261908029811464458295820116625141105341893427297443037705435418735643932323775831280874131642161498317467083394553121217235708166585081398588545002180819566594629968472988509427171017998615096831306338789456712128588315215441997147069891761328805473494142267675540966887198678414838686276177177511395916215637078283987996300229732693070197735683323411193424093821965065230645858902567825011870066110441114118834831444401976230503286242551456025750460675959455642927083037514197246143905494192272709720087104255262193926831504695168942314303295301471763852401889071581271168378381689545432137259478656491163714766825681578160313929970284763027265452287260105186994577681346484607511786602973373035379609832111544409144538990292529097417460009485395794005610163952055531108642367155546010923098999228462068974702654542625917137200165293098606886470352874798456662362014706067336933646979331207693352840137786256095398730207810437437248138617540109783000137135819378743706422248541663344580258237366777385779254363726332069916935130085873511252299870235764295710362933866300045124106568878513841840327507191917758984486944990366594513749869481328046101475506006490419610861936557929450436943591772011030144108362865817965349278758712496622073936173165512746807363319403079281785632260975399177570168220488029500801274260430221697055095162149696754215090299643202703169161487624426505288427423762860860578381503359219428154205334461927808826573279812177260680799427707073643341783974747914647935757403540357480522057487407060029655121826997265432837276990259967241682764027195687755892769722865673299242277950407921808898091753295428744761330579887445399387268445600126234667541199165951860270320142546354379112723509153001328023776543477078378423082402134766685893056405378980346606106978736701814397842523738800886001885242284995048404677027276916720380430093755139725987475156296087104971393067343691528585593953783782344465216805271893195388246107984110541770848720712279110664443519554026562301652078938794443839291750680166708683295735236333142841026769698150324142072510683883459047215613031552709655851512050122794769002111317785902811677243422008671854745849346413744932818217617888322541044924298609135031029944854326563011254027321036027039691781992226984817008198628932366580155919814967186263580737878406434076371146484294776486124917436110624641614665816758187638776135159029294110554297299354404395797306380795092279431061620554578298004825666959019152149419016021738841307576624837543664427780816984279848789992649703995150495396282845481930466537409098069377613100724433063660569494633727560554944432415624158313689440505747932160789929971269340473963404789093813001217161466630927572123660943585860904831577614479390417562356754275947238323972263783464418028421153787386665620696829499945688074865017278730393307481288044345115685079908044612257873682279891664809119182101512365053261099899835674182879101986456404490331498754844364137111014433143844535129138492585156888535961375474464426526139734435922225645212481230504156859326717325006493616045148622522981199952822693264917396043260652924377466926719143613816651345778152790793293648812596251697880554516058943855747407413555534126020122247572299671580542375254709388570717112013634664670915084837421564874888820715914576936888074754712419115305951195023536195633873103668639043160004238650268802929444016544201842290764121278664916448942849469921913400601914208475321773693428521633663726039999160138270630595335559799680946363612319171893023345136694742617843149271542352159232890412501266958092938887749423561869846740516599710840163375526542470709106987026127498023489866963389120178589967171267588167704505064058599127306200591287990987922653950057078724095826299404411876475641649976937690182164524753067740269236025021689215937574709800661095928538355210299329252017106872261093181382190886762970642191102503099305445593508206370838711971108561635085220800405008855697823757143789949104258868213265883056271515120717027480415300792653887182850402381400802084288631977310320855677439425574944300309780790977946000896139321296715224441125949025854568415326320827693109067703640679420386775096934116912356078911122546724822009045096559112860919025380085753904246008475056370144940013677301433502933502288756151909696063792108428649494322587589799541169362784925964992464717831647129745607819051584347861662897272312436849551518699531215884915834768240369884668536667799587135886387450468094104649693428635011871710187921500816802671744440262553064308374173154954851351409168769337359186456648397251503525748937906004974142577444721590473443807504769061632063916893628401405821777010389503811052769895232610262800855575750852844965803460493439934839715826544436912681153684549939649625896878800553187693869813808026642499562915177007742374523256025446764943141995605917136962549503035532814115805143400036887760632347131482996466018721011171438968173986448574200714032898827867107506102711285025823094948970092706208511838773220667445072240977422754706585617023637914010026244170711452059814072200198435085682077817618381091005766615633588369871620195894154726212382382943188868245849278288649730005911240771181910410996419343290499110577724874836220070855463315250817270031321769119620138772573401051870718086210605605886954772530029780522249755272194107399449919546143677618750178382015480552575733152445485470741607729055031086598553417320907740002897538717406045858891782621639423943925061268605694276271749810574484721986781698588711481930804332090890820441372846624984467748079276254304313714654692804057147678009495694288413601430813584257962633063579485400419073018663238749944224852659345600873400823426881657849408288099886681778774057238730070714897846735710157705525458366511398906557553716748858868297379647942242174267109420026868062171630393079901192884368511564514600944742493138669376864727398294451097642960325605761137069458973467417167057987650016446253924409126315476593557897893307408288351578925652705784267341492655476649022722534855439196396122235473967625108997067004220009478538556140992936307702496360721195719996504591124168921247009357878068525594730973805366696288635061800688749718096395478090901719885188713544349135775720141000945091028453234582574674895916550681253209641105612075272157042103282137841398707410975650713990073051883361151367048411375548092498150106699613259760314364751488077479947378803872557179600237110531118676008231596132810669945780482826673347959289787854398396699480940883978213744050919229917852940089611340858945827288691871341123172020081254420155904738905664117566855630046639693848117823676681519228408182734932771685430021447522219099253414348024692820297936338776169879711041191783648332657744031174610400398453666547014323803036861785482479311906226478481237483832983645171152125508253126542811100701915886404295455957325485959143853848311336223227995358298187068630088879093473003175642604442193474772670338612816609176741307283525299917081952143127952364790167910461515910718171444522101411155237611925600491784101157967357750167211195162616916086315422627535988729096477063522872740049836755478746035187687750478242081083856022437891373390171766055649062347613480539162046915302758474558132301906028063177500109586353414935890617741584857660478697557622720712103537384797258106182326491403243725370312720582602965904375963614026219246875748967791284958710374608026444439893098560046197607820668108303073714665470218350654410801267943300160745817547720491741875407993754161431563820876273510177650395456735641332830754427703557297460920149045564253728457552726097464365310752169715402145331762112316199145940694316798174096541349749496519424605407979102378206261247046004389904055160627578620451907643611801764024519112613106476336598008299923167934815814243086558649356313313942361140417321399021171887860231781218695766900024461645772139898580587707406297649828203267303065836695484594019453308028021175290084968385619205206079862053607684898978203478351000691741953543272847079586079876644154205180575946904439268366190348067654170915048136984258619682500310158607383509127780993275422270852073132706834427754994625606829714373678257320245062337596858826103597219491455669286011094103366441687378421126680236187352679390406427981176145100326103318265975662755474043840087518415760637586973632007572508931055480095388207227192861715634472607175175739392807064777653012678044283501898735217686211749428985751058563569540277067953327925648430562328069199354294988595362005661380233901911361666036765347488552495579996518503601538246392328458041870276935862746102552781107558812460919194026369552140906541162315348864246066678167892874116916276563863324672391327781146073500986511314008352153880093004388393482690450245666717370675361683324185779020114878509455823023749950803329475836041332551149693059180314231739907042771698910509731781582160711114535254883693356172847606397687577953668852355046961285477439038956371913697546958682133973590738990442629861776399564618039926112607121358599838342671642702964090309523941286265386676842523720543865523639259424435032159709787660166512831751965495114197380822658833289200936552748228786530241095937706613564282533602298232248479402822820687713327819435835861045952310989395825758467599868487832690966620921086707808130538906526757368035555670511229734301994283302221650117999513969832430522634873656686390519414860423746545808086318317254267937363715237438101441934577240347692220445824057821909474855600443259785990178925962447220268728132792393576849484716423501509652778350167969502649786534811225614234184865518858880994453244896919078338351274283673319399107398486251983019119418087997201493364658934464766541737946718073469585053613261562282236228216694658179580199762023256410150451486643197386080883092783355909957748903553720686631188513457781529561143220079000516831332876547809889833118483076253935408240411401657408446064361723982184984480850703596849559475566146402573497780532096140656541078628827504375714913891160538185648635452241390117741444791446372495530852757408527687644946581111586371113750553242143697305109606601972565564406085430614777323160819754716726389885592673287359234811837940086479597138306037303587092699152569279312892706564550474841013580679407751429024163002084594049377826474364648122323173535431137272872250245185844451733616215838259312650498024281860013595265237883464570279790138517425247283123264571422535651065772117931927306820533296605626406555780800794504426414392020395567918082372514079683491712554460332489480648082571025431086053225608925024060588161216405674472173618298106205619154849375193640617033423589153493902451488606145444091505679155154802096443952869850784594551347356481846478427742826673949037519948808748400787421003594440592182897694433263708782117699911307441286871344803697125374597727513772765208679056832235233583783524370850860927066662103796167845320981599512489431216543718667361920121825340353641300288294669506360154702841781242922393076072400095119786769297754991522146768769354823515729127616299398345064649830184493714955188717273721005223776011004168357254315162200488052967780958173441532837352990964157939335398009024283623462759955562990218492658329064071578068795763536110028703068154299960501513665631916503523091181458347506909408840012654283216775075853525906400759295786577226970100771926725817915329739501400037585200339960669949285398404530855875600183743787054323232542526554088186341873605349193102036389462430136294926674171253970019900184527586632921099672287354926240768696934879530055151628103252861225467984350861875861659226416034753640861640940494773058060217334175475358582972583364094320154472504847011129225816894161956274095002250787511763906011930941018072631093202263332811628835530014096179992112368881840233844656349517043620938845261917006140535025040868351135956356248357312909413494967746885904890474960325385483499167029014847007608424081071311436687679592341545193584355728761602494551495137744374704147486761383089824793914786387627609746480354186602109051286386140130300103610556201250910079341767204374498453398996967989602341996354733196436346098656298794341252008877659224281245334509625413355848859176078211350124340866326256622181620900597881067504208365160245033254328868482179462791444001900841384853975591916764054613941746085511050922673819045679525619434087813521860471648921654923035263398816683968153979298721451925185128370909279264693404152224979236232570172244477613749987013169011941904658576428204795728867292058277000493387461596049973801894858747676931132529590474456603080940408733093078010722106202330630333531859402418636544588961915772874654910306418016968238211855669999371938984909960414015101166107990840602613708360843460582803861411621060099845514961243910210575396899570440759276309729728488243983654077348594463525259595775537357122372484861984973316775375026668584878442879096711336506932082798000152055748843410359104724241481527730605905714848123758852397286108575411074397527876106722582069311067609923141796212704992463617952188034381797210703205083563499145688439987103880700881506306982953556872755404575651577366611867845246131905717652495185536438965150530269942504675644359465665801098610463189633875931957660269527003636741586494233821859988389529569757633973662228775025925297757748376426927472629295395860412917812581866120007718103829177633201206375823513382232432788861139544536385101011109680089044380112446047908878774608111225583950586240787173764339457491203928589640109940238193334633744114399448046046041983610779673188234327848546534956067117626019371382173643110752911854825527488592277932838719088275754662483583249971473809850490522086412289682151898727197483507140411231735199974890503544679175121031786133334313037908748530851819427762019142593688870305064742773292960926265677817738295530531994623709297852945902748794307802104321769318219129394652516329795745835539425302813727408117979539490280377855026996749282839823886249832073196990012341838673250109688618421820237579042897762981842091128791423655726681138438908918495263352278410812959112872536687364394364832337410705260840573878472257852274098911461034448860368991666610040195985319873233898072938551248020694573863546510647578401981991957463743853531111813543475645114137945297346685113700012373896971815440302220170422606363035496723528284841671829669903090126131614747804944879311397837400352807612884008277235881333848538311504557002778343825987965090242515716011635657793007410908132339976607445783610222534732334293915544838123032358250542919865757876036541603799174726968915178485000507026960034244934359064219008388314436185918513660311448043832672455488431032754303450144421976549044810429347623946754152632075504047873590482400549319562456406103804180153752868512511109766266884620137087556658856934743435816333954571325248478611709248912954819401157603353614214473669611032155422277542738140304856395287962757380134475557979399805596313838186519022655099340690707720928961429045458476890270713827532735803377055510532438480219279888457045405867782368909283602727231964309821165177798445236219527658450758679962462926443495199797957702472149407161984432035316554668362237474611539788354425174215858169961436092229901761650340219412258365569023793506262543749907777181875945600261612815739372586171078515368985255431001263918429748246610410149813049655198475679134373290516826645948457049122697953156761525999468281671368070236496553306712344121590901886005937277310930401405343461071229361168602740612903837299800052565736032701421014472756651028657304028744282632094909162890165019334081864320179946008600784091372608554203068715444820862364809802208572847231995449362246156919327526889479953792584020186822730415816630765067907238878843491589376004602234292507318371193759244337453367574665943745537727510498194937571157232907293594074236895782460860251793571212305359660485308179084852645886379359879639886690837488346234397589514893577894684454437241400094166469996394095344393716114357699131583681863046859454698367653378806134217890212687878191356956740616216048451024044418697536950310565584822226512438832448995445669592338432250348988284482164743057581393083828374241181792995066186171229300174107674161644935572992274110299011803338947045151997830344440584750564654387902027796634913804044680440959140383949690572694637997084442355922833578693537860410021097664777107039682888563745915437748436582596775275165725002183434759664371387699409739328506590899111590810442328262168055754900191880583974177917143797779897618121101824575772620323497742642710250347601160968532635463495189116810922770333194158769691769963526798375735615736003493008034420881855365760448368175608227678863306937320992524597127987768826865465881793753801930432249811526680331601412168043353630341699592928891330848212943826959117949601477619428049290597487200515651682408642215537707941585523189262880789317585510557622374201274510994780822729016881046873250673479066835590437836749819991363436030372392643760164234969211667425431118186003323381092692235875738307806903764297438306632823975991376031977743747429351302156708664125196881199683735921301566745924676885708250162116817182193697936786257065639617475606666132937417105907944080098347735305523578785107931416338145262197587057173073869809524115041393194137341150476449874325979014347387265707725166462085641201428717465631226694548381796653172620066759046696025938362805052179024773725404558847224752373562767459435400213916576972940592482424350152590013062138966445585223971953698764406352981428998435635697287219157294063502773044725349154319584474325782984737016918021363854779575606897005791737871616418315278677435865704915396506753082892452062333545377423545720480593297346222766181440217793101646513212406708317166533025812140779773257659456722929757543029063736265577350514474914993463596872341339493650838757350607868872481115120506706912753841281436497550790716073734622822779773203673767840938244365112019971086377850282983350598800307524302829279405640484134734265131164136149695174538301226789093722165735100871943979555836397115106910774771572379545236235988249969150446716782923698684590919649410967296879227499281282504503457021428179368595655953092349526787517799911035192903213475650971036033461536138546465921736259131457754903990000992139672649089700772359151422874289194790614866391551892669429811626414086487363756407133416255809280819210128678944178510399552707616919497783622130154784793523415005922949452265829550999198921804958967028643299969101041811500406368369819227482287814139587354227431233821325509373618965160010253382648693423068712588757866702541882678984188616124966605319351871592347558208587639309343451208147839767445169200454213068656139439781939902201427337904837873263243748449325492699083712965049431835463702394112702745707097315071023661888013210123806366036690050458218716534877214841825427375933179368016289612793473062796504702024421077820370776546681935287335872608300869444831685790845354938039449074442085654050932155403042927531329043834843852889440077528041369120587168445276430124844505736277043996164064555436761760246997516918126292663346673568752020745568344445552321052663924929432026227588582403407256720995520471724357033503248104059884822159144451067984712847084861177731529546307525745393457270889654220757263351748703253086848482184089114765893543766583527764483664791287927964625894412089276608264118154390710822488990620552929760655076861010972118077662982358043133653487722816472538586214915721376942376694090760557328838267997734948346298136858907715561736018836518400532391596534923683429504305881787216811427947484942836748708082435364318469151599021155654625890843573059971865529343822313754735322807374506952976128675139215795608953313383450197026721739513737242798384640230385668461459346419401012775333117170565935543343134103299338982492382609023559449163812035019996019444976013676430366886721116536460107216990284128268269761388683429377749352011523836752251866492619552101920841264910053298438483021917951051197615818036106230830015673464171336989873922369701308763465026571140542880514087071037057641272886450863103765174216960921617110392097505855835034249542859242933055823830161189579530255820439039361663683753180608086547599569798774016018230908403591725164879549278560657910351581262809364972047930558851793317679265938026786493863709718732655035607231086693723250703365873875942889522193270552787358335480958929912824454303579469978557516145908034082044135684071941021084980603997146693469248016113093620191113196229408362491245258711303972342618332000345243595730135412459931856479215433995331240850364732292012192974549762831756756284551974264671622366867721560405630721441165534808925822716220585373098394409051560013488291814431705897739986928426787193943407775363801058791698724786178353527520075809002588543536137859172738357227791987935645691266962151266024524109573683796373617725929147837065151868585849883551787119006178339442888900429659936609212798695873969434583794178321312529659939373764158089124647828763013503141906348829014825615803189881325865081025074760951919575051236630536319398357960243988165419862144077887659579603754131803193533298307019128978608327469596557741819070402112901942575361412406895421079914826708066982551450486527002089396312301668392595343089730315376245890607701717296505236664342247435957637814136971862864457423037335374024518709620030043144382299788884109733999660241813189531087588166855325303316936153048904678433765125295050863786632081772457804212565614161976075008115625455653993097219324366079337444097734767402113835538023507736542589785046141312585045541323904713513537658509714222336123364370746904815452270294716025023904492513440815815559736430437184710535819285995787491852064819792425534240749682806852003847079435284292850546604644314277235043265253621372683420613535292813150439499793812349994029210671919559812130613195640326089094836107443165881058884692650766922196023140453981943041932248648268692637645351515506358838923968093319649913608552387609065016969106489113107511126018232647044630316512095752720244548347921501824279606439125856042543790316630746140368186310218841596063913669727517073350898122656706300755064286856032552699657443541715664280676002053064453422032192864002959268663983245994790885247612295223226297316312705730043719965662283328191730814509571569646010968068182505272774217036201551380367459181727842943866583973813957346666352992663176202067330762999960789057524380795471411184775337611156667618352728952308310739350239903090300296758916109853452836814734292776064975161450371931732922687563233497253307286324681669844738038730588631166542210076210385565171779847567952345925606197518724334677917325319117592423947945821844557410800458193020969251332651203931156252979437353873687385261993823025097932808799470555379728071372165653772647727275637895131372273139562712972609141007590452784670311891000545245191894462412543501243406292382615855610343282319640569548626493552947885025913981326503762830444055712244441206070703951237472192578199760998468520652007199092077390450053658029965455544525948710803563814274465438091066656883115992760055382538699062350436484521066055182326393355868480867171550653639967974801795580051720017616636456690457458011840853408925612161161774582172687461465042711052614504449437135255714245277231537913215578495712906511508423788262544787312033686283803145172576511839270594316516021649509844131584348845982381749602647339400954543525288713125803846994793688604100330314694817592324326800428046852722775665865351814522159944123743121492453552940090793047684127569251448060230493169962370713683229135260893038059426637234622485039897581313428794351097260284801697008066439134650989078764646231154001655025153209425923371064808047754187782855303481910249442256092378223749265883593544670822627530133894491944965183782754404889984186995423093404878455846146785833544729502806835624466960656364942310359290713674193144314971351880892325165131856494808517696923323765748897911750057651758316268711147584899163195776281708886925918582978988261534072800695890334363082825858052998458850394313860406833929278910041650431918433196024742743389002578177981132087730413938630205684232689345389305295617012099714306439316339094579293763816990852635122864561905706503949053267654627905127019001136191341425200933977692394054893544621887880841305245875094914644258540359694757948737942398623064422822275389912226021149816982864144588778566863198597304462327854634029907202526409759060223202197967474971728690692126253261919690847336826543450490926801742104267198328630185186864454892306277153642487316175973618089754817480922512599652381211871236006186545950719447424720011616505414516800862483958183928356067684404984535319458618422857494042888597520561791543133469936164288033342166559902380062054423756624710207335442321766087227506583723154634948344839643652484948532263937009798473506935307650480958131299883896496981494601789774460280927254850123647286191804207905932716532508945984496691018385004688358799016174960305763481854552958689318711206899893429158317182547108718441838577168258248788859136972677975558759845703499481367537685136189095641991745951695001819085099872392027720584623205620005670362259180732921650700942634699868754098570382902313232480556758978449162787481234220988637648170541125232135743431924797697190814524529992421849527711454984485486989798918847895807471900707178036623707007300149683741664856878440045276875549891194338447767295846166337842937362272868037546130785181028100654600587177143869571992489901509871355897394781290086721235744871048138228563627128102035787520762378665644983009509375135499214527362203087377630943293939901080289238568805633884921178195587425535508690926543928335924498171887714059494238401289120868821113862673175512232448346344864982663719477659087715135290405257623576825217570537101556816835902483542382291170014076163033746339335046139630503599408599326594560085077041894546828971594630511898623990510133946438004604002180154859033178676441884505539610503532256755540724825773344860703090505803559974292293430552636942629176760482595102057808703537231461364390354461170810314709057186244247854705969245267762707111333668252703443168160772531597750551886900572492152496500729522660508965420537483547084993211892755970275128929119992651361317221508243866524279443620453046389968584434524926065586706110949272566278719994930580501041607066188870695439112449091511539838354625257879028335018467516812776117337445759084902021367708855881043758013590034804686077635838789662462035037533840730547041591194892214118346086086421727189438165442430189391611669952328087988791210989121646808362440330438896429049019352785711139226309091340418132722794997369230071220258497677665402252640300999665606942101912349468178453470101223708079011204054300463512114601849690857285437611627018927054624253470504593276981008361097329514644423015120482414437677030367019389356227962232735572502529019120744143907737266622631260368314383499576332849487413540800796246725308764488465349723066481700658874690673145671686397397316112662224653862754239010176323681417226302499130896416512639082841971580115987200667984830435622618905344258602672345543107366208985830793800229532858224146295324794030965291494397786409675532642249043581066747003948011133290160003691928619532348281883264129108599357248800203011231270405945311380081217828411808529953544319873847231694804537697640054173148435307655273191804296440398853810319646296125994968628475629006537915572776169973430689287228863206587906638029180197123272861376165353637751317909129658638877180381288742000200664208862046319937765153002429624977821019046161650978281070539325291009161789289635097714988204522604810084783486374534039183050608736286461441034375890056452320773362540190163867425477789017935522542770966122627936136111129279467580395443243115201332235735003825914002034941894839395681699583600355024016043785763713221987775894126995860866297828753466088391111822471143916329520777933480571458576692920751129130141266900083233291985752861963195887732501067188962330875475625656762351575798136370808978946674420619817821543115387919328110922940709361308425970752438096505108347198962268227799938319298989895051705992341510621578032010993475419116606408316102344643527930878856961228225636349003316663974108613961993533109315860155943986380636735147857533613380063520012626875196676457865294126679251881954326326245144723437509234181267669751415614315228212120948222055459180191913172342814565371849480677085236237468656154936695327798674193407037220488084543118975626378648738068453627484573324749976140770704726270306684649329001804410220436559899889063446118365116009822980909663737796949127161246604701605041750318432765362481886054362196188447259167764314901119079152279425495878882848449485554044324749952920713056494747369102816414368677913830807976424896171305571954480881953546429227072117875703807492241828680982355361133131816750721982295790386702076673149710768105459308591019651305559167981311135875913217032065316176847625003138463359092483763038216092460952313592776947682549143863740860181282748337003938436570506199276968260580128115112035382119887018238916097168687262922067808693685367921043417826261243555110265246327799491505541732952766688982331729690749323586020306511419936907538052329349750564267409741207708765487706012768571693949478995808032916587936998967406876053546008007292073329426020757896850297774441984909753398514838840561769676617266545788051376374714757636508785668879188757112225580606343527785935588751547598167841505770871403265454083142675653923924377566111960574758398815380924374459223928320358688642481107688975697228647837793216345208591956683076685428228461938648619309290646812051719387492793440623746376939797403468561052245395503469762343911738394660423915782154654325795225623371226908173842351537604172418923024699932600148645163624923064779315007646997091352503515118063605801904001011423018137515862409938074816337977381855324807746539871355937636380141592156303524275331190131506453242808917783258876097445123020779536705508965973501883272375809108365427134512410663056589221353848142245743709846368502020273329642111369360725862416540870995346353678422490271482885413708730303730937715536816818781490533914102736771722737631669720835695853945301732692444911542006324608133659903555222630030567336563885804385647489384475993977841795136701882149332616842676141216081511836234472640823612793333373698653397182620417816214044212366351781759788578799221151155814142694557856134624863640300066270987475177373605381209836234564738567991397229114087474416432118279432196436937275996856824531539024997645498804747867449078620351815754760057719056304947875502970610521429930483514059199137186232846694299055271561346925772586164858989000675156786400759684391850442402362225078794234109838927578142900594444630580116170134457002718698140515742100837795869953258517932341138177762984122389857568885369958733861591343570613970696305576119348458510338858151187739798006106864845779501250981471847463332997753639642065577973878899768547381384931098920269922789055368205098676072954513398241405325288848166069769843691504640843011668397217470042503610189540184260584091616826630583522929600514976466228396774132838732995953338289154182871059716204133137534926982067537062673745758083513461709533934250333173043299445287046188782996358979653008193025428622008784688263966625022346320112777147156018991064012156915816326870980832941734469189058424892163057885842506383732296511855538161730879962445171098762791452449718616420927754713230841289465956118535904365358268919904672167943472992525502723154208862412453884482041816464895494936398285620117158126387234273382167552183705109725313937915977984373220473575306010137377819840007332344284816512077490673643918139116054505865279183572064219279158795281682079345357231190988550963576812327091003792947918049328011069289550055473274826741486903882089828246106132892141774870467084836527057963852731569873912190377668049650162014440323659268582186187461323475665856054003607915035035552775338741944243852794265716960712988652915181459981172585233942386608420913081531443229346771412483608730522388383996824929045364965412681193080350112179320254786336947960755273578430830048348167529278591000098483199838889978206610419988947176410378516969063027608789834366038345120222044776540729296131274256698278835746170262982722606559480148946019376177875041767700078691899149097876530296134708910269818539779276728743024739625003191117450707750684858043546184916209243800109200529435041635522367741144680457039045087615503805610035334987173431618494769762254037982596354227763539223190358575282647720590685697048616987710224535405236523819977165076485099310668011918300994930110970365838410040156419810651269756504823206340717699595545350655430179599540129291074176763093986431932426972756031529124567447309013776128747252647183373041178884068424161200074156330704355543960320134044624312771550720872480072651575144937109955120498027747803829085149769101968162102347592305988413841679003343062930110699804995829531830984913577775493920274051224836383848112673200472217107011124287762406152018765032259941778401896034402726681360796155611943044248578315517383535000855962416061522504993177557779427594214796334164550692528581925196866057869699887526345560471109280736263507969046065669148304903662274725885536492477227301184762287690335770244809171971428459034431989336995702706185708475722189700702997736680342840935888967593330830801843816494701173336895472724286066995829087178994176874089722570772062657897521140586631387716903530658549068608829766906107610276018268973510551430029570774200048619408173561467417697049796770544353879062439398020250285498130189197889183198341760886186023573141183467175236831683405275988380378039365897258308976592422120303859570999663381641671434518311875184775290264527511439142974077194963969409366722927230579632202484145129238699026625692125692259249225912003082670082254748049230207637785954893109526347480664395414065194027542722951281487503470401375775570983142147903992153817633395704452332749225742457113084314912343180259026602579587514786026367770879956076342345444702688224775476784060197724579068140609513193753712962115384314638680741709396523472554979210175970514872674062156512404873043712178682077681624033979442250940732252875621890507939339940229839526937499961688997721715181324846064797675096791874956254508620143017297524208609276814944217009806027776457664802072872323520311237702105644398411699026745696253618980830454080156983857392506775787113475329812157363079788689069811447577539333696544281254101498094096151499136180245995821407530762166696965172472974200063273834510378931001761684794410385817200604778719274375509635066066048286970787269515659356936303854956506698357562336785903293154107228526282640125312061516309882716625380236428027907823584729435617937891525421915859191141281119947088452568408997792145926215921588438942690435216502294437350489414775992750228515262411357684117513740167952831339371580825009159308237600246364726220438258794894509322657749769530514308600342093890152670990559884891166109064127994394369255412481972851632456880482757454783818334130106697939193351123872458619475378002158891654830824711381758590152560274414127367188657929177133678010955201973309070246880570524613632258963663054211045690082252388733960853410330823876317606152352937636859297659329850643370877039720908236552701718649873610755203848757519315769601412159976399440345791224863085388176234220646742017009580830488338849025866182102942777864934706064748107717847081659271053518014232462942827938564918348015777579794160137399971974195808054453109709761375142070708982654000399086977252362262430903646268802049349009355242605404786264771832103467844395365664785812686346861028118728545934077399602391339242442307877140567706900500794779630156681168710272141059805397843351607717692446521878892822893840902606369723468610414840329227212216193616957365935558552155865681580969852319897651275565353842424652740552328287247209199171293686805099443963638868673387509901283961574657318069916659766118347087455635239495580589851133890178889552815707972429414292195893973654630723435432308416043724637128780411758494608643120886447221954173094140448971235971682359903041209276666820437353954296224193577073011253634315943161459264907816050804324863788881334468330393056514744266451199436579260425745654929521924085552572658703064930828755363473308836639695021332517039691021967090656010710333983002906359745147965000693847904710493212047291127283013375234590323060494099054479459012194899832291805000357448201294045765030245847918654324478435057128639918103809466339114760658012348435844605748572829923983538123004819684394852065099950121016471671471846979961185112911386023118966324121791649363953331391379869138582967568597808938213217963252035719900609097827371637397416762351079869650689171566799461600699393142072248193144305179423652625621542903237645850398214304654369452311829516958553951255585415659738282228762934988792450181239352303391122812529404141226104931101092353923237309671885432176995199396465325113813019199886016343101919119022146007046877859406741962008373433361795551960303270528427819846159554456243484036944744220021311941847649789645632780497413677793311748147434495162785248805556991801744364422113426443283091837139761254443536240290338019937762705188345972132136498723883306433225670295370056093126552204148370849558856510945678507742139204823585584699637294464676591611494782656761836380391677980491283563754768697859857725036100056018562914460155027699962999459697719081156031760731196437899510546632148418681999811140191037427236328310237820388552637611100537992340691383533498149306329612864619221276029561411800508695982554193044957883121004945622203503288111989829547186221013765581761309581884452246258334449141960276584719815104273949452764238880030808923879559947146999521946845474088975466920573457897417790141858550235345471005828627780466041981654371166427225979543148533985352514582597636078687217559265585569735857086661274878161927433946579862886404215956637683564755471469200663325888032823174548794829139434895037591738414076126828727419748357472669063852024906186662109300884984202147442556985939893338219042206894794533370350549957469031073153788379515466619803640917740484832283989018388636421387155575978816434267065447584217615453141585866442708848719847921213656497971876894157034981576747893697782526398460016880887478820489995590023800064762544955479872078210804856891197183956365390424206432322117562721965347077003233427348393160209578159543324933341964630492930910029181156533022379383259367764424367793607537349466628196263719192731092486309531559071015719335785592005850906642786181613153654955509079541524235022600115241907534397321046031209437968083085660794067298751509914284742802736019132208412932294230479173160408313958983818961009828298508778857887836312960196518508468850317056631368315640144296991559803213199899219574823712986505172147917952192705428076314875498031725254901243166758054277651755820450117542744272271679731710980955166950193407992662824624028689738561831160974500174764682385392572839028418032704569118729471893591835484755164170845025310845834647078343234071355657222856832102290091356606033183294172550239877923641097359476748092953038360268542053346284787238086612029470745313146633899158804077387130607329443750481990552932101242435530041824342889054485720772840854412955851211391647249145498836879239004563547822086104758957230336752087214244506482734260253786928397521570205238450212202309638818647711920058459836358538629240525920395527554104882775839723731915244582702358194459821071548174264502527295770638437226204901062257659671182853270703581784241411860802609658662658735592090997080244594304723546962491012923873761316503686983598172214120773968911684475606734904943453352021987537848790740723001787785322766518182911094991621580090208398775946528727232946143378169578854159617669998072783641738827764232849309720158160010712032361232979923117401910028388117501429830888318972422580188335909893299635399020207801356076641124003450621272548499655827797411868847084618960859626487633591341999584804074153376071630628225509167441390257287136106945877848321431067237327451793269376594878105153272502309918924716174557625391234636970990885940621529311034708834391697371957390991659445281667008257772688008772973467874826309283891060712438752005121036480752612732043699187063097635607721724994806378872456728623007473478355813358861149301283019188549078635717130347812552016162112078937365334917673619843677604175661085323308626213016768472617423944403909457772042982400277986418298922231359306181404974119367978403844034361393899763456546370912791107827109723084074874489002600985492895187282015856606774438664834964574394003148278989038315231219617690980567690240388780936462921185817557931172293988367410941447256902320423090021887721691304410197671195390785255960521294829417369272142833728290331385376804191584060331628541686044850745399919539599072931988457142582633629765806591923439560318039614702739267045018951339835608288033896994453260211288546745267966038509916651899991940887226114679002984747719565572943740413274110719592174554239375223024309312110853841447942777239071480194217923987343655624461894577418505185376025480388496159335778241993959569856772993787283279692982797115754039802548490668392246887069792319245378711491634094625468681817805815496701218924840227296997349772702008895892666963441724840320225921209363585046715014636853017982728528825660865096423868984635599263495166667922323626997564149345347303628183588767354470698623294299587725951388517239788273400956069789339686834110665433048467380968356899496987441144200643874325911118230953624976913003696608585438074444706532804454279956164755285024622735355392649167513647397907974903112043830773449646323129512871965337258132769991352624609422560437682949499889684134124171267430936738605083161943270525396305996032988528124215190324586518575856969329563457230132295815359214499325744281472158328336209305802951793589487250451909054699366364172705640459587222098071478777842238368198414891043005700001097020517963858685318666468339734859411922533096817978070944579047491907130657757940254699716759757590284398382452380813807296383039043258520647232093250769090952079803840952797638137726986285252642489487988928185928971954583070335079322295853191414594818525698816415083611602543383585553671139816655490996439854128182873121510832186408656921011336756671976808614004773111698108598214243845298836236727782314156659241715319102470631857988680104654932780569930462406784329051042462875379077189167212374085848677223510411720964528347640321075175475193338835832299860934406559198786524619587165415445723372341627920637243874536665985966176515312537856181227668989375642840936879186247649650307106481891334527198676865682147971996138094236077930276013757177351083717704658757538459298593457653434440525653500734995708166893373733612355300888127679788538384944844872531043433477132166127742648663293461333745935988134615554477546797465025325528878180123378577642645820249420673327432013371904033564404448111601689904382331339968097927113039455445347538493155502372667141814080608567075428141160672846214471585743514519356578343493059855251504435602456433208367245362961046091020339728356299387447591970757350521635755252977585391080282202623855295026362558172455535886119073203987603381006954876065572259980330338992497657808492156997119603092002993331867362370370919666008700833223207545012471105496711761795055955394195970964459739855676246959099774686296074169431555287576503252644187273863193664136534792202425750711261256874421696296901665715570139951429206272891387202396415709845497505771697191983586650310834082064597846853432178199896310696846340208402549492965836966202161901796994286504559204828058053015219189269051080222763280554887604290010515939947102843490076041400543241413687250018509781532260733754907142815218353922056604241992928922688411620523097095612301604365563207381309480734469450793054377541184550142100762436454572694697998202574803993675876913157024386339124464359241400024026017125900534258435742456568976885956628261369881918377883067653001576311050386806883090635079260528714676501458068212456253946228648514185039001057552822878174420906211272206546662207609153546064729330354509017366665476912609699183018772061094662398924689704520802327482274527236045824180935427060396391623782507206968909121984055588871686942978573069259260145871149416253452335126999196494589660494374652662683846861847713029936177390991307268148800831551186668434014721963231386451828023631923649467694857858941342542853164193115083003793890842550593808162627663479045268833063449181423272490496536037022738908836266110296346916482533098788100727544596973181528572956722971825487902653113652902697634801698904282492883482875146801137372422822111513070602691061278607942874004659569911849503047407235025424826950342181627873252325645219543950418070919793448686993649765028755043020561810717595267020035084990923819136629025759472507495700098706180995593426062966321534494345263686091362856882366948587895550887805949685342855576042336951865922531458213381584847595453488548840007346525804824860024656406378712494550541160353610976354798525506819612809787895551778913418332469134576365709401461901507094326854275624908998687921890289511648619480166531794568870939717089597416749231277203608186723463193614371900582255101422510605480917012015406375329923623325694391516775068226257131186024122699231674561110987569829374195803973186307249032237283436045477562207396153760216869924999760357907528328370612551477342590751153616881701289896161176579618551217943729171548754996975987406123186924469721831731080998407066684618707099499265922881190951633092726359741850106870445784721558686064192514876766211873150563309847667837685934961910979405108632984020144019078681075035423417071163678597666099550335913585873512553681230042029724286583747734902873105049802431486167782635434385165072275917777173385536718152132031041139812288524013983783299343864418554704983635454631394437251145737173963550895603369039028446657176258369119711005536132145048095475527408731385885712616726668620625323065715624996416539767158864909301670040604290732647205991978353353399631462459833653926107642113092416112747874269530524557785308749751179958290216025093944523600441794272867326674679860546486103660908986813096272683038160097351664976784673090465054448107917320514815719311888455239182800473337393977947447555249422977886774759995750138242000828986774882941829676101316413985099749109027098881317011409199421313802983638357260117715477193821948928195577461358694262163026519723225101655076076042020453006334030883764773483965454015864519577814926466114648001776406996178184264086719786790639064526417217344174656101226094346655458260311405230606856993419826620188615762238951582649204701928911626262883595837359704470504467550024192991143931971582139880318273937531205475204616413338181824787642861896156068909329142016614406839450461496821501964760108496546366898912020668930628122362259091580194700186822130345625251273775534910637979684044550271378964711993217939343442738171308727988367855463917972922763526146718047898860001600020975836160173832530058677984221609291974779176340602262850620942195873758092232151670537376611228122227255105700000971850181023098675765871311123533621642306722406567967831209725530404183701953818569115870810772185408985475179257993879325275694954663581366439620283533408018047464840934490326540480534744833589346612685883019597396307392261866102576279252665756269259604704453922488797605411942058345046025460062610526595785498727121953942832960351016593309616724452040926995127928233034234894538456292153864247774853642013167647338122123673088226744922027264419394538547355723463239558230651109538392000699021115141441158208489842303972216411758256271227100549493859003119782831245214275776213023689194607102160404230625760679636715987337471773440422315820195520792426416831585564378255953906488861614518757198688979557102793957080872456089653121109267094456025123103631538531057233628495781748240356287993922448913861622678364080365174415986246272538802172162840247862275275322183978745086973639824507369460772740635630581561714448959129285483804752096868142544834276708688972422373038035866337118177748475795631510927361853924058890710576621205152077355164058231277607151701668191073220446983311296816787727116189782955970958349058300173577880132932858862477347656453388215802019831351537079651489569817291017028888641306430807639752655488905343937924060748962039342125159775244873305710050265517055100669023878096870908730113690706275644485700082948821128005616684574425470150773486358367444782440568869587487321443157192032776230603427499463076375797497424101306432496571974559955924524208598888759795283549831914036230137478320252159708348242539867156903081076165984302772077445134104929983081415238319874384332324093739720624646319332559541658911099634839891339899524539062004726210719375742685758726397817181692063405176341268838974270355463466099471442371211614541219587449557219218769260842202746344759896804893115955259860616183616637896896707555800633322020578716078012350373978423487202575881735291892045731180845425140853166966517527857399136958804248142298874774308721849441991315254013033797439572582982981774441747893570853466831390284826480433978529182240683440506550681822802884545300940423214143486603053014265578221340206270621092694181675378521842872547457599006488819276885839754640127464714516388357037620255338256573974147547908384067902016043720372589198971697621543225143942784487255007066055813544773192933667111127506435211332551583112926034570833279373409418838027510823937895016841062636533215270834855095890648199372939447338133938640230168608777898349782564111118519767891412501912368226056107750498582407246114638325234485528380656213820652254800439402198165145655540335909931182524683831569746322458389723438736693702343230238793958819903945880527424399344803596485334276707574266112812387810608059136036610893379163485069085691916630250505299946709128608067925955603059639830111875689524076607532525340645230826559138048302308330984591094788850521726657763317323051800625900482649233899466608264148597550776015517413575543424061103561157091341909064357279113381740624066614416882954246377199700022488519506949797923179733753115760137085852022940527849476140710759780060837164928142153441067458486232013994171446070456348942989445717756882843808478096321613209405987506187834826015125284955404127232771149916233672084923117083746347454581233813634110468465901982045949122414627840942915221559735580975065361325013498760575997853681619134929642350288660574077235716720084826622117675191794108080515617172874852973495943394974738279649251702083628237582412863728796120474384715155843676028669571638917828886986992280128804939724857777447596763378840575218804597507417751361347180027236881866933298751120888346041879655001821337928300355715642779364681921481139527984446404784917968834589775525182259384803819291901012652571445952675314548466380028809826363110501876220197326089048888795678494460073176499723869308018724189312040297266914542781388997762249263906543246105524459579839142666236610916036624874481911910414465217128095445294264242831930666929248111038923711588246693914772464432290752141290741998343696300195070765877100570227614735328565368903784750611472484103207841295176877854081714304436445739366831031168844097675053614564225142022768761931563473452152998234609364055563452187602817947508847608040789604962611892349528133451407056710752157016125396208371825492657731974193250548849685312058478628137966683278214159003971767074151362048584070381920587667683816351762253755446823766183730152827366914631232972273722235098911828406048268213646075735000994520733320402651368482118310437317353633295756499952879762281287797876588364331038962353820213199274371011689085925992554277572998020155177595906891061847074446731574364757567783929978307574849487916758987096613410946038938960398254268209710583588211976999087807128580904934798705104220136362030640675962095302061265489684666307480009649320640096624178208268776800903594781560913716418087842781492156844562024528331994626244216203922370483269528407746731342910419367685804475790531478575166390778255961954274472085545957231166092141088882091734185756873229125803470380535978753131548112902160885601666024067599163488016930673970474322380578337788176622063206817791767236364835603316305623832101185889623606239089786193986968996807373866012363723844727884882530739467231097316121962152153239490331439001322933293063857350287706087528759288552902821146922297590901609542779458074652398448138476340713417967013572105401460255117143784055623667370601428837958368924282643668123223459505172557842790478771705056533870548779815103940212639900866187909851309597896097272338531556749431162010210732066241053422154151855059912532167783031043091272652473104840149191087173710187603726296954695921545448806462668364338111979946206816103508671234634153666749556834386486352636309036883324147105873936574236066732227315073611313392392932077307295864592489954549200819162286744721147682673390118322172068712491582389164566595442884186276336147541239752659031853261780218255721687653814030033048580868973931887523170650271193003706781683635467159347108084323909800051238591859602309945668113147176049221248692152221643499347817609349441463894914403461575372691229378725577610755337303258796473968985195580489668143099733565127800767241394395212813716573414074524331739933180203855745016503754686667861456264247522194008578765811178153133370138020882512830955555481044544017824005362110617856420551501338122471817751150631013097886240610773121564394270913763500870066688010891089598395553112339550117240657249378150021273694222078853296922104162122100903554492987536829298302243826399723216261974725290855176772206426508105183347230398390298129323958572574032892110752141996106882558312103566202795343060455547271898800238170434210091633921881716900220957051580458263989087995003773883647019783390429875207711472456609922202619416742819227072449347701743166194122103927994471739039380821857644624316827451231509560256381985133981678974989749551439165705419860938315368158965596537651154985564647172073359679321029422909176406696225457122316411279273489026578688190130692685613669527988840003821662449698702794925340098002715350493956163917306506492537452873834410638401793396223770526444186265920434797798736405346182901906739661720044093046712632221386921300232679738727773290349281256804327398204786477695605025460787353920969023603263682092531858924072474726018920068944724086207819374477595028377760093547414165290570362597976811897707093986187339908136227715140628637682789603819744869884875129045668700217292367074566439454720315228566640209830452159585835313981749836150446228014342604456101599418571351032273995966373602912582785062843680501474136107114391206238766328100565485061469864680495907666898453755240634434570230548461424964098184025466080910755714016616695032069082033225228614465522047477776099776595095806600024086743136112211115524001937284824480087372918950768718674877029951233641857903650512590816042225895437783498367978071347160904045995438570182987107266815300804413916683220506672680004912640685267367861950000517206346178614673039849408074826382928190863771311880929410016628972686570683632393487514461547317083256385128032532820699739213796675339858430095922972577170752201512773375813052723829605043135742716606065316026956095289077785672486573513352195210069833827111563951725883193033971191033271276316667961333270376541855044225734495094963304106901045298329182265549204172240876794219999138074697887706238203066807441469008328701491110041375035281228895210628385079233838733009249054250459531255512649563637929341598740191930696484132004179162492535254001797657732401117561572867190222588179373428503742888007719436003464352335279277939158794132016188156286458897220272398195206111277712538891885128048147708159438024943530475306574616366080107816095479128609475868962700878882716248466201717247878930337796731588905421536033890253742806792879376056016046003446809694593346180577204351843203345903280079123079422750090546529416786175940250697641722193504602123732518268887491826580718196870477058064398481274594012075524013711461269323084996099676827192662254692894951585133227570872051122934115937983811252597974640831061311847443515004371265222598473074380042651568168975185126171195662032840069454767236390446786162527717241982834737570305703558970817157032953428856172781701883803383116890468937680295484189112823239258936564413831379583306605441959460271744206343466341215311885443157196373781854137300162820417109711403506225982914942053242545620943390043657709184497731903959989652896186645683218353353841037955839136932099852508287822543029603008720031161962319296295334755417526161277160010584442922814189243819657611591038129708383745208330347115546301568010159031548740939686160144070442995103369322952729226673995669501693117069908282016476469095445143995029564264884422208764359644079697276102196274717078611508543677172839770064288657653998753766496564846315801140161223932916779117659239461553728113721959726863992919851148294927093487607696901687398274923188360149173601560749470515983487290690892189348349801432819683562103310964430615557777726869990414217327531037272605228088554212416605008020987446451670079689484557547253136131063280521239406268663235468771460647156502478964706214737748434422050104984279624314885355836691968611592783689022639422745375044488499154462922300176105065116797175407074787869206323667640447065456868368240146063825319511709739886944829815996387072287764316821195219011882839526339547971896123738758849615806959088671818899377472662624606132660482857156893742716393907441858298182858207970464661162664845527962318270500377452071817514357102946374373056909578265517628510908334570353665963655295148074940321144219595668804620759105381386745007010692778039340650680177035637252766345599634650295520482408744165446457814645628470693782375949076867268043436475604005009589144356396836554648583068225784280019599915049415150222040452550134670296999454500964953926551465081353560804586036357417463024238361383976451885355774736436851985390610277613118127796042939979590120109025244555830761218268812753815602891818114255031415371404950343787666135157306055731229761350044824382069431527521876852684877836191317571780814285470899410512811003652738101929532295497062762954930407736311204042447602809953637197297037240936003099051204071732661533128004599984408326191175642480076867815144976519618432574312023022147467755246111569463200319255960204080741759423742286386118304631982198606563259144983550273978418491573346969833844467899174214887120604819201267486655963516741934643021461501151408388317313197218980849435321023993697517062342599124725361444979138088296620124307481235407909645843725741954970324584903103369826367505582520800829520019760026117628681839914815303734201182639292512622339488205421098747962318836771972993322635981214091459836561401951831611506192996086637773836871553185156377039670525424500972735032636119165089610769589752217541607959284026454986607767972357547723697988964646002854067310544695163364790850255769282649368015017918798005154602790230808428024448528911301992924224654368890099500947509183533036831083725792522614329759225792349971103923375751230330553441682535948327156726689496107613073097916747236428254434912074676323798317714671665738531178781101359294232394350998278140103771996480812776106154802771892798079800091087830195371796992421460150387025156438942927079021226125752237885956865848531495115371069774365635639138691764775971729859428585760212248077263505663776844495742475442535135788057339174680372898981766127316534546359776770738101871732548147285263400119431652508479099057468176543144649523830759688007813158676522080352973567888273147350622284262344088597045699738221895137393844760143692255573898897549999893637732540604732924424480529219647337106497106196894287985087641451162691140910587838470247524607188094477405479429143349719383259595888829038216248506462881286525022419592613563458613666507218088642629033903129185108391864267603963793250992377143490887613584524656587828854949618830489875592921186820708608552628980965578902702799083274030372146371663464297954847607795012525116317342382753563979016720868500231957774405961629657114867505447884030712103271919105352213616031170138649136971465869738918772472502331551019770691645346059207530925538191368381001281217289763612936183991989286173033146382720484847161649244114517825032737621003398572418426956252070022608360913321813067359360427402502155811639198440151435448210472974775192870162616241339000481667672374288528792826113722220949854734404731977785952342129873612419635308715450429686472237336413302170627622659429178955398586165416509390278537567593478642926559223350076307438351218816132841959721079887566838926870545129173856663263682283322761515264645845933192237982945002406529441994426326835874852329835637542284754851664831515892931195799422227571851060457397877948954369754481830948514083309908253187846909035902812295121606993054390331940864579393040556928564318949266807002010599996597376861250987331731895217595613575938780502501916232812703492065711368573865330443101985862475041657561997943553657920798900019412425773699565191955781496783352026601881175752311078373294405858143931887054849460397102832541484771107964799095418914625666259716236474371942577047297934661966481284113477238879471347299161607338889310414644478234331390234573755307639897353439411017638762153455299657459934505821874319044357434444570120433752741096781827115080117264674568707344221347106553337087427441454375165575132061326989127282928253964645161179765166356049496522035163108376153010467672948643497006809460759480216655343119646892322034547161990647788391908717422989805701396878967760714684944559122791120694126850523256048310639442976427967096296800115397938801670630443514976140455413049061640949227419378135814578876019884577690604777250499353807394741215377405787654428574825110100685785946940510104514426634058900453099098405104709973289930591991178438812561607839880259660865812550723519374118653562197700316789363049995184527407142522997977600512236217267516915074151807898794983324725139197140677121921569594372223914212345255522370202387586825723997328960271124592705725097064894630401106821597444020059069498672386511456495656274539017529967551874953358029840350068673205405530315970812870088334638657543465589633359589709059304324574598802992828545911887241378130097912687466183112778112014331286722907148722925837406343982289457060074653809161987734749526575354910693535071588248403848677360963118414041482163492606916070101846860607153983251924410561825334274589097716064584675013535314464571113360247805405499432982582606613361743444480443162445181378971192717518572608841809936370377077840364967735823861695902382881217822816391039423561436495902466613783062963949581106179271336235894643939988878212176368598412675619299122737211829284453831475386629758788699221125673369215967968310702681165109664985720913057016219144747902250398568486276956924946517764687374492485590751852721465008517927038858354399453104009564047932234432664677422256762819909214859250360252234351075352929760325541355493203431109293685014581253136112539396144550090181259315169190567881793242675328244309091323753496398496244356181276883104561692886862417075336901166919751170707344293117327754794151994896041620410163994051158997859871439989673839120063908008095783697565412310051784848335477561460255106778563179729962445268165013780412982411524966801753510509648971178752023143738465936837299271693323333618400641865909611691796018154955377002348676920378637290727291582759374839976022849952644384879939792792522528609518164364878704386647838390410762892714568750779196266694254483863654834041572877717081464008250989473571438260865551609722739272240514482368292420448911004502274394317268915907946891417776919254382606988683056741297499632125712655722840423922040556891248644228733930965854214635046874031400301787715735791274046289539796103859989841508877417439478423934484084813297360859272907798853210386526018525913635145918753173183274109266384892084766431342012906766421871375777792073274028602569896365857632118910057542840057081871964369184979491875486088535913858643347906550807374551617880976483251193912482091910992441214059354113729721149218867880693666248444186434898129121206072094521489720447965505908107264123910663113632772026766502654277793891782291514201333771775721993104985508843732049960760509123069896410437224960196235548308767557418243573763623633052851361727876471448751673043357913934934281219258437239663818033409464190243854543579390423817806002878066404975905386521967175709555499187564602982270745468862327133861620053307951982122540349706101830992371554208029921151511216336125471553557979260342330744594382375865727044372996299695334675070167335525537965929464307574978809278960825183295717141205818616072826268632083180830851819366784894503263219016054497803924195561853831024274496259819226719422107372617530172684239644722075479295887803579164302627716941489072078078258250693278788608398628596210801026824222913348727355649893039640585298091982338147895947776735652273921416213404719044390690407285585708354458520251041299331874263140585079310712566874797408676151340380649691542050788862000125523034710987146406528229712062605308292494006274310708916808692406707189720725361784875111045977462782218033596354023784169452711243853614817344354784857533074245515633598027448404529480146260456185180298546713479221280914172252811157899490711999132604744666723088449083594394198868800574098981425959262244895543138636014464700805157760917762633928717659571691170380416367557129156663745749768460485234805498031331383761699132142741243993113083997604375411499722319994421402580392574674953871937445141313126260234436034225389722214896734757435938383212108997948379579299926930882213300775188348951782126299353785674154217791519068980031792631390216069143176588002408661383599261761757273075774177472593439747460368603978485309580552653087392722111013968140960614226498602793486009377804304757898205217972859892459718770186641529301214829874444855924706756847172555100744760890229383974428586330351350924431303426158628525205650539351741632935944021634929726950352588629120884463755121796301088595154236466500857018911060316587465459274187595926468724077562781707077489151286806370884539916261953467103373076175763319536453666930673678289837572477608155899300016167738755486399758008111404793518286176161341207661594440202075622044704340650763088949160220571972117019718923175640720192000805692645281773878503110056832023128360228432296080131523485136888382570566632633069489277784563856768002736676028629461125154616945995843396517568975080584578383774101506227339397932665053829063074418296339543920668133903642554301499277485631020656701287248263865919510479204436250522283877509973536745408267998788688019635801470542791868429984733460703230891020883759247194933386666565071799933011363793235065121459499952442831709822463243797638036906772024072289502404461788211939835909998470914387322596225047595527820094424163297784606108882154476354221360051081809937967624428418286300415432675155312238043236524638225598810384271917085620966615420188150106248127682873610072153389960547578063369058616569820829056004734685877680417774584325757045899391278514787356011166208048255081877414349489077502144503632372486006509225700840003340599684493224685777831705128320633088240802578271852291823385192323706507667513283180921724903468343477802580089259535844439827042343687280123166732823295736335805394146279089371226974974150306283118501103507083454183201599917099742422333161617816063545085909379342257958458420867743941755883698383175913605835842617032899318800865470707437590020490419149609776140489873429360625394982752924114633875096773359364240576387103776707289647779385719531321210023257319445334763321727232295443698448697280048504553405179119958948304104410718481794609850694789599739543574658260030775846681400848701375923888187610874011904002339233892358163830136252962392191985178476792321946878894113415948565986889607601554951066198870409341224872066795011942821056391274897907804437601173393085623559511506739808451149469316696012274854955124118601923836532276126656748552005605541133959145477040521643517037450474447327251926683789891031083249413249483548255853039583471278002074558074204472849608552900295344316268309518810444465724151992050027525337157504896690744216127988186145831556586972532135127592709025795908222138233151503883820028381802141592694966172555381591482540502428237265161442139153239289021451262323862494877194656792566919231137628549807241434015210286257762994986098636605002261189555463850743179877692684334601278781349860927564024607273191469491646562751417867639845285185615248951946158359301456041150600716554113038908268822133815765674016191585330482658722979860647191610722491986431289628114363956484232009072559226172297151492356797057322463468399525327978717097510973772344803818611547381287501148495284169470359457833978280304490597525498228574514186017913599123104462249503093901730312233012919003272649505022572739248807346375864210415526273710013752305903239769056109271781863116201550139272207288374669711330723902105459096023698692868569599471964730742377765372145465563716082172569895690872754380020792758425697113797640115589238479979325432716309907291866044353155414409869036723811863902611809462490077083540672435492313397144633031418361387495727792716288277597420318595158581306668263760924983414706164479246494475514008511282120263621592003435433535268614029801142355224514359249751740032266992601434893003071312988257214434300077117020979391727963798816130717270665721951498140334432891585277390305470770346062960678355680071476091231801118677364973532048105277210062457424875155389984021588095634210452016934410920527315545845963234558132585819724932098256137695383775097477043046263879573996988253805459983881655456842395376136086811960108144581685069541722343071024323722612189289721878027780349041860752739777870420300349632904683952186455234895117592015962178477997221473280019487554725998742178518009791841595107066456542792490889528599272306546188065168447629721163817834984804617695610719352561143260159372184095441920568641673427882946333620796387755745708142921435759443293993689884948956072629445618494607474678567046288359690230684663626352137149642341564328504577513404139388582437875504582518490849405077890352130532875086350959645228363526259846556997097942653807005621567863753682297038691731103486407521420753975630698205288972292833379446031158902271355067618529805487620131321625285060553885390487087497769218510326713828581233184200224585055076157264788546412647611531516470678390511064051679012379749484944565482452428047528644887205795887567906448311892974078422165585676083928787990702964008409065198621590637827544329409163800668736673719394398272751333663915627780695735831636359015119916939392415110554836976082755150163636078680381518649126538328737814639853677050626488498640988132687130677306023289204995002373752417440108417694534128230822610324473352448930060467211595874589166655709973891433344570847483448992178484548981562234757059807694161908871959920659185970176033533715903470467103109206362649481147740855664318027005749341971890805355165104919570848773339393957709336881971964198207893186684925232142873432580430521836842063607777688734030777418302888073460890717549158332805161561437410810580895737974219253893130666909138061713612596119263537560466384644370704388105807499681001209472604195622679210430944302012976863988618193146570493508825324350987711004123663333173952609943016600891235075238358133574420011699290248994383441092599642569753175310498283424099582968226971643039843009474747995897057378458682132807214022417883756699047386226120736099856441232789729584124510965123669915145857197691523813250613731596235059069220645076089226368230349959368574007040796846693266390186262699869680511720010575796299905325705379875958097855887675280718851164939406042841228416612508931492544821394823000347786271942819060720268436082395456981747687441453956171522830573887706776921345501808984847012709431291378534933192095505990115632308681846050278655412978236904644717968390222173663578757806363201461853600557391311111172507196610191365103030979738838525583496841595714017303194591312681086675390329623377350272703385989736181934134617652839089505033846975983963725811352569390374982859302149349526431236626216995902057375453806230428414550017505470280232436562311643713070096935050567003299899913265139974528658954367168831612568607950216620307864619058428205977940084075376952689118902166332708195769014644916186356004074714625119520120026938107597618378298427891504773574623192961752995984079441432590672424517010463849901650626308233607152641813912425376797106258187627986482371659147571620097138645999913325094409815986843496721462057746772444103460463279836372124155787509093992462551951771746371583469628997307697527026270359377374514540063126043778860459118471828809861993554421137011421357503869456122617266176