57710279762066979165080832453456210391521402168541311220186034492638037165349719560164112293120888549589497902571300444233573173501283873971138187616189921722985543747424729759105962388227754051460488852732924193796431378081405215533123973087149369811101834954975920784912452114667686036962083138278416990976537183955523585428921628978966634283851496382521946409087275216348695617623397557810717968172459383715228688609540244582675636914650625256381716646572397392310333739435796478747126518230358925426041007918240854601793604217883278175371639136255636449348450435256186675237215895484634345695406959830153568341525349943114114075365766068424658674439760474138738028267604616252617330585415940911296083944403999696326942294254991795066188379641913921312760998617258443754519741852626170406307259769956917832362978281699621432294502565637321996604811984470508946712692613921407721780774947057612426468703454395662996640887818645655319449296182968340951692538902452966289294373490378813011589081067566423317371540646792716934685114731953686456211922016614301346759126312961947467888933249062228655699333967270089569348754791307947485423121471925170068660842653881749546768484275274844237365752655461200977134141239762214092911451285162278614721178766921303069198426072364101178783831051845824277029195832581621565144439902388132515479701752296711159915061454246199856298403109445113760452286724871879485939234086924729498234216436153061244576457636560205355066634107998538687644506321119243159856825822379359413092529704313784415595184324471294174386752800872683934970328902981541663375337193348290755526772895372856265119715734125627083734761394868190264670518373126437787741850231442447821541165831383149939285572609314632569294240559347421661398915891458835526126355438092479630839489845644721703878153424123449733524241814384719263198599157598387261419122956400157303775120201638845429881297547376378018076579476050427121452715338214834796899264855038754923916663682840691679121249141349216284196191722822288969987757534619160051149357962523160390908887030094742236887333577308627625298441266899186928872888840579739127619229757220192106564351181980550159073148482187387056179941862929880858291818348975249652918860311082389817817450404008755903621639751943829970794295089261729203855528620289944578531160330287686760442992110736018710764132826343264916653650514838392445710013331106876659912291220187726417155462763478394330805411945872017660456206545780886431343139402092725918404843546051842445838590155123104470929923999796026882005821666956342904113795184661542915519567342226489025587324869523275211696276473915735139640581460259872819779555014136385829222849642124346278893331687418181957220575157311756801466730468457836621224353159133550425884708329933937676626715650866526433061045699922630979968188392232062049485722188356650188904751048667514336154321164713952345515251531925687308886568019935818955741192110474932853049294016928571282493924722788183631722950223870896555829916238108950868124606169352141787584719399443993341920885534975230554843373451269049451024100351821749971937920310215606331956938135915023973997351722409518661967349363743345649728903370515009942609676532698319363472531258456010623492117485684928683382801799271952108831591222138488798164085285198763584543085693845537957438081321513370432288521825604231206561993628554837714401096272949400482436008612208393253578224462664741754671831125925307275568299554271677842510168374494354178362687694829744669520686257548716389227347871436462620029076581876322844503330472197143529277961196921522224753132479671232867756381230654672979520398322485617912487012258435560150794168153067177975512344076794524756452217344813782454050156455397085718548340758529495629125713434421450886085424723756857975012466837514458525049426514706253232772875452003358275285522958721188148591652334228582240863185936442066129211614358528287709440185652420632229830597048079385085847618978619655350563188618198584192347725316732994575026621012862340894792048139306425452803491932857415142765084102455162312657874477760161222161575972387883401142348712970122987528363991714615963565854465455027447519836304974967562879758098829154847211812291893594493663442018439122268451631208522727189265729196477047977465987501282435914696237541490565411794035533395725157103376128640339986657451333387358407604489723148453838621623073643182791632280208767167484361771703647544736057890065603114138571127869218919190196687046315773856526639452713095166144307073555667285181110766535934488440789364866622167442726678138625290241249281381426421567683391053806032742725237259233796772409847286898951577992317089039291572417325656991959791675611668745302685547452058442165294163542626998804485391066060679419454389422553453851665338150148286583465414083878485814738089089335884458912307133431880809891497315558313989258947239465446597045964548442366224854201839451862738990085416481335247307236477828691648660441342144574113065953648818001493224625261953677512612346189649091624079736236814935056542458787634685136146964440779893430317398943014127604470403375803232924638927230500286218436119990517678970180918710719076051225074246438364725956642697266955887337049351179166610172016284255489707204282759514135114825462026731607961702417952333692444656554417511357494215560855360235193628895381714584297235738325479749134583652092246801723236085404571776715423709643255401524761457956324682937703730476355548888592342710734425371475087758657051217369830527410666725781491301497069012840816634618777414840794167753226127601541081669319162986563083154286346462130686513603372249471967676677606445539653065671924305433137143143582840972634572198011718516728645361940665230773274175002873575347836947523615945032242355374905143136931173525923298307061632136522835267222794226025973342878454314317223580577409873514983983945857641934788586846714976733930807010067020124569837294303244963921284362954612534656006805347235504119836653988901901985454876233771070606342743749667516785167773970728107854577226692491011775435241337472162456061098875227988429179634573491235134812692639125868915351158087945617235339900246725929682418623866560792745374245919319775650747131859174091948575170288132068695599272169137801509581794490118915393778598369354413861235141402914078065906519308295916716058530146948591573377350732994169524584871907667517890060909581642611374279219479900555721335251665368592256418269175129106012287458769805571778197776004314009995527504861921643379963207225976115217287118470506628600891752306478483418782028085355905459721783468431347806433272532826065362062601737399987082391525119181753725682230947224082649389372034911732297058611038765161664829052284498468186259853613001722361230619444292363805189775131534728287763157325446672663712786943197728755587108841969226045291384378036976782177321358236818498866156369249145937389619312282141390260554953684489128073320789874961432243471450231515372313682996655636476295971552198846946473185767027042028972411860028659730674592112513693396051647978528332586216539568491294002445938039712296289446035601742678982763921577310559953346380865122155856184328144234057290011862352419187866859958724461231498051737736722926498056664562569894760628996038627282976022929871113978708551594318867143947032778975859910350615437530153740946254217333090673617428532142607744674740813834407787445741409667176784475811699174994902956025266188869428635487456370921948795182057788590167521375645669818519681599121889823659449185536394381244471748727716595857062385645824887906161998906904446088964452332330853108754767117723065458267246335090192646499434126854773213731199623177999067421923773834082691407144474610863242952475288233822066162361735849479164462951110111694844350714428816582029029373498628867271114776889486315665243877613309277758136471426124738263928112662407166057227225532319981309278083561378200212626505472120614386044028510319501087693365882434244764373889688556547746930314739289934974400156735219218745330556784951238821992689211581506378960944479902020790508042309382426049382950459184142850092394031849563590331799249467262750958222891390534682662548533922198998353368683282462820651716846480194323938826575345411907085581251369884737147051351342628759093354149072670909379741927509150163051449187247300329395570084282562780658930987921430436875294579245069125150958826766877548833597029361273226449692651427153805491781541126330776128695509488927184827272681143479836177504769014669931152836481273424039601792484432209367492070922974125977588540379763706582096224198596360126781038967648728365230331683548986102222765949554226636367872184224954801641054712742856023709493723565364512454485531755025308551885943373694179262463046167241947491670005510127320335732726821371131132014247417242717368793879822765386537148158822948926408452649541955089821090176243326619225834082617795331934318624354981005323188024603411161542846652101968559330895441293608898100636800226158761675855046355596670137335747461016686667700281650346771621521366225099133481936313193933369228089435413603681441767297781233111649047979532634747103354554036343796354965203411156158766385349241958145411309735346666202298244799752852126539997852764541200008579713198025568974574218335103251489762679486893727090582294102964118656126646976115012376431483929081925334149974269484323448988720208210989227726692326984177874850739789755174879012044280548372051627925627772204395446866487306346541365285914400584904453648739830959720141337130577811136127575349607719556015214710933078343660916792105206425017951665314192265743154014229785795670658148341753660186457694811677127019432993816117692742121157899246597156228496995762917296736552539425352078363885563718289514835753767066581549358072664179333303416068321705523273823009452779129337831904153342976583866384911230723281944598161098741202842481232262870951110426421232934143396857174947949344536575390946133880546521959584431030199176296809491584545629124488268751823415271533341766369176846542408193016181183154565892044068491132290507641776624228993418138275843890181627235164742886716428379721960371828263504014475313012149689228620625445259703546476348155521180869940310347858084947994757267808749299330718084213807933429157723200298470723335812827913795490403708346408842478252759114515803597181115947280908019743263961839066442761382859702141705560761918587766965623556588883812106776957291931659927162999599514666060191057202429752017360314675321384426157291724746606178215428721435462606681566574210885037745858944899634341992823682335198523219841711793955400181547925536917512102427840272741453783862105874132056711612670746712759077877154398124481167917929310212213170045628481679568921480798156494833751985647931732591351124345735237334552012818691847267626826062391646305405991139932047845589680613762445561205616963296239305769705389138502653141664887104971407711999121920435272806052744172710293214236398325822817408429406432685648747811893366435188462047177439921819354355173899234535166388046906370605543627562784250646639781949044479241185461722641573777729250456826421042646868873836965232313956562331668848252779499666324618915632833095472532936608961059546147158458105067353936570783146252847215167729964668906590052972369146269757702671452035642934937575721604528338234985181556585723875755861607531439975248459164937734898665596928687824827312142032472936075665546340128621120568425122237966207419096777051137192369099967794489192371833366947233515368441910151691479674961558658856188976288146861811676121900231995262311185862628555974535789714332336541842404234727755978751550467188889588958875257687566663998218095953643149412915614773271691621510357697176589268317907394336866121923195554055897858413771615499053642995244132212089563302628821948155332225109626535279826000299996449259628178892537053607163390416062313253344275266566448928918437929809494167535590867025865645853421243415331364345362723732025960945673803232265967364206009380597763344608141880458484643898259736970351188256667546869991640704498181219167956926372228443438461742625351168628337196710407318109097510674484883866635253042972953757626557057745152646740981399256522072263470751617881286899252344582713278250424317948835348913854306918077033143407364429433862935667401670793138369828082453644677609755095083088984097646453837995982727654556418507032984185611013871838773539383392124660352294342978688517899331268269096298034598916838404654762113916579739558848416239988727351448170574420700252417604605404207381355011637147298478168117875908557151157371752500403308822751883623541502749558466511551856512042236722788259357440110340779927343726998478190939988367965229147565933755891541495105142830093157348993113234611055334107267936786383111298713173195214470246413830723294112507437779688021419272955587610397760033115337032012764952941922263146932145276710787247126877172868812875561609847277244342842532089210779863087858821019966391518193806648675068519501602516870754227413807171131900388024629774963760113541341429922556542859992610135964821719477123277016236833976525908303138791648825636045485702236122372364931219531397503997169745655668390532693442317372042427102048360667827195649845285384214119194730194634809226200237355677710341808571688485992708136198192075732187393628984551721228636723730046566499326714552328889683147807423399723202847912831322002238047770389182247749564503724440158742886258491243033245045398020755741886379910577466766686626541999254316852876237394132968264489421948199245747299997344424652827404707641187885438555450350005885555930618209114365231448360318814702817175864232577215396512816369499865161397881609859779864224237448364912611160163095053335435967273687824225772229761126803299486397061815118071280983732376788873692144170141313311062249563109630464993421778418845093342064485659654990633627613157531349045660557346181263324898280340593740733593879133178544131541732784706550562604956244552414945300474085644822896577863291176996351724320859273615164199215347113147025515297984818323883747478076033158277133930306131247818557336021136676542461376197540103377934766147981611032516482104892703729673302159638333470139537828914991851929258285696317535360434625742253433206483256126178511475318692950494269008267579515403231383586934406636589725124416528292983323634910522593168819657520029504946677526333193817220265413538879317343844084944478562777517232261591926296380128193120786975869321204494805324694761920105564665391199148099423207446541546459505128179166390214134836885039178723252615623714926799642259516772426556297591027318370154089300984571318828811162991447156467353412265852652682033019355972632759690411637554925682950199428491490168047533656377501992951827186002394149792618274202634565355757396667259911510383901143275233921056658287449127963415825734841845234795636743331642537599157137869514990901928070644229151793748552292862658451348158829551138720468677382341775999267248117089328954984180239902392545372882503201862492087246827743412611474270818954514471388744024579894904573107840867072583666890330193853115085849416612212788648694645315278375243282159208562628616758353996784284098168049517882149023924895698733860166736966556379253828192580039275677493082627007184670038310906367716673211331183445187631374220110907295870439464408894413469278817566311436256353962171263302565320541889238952002191491532319481534139228360185103786083999533680565625849388631280435375810081387754828539115018248396394164916317214634527086529106821754894261574089375546301500229340665987698387371937418700823047869983984678121650746882618637366300479459213370303684759109825324088965936406231056639751759782026978491225624631872218701567683722624953215132483412041106741983649312648815374321496292648627588656694675243241317859811958180003899219338255787029477258480479665836187596702215057756151862413842136319786290366346211391156857876180005115994766306614768861592034757725793942788857682517071733146638705760272429535469231420938316626418789326182585456753699574756986246214711047023485312169090180962160512366874984578827618165004533928691476479848791144471713507991517395443908973563488105042538126555216996879361160713046128051571784171260154901143270442182622821338514053713590539471836393792940031572977243602327073241263241961393923821327020051832535617114319048970807114738643104827689914116772354986363087128492795284131660106916840308190747095221155835340211936467213955151293839821072161764241829436412651319064261029993574654195829355219863872095477735745314027104766040960110846314455889158234372517290471201459948999229313063999273143752955268357943277273723679122537571432161219821640672839313285634256162475498759927767839624735564624968561119154278824752665860908712231810569491186182646244187644367760378813661497284531283676398584682339872108854984990934433092694172255632690421222612901205799662725718079997503292199979849336623267003719842374905332472876446819839435803917569951242526975679232650497315244364591041621754616705368572432826715553491129289770861245163345107920332191231274446198817341216347924954671185090318865207066792618732055563819499921100481289983618828989404582506078677349861863014226573734139657463721606485934754656747150869748267758815227117128286023463671508700920114968995108265199779498327969016317415026745320554481323248913625729840345046122165050977118667856943671935811446250283657993449521193398157297113517381232439263374947702084020213686711230104751232916839745271314556977660977493131255113829848044119174241402817811433649552928482926877934220715859282105246536046197392231126264982341078301075619939526361888827775979283413311448806495117120368979190925191360782440534111210541809096379528486135013655432571437071816107335116718993591483832554364867368897981228094068859588255481739644471882213197689797314297624598349597894611813457472461427375658592092509451333477312929187927774728259935274842998132236002477466275463738038987088835036314570727143335711169681243036357594290269504904649251112405314896580865356194716193397040221577688353163470243724616775535397190267056394941905437643668568658434036495238360303153894611284799828027074040515740132595616812203167506477347082022633946638337122326535782278417498198487993080484095228973917122118123847170822599830685219938303929889188821224457178282259259604403907114583312692738718147646671389331650287978157641902614271632729654798822942245814714415555433584656603676352374570854318273814729043194582971323577686226231128525230809694814074786563348457170414373301221918210182082002354125344216261440728184306017725019085983521652701327003581165737729554366198777077266401597935324338713337622969163423215756804036571661116954490690160086773445493052805442305451129494336564807012771195391598428060365652724579127330823793912390101117436857843754745439711067729918357604962888839576018083445606218378070122374222384248187488393208816696078038824930484862574732844567327915527726011311721495536569570451216387459331519245949224175668895902810267361028656049847088296773681201637093229955051216987435559427350690359482573033222515805211332147308849132657115864038832075799977814864850177832319139298776150166344540283451803762985842238832778169424513869766098745204679201729861395614884636423351751801740861731769149485552357209511087311692515222395995127146993759829525206887243135359075084179194627910240448493565748433756633688169856934626693054354118381843745494616591112790027526082501354761758535209593418117138702136851277095304214611456579618935561845053885415399171930305741100420736272014294942328261508890456305357418957889238829110975776550699458413800214230697970994811025494029163632565932051028523479589204200722123554285355280909119585218732768489494389158010073470391315959155010343001331164596256977033031948444133538399793869439535967493253586819691921369131737424453214348537512510465324228717958646754196036115789439864823430531044065675475702477438279253526894194273226410472289186209230790220962653199521442575283419319748717369408192011829621091497571810167146045010899096395908134973803932372896711650137985284154768570965036454820377686910947557184452358538670832683129085775265185362955528289683864780485585384355706292467159248349789207821621654998680013196083368223179811236895282477942929108722926294352474057164868827854107625127235652697883260235666647922673804691045198090353149441017620165599296285559707197774564973730086148154168815309078728609358178964739661132586181296332825875733201063577361564636229611583442127402756018515978737266522076270253182219366149858990980414423515699390539534632382174245702417752818163432851692434437456135930836149876805627467771894937273756403249067677581496793406298118369756501898163427139428098989977049564204120864399323910753414036050802494388663083229258739651645588307168567352113016362292123917399182393148227556144426138621332343718321519091642266796322240825298595075377085548129429444761483980591576190127818529928702739717509282432958801740719351852215070549359018136655046657727471435839941267747424215742973282688976446649302936122459441708255702327548969605164113071388513652210773356192543555142842756532466933469102217201954361825595691034732419312184766351128018921001792489597908934249258339035183948954694980658288450063548362724496971037417736979541956412522836456661747972899885904595770381387972243420965398424711282957405164461419789297549086744485570909550475959266866690432953824424568428726697064482938135820554335285166727621076549698752033082777434912209382289376419163326589389313274437638540457171907472195483391279116415178508466762370130489543161984931131055663841951978197683066785698359767534476931458971162038045463760549638137386768117589909842126157127492896661787795490876621866326367603325070933483600422749464759879725599543462992834198918997321508466276158345787630858485319219681762269414857803215657137989816371401612425942982062086272376279045163516831345696980743075598601533461663705865506671344966618238098609438601576991286754636931536638467755175189257428636829252401294840575791408256927461104326882133380678466405887973240521170123563718043587524421118469830722875249464465730628564728849737810108942242517361879548852297259232317804565144832222329992911396133322278334922400249024149541860998603843233999845670011594944157452822386574938747883851875968898867981375024501393192768933404412532531188744418580365518679592733790197475456334962242714979108645991364726897211800036361031741394776988918530595679197599966116781749547815026682832497546683488396041458798827611763679926958771275287427297615128313224093491868514988213898264113467000123687986915847033611155475681306667223938714693686905352748715773638417178215875709792453924991563302228571780858261406621114469167756193943131813159586666209011811661963310536216317141813712291167599714404809991559998896979323792793578889514434466512084451917726572475724417579854365260246214580267649025646726036245558955911973296695923263567687748657512386531906936896777998276756394443388404329327943146669318174378972200621909746049010315824050001925522293049660775832065391860140192584562537692732247457644563666548983413487717793847335418951757931121794485271283758724450853358452465692119253336971094123129737684719443692916164889537611267975668825968116548131776296735739046088343081153035562790654567855448711141634460444225323092875166582829418514155869680651627782561495713473336848401682748010237311630325024021926956927926605219901984824695059572177512742242759585791957568253683159824390205924594353154123243046685360456360982501179325595524575498862411086612773740000229791662331072727012112296429349345208105052934476161755313276331869629966879426061703754259371782842913505327669164129044078655064833575423353070680687227436392676747415061873161177699630244914603929615579802246202207472791373651477683638731312837239946414712369531986508665611530233789139804475198383669783858084752679368162013922208352092610004252099400477242774218271149711010986910393465514903698514199515114001397010805111270962699090154290385862417730058205565146684937578441243497594399690217761566901005044633615694778246899561733147492592231735369914841261619441716772831983307384541281159081517124660070915979564065659221332216778687995780242353654161761877497435589540072553449470736535907784284768272763933799518306820664127177611587982481515991472560510271129961661543924378233958876091845597382978188585131407999481371357974370433119122282194737563242116855072272898198724493274670583444088376487080981535421194542673855751954543496430284244611768721617035412476980316182941779462337368946739527056905014454716637964666054385454918132392167557158265612995636010690455748819556298560342675776886812011079438052183888187778413384198508202874728651914566476329792501985371265218676159443381975177884778907545950176234603828683978994279265960532891893711636877396770751772402065758853381738567169609657428105622677607959559045542469434473581607108648616549570009922687417626133234125239344691105147678214221267252341866689918053256317538992851824947902810579746172277604413431602597570307584692829642208651049985992050892112155769329638217054726493826643524723768875578544361526445694917972261828339159521523335564693563682819313222654190405603299688649967103764147159363149220471749755741043906483195531666074743684804681162402946007145350470022954736172558193147734612711202313994464732700446013823965565286212133775275676364832365141164778161266431497418198908781743794080523409728231572596434058979099516556281232638979741731897031339482556839514916165502711254394257157378520312574598245961735805462485739367193402334172577685102378321998675147738060817842170527834262135009836905148022413872019394212256435373134984586546737984944162219857679431217782177571571139610798945779596918857421401160794371772898692919497578090715043673224818985934719546748459259445319661076965820751151924175900217180266244652274936237421619712666530107546694798766205221844857215311430644735353331588535950045382303181404691857708547975861348277874484007371232508587465394261242508723396751247885117293468260179601750794744287454788520321470914785727846260913455436082671462976721618262774676626782547910846319933759395512381990647881037981956918704499465611516027449385558658915090998331961181041934105333251798583307481457780063336881631998145714935367232227498238160900337961838362968228772136341834748598586525567845828576508711071671015456533027365451882762627041839912953982986060154240773082176691780226992920513155792638139813626478248034669451487695276172257880315646596192018201468085948282821851773456703556893252155237005816294730013394033725067455526458526119617165597178295866294910950481215765400957450951261196732828122153498981335433937479414835055257956416653393354738778587907613438593742776114358630812440124932396563985782055766350992980177071545054665130620534859368335987389523980951154762010983154841929443419922487835783330165334193537402177094441683799990497794556515794329941990452267242259794396322188314053948460316501297319886490407852179534412130524386363792390320746041517447617408630572381405099196532441885130775064818082487734092127543951344909717424628981466198847521132328431158612579987947232339920959752827627840964943861950628399293695891776166814372207295580870822114329054092509758751682488624744905198475183477031139328959659309315751679673168306465877823619905358960398080142196956641394991573248672819239360475720288343347631785504583898744697281566936696776234082053015529217633054150755954461350215492704566808945926186453856545552247134258712291118955467759276887471869849166775651218048653847267677048098975919552369475446035160479160122973822549850636749459923905989987396374319006732769303702569320339811144421971265344723258941041379333676716130371035128246948618493331809257391051574775457915353769515381404508565222449213287845988945404209452547754939685586474568315143865123858134113590793956994983695112410153457847608352425630076644379990268895466596735157755333382165404695243684679393032869917190865596658962984741557973820794345913443223967134274188655744472247364099458541336224749554560558646113440392627965972914338732615609191584894063574791761310187789074926692362608807984367612205197116951828884595049115584969240807949308301242323830243255445806680193880577761582893856263678563134858441621353668525962201839529849910283794980827626389454197072636244658670550405195591071202728912451258868821446940835583176676339943627529412193094665434111066483621053343052964135200827362989111041976531032394924266747808840313932877223412020321954666855204948673443413149892816826257185152293114182349139928780143844529189578939421532249283876028197750163522554363548454911614512219245809334352048165864927105816279421322357573266070766400664513462979279774087272696539681933239644948425185176533439335971369377065564777144914175884032491397936621939062460051649959795548786539962936656168347074952694328769588829350517597452533361903399818461514241522403878216031260889851247779955694890269769901902613839884942068770878150902715681243412668082557163293806985163951170912927547946063071353772765087507375214656790175757464722021729183354234547235344215315272178761164265133906699990723696682042377708242422364945896888705981942991522412738325787388397371943584181429686879583770193252265835683453018382640250493907125383204128617687897573785774989557896319371504547242177618560024517650542957051322799222162650676387139254082283062958519213748914378184379364133969719191136215719603313848491408058711124266424732778051305926264583266881868222094158203158309592551242315737738160329316714690174232381300783257746438056464302337723824130424981773944516191198549787575931680259124071041471143637172924736991914549197495596181042711833744822071733188377471024928761620858710382247749848787853978877532598794079433565794381241233330195844256852501210866112558257255769810134231156219744211012553338518132785541136707647029875209263954432865452324322647651644838990217543912719340484798565231718930258883392756725427598592991121366757757692466036636547412369989208075634824115632135377673506453154983732228338822093652879696055021567886602706870192005477459452338977138727479274538656384428026870610126932788199764517129429875660524923114386021356637471192061380859352377724389860565364474999698269754151613561167237133293041684591609603058677052562858335415226414840851086415561234315451082942369050276861977954412545258452897874366961726257539467679760169995810193880913603193534046277301739599897263692141475464929378077574482533121165283214264163932528803071029836116301472637469407045602377655754569738129259175459245665760763837059082784500188860235391839313411605697185555518577072073959657060476367198234184579069360391275494237825633717251239212035032487064486462829532451022859588419549198336511992903369971983961342295257233488222345968148556541046177615790251275273912403084245788815681929320816834978963816233305876335782547786652230171945818401360144254787547102886450725370957564417697872182380582648600439344790918428101671759081952532219458507530743066233182816177536341723289413821541300156966688832881729579642510788510378948003244205434852616176225001949845584179294600425508963586261520278413983429338547471684634547084122232901760424173095598793907184887678899013837366396727845727663644772201758795658604150620022687737509144419110523203751105073136824412680047494353295573164414119628783591060413989430147512449414041945718786546165225120995676944027545135356475474922538869665739022880682313631897147845617766349979104755320249418423206898711169129997925617162173993786047266268771246167753276423393617876860580055860747554221454347827031133651371264570102742091624755110147608090442448194479754813169702562695142507596933966622183982966595442707574512313910491921932860926580389771323386297474731756462840992167984485509593679418446282588262293259347692518615884676827858412204429550989812700585793714644711159559377130554407758605928443776290554780715157961439455650062527652018031086456649107557163310361971196906474514451181683119793177642692251950643533365143242229653935611116154412347577976481911234170191610353704181564692468420252312894781696348113586676213521271891809342933303741342274869311319965292374356096811752886932251363703125858376147054826024445224358178449429513519131446704877550956680068178086852610257116147213835368414222744612599084854272918888233911639417173290584582049255291766422322920745109306911992176391511673526110803117409933845890197800684949297905862320823602452384521493320717106571926244525583801244259421641995658017802807172653679837458178836573435338590952583239302839794842223989667451944772554378554088912148227743423942119890952426763817062932329448250236306157351049237724337750627987098379894626718136998847262684017570485888768493821750304996583982873667211290266656372123692317492439596255496624130589408818102379716543198323097014352152657240292412847294437463906643717911532240529273558819829498966982527244832018931440238525551837671730857147144168968318458579379817228878822683446470675261918251389132676044457869574567086897908122379329843684499297989473974750161786331146272520505651633582462996019437205555084076363444754659437372138895307632929900929381790577889496781678478391145112149117681186784291408665164560244253023125717956478875285476201801396102234502669921285513148362655321604872334332543456929242783829985925492814583279138930385978615060616613253101981142316543109538390171504583779414120700350592644768110940415829291319672773069299269314360582132263182813264835188378875149810552693312900140096376261829602311791901143029262163062517520577241125152443028899518903614323716999154464074842058177896047833589218091229794952517517912263369788345169830187359913712719001508944826541483627151765358418430467713945044472194078159412035851400067981216617841660870017628897948700387299947779676489670194069313449168496685977116139984379762248884658356984915142147015381909359286785462141177266314222436335266345240919188227586474456648151736224455761647497908717649271371281336780844906930685054823563872318434879672929149417598743882442201196611022698839211073914654149389263629170606342671067641912239506560529751378687504938531949116479008432060041260761176775910191124422216831287100454325127630979911627791181493757458212339319862017826349781542198380782011758362197839717553855898942774668177727255566272731995189737631513832502135521458106528343303456388473823188858288436448857198464586176631744216760622931549236812884286801206752589078302260177354453468963579659140255966859178155157611744312667966299780953896863274369950423651213073595889944510435736366957669435838806074615692089207548692899492865381751982285805943467384274300331290838765397772526318828237063143217724389300494573961040823229316184893177566596319689895977923244742145393297646982228474644589357368227006303728984672471971654551828673462418485513982328452674319255491900849510991134927500892515342213940330731606768653113423763883307223702274247743062764956150377875797780350648307095301269655380285795536648547224111763995444085484973848937901003903797631521077590388863984285399143713283077639449986562384966825776685254380070007316332698914437443937144580068382787287994395245118028456768822956828865341143743642517516863613937396577086468896850596524578247299927343386044455927262326143533531284588657262524352724032925492611016526576398253638164540956096688207489050531671537876299589626314264366151164465189913376193765689864417548478826413683361685856134771449998942001104549225226125761197395869557570127533901153629262210467712756790540070002237497263576981644359551763418512497657928412789548662839145883241519425434210970360376793848968335612516932264761005367428788773095775669849321289206871791891114705142537943665264052547265580756943428983606711020128882439460756099396807383993020255871034932242656283393632542045822167097327784930502531297404808310012326492283453625070291201352241950893298125125715022526100390386745514578369896996415992131727737923564201049650208021245156016492574391946176777971076893182893762764155810276762553838787443554342146756870111892325286945334628349823518194484712602933203948673181497445491331569269925655826046594342856419413047896202847120831987215882035279943227693365081863579778693386917417558364446271251185181627182511834680681468428175190663646593822951264470948054389594356517756409864639018872762848788281906302984692915032234243233077492494213204953237538723730195232933292142927631249537673299054624735657249362433774239966156303679583623270191289214400625428226581734318514266826262186325001725988887809375549206415547692058227231509854000926205594130435637659393163586641345941910791955698858699859523601789416831134847294017236386393622473986600644611060334502723732965386616688475620372207478941273604644839134356151458899219765443355216191126125120071434526817640939299631463758799117339098776200363256899695767314344874900314804993443325218315489368756481095646838346012533408414324786171623054627782579606562605987157593911018009851330265738716350105721292053213431792770202511899641328951265988474718581188718110398253113582147859343572285535501720008777149555994325863439584482446367546883945647694373324051492446760286778715943822170074362622199899388808193665777911287229702114386782625893059641485012677712443603178860431052658290904623033137953082622753616317381864542104503842130042311452887647221104697119069110054127207519295351477034582628703799524281394722337419999400642672029944866549351216962463367034115472529302323299302775151076632467455400640786515050606638834811933784012452328201616872725770826775519002761587979092079375669688179213963062594949038956685064387781918338432925112746217540832386857125076314742428585763683786649304154022832612825176361507886521188142642168731227898676721707518316924102670916076077341527282653256305678637353524245149515414158966341594316973527841387666275364691107148157751046531421286574326768907512816522757139915350987133735678607869255203357829319851536646953639642771076926342734958639386980662622261719731451263351694938829630016957192592767491594527619673181296515277902222951271416606241498479462710841246524081014184166188786737867165744398995658812909230186939932322146998536722744344856959481702006332724847923274057433533084545689247043476355517913995898781983445973875489914159146109930312958177484291976420362096144969794249469506710755247123555439851342723247784065980542978942873932897379206819991542159299376223581149993347902912545175322314551931834731966081618386712017316230785530792878618658336298457417206775623731547193224914895309190709119558311833633726293157947643254496266676379551914807562592527549946473333051404181451062868712841998998890493948735587701926251014698596469684299020578179531979109417143798296074526450526906945502036855681481615796681809103025972756396537268379803578314762519259109848040686706584807558838398901714327584291151799331167263854728236201136459210953783762116173952460152098938051253526177416282265416675929168368490332568033454708671953115333128517294199826122520164616912166319975375147106835974094896643500656271229498746351683961965450391144368973837271188371494246192855488965711342923856645425252348270001839727087022534343476667138515294488633812070320416543669195623838272239712275621860368162317011263441071304437637190394152765891988931825354349306063469622946911797292266753116235378383277759062910138849939077161229624692556667663893065902573642711735516591567892014462545072346512350285338628130118545446877576483212357151275283391664611949501547812325642496990600597742375736371126086423091262734520399677942639726474277637741438643641594744716759418421496936727019027520392291546453765333626351189588059990229644775801219089083865998889872266743721523586169774260339251962883966733907517266961019759267314274316062861222190190058914681737121883758640925312214721486592742229782178837821559445159287059399246808295718656737228870962645411876057631793772773425869671246027406855013788761786946700169670890112156017348479593322944852302611745978874782400546446064831637256662692473217677851693631631625629769901885925222287696842048095726079649757551818878404060343197467552430153550517217579146850770406548121099155821342897583814135342164293245599335603928219285980143499933142266515328637527240456797859936902845525883727353593946185718073460285296231627156487441394594842882427223151699256956493424462533566774182574412116577974074684581577721129509902503694675491472596536684498074669588959773323863391736902521192729825710489505502317737598443794492861182321413865394193284426467511401713728405359658431844975564130750323692226157555238158702249130885451696036219746802301707665722803307182728741506230053529375192615864357854173553873268254252770132150011881428261703221777754932914833003672461315747831635465250537159651451382445619990339532464188748368755879698901231049210093164184133257912245835957254832482733629407979809563586504893025084462943753499923666191314361118214032653138314409365861662954720647772216015900388335150420179579851301655365902333388438982252964240138823561271824359966886237279506642690066914771549822366004390172169443913837998663529455870186461741482136614962170105371500362773975654585748206487156678176122559826032395696570488434423346262204800841029910877666708663889257539612468091911551395611291407672629308411584671312458362768377921972990865866100232968741173321436885598718146694934263717107461395805827957522517477429383868826493548907305791651444197016916490657059786738265246663979147916454645724403814496843602793732567289715393161713628158329314101465511228215771866225815211384817873338387171342389845505450778157135996943385544872043491982969417178133155176610816536140233286157012744059503357051771850632054927548638836468179136269209287687258692639237107868789441296956695983127348087363653689003813289486119684424778548984588544970624330823738286374466558542071556677760314627622742181297701567251066369502488719479210877956240620438777756053078252295317441839461995860954253343739982924530175418381967594614974200097842177645174137648172599103292671746542099723224656229183154930269685537681622219585662398446252927799213265939471028502493545792731415281723927164776598290263133972921851884965145415651264547733922956850285483942902408191823118318833046185360344786140698692323335494172301248580239385616503414207657694952071627260936431422357784502041787946710324317874196472920779342971114951966348811745172961821653155176115819678053027167352962399928181246363091885363176833235416103974447402383868542132558999173428452727493443688129711425788874658143898827466242629424745912343482868661543890351137818511823744424566873377828425633369564597102031068019571901443736118408824077534443447131701468360822323527992131109974143734841859254561095181179438008089625708768850795703016608201562258971745215996405191043944259131431981166197759628192648695149600762764318219476781961853532414435562644549399538327141119816640649664154869399479453305727565274637566846294351238256936224558511609537993725871267577887475851233604307570226126484826393732453707215629160981101753652161351190399198564094868193876250906224664314606919670517862832150531410372601749530215849653527739814794244316147462452641156724987274314860186882871708975676979055537350444281767492381126170758209942623409977543375459600766372958359154573388781731029167468912913788809396584530646846574312761391124315659488941501128822261968715741857637938358271555579441537064372776187112976132214889325789842170346871307514344984624027311040292336949595551549469851515246754856532413202866767487961392944206128926646279841372669779005942236883491526411434339569195820745632498923988595699194706945211324917900474846678908257982466258277390181848301115094458598623315775567384202574894685391535882192071189538760363629293999362111039554730694643950945117063895405004462246358185968143155321276344471882624383902791167259324616794363765316391320805791119674697226392839779669873353696637140610018397663572256335973302356362451584823784333248873567589834082621297992666198900967275016629668145399125130845211465072185843908297429409134262681737647153467041253092660204214743663966540771765340900462249953223199401629599146903986287337080160231835685091042749525855465341330729754748031222660117377195415039043443384497142563788432188342210081618534782555980492088649819455535190642348074986521610786675065617870418398035675942019774560048617261448476712234580310416967790360967996436735914532919313184597318842414765676097581688608426913696725003761555795499698169273542856232317242833929845336540234411981602136930859460055818292706162336062752248621925887760524144856457670587332469926962317091937492955490239503819332913966127603500521453828047231618244818106007378989381373579281564653837902795814097811811713506961342285408540999394479316338588430438946516742345666216454329983251778685150089691737716304947590313368973663992214140095089776284499524505912772768662768409943455153215022435512843382692717626430545073282091665997872916542375203984998261293129259565525267333435509653644873987823937407864811353080390221585761387303073048086340625957336545644152097661146141786076253515599081866362652680839508762313501256657867612754423262455927125139987192783230851964580058597925348504464585250462399051294212362034392494642757261339250264887326520847994915723164615491333349656248661638414280616571597944962371860841231389661068864649921115847036197790481056190874982115310448250961802319244515918235639812298227578963097845982606676567087367991370189318403319704063767269792742813147231150991650455276892612940339259814032790376438523801825204565224624790326047039399423437955602612243493918461488767149166410392416695162199416926557143585436138480987114957405411707043647739814345467596369544195753686082936226866606463397215968449899064016451302266393720493612824190996826236959664843212458842058366676671572302031336351884203442572591994362331768352785813187261924820053576815987622487007438824561121513890710885716996515681632602534547594165131674998863354612534759385682786049302850711787554681671481664132233437898617073177769071557477111636311337877623110675938763600191140156556393541649094644518935272129919607429950335284291171137648992025764274334690162725983889452619281220183601024556109828313992408746158867044687723429682338681847468425841212192089400633530681236634270347158327285008708657393455349272776653412957192958167243092892532062747394474573615618283691775655216912980042519506836952877713160701103528175938840931413219291356319234713527905839894989916282416391761387775610825002591182279642614030898131132127686424325994597719088164251221333723414847778565433903759626619938669087328120943065710852210525898158267053854974936096268051789752512654803051191761166802749728248758017774406301643599132707135234025949596290224451223625613614854839927470785635484145145586380857282785412654220521516618076916016236247128683891663786118428434404259158996012264133502131480727617511672618622520698559103266738532751669338131464993813853523560998165892753510399880152332499597165552782217925195717041584751397817719564547946072782135071185658422729478813055176522218425579199827411193391119930689086225307784253456803773231742536026567627957917425491054697981284173195012468055126085612964336150938158432124477095555581130114805998897990995637828827897859719206059809488729772281945181505404394962579248112706547961095962615889039022810448045186712808905483297134668215469706778764616185444770882692701457813310919254159622670758408422496160218064944893062347206957803210678616310484365809894901883234658988013905999000680469736724719911334984931916878452877368505442854912478031385369241352621756420678218243909892955993472579695646570493491362891339117589259581956124153612689797616292372722209446084605571643791321576543393523276625080807581072835383242981056953713544731828119214996323910969455340610630831371546542327984123561781696613367419425113453768962435386059368085283911537039319040400190288475082971872444952974854965856577684372594155620584722670028081525859718431332233647221306287614883696452283980105066482675628380767445091147502540517875073557266669602895135922253681700792067514814575199626265723992377962147436130402076235492559328488237995118084410253465110205965554056651205311823356150116584531636729482733183122691521696131265585344816132472327163994320718583156282915814903214306805560604397542936822790124500762794494824332757716880298642455777300045836617731629256404881468722525482378072165666323212473666318551352474933726502121745400149071500830691168225497636168318534449141208196852636915805231651795737568268851918516915011368508955875244070269122882474640220053197135259183383579243300423071376284158898828363520953223783119102288874146771337126761771056007089939879844774879309626682408154648412978111844738878172740750424448388351552585661894446968590867586093783137867089279988959534722727940049557293038161199243562302177959286727122289315313335302983961294647785219044330651362256238036336373668268577932412130345366567372273166099145183073155472852514449985217201775526768411788876928091563344358660557579156968126806862236601068957611088227972128850076766390795096781486838515496171821119472834512816266621661334169386682175677487013324609525108567950480518229087114843219667492813814952625456474266248590546952676277427717623917223928474468562397834512184785884716188503501323836228369594108349945109645059592814814966636487503843291144249312204105670023106281348133044155278630357195600707981941383681022500700700107897565779589789979927929574313136605241250364478936353836291913369654132046725798378728893321676592883783209244667588943224376164601208088637088523227989375372873248329031611069629726758831112694266053233895671590207541891535136079223537002679954045282382037297246152008313162201718471274628400613649889114896771662458911376704556848133197803777763358119083546841993346255961289816429121478701060546611946722220100798993210872517089788055822186510226084798259720911559943572299284398070757958621886671393171615166217213346350591327501419997074771420126453398502457478255382451135422458576540186774990530743082494478277487196329144982967582470239075548135463841548432143071596572483117254189022877171616852838025197772369048353513646030281339186745851962706828596158493785732802749490361773041315299667306462629420540656763513371246443114755153930812887365441842332884786275506437280709365818615164747996449475108464631340809927506482062022365452846075937561149683686055624651153905182727272514232735912918558607821732641418065245188775636273516282168706752283187642999188797760081266854615477509718645614524506026663473556314780525425602936934307989734309363299835552207710556254786387799018435486379217973088513815112708354475883513365311951215138004113227278364349383720726251362787762479217803543949344368779131297113210432020795254653740980203055948657303560004825763599195863652570864460143024651262134251618501302770423154492706084794826144484281135958011764630736058687632604729613137523958205968264807611583747438107176956913497298573004552223166127917183462416673909570156932319710837400442329167975326196705610878734655285674775246633943237038991409310352347896025945513032322995819299124309927861398914309615965358950865228038183552220180025146425556685777961399721518010762675316843936516137263313988183418398186835057688222631896167186512847752376902028623702296261959309786820717775819760117944241710443571266517467564428443561945233885204228821981063253361276432317850956738353507880275636649256362760664301329678785243139252752857723840636842886590656760759333474063981584236142754450577673439904258697914813747289648038717543325705244411641968318233566259427060789139215527821197729987192665672166798827223236839837333128112196151336942921256972603089657859735968043830863207180830960276636789789348333583947067797074437317074297524590314744759966642951634799811839281933793655359568552357584271344679899847695993672319610261689857697165558463570853532468777861565105561331306514221851937738926401471518344048815766978684159712157915614802499056306365624411051682833052891586346972371441959512275749255328366458087789895219386072027537803039286031677651301792420577945152255702075619224516621236526173990394088800327404247326248566754423751984761913946825999145770535671285308284944584864819106876118242238197072504222518177446902031513393225524025129563310774265948244870709887453992758193470689188889987604944863420521933020237469321170610450236344120446419666738710183564336182810335168211034127053168115356604135672766088146452924353547831153217303097399253194213438862288272940001775302738109234932774682969112613427408241401419233415275182985179558084176953563594849930550884145959836903384687923864231328599816873556255707572138641633616821319836331653192193897503481487644612114698054361438430501653856963222131415355724656330975868574196216823766121685998983826379992313274196034619826643550026146134490547444011999640762204435733121172373467788985736410989849702451029607689553487955908802349457521059110688869343167069771689939507146915892104731279632513259114231407625367211635218342754372092748173833030191600475502607728264323178352647146422642205830761418914370901573716819544651371741282579806649703815049878869145044930553989625313010614925456728126193779698182758009295592463754457633127543636870424745126181552021377616618702789760916512058949961514436909380268961804878716168822499845836976263867885177850220293780595792431881245845186972245515731419585576348974311526508999287334637414168663009203034776155311695897784997585997837098154465231572694125032360100682317475554471150545978336540808197581929999411119436515894685245153454435235747639928418354678128925756884231078352145516755572991131557476055373672776097961636665715679600961485627813004032157986456320724382084239671828686996141805592783597159839433570226169458745555955027635825560828987959198319863657310636084453450509485024597006866305432565321543936033030436800329338759286176970714183884163839648247661198994794010479887221182841923832763322676230378393112017016592668552324177528702352833550112398241111142783684814661851474421213641417536686263515403601870536278822627547626147814010379259026076750127333165369156466111453915524811165743120621690219014780409549846573851712729273033650024372264927308475784139331628494432763607245543915957707419925469853296840112685299169313603517454874408754058033903853669397311608107659780846687693915381456143907773548657187180168701378985185711523194453907123492166813145026644868272733536746909110247462577427580596760678439210488692808868994199962385768618217305817203893857404657361848702944743364235853253180320808474342121465545442837937001858306093407112610025790375843231491943233698388462319314361413432273353231809391096126305126823521377757515521910635439475951444164435344451269874313792351087791384185173719105318778434026143436854979322572672693550717895365581276966631844141986897420293801970214350228200192496159931247957077625511475956374530173927745495764415435114964150364526826492756544213039870652121887831213250841028651844592793955446374263461118677657640685457559212277758975074573632325132826646666316798775567552490245707732369168284969751886965072152979076137503732734824814768150368336910511216437896811195992067547537607231963786378522331698367780329154350330443127407459815225694807126315811187802220898040696763461241376864981741983359389104220623644017070835388773197405326891421896225983812333070150648865863948656747466115536746290043876067760176458821062916171032096345536751503213156118184610881462738199653712878205717591089267652118513543913263628809065758206371563305642424451165641943324436376752381126637903815002986870853821218464171862566942354891378466132592463741635109729401698970751882532962807060291786863411815203044149372239910871161946914917825418466851798843864273004586210616811853406864532496106912383469995391853275927612796234331927911082824548864108645873528898983914228365661583349925203560227103202228507610244385015118974198142377428896698078796288124818239172898629018264978577130707377992213153674054287672152750233854844799429594471621469473420019192179515965429457523103079476728989667751533955851923274621044035628781428221918892647045198779587762295298634500357950380309352218488895474150680045334996379364032428311942172496088070444520551295674199687333769167272253288742835719676895703790625135733557662375122166882118941171302249387548494122874656095659514831546199454685088690847769808738919993759239275598146753907931652439027165760118489293716969766991198801312345568466554392672291939284571484346877210654358218477136641369412782628381557727778802474287030762124738909008227726804745255943748375245333502133280484161343658582702053992488937764128544924623178384994772213254644187593812772415834287036571224972985786977474136488833724439091115204333415221522111674646324435118339559280201721429514602589821162689651849553241885478176916961792963043383657151531679188638578165757246616414831598476703477929773871595121545989045855173490189769377074857686557661697601800199186135293284967939445753597382144822297381733317689875380179626170776621384969761691288441470163821196103935261520089082065643474597595364925795319228210341520603237761525982546510117558370916506842345938104951643569266124897137382988706152604795227032420494468205327210309512786908873135290071225373088812186293205246596644154153236343344560038637898152970032171581856998761705578305204900439425287000610046567294468113166265267278527272294924026284452728173089112816281374493413215110323831707105366976638452543699215283501309765426881571304550852152577093390295341039629901319937555734869329438768879320671216886344512194659736620956280180523665887822614747422490114193146171692851951491705621924297896516962063898734327506450458545326232915375443027901325662989528814226009222582194455648896759757137617323145162396390780685615539895862469713122436900324333100852574824125677496363583488544864641479861873518759411248931237498274547809485270654288194264897770904039335361963676634829821498257154705937836187582469675436011259970641679167252782750494638867449294122776667364557626218112476233499811476322064335944124149149415534657227544150298064557109751485798912452147168149755387660854122350377465527133387831050582183321581991142949097269192028758777791555436966439582099212794668739890808174890908760101424609715599313998329545371354791776217171983355036441336436215728787386329723243578508975254355786299845549363477083394321149301925694559676362835359201871408348986304674201879241372188523986287338971126659835455735880821525837704236840168881716104494527877878475325799145826942796373153117703753564016399504258252845890476600955023774669880474162358482522713144311356289429792512636287657087743920739843620058785286180300457637211869512942540555816182180361649040379661351055285586719021544221507525700551937433170226615686637687038335871683031201761303743882917374747733967482084448100715316166753940922311949335633537266282820000369922846619133789226404462134365935105154736312506990256835575962592164970775681306266321746213675207457848292348004141140466565771174066258202831291668869716536795211908695308933346791316377217496257335551357405680656916323430361817621691606845186630394755351251173585555954429689033299338814338474798283283241621511577735886397244115246700717594659117452763176864578339652628103507336697142489877962775961375127731464397553482082317891091267179829535171642569845758595856372177971732465844198344918317268755393036476833971274887561470175343356997023176068147129707464666733857938865411181999612242052175530966695087619100421116337339717285284918563381819314226935789443157683634611424744992778036381234661036033559385550516584801627467336018411344963193000785665210927518652227914128839832785674498625676596989774298148329448562422983742822239322382786690411305118462163558793456842027653905152767803201101401453623847627613417365128236717929758472612643481047811719471344767535067281934365239683802932940259530967514977113809512106815201654795697906891033080663772164665722569656264391292933823702301126235053941174038139494729296484764453955386549533991034286870998124757458129495773587745733186780717982942135071488049933174844033997601213976491853408116166566852205584263396602854264714581849039303186919128270333944130639365110044655882870475197894212748771719183738770423899856143081187719777067665049540668612138246579111973872975254715288571499614582165304768634012258694532283259841431959663078755615017738388861008558596022895852641766009083228815469932397914259416748723454620136487845700621573324436662663284021254120202460669313402707641181775347577677239196916077257118866327268189636145312820565857896680623434866418554566297651616770017725327681131981472562499519125345299294088373251970439421538820258485915938763565583922485356785777431967660976108610634692389795348660597879325915758110528231045806960245071195748318692739745458649817535068920596896646643937060722833511632013848738996429203316543618675949000810389719412619833151754888533299042336819796146206049859066123597301448885876766184748112591664890209194915019508855522999654598067506701617814712185941801549624664895617901218456494209307825468062297126895989572221169979373376174873229979510166400118667318489467587226718111222639325844114921761020025264044327799557620983147536668892532774334250925381848669927764122780774296891435739274589305846595951589892694307894581951580938267633231903557403622887094574069729909795968917413991011504745335920538122254483856787935565179707819611397569758638268054974130644084075228299632126641478210125208125453344570944493849319095837825363772994264449952812696110757934915465298758273560861811074466270877948647124893264603453551128158807358678744884324805534630719073420313841419973417643333645357439486868105544627722435689689396864871690325787890293406120637928231979505392666481189061929651062249342506813300137381246632929114582635344020037865433459915024525745045703571974766471425727418274314127229552935872338941505399999729792472185939537049948536830283069172071394852158608685762179358745318010858762415662682144906846879546493118533530298976800529822882341200171482616353682338868312951404838906856027182311938798048663243766697172336354306177617730765718826163262249033801375042792132877325510835141132184188842170056435137288175790521021613159007076252387205037733462850377948143224704125224646285526279135394805890107934770561544150476640157256920950339357776678826820831053817298694434507089173197445869287331182343350231173853616727439580699355579984069296426474499738524330782621393568731560347247467401549194149197807744727912491069893567364962534166957073027565693508102011987351664910738608251743522617141457634377569041893807754221291958210452444747879750117268108345252416051128065779184117303549932465679686138970920589181863491309291210563912603317043886094275009398159762907613479597282322389605221170319072342145451783785145765457746726391919582639035556845573511111573681918687030307314666027891248132457567787895411316495856263353713812223812581456102771652481496439039970334229227917988473882886929641152564081980433139945491685131930463481419228723384012593082091837831894179864352618287087137989517625947374921715233869462723841954669200949478281185324908373425792312622802256666611230457331335506617157916450595466708686200682361368050981155062327897325859287156539366194453877756363817167203832414644071157097924211587959358939380835424646574337476218004935678460641774741151233983108733629956587814099667967898313962235254482316544078308356062359284423740231915425152553856946269384522622994034890887753593897283244591226637362892581304193251228158510730356903274184747314563901842825160747360532048409789341700925150679388314173619763122335864589833993051227885403736849456104583163050706382486931730351353617343049829630365033166724353882002063653921008854674557574482519619013423193383128682387282292524998661050607414999512234458839517613542149332894168020982359232806087299175631816354678575784664753952454973300460696268684377145405979015656361342491282744212502553774182468499675609658656433919118157824753503781750109584843945985876185743734247294533048947511834640822965955907939285739360492213285150857057285412132263371435759689997988046423755938434579384681660418134631143877377827676026057946338792526902223969113093950667033167256474527535521197856397772443931293125793326340948653357871938618639262262489016862512362318654021813346049454432773504151131733599340864424213673390736034058965539986489861493141145775525766843445677283908853016886501232679240475235642566515255904909332648365886293533652920593334882351932141265882395918960712821853261583373274976667514835222837093330793257314812715572252429549342698908413133922998691257029192897695238372564176090497288226022831191770957559684318834076669891397694056453754657550860690716351146866265785792713423492842278858972463982336512516269618878424352147846423014582996447016266218581078203801045572416418456537488108947202030666786208813782130733526258613019292434725642921264510695034323389311915600094783590577134791136220251580981013822332254785305326676896763358817189467028790279242566593539545384707418328531377265383714330126287816321396147163859154763528255896655405785849609640455418391934952859419327827553981069752412718800503915520081724674560782107797177727450920397115592514182409641244352395192527639613177281822833219641350655768572138389050357567122591258306402868966567433079253266976516859067234865028210430979019487495852765112087963338503658668379097294060365437161539223180169537088839886809374077153440371894377870763307948231531225600633925519655628998023521074191992815206815269557555625558299512615603923495082696712175288717821137245571536857290147872826932485146756189901448195830009799676795003214976636116033652184407889208644419669769008331348666356049271797681121227777080978449648672314641716432774979629281949825678656167116174793390162518417976274086847968385760425427245499455341145881261418061435675349149425127329653707154371498089942682489529655537854823927728111037994241856636513806862791305049736446723623616279777461394302031564702025791957929451913085121777715437693854283940141591521817823775671884773257032165436023813745553338233151886784719556025352701565116756538220672123485726350247865944297128890713157836893865244987968657143980171865473362777048326725209252741736514013773846602969481881905905643573650248616897173168840171494269652119815814088556269732503770591249469911961062577047041615855314680570207564762334245972343476893509269329551064498436124114037123410264726191063088726366044858724923834629151789565807654484130884351291956153990195376042927851346657135075671511403733586771705473147519237984741009632993996293049128614093988113965450367474522419276568832279895914563251653213151259158287155513672990177915416511251729273555213401634795556674487052807689480337199025283121720898044514420255039309423299191341071945934516579617580915824741128016190338505242743593838632797836718726040073119216146955130892913833306785354025348177191442187562985128077632901659121032627034832136291512196345266149434468392673014711741514659453763142819963790469289071232134434958381056197304557045547472184361797147607399629491954596857357390577114433019938448195426654466144647381451415752183906701710672461511897229188883460928668726906098092665347218537033163010639973508789681273225265455836330372923374645601621714425252709384681487612619202611661350917147704554346395028906263759894256772068216354970383619382381079325773561738923171598671501348168292540687711087873331519852764928268425274634358408226477180188344485172518420614780697117087536331467391731928336697243012568199141174397643604435333301236283859684551833242358820726389618150186861294633514958103459273309948925496143461744595184580330790210351270222427646571075832764120737186692675307700821734698491454985606424383269751866988436099090080855066478883775598578293477445910044977881412273805574483374564092839440561966611082942986140242751628258877636438512373641984393637953733276273786168410453787876810359320833114209353692738132986826857688612973914856591037373941966145610351886838001628854246764161343785216887032161809043227657945484028338361086918818272731399568922219830955704588493341663834504713055810271234462117914444710665751514463171003934846688952656638433942621477746655115888160694170388579362766497766316097156390460016312759565036086054935732387441969081150595845128948688824581546596973112147114951121841405960098788385701741188803896944420829813726434590788771247951273855666665693826952273997672245461977630194953913722343749926832852664495193316108396356324719654817214657233305354270219706255830856912650578641960087836917491484064534578778237628617142702340156635348163785859502745766432558784292816731507552684065769561500545449299475472362070775093334293304965269491537144734326706223106552901896017731993963031117271488113313034604676673591079751425959242987440095530716455752341950694486167605946228558258559274052284010528947043290009464582066478014663041233846638012425909203812354516717532144438397643831680770431977804637025495251954168804535607918827777679562635789244026717206282674819161518326152403400373743125815287801593066677834488989229591237273273556186656187654238497814750778523434307485498610537989073155171707961745431763882104069876798149736796712889787442045195924735664744238126377613608329254999130931412363524843287333523478796631669414979587268268311547472372721981376838473623200028311510820283835483856955161568343382219565696478511583177446908794449002120152780233474621695427623348737265150892293838200507218709268325308412918531993184258596261623875995073766579323571204767167721165991866124512126916436411825703178545199666937436166098191442186938466758007935288635211753164262559714130368912236905115457792727404894811740259992383656148955412993578400626391332989872225028275572726848907956643215905032373778242182395810535204149964889436982872045481325603028730550277298007492304408277279354477252029112668818313735523844377210176722232612349551086480682353858071346731625268293810418575664435536060350925484796388371675709889190374333909759631954965215166749728868853548434810346439796490777857481401288184110886987468617437589137002660305676633983708538687233535786643263616699888818772624043982514094425196942936953962574251915070676112204855669237842850746882533701769122591297943176689933932678405969688212072287266902832129213352348084418589050880879522784518221836508330503486899265246171174034176968277455134751518695987012954099358926367168252147245152374952815727596668613761865223456255050888853077523528827052007149366828339345607797129838097871478251949833302046660721790311569712433043318106585849334496120458502993255231175743543097226078595146168368668570878460437610912736393857034778825243560221711793590764840846924261012356072871572865461170418986647777447662285312139601360701727948304224276885644481769181932921648901548134053774629730095619511016076250412932481386671622924921765686057218741412762442407165563546535937947331866825758314994414554415384710913454188215646115162106372670545142418640549945031613134839302861276483851432357399557824637117766965876619597658601274218244940635311140252735793390566895954530024464661417104849595198910387840018193243108667866409234882228217626512997688987386168068821039296239073601366593485660336596678117916280360754984208624230958432939252333552285278047254283221333333493578497708221837622614718594266592906364981859509332641595742399229664634196644277446377588396079236109265665766012930560451434196105515750485084319468541973507295826533429726651541911912486106593226806815286034863973889978593050208784741651244130175769941419631595312246113053354253691071816057348059140355599053196872979543698037064082544557734592465286866040376816701941537883935606866066623438668524516928528515987757514519061366110430325725649683069515464701643439545542399375627751910048880721252234516914165724992372706939912691812697056452476969980511020602162855265656254531366244789617798899376357317563271014086851530454573610841257979963858167088219082810244987233414188614293782022667698564677593888414875141253169302170749323133794283455289927984361681236964754328597419605879621281363541859513624616218981720392992991315286872715564177711152225244209543398282453207262709933439500374413782101978262172551739187848018441515652470679118905187038337285118652970555778050725934228339161982758687588171632471080904914287117484848560636818285301125762080975966844689401402909015907572385128026519411569838768998569227393267404125443784916672739226621407448451777693374171895811776538717441041928805461669517925129832585525914655605944957139551863957457561862202601857177812253349276068868609917458780141424340577774876327412185366853298634573850453694451664100447780101214348765489981766171174303745869256621763349020871647811177647246789216100115906437454690916280996802375578707292576676182466081933023635699416819532512117583020125741791531052402297590510121915021263147520714052380584529561429123364294372199617503269329589776944395556564280264660856399670421491817956141507956212829832430521885113817706918194460576900655479329268716411458943805185148962332862965151126273840171640009651303663969305935039665949702110229743792831837995076201882591732234421161585584912216835751413281861159645415485640137758190579692755447078098852535464725423660635860657450265926752632462641671082882868421648514449847327358280262794026114641474034098832673137314618823633777953882992161216826829444604717466882349714454220194557981711022926987092953654464167397802120922726967416887259351227369549657162073537343352968828504131315630214824467914135158314884503260621431078128477194311104939740232703152315989616246179205534691979250421217030450960533214165525943608793571199863930367397674369665856453339871881236281877638958016055454210719683418905544576022877304912619378986667617029863519078215289747517618481701817690360994777879479940839949677641093849134348916730602149797405795855441333023234063695082906829444780657348261294324165979756368708622803290912742136446743825729760676820563214594525771787485501292039698391733436298394941237002780475772452451408703620127226745816636908234255507945236940873063314872588176787240376678341415530487882243756315377644227655363118652352239578143284782816210406352355324281448076682835455153745223626525812338144265848916871557165919912644599565937537763966571774244635446100546382877957477647032957794556955019792363515720885727892798307165456344228928928521817170125520038651363389286906062703957709938284034397722512128707142546826379911854123598525744563124454375610193981770070255906096267646168593362227788526864131280802693192344795247221812613626809392098735321396774961268804699581183685855254159323414712196823767322666240733384609657162911834156456610263752292900021224734775204265809440171370633449049646486575585492037959677600049805028916123920543479561126099137372620209636134926321281312984949940998633577530197049683982086715452153590218140374014342527367172611320617131917960940605082847530207352812699311428693769173015356031151786964827187389641355041310177964753274058007559567843756042072601171227726985149179161519603274444694529728504481956875048232081883763818162671059391510659592426307270836050490874134958543490059383848536759283275549884391103154185416354782528782308839699997419540571182532031117400674615073917174034949196534237380507362101720697133551147118704876951202248453419595068746180951033776922860882286106451750270429485796292258453426592773511548142867580796940586889729872155492868882951279235668715475721403524849715757123045713674850304359273407957763394981942328575198108112723899556398637895906516545622099856645925261065899748950655195644626628544537217343252446395535861563786171498946956228233709542297761042509979503853742964992756157051465290586842218483037769071302153256515574343311202539352859104940440175928684536387240293386182314838180510868629881124231718220174891021854729341976505133938338625086719836151184574090361780782933222645159238113451635765901990704446524087717525424493317612373001189668381781794027071438745638184258058239331507717332008263737187417103661782253023271687717782242603142938911717880233881186157637375386489757494748123511303678722479166598233689286682049213027724188682257955063170509928144420145550175235790210295868371034375939696421339674780821356040213370093118235176694013359834076441720557533228991313409616866535663400346894523623295872603536983727754164660744111862535773666786996783390964870807224645133008551982741996751088817075834491074579829342277484445978994391746194693154324034863843212323819760252704784438137705590004113417640925374316748330169495952363608937416910268927440221343748249770731762192246039632548790406306133691868967801735716641056066870378110628943387333998496815216209252192249037562362308706912718958552662116339952566669818697523223553491661616445981568619658811556151481783638447685799780487719383496789323357274493628349339368583406246195596372899013651382013631865467611323797777515958448849552175168122768608849438500164508771334194884779445030765636382686638319695016736151265329449742786106487969110217944830704147945954462917187029153236433342136295100582635215929241641062983017994028459585032610595325716197641784194215482232912956570159048227244904932423455398629720003181145814775561156576939524856766669263168622551362686826025848153544173469791858553753741264476483697326647488862273797142597659559012085537519438213109394505245529218181925403475764245950353817965711356957958697548444481376983397828533768131914532286528497299839258710586727379514648901238901876258976193021475604347094420626117435115396718597058619142207199037219813126227104715952570981742424034601270567907257572171549808483738691611782781168511079837127613920906364750404161543900512471242154941966224277039748435961121512611447395575855073930521777799817580187065053765392294611699905493095505134637243206679169234301134535808674345461151171496902393303629704204857722958686288352656115631385206013723514655827538264635626073360748526912233986575433734611152361675321818353941324685659847142614056200254496581884484429698617714265319894945664869589588714901426239769427913225012216303209835067271488396020325534362656648083855261277347364368071280574861075797903545553172830922959357347680758889996994284875643374673402465608766911625757333847935520431543604325948215594725181333888478234223701193216433929361357356095443109278039204397391950353318313552880519065570535512345832235453240098521475995213566691016451983798103216660621225290190828038192161832848213581006792271087786469250140233470332489116628796967494397507011439775657623150337488688767921943237883261585360350122911724671833826998135680515326421692257762125948638721690188221972330675722792472783272339022211150884002976051524318591688402935630714737583546523997753382399696043462969393860651596626798184254289508253616124853175975729123224671358335973753251533077750968643419337283475923332865525569804538138145076619125862883354736061172437305333318713520745152184942895945846615320415176021021242723342768857178353577760893219720340857268072826836805798123498038723694629437894514386110813376599391154858053689215095187854926952020619397691081084416335516190084364496773073214712699984728564731807054348799611141559175139186810692039471191330312977717526154663749371775066084114964945826687361254989298641109664022734882193857968797968316644204955038652386247035482932825117557368459478144337244334604475135513565626424368603176103588518787796330475439927158843127954945350453921753796312553342223153777066985695153116977392318311499410628526197142139520525867228532548341759143398114144747781711430697971638960627196863583445703865095867425260591466063438388656728286638944577934445981526272439617085547471962184460378369421984922302081676157020238781841256332976443587415532152540874937883389239635447715227696147542206581333683362015799937483104521489437094293520094817362422608123078113576192711952364819025147331817465345476162118505619933217251654566646052876619920292753802320173755722818944162718984259777258183253178554312762362472610715272691874818679387218910360941660006861543735832146786373113376664418502863493145830896778978858058349197363387311048384261947384084180579055838795452389733693480277743253710291981025919940057653586910824375642662464197435314531864185829646496597455386210940955717862172076726527663859199373009582441643414035685391527483168363654969224736777786171188293942794983754052654992098454455130940117831902839208555167895511390610832329584172913206352908267782403707037144351312911248313893719605242839025592956988277086505346616373618397960651346944253074546677691497658055484796044234854743333842436954378463442408824755488381663515110920694367558664061343164656248518301635953041185648866692685860027953238268948845814561514460418581632378825155858991442576378745857010365074673959561722932747141477648486579671813465649563389622181794816001932050347642838211895647389489453852466484574919949835741678847250013895982366331513799997743952997852977731651312679698755669567271557338093674607236951433914648314963192659496111972813414363893353617635111702211188553775700415127561729617524525874307427789476213889025965674618158267823482378679137557359492422365349935171363235977318882041324918371322773580576884200361447143607658484314799598203175281968966674504229494673122878802592351461252340168593105959356806974655776182424744032042069418577645379633101729014526779753512443574867319193945149568022340034954562116199645510215522726753519457085911589707549133597983291620265099185626917571349885558921223824425074097468771145319688073278481367928151362013933185612717743399161555354805389306585048569988942039311606223503854423741684264566091201450173899174068117276468226251451468046775875875068268920497903355853576849294249221374759653845853523647490593868982368368245469390680657130399778626186756913841165264304517742435499162999881731447876593846654513524852640602965639348913107878719228395258349137091418408863850501352931305564774216427267243403329224236242786401558437375369686654436164279445895791833317940555314155493069014228687041083199812551510452150105275132573619234882615419759679038051842546129811139839244668979482474846985954383136298834965566461856353529302879482258465163713915540718637197115168514434844114335489745368947771605752430613770992272631455434408799703487463586131192220979249968835094984125953734278694170066942576556410712940590595368268193916128974815151189329001633026188973402264284755970022287116047122742376729200587619863623896072610478773454099206867979979718953672683474226665008674471037669696345599116946000006480882118616802944711551487511828735364066219983943476088452407670346773962231824612801631757352633470398542939728713100485183927223347077941595527121185482980112995082535636732367344029638630039262263666731926969960937378478445258098402760006162464913697388912056411547348824598885205576743946113550691373620736985834829599072980454804960435987617331783423011168603591245791325992534753416128202444615221060286168309462100212592298652943422839528467715482528212768951310256732501672343515947264206534791506598914518072713454119419672132764360211811496130558690019525997517526041158268422752814921793194433244065340557146238597065566983980634734129491644171422113514358910314152879011132533771788217678314523493208755436831238762579137731081983745013479579761534109124424081356673601698884867602232563276738572376672501843910300749158252744190449749898284333145990535232451737453618789850321248132856691717194407834297114909851133381207557098157172438844756461803410813196924570733984879267218122283341986460825429543737656042189828629238069351848528242310792609536219423748081231659067348111175156427280277719111267301875890797929585450845793941151047742947793954896544149601064593532706119865596827872790367785292157982387982395961107791580607006863699781360948191256696501823775509817114492215068634851113464894038137618381104009149563376054645534754822403193488399362470150877374199140411230792348633364259323238857632330926133718727859169554108164565289039529918497151331298880260091719258227352295039258048594661929919482110305769063803141843653962992279238067955192196236146366731754578371847083249949872434597457651623566695224531640090421682394292561244324001921304266288925662328572651856732118345644161523411375581867111752840577538438339998409592560008047305339912419468189751112273035554539486571166067592251699844033528586006837139673772685840512256887246720341149550912312754191663642014497172411784052578147421843682581299659016105636212272324537791067106944228570839183928856542405430970436478487289623395278263441714634967734580250126567689443987843523439591389910966290220800654135556025377222664017886432545026047707545335709137465486437438836435353402943334931608387103538013648322617715212825535788919637893289468851289305574833611178823083264878250321703673703461146859691136723234678974463273162407191547386707977144480993365244271588606118591685786864580154962087660546531801652637614483046351283135828027427460849393369717067189113821886477771851925146950301767628424567173588849494191556213850630148528286251158376612635060112428678534696527991489383674249363044392388377535607579832874818621910483103968797598279901035233877369322663300871306109351818526888812100212623512886425727705251384840641499459695686250505574675034102566116723120513395959172663415049435061007861313126813607871611635306999384138224112719321122822777076077281731950669212880096368366074928478982724369061002905391269481866171375043144118042870472826190582302307111857195359938704935819244762468382515713391126207138718314864516096412598229437205529202858857154756047582663220311228696257310114553341587723432985314362051187570499471927858516496025376471407499682533041631149272863529165326497849661318026422786142943150853367346702160359102384685867205424726095943739937327632787502633846826238583385443413894037035396021100346648908371344215962433255062462522351615125396523969579806528356612379785952727387937739722909958551141352689185175457909507895594130498234021773792096885428755715963755224847824853737661440195533498629603385017517523261615398411712194889143148730015931496765052664265333729515082357365262267285545695135572169774192289177656662573736433757790945855456380046195772943782381692691060178932355275805889361132038272748943342719125652681858791566681399445756645281046574518075121102531114602838677496781275651178474910503421676063530593847606906038316566074562823373783958541712546273114428181071149144654613884317634711791493542313103864542979338078997641103216377740077296964771408948157820521449068584459521670663963936583236322893655831446207561174551420893708334242163444262817978659555393099530656801146145199921361585127946286054022264613093696611505823858050864089452313745547131011401971007839775271970111252538173733151113523939427601041451162586011294456201987852909282104613608851872269379164335583232569301545775415279430619847229141941696228941078656433876928261014121147634772858998616360628441151789177246721580671340096671618543375443143205252325198690688210589039615680932163967129126018054651961907491014962612995663508674261829116354617234004058038143522811982642749795347766242673735436216706290568545473051920692317568666842166659219285641280506345342816275729735633993824999361635258763576142753163032336613455986920451629368972888104213220576534348690137042453753713407744995512360963677724213306014708712008424814168151454159482739763357106884696391909642028412873164513008985455602569929198359483677489752718319531046606461455288213336002745294557025306636486693107534859113184203574460927995252092634941001061697495964510470216172276249481837164631135805583408935465669261259540862579722787788119224579488613978451863498412268494631336442877545211335372880329518934632347571419367877727349278461007695766208487156820232526121672562471468884993704884851349210789452504805886134044876157445984812762091218488960345855293617972514903391053334926761760821726692157419739025694870889742764480001858185166798702540227311203225254935447623512932551503858413133693357554283338172540020534013579091194516786121697796718165435492293620746726035683461026487116314793278564876449658023780666879043428047888954704867263840253842004717220941122206191489130769889729794831328098294440659849542740556169350147614284638308696194990214488327794142555749263194491848112352326672446822290473664924677556473128905771168150545580766511777562263459001980434873912333317453464755330638417300703730261979358150972713205564673991708327871028479968375782552488913684061062678808470661830325237821554414397475239651300819365578377664872765353088597837546940057622121035059618747857641124323238625450844756014512229411598739586968325991869974677786367728481984366857730914831479855995923757211949487295166897649800235641571026217487568379776483816246853684128789513020157890471461126992908746780559462129348267298978436896047539536304338404088574942101801796896511510587792829024922444527514767954246659544491406654912311708404946462641457489354734684518701282794742218787654807139761098283719028379573541226513922686890449959812979203122474115254427386812244988291328835573565217960001654669504613475864292037418991342201478845517786664289969640529349761941507961342745347939925868889374084691827235059653105836497328356647957119592923156953795253127763137951010219759604505586626563311068385311176697836402147770288533969142471654310826835390514719547281713030719405608678607327202186301520171281997537221639171766788539090655250629892828564501184996406829631337051024015347255923817353760746315332119653283511257653175765975705724674951500994593460782937669583644325525162406079814015644833247156941821785195688166161394150608108898945199152513833385920928453272224826313093922487899108399898463657819212203313575880232695527974609660948419998331635611723289566950858519278203844994594414399659316561702184957330348948349932218932925431868053358015815501928829694006424245215553430290839956474594430395095883112489394810226516105047939279387286880161386370937947471832215290283184266382289474656607306836157535783574535496191323085837362017126361026019516911245414256135888811703491549246191794137718411973786713745245208062139842245775657913145010673108893095412374322446729772474607239386912187968381276055167325380239435866117015238322542898100136280720633589653646198030195538081329308210552591444365077132503951414579031046345494202879438409918143198404741841366209343434375621333751812448142418735194241678742266615378175355423818101524515943827615221831369753789881905094001538987047012448362228964127116128595205181405645685152511521130957952339216268320543179156115928417092856343982532752623958329994755719916613919523290103291778156336253385275344959356096674458750929976436058601451854988378896076624681937333973754925248407621419482962754525041798898543135928721680964309424124870415792678050242676838123860204721966381977872325889248356197941681167776091989115573222573664858508178233830245645153416557652864554191744166481549764716878170742017353781321075524572651673100828850203836381578664787474262380324258224695974891046343163054699625503439677394455484552340757610881838863499676236350747949266250389702565397402872804392522758441508565949573514514632812942780230106126791225120703493851035173411206915543981722843349548562757224353759183674484420056366646646961412774281323584494138098638058623042626820746179803109785527320604668651820509954124409241692163392629149589502293848798044502467482635464739595225967210651950195321714414378385196251768560535328335800918203548342910865785534826644932591236917589693021678255867271484172567320010403349361739963217691997285794614976999723851300791719572819446887024958716753391654955038549453087372086921441414657294643563351191931762630538956847473226063641223706727976117945640011215233409856614124739372863133253850584325789467384448849915016471051610428957310848971435562753971444362967420287039028640685108353849963746995986449817165052480860372766820758984124522449235931870828926544797511483324554877090303517107726230215316917720942471850698655488893024959906068120878809538416803707829712125733086443418552557515861891351834293390999241117194259217616460415432913769571859369649892563460217244119376913434712405485761897368038719195338096959853577012944993963789153881141517572213964535280932319110482422154248058470827017943935065466368586686135864279942723129769037791420965218730904246687586577426990642430019136690222289575378447853382637959617563167227517200946614796865889232732891935349710447913425560469814493685704972595258738546366417958391523448760213911333249098177386214353688935669050590271277775745914920054490494643029490519833561927764301565018105076504666565912657017313775548094822514186840713763784363157631860129564566329398818214427713276854102945868817092209877874827720310813542142989976473209477546145469300034793126950307275368737564063739685018568777303191308051496571065176001324052122449249630158574520424293690792054733081623606358124833175563119005961563945812922973370643756624356486518860716304269594682444431726487761171532513366808114362652640291343692192778416542069346862206899735537228990303536867930229283514333947250759339596604536455882431109496310389462257097752746015637299459477460364232593799381774858321080921099801722255192288126787302282475678226373468256667830771949394097591799246075463634540937916500455734392639723459793264405113462025442596533536897387879462244893370266078890103257666152638848438387183554043354977083615218357466928569574620004256891361742705356312276304530924411745663196632757657327113812033399677352512622269365121805087118044050113334866654244775657379509237722217882390072109028374135199118391958580254798312272911723225838268628789649464558305756065271185412439841907416379706584294176493822166046146787511955526235478359094664286463181206953309190170491661460967355073865241055143343849708319381439998518111039556558466182170547634359680780751698486341381694361122928980453277174185685664621243413182581525189322822871146884590557659864622317191602273300739510763493436547656710785299097857967585315539101908930301821077227513302094602945099063590574852342184915535723008705665253284791630463274008925214597585531311866358243999668608285161243021296402529155635311308851172657047612630493810228289965350300411707248322106406189628340904734705668154311138716464462464665971741881873562070128578464570517415239844723587312551018872315917893621313324485530519178844342234259263333733155173926253966533880240177542708330247153804310515469537565082464277392272917817122840898711403065542699340308651946844067154792371245585853891415956500437721745789549411280152084911283711594209926837481371569645113197703649850411650464533893918470609283845686114926345926261086982810548640615294754946869219518789236060542199283765499691848833915235574382311727926568918457066994976208280552199194198574802807247335255127181713431344489321312565501906918867077925416061226842810663088684719216949190484857402555604773292562509913313332948764690555961370283521833286452423148128342204017911159057481868028367342165626215473296018616645277283452470399297812938729030655282499237161919835567066115232083749538955501110656774448800782661521578578555352660151534786497664778376013755829274663840225452172264091197972412157946517619412344910841928266305098404108756700509865733838916986329137487995228676838709379678181353957412546844647198692097851975305172319338773361636991156782626147680803874207962572030319617936746332446412712938456305669077919208768255767480029814794152533111639644441373613995053547837265294167198594535131162906921643275487171834642010095917819778076478847372988617935274986094507383606075911554843233974378554964887288220916129054539642272429729535763257497700985798433485312648089937659436549792927689526339969382510603692227467101748494549696627222765298923355700531936346320463475395711787136704377669455877223148437542649640994604356503281381397947278734509107103467696198209445322638227290701749730325292557833925957957591285936401311212396691638467646602646339197097794177582100989593172867328237341666038774575514148417268083379827707632826610674119923987318619645647171625825127778116772712463732262460557987443830015373354845943734874348344439577828379683904295118337726588788579801253165693106586476938429629285021985852676912721233998544101357441839843670632740752039060150493675940180892640193621124874428292611133789729096165861633209491844845142758465771256469545983780884973342714820446250541457219736722219970465597121525386665611662107032713845391869361359656204298902598941352725117554296546648020276375667341497061021040830933701091856361785926115806168192392783403525892278859398785641909131079031773997772952978676704007360514163329933428749082459255334937912914194503239313998749562527690719329954522431479449124121219478883937371292566083926831138991043612053351563357115776774691142698254767261040569852372921976053681385567137687993858231418960978246397180871627932405699351623922121482242134225214638175964574710115584453570484466032547529614911277948145151874051810578325526143523514734852130806257937777951444487938600596997817384786718198444996586780979394939599040846668232345616777620336451442568780827969235054891027582203690938166470843393124306903446344966424073374087890721948058824817907805654659448717263423644075667205791377070590172128366923676779181597461583375813091457034892503670958194186582255694076267991101567395320866088779411262951062457129606803174171083220959076221855282731982198981459702359817277677771369795423954345254228414702952364246968468341316647116370702545441740601982137827518677909028549804166160333134820359251752494824202360516786553726741847163329792378156455208788898761181153456755887176011490152921434732599429325312740434481635869044880972936670547061635417555829856356935713680858242144096596644484107829223181492938629750754748362303425805720160690532831331622118987426346587504741040602886980275408143741891952156053917711884428498982191150160585058884551797048063390501596577635625730230773775985016180120907135286786840505539155416707418948314276520956757549734127792902285812496953868420734231673339796739732379107597483496191398125691474281012240733540978634897202831866716809016694817942852134995563091482088310183558956787413421066356942378667328224010338352877938249289231907495133994498105931689934114788715167133016985255602874477169185724911957042157306347942463105092931565466879120757278396992461974096751761180820530994932637355947835794951824498614148883201327778688980378387299557041444440774014811394966745199295164731234881810404966029316514196625422387501578778785216480429082447419145071574064643973562201097293360924328958779990822283380206927684522973747930651079154803060429026497877347479345238898919060643951630418846977958161883134952723932649924464389276426930883851001015948990988375610725146778338374665150851749106184941843166393983496844597876262663212549356943200964986033451775202888252444543292978717659651844589169314964558721721018288848894138551817856177431649716636363229518655608726311644625689922269899001862475608788308294011491164322230705851700054074210802095563373776201438426953844653696565307297593941151344189396455578098137757167658943716921219347938311557601681135848132033131315415841305699576737735956494579152523949986742905025599053184252717068778437388021203997585399669613013600514056469700964409116389764155780127811223607447291961976526384448376121775194931339549549925115512181617257536351620681165944341136515816277920429394220671229555819625173351344170339223947523418681342993465047844274253531841086459321241449541366682853389765075951165421862570755458909076636973672235533654560783666029145341652573647145026617829374092303428384859943775060585777169828673202262010143278628262486193571865134907817131727229084189149291417803294211443538458862833692297242517777154113689591874864385964427818688591081232652811837406425096985018674360662832510087829326514598479830737068252399484594149513789299156280014938247627624432678513468093982460937211891769542000582043874080987698714771517622330352508044990767868514823992047581146969923047726180572435834561468513234727809782975197654194115652989685644705302513766592614000552442969252271052837822459929774914683843138806904385203138453574814902085418603079158357555475934672331532792853820324255846477221338874844708982313033730469365344139884833860374786811995621541117957779523543708937195820534648448292467427239135884623853991164832851439355364039972329142871696950737248986142378631898267745129644849778913224625206496884345666254642803007131258665213690216551666179513927519637822519369457130999769013134259603051737464509765492554938143044430116221267244695179437728257852328566935649723308086951266049737722703759017704285166758316568354382298309180872348896935522227305095984544227112110192183981221343235724093766503203686829475202447639510269990619117537490798158147222869944171456643738697384747888864459876316291582805474671767179764830691691895135710605921776750870040816776080666464822731279106004084946468885300914513418087951685174291168260134643514175305110630196281701962624987821982648898466649617236049380741183829381024899979310401298511999272204577425414615138535226055924563461714234341395263916841222908529097730164896387379473094478723384284554506943749158301558433726196859519221595859577960238481908567676435223366639772637958905686415757664657348174988979404495083525658877404752574746865097563247801388358982342726191303279367841063000802891727265318512160324243376965290940381273352424326338257865068533070816038669927610282765365388233031363041239339216978446401250623870824735776083228036812347480296756973845178990301511284413712602500807745821599930936844033813919476415431907217295556539798430337949290058008829631384555380233545110910001667539719311130017651357629976047546037118958334839352894222044869254367512732449693702557814368577488940954265030535343364454245307414181796506352956362691065542429897392654201137605226956873891288037498686053142581439124565175946181605981016499247656053162446226295374354559239955374429764953249982596441675125884367840059021698585569467653736339077903964675433578325212544889485626614207409323226236435237419323994213773071509346686513291880420781654935985587488981126356118775889876941721093730183072544145599511654056196199861275828262586585486991091901158782405598340676767675509249612919829839320832859974671562503475362460827433112888343355983908893672365136856981911185430772961067171415683980604379278922864226049014699285920009461835367448094989223861023472715156320114949772958758267311745395525426639638932543519877170133326774894852702420351345440723865749631663339422474997833486363423847968605036778477893098159616764773771311251291908400723445752521368701289002243663132482676854719854994180045094926960727767364113614411198989772341806391583765096934003359023171706315590206858241090117356907783566308579355926901850103565741709850503045385553379072074225312974697814034958213112503015772794078142815170813046318049743960251318259561848194872211930224692636803943107823341078657323874092031468087288890755390542306574845522678269295724013115237236617952244070435885414066913870056667444963083758384732905427480955021210648585059762874668471040164542411426294138745715729633758350834168082659342853637410821772193989215527321322111294853393384607504016524175914725038378328911084241382505508439314789450642036484289923995216678611402728449524107616151887268837110205915831324191183497057945361906490348437901186400069773975678244516732488442323584752946242157531199627079184329057158740401074761544767755078251593717041406630584965378145976405508718074263468448519873051964025806216848267125153341173347409742956251433565540321467562372387899024181047991253901359467936937281575226935014515163584821657918841637063199397586042624239298884719741165814813933456196995122701831456187917784166243279493578727362247827692737202572577668082751564647255541505797873442474976119513052343407884665492664748395199235554322604040405669534422538482227583026576919255139520239985960142993672199459771606792730792388552138936510178609280489790758688988421747002782812208321483173758166072675732312490617683539114937113971591735600914840532874106255656784536001286042252441212051521966356242952865946354433063880784591227841249021078748683503098519767396945669847053981407545342908644298501877884700428124632285892065045957278785922383296506887269163420240642661540968966423222158855925809619084913909254630072278807358340711784755215352904926070848491489318518267719398711226403670916148946921240463912623333302462775918466158231402562404165979219683542914277393034202894274758845893793114495054968735989256728278546842481211607394105162369451920375366444454591730378690663114479843186493756837642443031850549764077736234546182788672622706746271918840769555957992547772452127105337263734094173498683145545877011179523227657869903868720326950549368522464988746747153726184600740467269699244651684607232518459802884909151416242119886854561223345218111192281182305385916041660366799764964117372888050980572473984068980437980022923734137801512318259120866336415210941011182403168313513295634244224629679428046978721466198310303214441686602248482545078115057036555445331644147626065721749405817779578815156484810313724588945532297392419557199088401058743042969783685758203357710776381877282376631621123428237558976974360483576498712906633280222348193566368084386367438344822618262928897468469183640435437474955535939614722466052881425453511927043267350202415965481721971452655576955941556295122343072058159531045812020245314494454409559725963124033785691401133785614722200759383939076744027404554274150504854536328076278444746023774441676826832439255515695244311602650526471472090088729996826733147909967427612869781153246645789158908887169294931115835257486152491777355582250089675266878435269433707280649890472420811239303216755234253977237439590823642402643253665381245644907375430345690275176767656971539082367385976782272685600863526387678634691192640226456691387115455510260014464028119235898636623811566916708147793879295952213039215983467463753920110494565191012439051320260639455956643035494873601835018297236692219574035394756683712355032946956858767196385829107485888654729004613478845420662461915467822873084530472244833796893898116097733353324165220492642656503119451864817065623493651568658933591749469402484293284460767306106632942538681037150281091716439568714555942182930098724031668298449835665979836958556887773400516541770840030741556531642227639488671826291581757086498180748526778907835830725792793615826478235871910207112356868989530932732797802817455248622613880365312630119123071697059693215922294255692687703622836174690882452090604893640589448753819960987172979574574913678605423977097609428764356555471843967572818337318962305113473531736783595709385458619478964651565377748876239106847694431273150243101570763631769760298174025050347450484862936766182560922557004176721604439073506553121793926584270544009060707156726687329154541160178319385113571863068195786326428945473292128831117757640886673118435656137497112450684622683613462671166307232667792276341734900568102763475073699080146041020763266538478881854141709753419616865580626513727278562086109642557530374637714955289941200434236291532895087927995795429048500772685480588369281115441249099359189976233821184526900682850887491131687508739965475732365852622765121027821122892750365720429673384227273907434818572322276143092462555246211311776453455495319405733928574396632580179974655507771504819724249622327119070468796981707834348241628468450831174148198317115584909547961644320297340167580609755569077692435489289380597574304377442897271067423125419773732999378661999803702863451651968222323512138988051773137510269073498108932959178030035768812764889470343785730361459451341253316406201982983869953016972166404174627311557731246572430314934848168327027165790513357426678329207043923847278420523293845670311531925959598414451001872439972601936232294289644912503974094114171246005145528795326795377060994269794726952125670034429360776841033157749534700154779227821345152199249763564950460704698814007391952135536928142361683845785082221187442383211546366373133582452231843366417633076192951949707502836114850238618525148741278819822888213515736119141752961519653585034614091312699975435676411559754783957851017109539726857537266586851862864878374439666916103301874462225147213688303439392836763232744315485062210365620138886385617489501358131101755058683396831358983721318751999112010088071082487928323536778891389451231439453297105059575393998243832144056293979271025312340500093473730597467049181721334585705726993447731052050888181658872327548148919085617475738080176031243156719394910886898352554871212862845710144232528532666779515739995264212274425924297513423478071975717243558059116188794444571760752665501052054659629174102382218268782692284193641979678304437240210815413103312042868586942316810823255388005541097638535009611881961937184525493868447994339028244848280717062515846938031341688381808568378688141820827394260964166379724187502524973270277394176844250325066885428698218134795011121983756058985943424082405981683164361030319967426057341672318309398453113833541261499543333462455275899844890380488004640557749842357162301513411446694490188157218935175634077255681059440184369621878352677312121904792755886528129982645882170341680619164779271904537726222626138163911327727301405045862279563065768255169751787206784213525192297401865719220468837805837802593673836021437211939101537597514424230231505145993791188413232137962094863822043047341122542159964775796299651979609879762397325804967723866517638273945152363771766051980442747575895926539440108894151343188238855266842690325260843169167034904772648261994349072431677891044995284896525671885686611411313031615920371124243330454003371627226497277806260972982555200310732674749756220288440331996792444535415189946537293281588266794127938985371165392571955258824081419448375422341197370641339475703667165441615519955248469796867337370281414628712325164144697574979109539826236649613563792211854759969644373538065072165686778543601197194316651281581991487110981242424450904126504801178090225432498492296935791755491539282543405174135021805827362248521283065992730853329350378826013072780135679101184765815023343387779306111847350447918049410214480966292221769414487736918427762481546223099364827311045745065600632312272239028113396757527492453369919001551567289822447863378485277745461989353652127122264710921911745264521141844666889768735432250441612946759749642492106639178492145682123247768389505207943620830629790436041781244785874941041445589629017620341770529010182291182946813817729593166357009527258374282416131139489727999375569676928507337960094450795208047862968392240282123738603135521674174239152827245652152041600562662182866761461239984881257020257375402673807524392555831571693887875047545983158168428253245108698972125324189746611908391348764825658160581713564728417548166726854983612792636799188581432855924609696422334427604870142777365588995137963375496825807168852286730167512557219556744662078797546794753950929614142059893368255287846901504981684808179582390406821433769568861364945530045153864484927956822836352983815138177311133005636913017901908937573701711976123445922433560888911573867834271171739856749622842853362565841734925723597222310861542588177673821305931890748671532108283293280592318793957467086786239355208144953438749471653239952364823599585486524613970980328971151940363239583911561847389648112378125616460338236501699196920973359540349143631735028221274818045556417373710542936662846167580779335052614428203716010041576020593023344785284116443195598799301752932404271189019384313229918910598848610962507297550510632402753167820400362759447209221394541328963513160177254022569253742358887052795746527641691853674759413698786492601288664649945480997708180580873531746757531308582576461654364821554032291655132472162398155496795452173771561047557580299576635431895991191148829632905617284132342489707927105797438249330377539889112416406993274339610929675472389459598996925961821335552146079317731649704028253377653585822201731678183157156447293215922435995815346393162193614530086994852583137006073828387145315957699676852971437654440252618698549933075353504752642934749405618125643548396958398443424165260437738662398295512731319286584117197158417784583642770396975556539700194412426292703668642572783683530840956374479888228431369261997887449800615881157593795321425291897732442745992125984602082338305019174462357438921989048323938780191472421226223476755083396404632992637926195239393435755016403564046417297502148377481332153751889393490847908141517755496149373240771156638649902603062875673342639738359613223038645846981784010906074638229609190579488116741580356688134274914321648486235711616369813612966354730145906478978222277978665283494725226486788197288598921858728432323181837376600570971127428816985396531282229661846847021751631885456012946850679702290242623637957010264093153527339801247568918043983039197823088282954749470271232442188420240108909011958216847494487991525399502920662281551062041305673296671857094398829990587248000344549304779595142998346832989774938222683174792084291373623116556707695347573926813342881030728624805833527893281556294631970110564430562730956614648263392556133626565116148940352142371695099273344629119616018841948489507119516765872031847130814001845580240660531372501269545565836972634324653744817570164838847124168748016162796484530703231835633263035930159541519269089792784489872616722284392290163387638055482929321075885340981554475066971844053762697429124098540103501619760844414342476614415151120689340883891599523863836540088363970681147645517391404949385285898240005578507921476851612293395158243686495445360893493941013361836307151826141357479590364638537392178957767775926071725019503069331451138072571579121158822783727471618521728217157861128544208992980302030315782959961350829705835085213579969125059909488574276946991759991861187948608390919786140368028712136354757552089429855415718722799714878650779294327546625114955341479668336691488802555549396268123853720556617289512323711642269834468328353398178078553966421767645344816967331616093261375654400215152338701948270876135457079087198461604117235185568198144662942825942871499108440183284565538213748658267937732297130294547979263103809167589874986125341185649338114877653493660186153979563017194251823125329423587335543756115527018307842358029240718168705733804068569775298981036392360530921763809438392530765166193431179347880672717865113855769359529726813104391324785275114990776837545601148419033634959031614875304151925297243492877519010121162758704925840120448992875287298335421426028274611783521280439315939140727576568476628246247394873471195526816748237849596981052696262339104985730672014995054034522506397676118132983767207034022466824964654535586607416594281584603692603553151641914634373901467090244090134625835134357200347471506851759962874691826777878766775231654569567974169258868293897940865496177589785117589257524737230357352570063484049515445464572650266995946419289465920245227749414428384620428557243965121567921819903231835846713787437032124318578039682513151224231476301317961848656122868192783982489250103862193269558030308377959559039763783210569286408279003917491423228160863668389942323357406687237256544308859517929155681438942650366451693217585952425798859648817989910548066556064443183342477951651694226173795983558825057872927236247723375716941558468194933839554968258217279718565297791064860900551462201999338585198368897035067773185380271062323202099011934396671227880665941574539687456413595557123587635245412192513322549332646705410330869272981815453131503267359618675095918177578098342436341479218495986261991633094711223833077922220789456023756392169315175368698137449499053893919352805220531341966356783169075785041988349567759611716042442959848530986774347702495901689181726606529553033969395410465589894675284138345807394419064207866948442989298534238437826970313337058488570983701760739527637172724935442502810319485174277286140035709358454220894783522952121817527267279977107709114694535459313631405079878094959098283669708426062821173976487376177765695867054909261897103898651536698076360919352937807465127066087840383141953582786761223812219483133184557197676301284921225829386480606941506535786921634948405739173237312657995584116823886664374869931947855155373941782233802769946798223219346474887794266684047642583537481377821308855522252625176125086382633430680952479854964682169801403483501833443904242184543635847265283662291246454138059815844924564354348929723496776118349651813778722111648064366210745329202678223410969011356059999070816218550851959921837843764874103197388783673543382548383211990504793515399652895292491548475231586628780816097880179669848629399350664089168006222964419979685768315526974252685511931494741430468369661053106790859549889139322905268753574738011392519891257996101198833781231200487889063635053138941421350985290028948435247834732795180716623464829669478729349387900468691757087344716733640395287731365112588576268238357927075726056500970813059697710074716838427491481841884541132312518936343904643828901754288295899394585339597584369955779389226027498801998737462486488382492787944870461745262418798265326932394165562274217539804742756491397283249540405873852220639589485173491056719064309214993389069381726185399439108585429277554807658586812620215351730838755301626860857782232511187815515092893294928284423104959682640095683293394716415248165226443492342549011534698352249959021902182966643879289929409109450624418096098018082782628777213520594640924493663622252240012708066502763616373388117362005697846258538545292114683819772481185019041095580665366743937111821192612936736787661746565201843870617706877019298447664691057825519947219576783218783237104981463224370786613903697514807295966787264872745383810162694415416927748846672332255202391884502994519811084120844003822878203414755426485365969521624338686685659616080199386638143314024107796011550783935049305187856481049264683833803786249940487866740534952877992831709552558576611100797732520146326021671681588512605397439788627171431550714131626936428665740703058333874107817644324961200579293879150676061601363458228130498047051217700877370347203491642307575080683953891833911314673907394314984007442942021467371215221051028538065300960335390924620513418755211013878827135396388664121170104735312989943487873703924848617458757868853561133868930844106286781991301056142466535942546416591005575038596191553975323898919657520390335544322666281840095974153263034979058392681201643883298935167213779746826631862532335983766824650424731375439281302266646496777285208671459582532754771070864341547883300609190994712577139086862447021382246388989104965599112492478803552073167947751425725814617114716350258364199865849581610956342981655304704292708601077808417343192923325121025525596694922319092116019821168703041285937278683827408487181507626551713421629432338122615158921309226442155072290035664014151180677377513412514671775843060851765842408601263907331168315986836393270394170467176076526699518117638418894673794560144662430153769688199780502426757712876573743941950310187947160681789618713508433815811564907694624206106244053696933126155218593381336527556935833857264097395812140467723104497594464523553415744118953165655927828370980806536693798773228269063466747459648636540712597214472219653696068102856115717863943043203553934672112826862258049213574030148774134664411108935408649155681307469573935212440185633645945765428677440216501623075518931326285485585770787684763645237653295592161668766865288724451451119305227785526512923145383661651838289726296153952134925130992877281677791270273800899929994735837416386284477221670503536024321074887946362580278579615150134240664482346150938560692595028075542204243681224275667747481623597459491534293629723899729926110157578851547804893545279571477198744461908558501717390578469703107929662624509467073058406351878979629365401148310119286424123870048354474025793693778290573895134843338664645485373105532854189443509614908679640223810090477621816904967239038497974453818211645944587728023121718844667452007479325588237244568743920152432845488027209214436378426395617919537421460033910273164607371768722857766527320226991036400811459575208898137500859469376636881106181645031837240887907115236775316811476095447163491623391293626472430713569546881847246970307596638347371033027360575165857049046712406554585981654742033906780039873249794477059981555301022771533872727260665589527227540917106083025728236860748171352365107263451472552494166455488272972048892481228170365784595212975920101336849158589197527215944434916332461163824490254511061487381641719232542188265457263857166313523532222889368461703997520075786329794638481730748165295144623391179901868167864724322634152956578377850213544318765645866420848131393018259069045422942568971508049909914772756345256388117241358681571320255169575845344307550985205073064657051127454537976756226467964829411188033284516199490435552925558823382109892239505068311966721209857608278327277723886569628328996406711226767537701481892458163807119531390395262415949363108709177592896007815724722305632782134371721910749617713558058205181609255856119581937091682639491982562110208882395038987106886311138999230968151287111009732744969833355895084286233093968966499904954339876832831634100422879208002538918465674206238815951381223564501414319283634486454332106801723800171799930492122111183106772626387154659240063085674267145471628058913796669896345012689823317867734562992529717670582263327799793715399079714381146657385556967918281573188818878237101861439462581663173273718364017083682879812311611216416951335650942371623214394315473027773469194248245314823583317070919462026692482892283411931570457257908990294714189882730262544134580753826991387852003860141058445703528342885166625288424824971437083440720361546748487799662613771019646064477284109576888879931560245409263284717763309144610620875569166882462383009428503778636197313576156808756119591121711117121434960830477038411650682839178259649384843135344132582993278781132838032660665824111163962711031910848816326759965232689465617181337511085378188196768913010620738559490831456008176234182054671612554813372104863494435070266297887743726652294432913636428457277651430271636801951405477823256195800519661129169329612606307416464122033834723054937218813094703114413376072764964043468320560546227494036867750022409262693340666200535279888879030848621675244551291221337465910471355840850770866930260123653923722175513818870260476489324917615535895778919225694582746297873052823112466939934885274601284666299318816282643651246716437063440576389335681867236627661093689376725329421209420945494533982605904486538750546080318031545546605417449253475707905271696621273515651624534433965959526604236592178252469745163643738550580852612644466482596429193755694670906131682716416698012311529781071355999238705154705912829234222187777181292452542541251789912718936820336918794216697538495496825306143794202265277368350574168456571818962679919408508722193595129408815975726691728335131373087891566687458009712156997372772625025481612658167602071438628202715782591961685779464116098343093112214100034033710967981074919892041610442322395567897141255599719678198697829451163526688153465432725120639096043395734335414058876373846525340921105120541711842720712142075992390190369213745651274364343696621213832166918750871475011146236411414356655255464197883207971879313683876147686400974377665055129290182947770877266724163192623025559926360114901386507591501459418445844881750788300563483645540886599736137671806012400511818735783456591818391460123416141228583197429864231582509425650296879521831785809972204122867271706878544942287280923827848071824795670857845812486784392076152648285270842358146155827828917881276996879432801823077072693175174550219869415425934945086406639151811432466294405062128368317081076706618476408627742411159210868985892474584279611696794401738453240389463876972667561557182869347170757781895065758760361362543602856727933839814815282868261460304120688358332414028060435446298357551084942642218827259308767493715745008085315957448392656381618411605399975981427177535487410561863551362321084008339675492739298039157673946251223002377395311043206064334418340716635311589026749724899385552114591468521533654257565415333695642875947484396714315958447062913100186812123504627453515822369922247073546293858463254053796686146617435617207527946851229977534589421169623487987299647558073914236014141813054889155586770269321140753513797489681966219184521454217877578762064460993762179438357451754797440519514346719938475107190789219912393721874692432641337229091937055159106951707595944416650231852174175971520510933746269444016041770313186585235267945976334564689786241021715639092756133123347490661874693452968897134058465698560117691319755047909799839910909611298761659417532209087401640804498377833008172478466280127826641681164195227218115523125815792639308493896675343157064743558055623506646951051364954416218865755814348261611975726064195734948780388197685132317074581236975572763257190394126813967255757491172253987285859747233103021660859652514462324619255507069641023954664894804544690660866405569711858231840534844442337367476562349142345989618427429532649771386909421152917957252458926194274711728501432318445187938595477733922642804441965797339816377790135274426464219542724729138107836853123379525428139414962871283545665327079883259376066521274205267693696302167300876433032374042139052283788313399778664227329621684455061290798656345212293588855147513225206130315286581827455153424697894462569424183644703597101319377380285299763849661485669390707703406276537601468839713679449771820499466217307707884768096937374775965645023092254408861847223105311945114175187384424833936853230146929975657563422900196034536012725731382921628194623547873242554418325972039649264489204741332323091363063877570562679244325674101702461793294195414751072229325955896732583991806099418153571681152883394350121165791210603866892063334505082387841285222262284481309167861349954932263049483608960505952521722397055781408525466137974388794510711813284284706441963895974072308656186627973289830607837784173217704947526089786815008556212038270593876217188087813653147626224412163791684322896785127100751136952246538935732439937735253750770922648245357527928074964252671832913637405378676475823687776381201382177240918714820519378759996688797511521785215039076131423951971036171530783255378491531275612078397241105139875094260867226547981104065646401917497627665607837903166378877221753348939204651132696849471525658559696870056833717471702806915816355546187389938821711209262720045363226314799791724450214293535586911830371975915099703468418632402225344373852386381434970446270572807487465763251764389284783490525627728763586477043854935684948372923093530133553167039249094498715240171354075044485215741219107935966485266187612139402175795579800742110358315429756772540979825765956210738274498535150027497948586265767762778858653250835003842384983572483244730089994240131315817498070251245712573193299699326292520703461671233698704504695692954800953299961691182981581482087826187145341121161612866160307577864418024913031903524513874781199712684732046572363483928399141712076342139487311400815456522123184468286976111832289612999922112151760399009821213731508611953772268568649453459366816082479382877141567850033491377155193532616781551845565034006288811643846435798423089948048866518868929830589663218777746377824696492444953347798275365892691023356316309293893028824228136632935964268387186645849442384508220449291248854347623134909018305878214177969455269701704266056132293376379739553882679873115907769355231341719787951815175791753544590818902276483189687554771521815881992872043842998218954860262811252175051884916015932811034525460621424076613433110236790351270899043109296500137970791222139635107716681646465361326536848437593188132717522546275895651896693707465318738111386426289878750915284050675055887123591876961204772167637758052555466405014465064531195489545253633946930858841739841553057866189512861512259670681628205676110056723237605327725162946735882489682408825846315636961142824409946855434744216834294274748324994771539831206162950729776918267274357402579174355522201208613125523008313952354032151004076889987835176255075436839418473994625945549003923859371573454821188419912392224656445224176574754820358764654397871827311174448210419783744735655727878737814617399313568581378445059368721564451174448252674406103771052529386534760414433031358131726094451692459768839223439015516554691597917173044022830954480940385486076506862981572706594103051639705576539290628934462496397806929422951241548814161481877980401871314643334826032689697111912726666052139104836014291962165135588313540447465625389412558315539826339799325349626520606549787114670967731845774575296579811211817332445220283561525066756173217650228241632138426602703813755562125929043522582277198822445463988576312956940552324563169330833463125374557290208763599098814346179262931919170220186888837824773788671620451469333587971201372368575273447776348628122111069569725813755558968870706992487683683393250962946930716173756585583808622380755599242753041739763956646912437291975547361741657858537118643598853339821566027118588912880667954560619622656575442412198496756637137988414714168489180573715656592443110179623292021175952072956322226665346586454245919769919895638715223952861912118299125389871793269686302977342332482812426617871745673704449033668318543225513436784549840114149456301233959089532312133455684067777658524185931867996342249749665125829793330405665493290098708569121478586361017127547256976387017253211141827530673600107943661694190633397636663505131178223084658807448338843366548311526432111763809986942701973713575458109752964048155010094369491325841882077882166930249333995419130736812219477094642220667257575496544556409727179244233009522514716833430933173914585356169264971649384839975012404142931889837199825243151769763703963199823487665935209949313687602269655211198975133218815956463384954114140714927825874442479554987270005911421482115255321363421078871747366057392898421282740301803221403426382948791156595694490361977744889121945384069232880272253296689811745287385266359070261607751687455861613472972118337183073494554472160472478978735523873636262233068911812664698422394696576987784199810124340384648925510734208438912019846973693620790561141851565313795163322194628891477787128197849159264873870886594544482992216593358837940519306232028285333986193243758434170404716532269166907337646646364335240907469628184412391444814576715328504729888673865348905944156815774250235813237684769159339920808125821196272515547661168345150492579692134325974841743651347008599452989450576696992901471183026575982663284395090688645364303292489774975105044570115132327477119655433145381803596985602049651374541999230686512867566245465397452351648396487815628841203654494241481153648873647990762849020401465812345866428756302087917793493136585310516593228823016007963697880159995588838675945621497140948369369561756217869533818776390469674150528436254048605361766195269651558872557355919074222767513676954400069801945419769197290564174821023830846535826811974238121061084512838288338845547986703734220824873899975923040288173232319969469013828171556263312883103956912430001303977292586365520824939361217343580309188788615676178303441150458807996018390625979653586076445750583135440952771819529388620298546255342663272782354419067076962295296911446082742436473243084160431066342412598113229426587715806735739052942217116743201458454865412384497352840570566194552321003262242624775065104713384463440062519928440356227692092032570470207676271223328276229470931567516263476129773065072893997240001864788639013903487403881241113658862061687554258807102911375666272689602711557317193943997516958794717520578602959990613476484827052941326324181984994597368933996253183706278612406416556729639527171469869873560484614372673919193113132118360154431740829405712999683254883141389884279646795570094747864756880837719354828238823728025075107175285614992213971432317782696467702515498975870748283172454771528956281234381981383115993942891377830964406334191848082685578442329125427842631735485314921941976887774689163371116356676273319634934987923916568181480106441180055990446000601736578765026056574557671729193334493343156520743835672577471009030307408437904127325855056819419684527298112478011811453716195869265069881615512773277215403934414250375315986127383411457447748345893974078485485699795303609827027649290017912717951189411105451116960633557295075032452252942665241240250655278359528318257737861228444778706452277061536781612071679623647097522212818288733388371389352536604850416176217853371342564358918218180427102930561258716124334111646476235489525649473259994072132136143166728962892486119226278212363888905089334854842651689330375725165696222839834334162531474036639358661952439884889564633826834062466601189153556895674844777564326482144761170004967776843070180835198452056483748398190306807742714987307813502197506841811024077004518252237436525381346062447025892983969189568876721892398557243683073610532001261023917227446612614825420769625523662663505931733415417780974968061779535226731788386741673963914898059756035311936916175963527754133968311053591349089020458330445163105729022723123232467194398754593430353046331784218671183128103468689215119097973489981332394735513451862671959402732688451488780950132571296564693494726511431179663067400666628924683947172636685975932748888968548778907814484548811490741656855930451522649463995797735163284541304987990117960216652184670226339245866384633094521183617351038567536587607006454939226413162329243208491560285671178839224738734213514642433239412561969922705238464419934427711860849334443199705824691644004562632923694886972275630736373465515408189950634340104816099417613375863871111413188115815715015269165883428111968108353422328809418596495447417209822668471894453360921041558681549408233751165109656007216793627855635109248841051984698484250339896100942967429697158166596775619318713325890578423758378330546871119511195131800934461200778734482753527186964147149073822546620421293673854343088428641666824710598323088149619488829494689839613548938326620785531251703994892721344703178964398891161590891724968306963511839727433072325415052388789328706537552243839225115228131454845102305974160569839502229791449962216375593938609446155582673579233638176844450973482158283494252748726404672422171483076577599790356985142364585141049359806092630030346785056699417887277174442910409270741435101004962266905629530561356390284245575143128346197740306267080565993673184476088519178908743379946500174239884145818129817904570172443022576836491290543882325636705337254563056624613941371212911269580848044187095745310272152417713951148653486159432448993330796607136353537395141756269359534449892179288612046748824428130347116690623864624081503125963976690808342918871328583744114953396339207597552786135586053322906036331633903910960581817337716882113348702106128498123823992383930591375087562314416263264415807843158495707136828731597534653191612446993814025274452266020039621814130653383067156909558948294204547085313014793635937462994866413008103260731205203346726261178632542215181427477728219297576704800875968298233567798238298357261393309325759371507143105628646711383483324842592742124835172592835589095623374541324623051717808569989353337174865873629164160208232660156288899964777206591952154466785065346828282165581019389417343220219859021847331991588594460868915937291134085875373285840659613638769637651117377732728130837151958991172458891564482681323632939711405154400433194727232160999794883762251510409275951372555130055511481841689372050003604143110468255813489414973469409469139813372228115155895317806174889712329481218333329961206635455262392939133957933911822336376934092452532791505349419415438274814162798252304268987861726747088933677274174425604930593715680340492837687083792708701944241667509011829823059623857081844350361553068282708878526403535952605216539393418714281420003923610159116006047461213961060100998550585712396862503247889955599396999055261255620437012978282223122577826995063784936646486079465596778657461789186712739577636537118695244049391090126583748156119755638689447868832165621663374128152852047547204271428753653732419156231972291012725417865517042758553947764588974383618186405956291435035759517942899420968228290784713431493757795959014320771668766367585639453077185873547442181419377081154642308506494803852945040119669142892058572960970666099201966295226276391124146616926464276657382379196487758919735887267373240313461171428724638816516967772721996861381017284749152864514697905690703859226973582266581674061342256106293163525320613593504961644229276923093231545233111992650990893265605413316672882777743872989320914224009481316126315301437465812513879202663803177719691828779640820571145941522434594793577169221478050171316110596741315974232275342128546311826771123219950648221493477928073258865759446417616683919319689545590214129000854074953134621974709742881855302282955424726850844706068310116725145641629972869168410843259992413250508787443229599319812800597505785091144055552426044543464972491265842219524536559051819183128046285154275853314878250042559972832644413482531185505152319628151885961418727942329328187581316026608852255338198431142943512124638513874790468023749512596866624714377907333954529912661834253280493596842558173303730372891983261016493682266534357745871290433645707327954400188667530518209198369277558616296581202626767113738737124251720861082512166595719615841676932979285134925162554995965174883630176641551464311740467408691842914891823611667564417839015235364546104539017734324189476041945587952054297925674611946613446337614136303894894115604221702914596295264746229661901859453845986345829183152538212089587718385626015102020437226536022916078434417681973863565785612722849162809976005066974634757669720316296857694608207483717043252155347022669407122252860778261262779399589382782130580966617214152265550169668448065984712123374139683135922989090010958955463499937696753346556670390491991210556177143401472970693666089387431552887073737568046052567867407242008997745925684719177199863545570638742497381933351222139695839716942434458455391431032341986155442037495814366927484917572619361574218007463208767066620018710783772217474849433237873591808995669995198872580087402804047095862707628527949978015862776640908486554499445481898793525309996662070728374059290989590379052801516635382467622974033849455912245662718754721345337442281399025369525332147661829654957535669775750594269275665334560213948743172107384245475970586424431845355257605229685839905613037548856417925739741511166391188505263153704138052212754683722249832153399166557084101839068361679742338165702085110177313588613194709419149798543152507032676502058686859627993193581273874920469908454498225382538624428729337978058165471289085156311889755386127087794469720155077271343506819015585208068904999246352677509984116565149609169991874441268108813023715193001879762631896564240024539371147826682236593097264998606542655651939706193462438920588461733971602289510388670922674308770895457355555323544773982768455366493851263126235301376905433131601771721660051046305032532039571153295994921186453291737633825240412417537034037678972484565511804199399885936251653831087440492057492150373942968040128446671777296833210223351091139966252611563524479401277818558365612332536658480859420432650764814217802617277114850226145434144068816865736680471128318321151795629802389677883346850078919342182211289642989699428296584792990291386862139572344246325222723681002129367314194961954045225285994220206956907704493743275923274127772046289020049864357388475173756359717753623271264391760047711118446032303463295246342923691465296306014694166329759913293543764938621742778082550891328761597946596829154132413638466640050247511409162602854495185277544730255669721278778548382167608119813632633887666209918891564324015452944888630074113218988820593811025483665059729857696145478342776410905513167617794051557666041269144685392288532583647948117066375902734662354715358975472061981384194483843252691594184971090311244424771442186968534478154162575239090267138279445888681411402959107958927718544481242923014199082599223469252660744943432071433613757685673841156359777153136951373215098483740809280341429556200514142322088179597551519351452116499561144711862988125296497768271431720177411896938911575778097456885962573285701529294815499506547271283336531155447498824561193553604150263367746263958808026996029953924419154506742878163690254940213857255849286192394912738200909111318616370582906058054608631097993492981377145719394035773429019858415684652598916552382578069960216347948044223784162194838389821300334382432441662698628485894288682198562034426131959744789884603544512753777958660667835687609171124872331732413335606539549525176979431148008494223401456570577428659340662371331567779127391398631259547094342032030437459387593923583404592969493523768965236426293841021586520747067299031386700626757008694955593922756668277438762270914862573537811931451352636663659597141929892275169531308727734147516497986491249722155777544236459237400613448396060374008217431462642673156373414573071598690711038294576793410568768192644155326686966189343162402905743826209625431920781533378342121701017087586840567768856433583579352705597887822885568272707039334348261541947371783093286134968783466718603672602602597506980815418023331965649587265203298692225887854257179039037140602324484089646905107004715188990681269822248517524716312128128281658436823566074341511137168428299349222628072261942737642009686776914123618474523070309629064836784979575862673020085925281174213603068238544044256282350598306788662533599854548658905844251221375689089121801753497651327211797025132848618015408385223547397108316860940776918312507404688891551967573646538730074734355302936556672779232478481993166926439475025273243392323808437098178499639118279149610762420528539623543099237154119872375545908356249622017270499149367579345179946973209407418150337115963091861247567357668421095563321310562378389347974118774992900523459937250317577324983281744316162885696501044222159245439022603265397393089359747702052434699553120197234808444183977137395370492377507602738315731436995082798904418184116472610423265619521012853811536510521822561842419495654900723088984796998389338588829594987261928809591461072789182369274662246656463349093942530639681557880028830450499280495078549214283774785476682857513298915689705718361207582049412383166256689262273552716480634690237329476073085781461515116011186477399572634354118419977298492430974800144409582110116906966780363980277556914153481389629619562177468681421358974111965105713402429679943345015301714625218957132627896433524603347559256427008770798462190441939696212256215922199596144331739299107669282275715782523766203927423317424879491268447511404840416872640752280793740095161198545081261521687838552882308039490673801224800926967581595462636479852857457651866974764095665442757695223118498800387095440633689452395872415862398812273866298467418831231563213709943121894279788665434951218074284325811550340047849560019531347979827866228920728304393253324245146912810713433415257186511316805877802088253918723308157460387543625677196106761272581957378871560927323720423165951590036594188909989014462138420137071488996545750981318065050168194217499812108234948763349443269605055741283208485315644773361804521880772103827769585562165732486484317470872980325101687059923628961692638767190459525819241453922452898078376500213979848768513105439157544878551473833263560916416585715246046492452951086780884385983788591575049428533466984187493313974889728544922607822044547624774527510672460773020594190289380285278338784456676895671784760398654168957806669437554165648299641555086811330519353488418911261352818919396678145632125157928556890734691561011338885986366106503716475097952182273869813327866743227475324029642714486297348267125459296213545664655871279602000752999558101593944224608475208116285886361797664134896775984061220141497703115655929541518930771887687091394277424826151553119030591887677532486345888034037464979012261372605934400344159906669067930205479662553817438511821077862421140143169378883188518741317819243243086936105000614509253296550404637377866387576640241668480998665431214292738215144729139765973066248996273626544537304672518276248156360301717436764300811713765696525644367039493615809248391975337648752415946910770343335058107684248426763263449876699867989562864836747713587069382156279918035015699016223923952561227125616089271492210187498384274467699842608156632209636218573422911333770122630629624323928043554214265085149878263646654149906216518651892533402998527475744757276402539961910848618196215526923551824148131233356819391437312183809952416161890118511232575406191435670441214735354357523999781334669769943826957319978643862652925409628406853765692744132680149945399213137417575919214982729416096243558570265477780526279755504863198018219817740111721282323570886571551377714459295129037687343528844676827957127711198467065729451140926994404398919039587939284332613247283868151698791113611173818056022450505039924323195091126464186861815530528986928480464125537088569379476692843372524576040839333516177273142272771068294535849994672084982975954826331727124830032949298291393138435127092715453730795752664117287079342361709132601366757602956110354181635151124193388942223038811835244173376025049796867341414822548303209650301970104695911829379792654383678416452027417065584015982484645118895862171947964866995682833388685233090881787458460379414513943095222239151548487405913308193391134706373461728998279374906999529161338967113720700464491616265287375443995599257415601497426928864499521239288176211819755173336459519419476094334355573052544591464530399935198599583164773075976172267058427378963157937346629150634721755034781938692984254899141353698506974769325627384233306201524497130874618920666610405322771608025338201049432511365851736956002988277780385963989882246187381119843285739381136208134935664354542429187897434074327077660650757288265971463082997634121286636213912220084028073721619925613420810770008971470573276245937099865137518392040134275063932753957159063888883444168854619355632584313057768941182271638310033728677785635424825540752891219120509124829381565785362104629995313388270294086766760770179640219910040834760790782320312636151854906895039381312141830969324437011003867965100677689861774985443755848028051753903437017969341763823151025266361793845568457224545610158375657162851747533213492419644452562374831272885538687621458688147933690222715627628665407312498975519966475169048207512512815934939463899295479646887424358651774346940493778102832926983539970088618720454053563704198245601091601629585615211567576220322993330567995840875857865342282304148211151531823680675404165262322130984905832655487106496993409164749033730458233785701177909218363776397486681082800757735228227269118625191958808863136943292422717915774655902786432656629935550884480345339514834042088209724555961828203872856174631383224224435708597698732923978975573385726200713247987644446533141120073064545311789894039634882794921989261538857181446741260639977434274812251566621363577573166489131375864982089328597255897292993096318625121938153861158991900748401764764716612891962283369760560376421372920557150882743470279315788447999805659555529694027029771803241945473098058542528171534108404143755915213817661565089375595099803367980340871629015095632160902570981987527169218027474553032729339109664116424496576338701631232252630158042239342528258862986537993392611477529304482756914486357370894221324341232554611851913949316732550167649115255091433076983464795155731689728965267120729155209923174671437310122314114301692259744102839635112287868077643381266848994768175567646564406271802654936845292901215520957282576813900144923808169991579427111459875501589349981679906156676949685621511246190594336128474347275249949993327505672025726943876126225662503752093921525517626384260545314281720785246913914011418544502886882996369581474535790868938432546639038782133863025409445053584486468779109312672796683096522716802004708563880704688800618392644830971876157039707035855848028750062952294544287598949346821294916106027412123923473466475384713148783775267611250066849949555950283843098846614755679184197784649930659721610081581091578596894367989826944731156916386308772029721697432165412351476232456244853991229757815340994261445622407695716798252704639487839567128012465847884465042727595875715618166304165401994340783420257540643024810234885423117618356320702287787280624371582456432267503552870303680079079116642927725273144703317081589781038567952576944138738723251189022624777145193447644940786859360433425525266239300717135884818039281517316575928889980312676000118582855819806566532896331626964284588339346616875452377485524230074710175327445311136512052695409529690991066465005597151423226213224907235183906031535612022348605951418311722215297798347624278542642030247650402554159396529810628202555711574843864409339181196076208182428841002143320383653595702959980926819178348265762326769115208447194200382345422522624165571851510947580407378119541250448098339236878535164753014581445767576414658327871989522396515912253632308323584852706005375299585443410772562044055605247781506636886794452719125616243206355617479591141998689889681416795862412060363685915104419449711556414811800196468716074349412183556233263632188167646526595032839753937848461522866113656508454141801734678271917401184520579466116585353812805222350137295559573945225953479629538532627645980754038622142405857837588806572244615494047073589966333658120437893083674946283512219619742258192322711564177233709538225953037919178953839505489027409077401454133530786670692540549573862598772310320864376766676171106959309725457254347232987569989261907726418978436182215641698216693782120814510502906889415745041993802848975299195125086612765532037431820085083277582264679984819411783523016959441356615907102849194019175911783742921284884289502398888425245122243274747885153054781993002546290782332466453855153306627619360576944231050663324029931412497558360702206380503146743497915621161933829537357268972527685743994371598103616673755732333462198401650649157526987297905551253683805085700203313983290713597688812967201638758142369766883867644218516938765534445403279818873673151875825228266918414444051857596266560505497049478355611761229427394748486352025034981677627913715188324742340515310246384861324917619529561240127766957004705318459556077374510995688853905327258229940581393833013834559822373668458224788501224142016190624184382146113205074217608730347053373882132762325085629892762539510116680814655684903446822560938748274651938147014281616426393379157616111579755512194664336770022669963273527675943244319921489976625205491574572699534617122430634574482181344407214140460605223097909780950649793438327315429956126327475180543362612190678396814980521331953494249982015559384752555371438341127927311348530143241121152116895406287159893913989399223586538441933355417644303900269276692045455790439787935465254348026449012220893606196533849766357553824396801572928147191574550157411373308044580798115035875814446259386243809797934768495245743751455361616364800849937979971942318728959708111324809706237925842884227495993552101914604316086998461579779839440494922179375972934036214433000966198465897344912519962313106970485753072741191336549214651529249455586363075728606446433515422717241427731198424050387546947217783271763434997762420163654972808275928662585173131172645714113362852229743163925749799825180811806382189812284564339196218324574942118526451666905423986185417124796447386259803611361611775345485037094959185589453279955781039588552135972929630271331040474155513878902157445417561427598525959512605378377037029103096273585485547587152087020196929600221380957412866008171750409475205516769204093158058929092063401531780402346094433709806853049385190296377746179788383753809529466979727609013633125046848569969910172169891192102779164144788156409296251423606488942572388246929264877711367538946613615287136801215542805633795384841069816563718908196421794743684653157893896813466011385606349496547247117454574361745934315664659720964970116240535465147109063028218416492976405208215621179574640741269982472521419693712327875782711905607336246938937170923701362939124564587641131891578580210968303120164580439540580371291875548317077268506548728951668453981273149666349371286368945312511147833052561993506691934516090398169362606904000114643953434814199911592799287190855722002330888924532442037906227347856934511283193622451152140675637408142077365245322553758283951889184720664715322545587280932403912908773717643657657126959394784843265446810382821585303535922957353134279914160855352524264785447696672468762608632057195842254158916072573264093878274798531355713255168481327039549740039081088621116461988474322371406249320965873337014095976283990814539212625895229135792879640777229631383956925318112967175616387627167792326741575564269898053743812995888875860572715821247893936154223943975619634615734649961903900846319886463536916493125296281481225758765178908933262283698996900398953734594421363113011125412719529753882576809675126334742698446882969944997235519888500571752907462423443952464606267698859180357429434818547179215871848966575719712634956236261440788894541092384858393478597500656371320489535814675842743480681912411763214102470328561714311786350362165163982509730975316155456406455163917607577706765149723118991144648672821522200523349679999467097918475168973849862764433305141898711335535483129677375806279724698880664483391065175465353010135375810428522165914360144233622572988931726213042018685770719351075565173273117906048533769330971445094284221177313449433343461842574198077716822146474243458663483389023777741348304939401355666320549952391752139093355774039161385992507156521735015036488420441842088359789610083916531791101339488195534545891300187457996733825212317111482144544717684241655744828612056385311671356483242856863234338388254096572633797845643153077887358384904974897612154361828585567881831284033746227459101031682478143045906876520935308592723522129909421964121682640054827977936620397043786522804026707294255343472725852005535289330588202391551186594502954784123199502184037138058665747154957202227227548401760758038484802097432344135422076972296825204691944904792222888752861631712214367326218949194872851483164586850250699901246017563785777563689373891149271277187966336275895635277850424971270248749857947721925919541464191850102321325586948673025645641673729215848654957011604013572472892167327176188542282501884849405316332146232161703874091266543788683934754301097307744015528318813192970270234370965912764222639480641224919892261965801310236662905307116684985126103104883721717834504646221857529782491712479996660289857523502383485767347262659124675643575647773173726857550582293188370762130157991980586721854576795668025294247371727759519192713660708280876476069560727871486179438357001784850514668526238125997014964119574860977609968295116899648922299929266495244740250800185933001967612762048809877678947612713723778121616721549144409374916208737511399134012323233354219721188834902536048770011385454490729699902031899688184752600196621675171097152785115416615439379817124765669947898210354375074528055641276524048703020041651722805226893534267658630560007863928794664564524121481767890302222384686555375372120648749627467125222310241059427437324644131845215755331090134231372683716702694641310819369422760775277007265632995694851942671964484627792474973382607697507288040363996582730937802968525290355635234628578366878886753381009657209448311733921896066067142859187417441595519726493147838671424947995291012006194391991751357557410814126943386605827734894794771781735606525313977918485420352778092808154502179798758263513448507701392086121730891296040762326052868381596120214497157218527792938003117384681504898913027340022328636445662566916553136380199958247005921897422868144240000357641755568009436738633181551341272332043827961637186724915458615061651664173222275616907875611523402740566438224923879578112854465197834688014472425362961931693182910682579639474132852376146619477921515843267736569156343744275537362151137503121160338425465508492621604927347924341528873198987613398847644449910367718174248659457444019156151404122962649137259438731375113398265161938339504918041223644902902527842302583841494971636625891732751485284379258390380087860647091070629293231830968424786565293440778034244856670209579396132680455265438157664558978001812370511790896875606606535137090172616229401551778904385871846738565961933646147583925331052653234117415467408965221524147241822765833096730242753494415783802014250699434711881601263581944266448659542262983252311878832478527210318480628167346581433806612515661793146699250338421135666979275020452815622350656313202266898411710336464202253389635233955877439143128254653349881465123686927271744269254327593098479514703997443447231316592893588687283483322290098845194569271596359373671847789041204285350581070817509226158304837758048750606965985410553635033515368164243594762965291840135582717511074476455144427430839804147574168115699855876257995416841657127106102869699886247053909292615467136527844339977695434161899705027660164098655135941112729463368544679178712110154248406364465666795645984061994613556532416956941685731214147317727911198323498134819456428039156379712728492391935589454378591672911356694449253264413177026597643246139320300687579183648787714372997947629797049427809848144507584552725668874529966350743265444571602610015167961979428827052468501791872404711961669440919499831670667302769355679231207730073520140761680787497921122036210116242513587586180790281270464996746137163891615838070766461524564499885736640392450526546341295729437554910438428622521044368266317266792338614507953963945746493015143946276600723646675995375588868300288442561391682924557178635048613474777910639195968317339265721726981731625529723899785776639486512909774637098436850356671590506968645784655503687610558178375396150999078863434481843108218815219551858488394180374336757417358177883403899567787941552889201263894462199074694087586378380309439117617112343392677193783934332912721462312840823826894733916678111937505240974855249308304632886063799162182616837910191645040253810996156983980877151303808649310615839965455775170071137091267468761131153508805532125053585112964365855805526857360602132616771827771266208447228951467786530046591750727140363519922856423261347517108368654665543514790486742349969886926290667165838955014349738528369318176889118121766673595846090238773016862615412085752713259105913435506167708611575664460932106023998675469521314891817145353795819149961004392029804453088968314138319657617553762811249744339240019092460804353379629340882423351412394896129024704873084388567462080283843519865700986141747753019449158884364888323752454895471852637355586886589219633511426110734975830757357333111931293578383698695223981852814909345618207243356156221726229227719309805721686638423251618548244004525462351527154707888510649943606412927976534166211544109598354466264113335492994977304733756747623902134607063250644038474528191655629118453966881735363537686931016451296320751687405939956888941123235671791281391117774635653354720412304693932598238521590716981174348677454231855354377978480727806519795441372037522454141854166828627376478982155568705611854386779751505939279257423167206745119795685073279170667162735214196218163598277451236637166034847650266246254442228150849648806853131951329685977278117059629112435477517211036832310343894711786640672749612488985426399625128146547302251998586526773716864037944517745002609514334005930756356814835832899664841260842118364831920712824927752508677787653219367975461996404904396506113749520334607733435103941294873839291127516513321363158240709833578140145856397257392587962560334223407710527420457319542015571535699540144072956644473126109773872908809766396464932452411272772675298644864731481461545297446280568678187566004278490924580493457216990784492419396300082732467941075285894979914788329535799827494687991348542489533068046174280592245632884164531758593753842169362984170006697769562898235954822470426524395639144047935097150938303108933915106467329561106910946057365889251566644657838793992866495274231870491577635428833591638126478202947757095048355582577511583011060748233585533771125881354915659306381015348895262223576664859254251686758431338245386521108403439388775179913499772156582647163997054489028056539936269626104859204011310595115211881437571558953522962853902257256692706856311972822281265693033024423753646914471497673629568528201771667457874178568932722451755106389901606538945503082261240823456837336903319062425821986263326180427795759222021141274759705407532364391263438648215593118277289477351425522753625830372276321092728631781522286265496533801088965344354246587755096582640790617341405242151637572325591363632234035138074656288047698892533261444952852771543980151269933871255863259155457217931504371492680364526838484569671493874450991893952915188017790610241520316368683368425670887795787018259383250906389360183835411795590960814965944651734355113320572607477910519904160261116690014147610786407758737913177977154341532954401518804518842940125762214173272612812941376551897565173549444220183455620883251219154721221216264337452598736386845631084735896961053969195237513703548668823214997765909302636298294870145883795757841978978530699024812405812204447066611470351922433251625292590662664196493479163143388422017879713436116567098574698449799736884277123418833387196159728012593936126546431493433208036641380914360092822390449367241462208209284591073514533229577341969804874673948816102822812386408534292553695450955270247573789742776416179193156616711429523632914996671641463444361715351856806391842016801578008178802991785484389485149908108017316053097011194034680116054379044212704515667136955134541259310148352613458662914697145878435916490237001333502596909977147602729629081192348227019818113054675345113212968765977631133553951726637134948395356340185845999634979475957618520922537528731102523976335317775447574433833016190757448282085956038422183036255030680212552498134914782345682143894504283986491889402695416097702743652303367677513059133447344209998036752716587564764198737143145613541062596540916183353996834898744611425342026337159457809350537319261865746633893263164301722298720752996161739930983632836222152153999384157718432225669421572199138556716200919087631872270455552701837665783556110381531887098380869833068786205515744888650627355040854405708047874029658721713950451498813820563654218711304093219155554622777009196527853780381823944819690971679960838473268221424142381041720539129129765101738294365555656831389983177738424440449891081821278822014481831485423472411686400510738980234757608575044129200929310809866704382347204695890742648599452643669802022058911361527582396566403879629198742647169278491406414961253635486792716455064903089210915323297381821441131666382682963423666262054759547624512173755548941174922749873108048813643148434461617053745561868771289263989691719489960837119341249954431505953322129279610892387687326648345355718218589242523399135761467317789484733659159642326485790016354998512173446455359835011317395729217142945943280160299852886205241309175363633753991648391386123665762727736813869172157878628442597142621231892162046914563994242278958151142615787659192962364660762749387119844317548994587312407196621476226059472548268666130641625182517339053080037923166568185482776693020118497781232677038123872745741185268431120251896151329577328685166211671624127580054043588791563599474424950162573426393396231637965735841995857398059413195258506107899561172558038747249381043985878968569653318879864493623252238230521668736929109878689786116547931417486128708836746725105446224653280662025677987838419520282267465673297607618515711166561243981372951662011449995589103744288415709519973637257872243527838330535521434687192363164088514224212166081863263235248602100764821853488623458187180371393386585376898311814563033332852509611938552024115013154271666949216809762132168054232614745154065228029420234175499096628543516226929726629217466776819661002609184496545154123150484872856021253328570677845178459174732357335373939745173858956581104867440151166591614137651725139554257411716251804632544253681612841357781968498447984692526860814552883119474263580494302903785144354904127491619437840662425489395685861466561698031690104963559944601712603002036214526162472464587757348359838368224491043847135487445349492774385157327639140494207159205214233632049842422410779252309131857987431529171010722007829378904419531825453277419119671504125861620911843958392566619621036424970623368263433214440440735624676642273516768241102574763511620803945823927349186836046907482214702941211838404354771156912006219173159140399031054343090606713539885614568421103360756193972187852031787166251040030226501413519788328136786390735415028707222246795214271547362662572578636133018159129569095740851437258831812432102187393279376918337991410542051615656495736763378337744230619981572239758578127283716297142347242733310064233054697536983266557684796634042252193686788227238437481684166377510943344192363040361823335959152430555192392247340436419532223284435300130756293322761147842915115768896794423690613668548407767614875231884953366522557384823591314181183495318782218831673386934779759480713952342423029382322772314809984693751547053416813257792642635161487293771510339545254598273986561930558383407416342052711229208903466391157357595351665682636694461215425241899942288461723669549328254169984749464345589998417839841194861154144792361787314519650993639665294641724645848244622327466891543268739127892746004989529581948774305420320154906585976674995844241486476475026512541366728315473893834702080418572502813383605763325380471409146727593511987242973864315092014782117832312660447426955167524331847852368635895820114745628424636781653251212601265527466376233660770443232686336793436453291459870607729558826171144456266486822617939754505849179494976120144098059150983571880626785303156020811869431928366767132176773106764635163113251067281501896291260748459290669118792239159108448336952559471935865394787665639145058542441817784922064019100476040783280009399612742780516555230312687932497235600600897585343755781208932006772869235133228518574507430268151325589654377614916555818826780472641429240653663278013975631218349125123305150587528734798915474306378046752006516285827999261231670477336411239441696900942752359422625558942826906643854087077960976034100923965321758417526905678544218886055361218707816730626256205542145659295062956881291705610689016191846384268371765110172756316962470708195162965854435244348139747319889959324731949895171971245426398448358366034380094488118885289094075405303164202417325553472830332630855162510802788274373325807755945252331999396801684307307261547355093536739196013895833902986449356794238829414429521436953870864610034723243662092472196283791834957479381062814503103709241536584891323835441622474878922165323472649103160384598012691659382925560241561742434863840295768394868323060221465297517854322605366931572152889647913223875924652577260481695944980150280714208441625168957859144653542331322705080070862161181295238473498411138546906926433134275874487488585351555806592295457934241376923699119585615378580048637679026204114333099718586047967311819078364663807238262054994726562630073557914598282648559705511863729019016415967596959236693619586592637430212916324017054373741584788868317771492824750816947464625197422243692179279289104355217983300108312793167284575787864178397696770621201991668937091169520148209116518591442126438831890231078269305714263666926372342290380785367111300530235040920720866902968934146049516772680294056227536202849922792318627655231082486692333532312579603146368552151664638831463711728866128826817620683786555621510556994347436345694179155779584371573429256103720501921255814262372406557735155479557714291851414575815739197556366042481364324018926479108092615725938212999989579955681370235795512723743626323294581272213283095727382186104333274347985878871310484889146722983040443653258738808910642206295522148528341102574311863132792608372323532378834904033374853902613534960178584094192487245054796175972523743661757935114971992146125841906765893394731482249996205200145268452863832376043138678843337328472312353053740113759785999314175804473652034802197223324720752506855680852633628432782907924429666774304992171123143730248723595701104671953556461237276428537836804260237111571068654248467916361337772816482274316238122114438719748031894309073252757567778933603853869222351234849402663346989987824581946196707569843736721341896599296894243906571941642816063045685915162397033658798269436463867292730162944241899185772576460759721219874881249415414837637715171217172197281443176322469367658724608237884126715967673421478807100783497700643492088946368730226935033851641741677652420798400925771428473866321745465851682355085976144894808308315486357393600423564484496555411349393948067254130451703279697141186258148652322264708797154197551366139941338195366936331226148118944883266789717883228315986205469550094699682169734617035466033061786562982369472880939307956096189414964252836852655679015783045334153327308241416439185383691959069986208146394190843221575804414879358947145367443443262161659476555430373233635455531123277609682751901608927251146998731800603957362696743509160325380003071285430511131819435126612437739163538286178464154010704566918749258388862669522129433719150303262282558849794220904424544795181322970832197569556215342432427354662847640112850757351688189937516949413024914529188138416800563983198210966139925707379762413377947459701280876083900733520245172735640587471821147745502899451687044792049358302689270267541264234166723169871911029279480756709177774312516112162530442917128729431250414163160209206725732651131901477608227217019949339586498193460893926362269141304042056436731478047814362088335647383435121343752258018719375843995879216851714615362669282628651765882963424355181557652227528464324297605375684119850813862603854169821565996081548068919525684053245665111330263524473507842682644097629358387691023121329556820479099599282863888568129675324664238999444853605531867933307032503714766327599266253333961266023226459180093284841054729096918194849197490117683712218194501936283135441154902497463331439709795893888826043128457393380756799827252730747415566609487771147070369362001100309852074236387118862446775658435456528748784506264731446748422718897220937582238158479925578308806659927508659649845264337443727418114963544291818835744025110564575738022778158955090698059431684870489756806930299861151619392081122411199469973711239323153337707216635355233103741658235679273643828911731952312861812678326331771638464496211258040980366856342112914500367219910398894873659965782646342057734678642547842326442413229236209183378629864852379679667562154436226048938604684005377665393952162262263551947021658339131364366091052372653356526994095984067179264392187162651529623243797909296566226262704087464735699285901144154021114232848100072862934864616739725232234977184658234218488351175519499768166201028734250136635813392908466237564254324185668914580248204638598934726133329647671928267314718747444696514980024048924539419920486294112274622503711731535092254302741976265257906124991424391987627163065516163259071561361414002164333340047399318678939182890147413635267654429828343079288101538862659138521178589688429654055388424931576778583374685637260915617416793246797411265279023877898292077153214866030234525736022560651487288278077728124184624361422692329423691541301670284401352380537780978079154971072756395676506300804834976177717972669673901423224962108827647785341483346800448431117749406256636822378679852328704116812039320563029941702474587481929853665964872088758735745805553129235756783318357104518522498575660777909241138553147264598666652112206364620916778173068537123878344188305929363010339971284743574498368110332528844743502586321695633154818651395582814323311532551979139146182276585023083267778108759359796896042850851403641403544815624280199479384208950325699257642355744216897133191582951056183901276671447362544254873727543743919157589144592216890362294329134695438469070802834253752771236702783445347452258858815525461277910631385611603664216298947625715633957465829405748165604991757962501944094480752756823321640222251211642396286612339514274038483525772119769456774618237765606513975734624159789837535034576363608138860816022938085990331599922730926874808406565456927727436968788474892649543067836151084848656647906592029174283341262349888054219458316517761672042050147929792693935887272286847221894468402579657512065788088197636417911304710157051266964478743998330783988079411214836508665716034768650238733765663069684004727817584593586225999797368128455297061374570256098513831498831767155229222222447047816015389844185434695264000456762769875521927246290482039850301584606263191665888965339680218405872081621901464174251236208223926845952811334647618007429261189455299140621808538928904333597188455141880292570648411083147381402365543512568517240444376312501924872609732815112392881924863502753365944471280562334957909894265336330693880641742466279655964430999726834284696135569667558987816712799171697155226515668893471329369295995141057874936493771105846863886612308963315846700634929734711390021294614591265823660086460179695653998294331478282413458173339885489920369065500401237141656850813256524621035357445386821311845361864509975970256857549387324594988221897622166096025915489174025885075614948738256739921744011723524918691461353881102953056974664772436586897264114664731290775757353296347271406863666692791003558915799140268167172572154806347233424349516499206180933676908566662411256909380172804746134120837354767577560656176417108911847866843935806697979282416341895242112182182718034669831396094207137689781232893585194023132577352331613415147139958835120979867825251873207517176487609839623183128139097637379125375144268591349668903167222865677497699464684199313323230183733237620044558899126626093903686832564698569388516941435828803308833613666718378299080670368393517024585263828948928714172924312104159464362091411013931622373266191844314957498925702599671609972777347889929600768264464226713851468432071362203585914013302612521237129705297293153113077526952613553002532903368220567304898045045414412665142528035474557174436672805553852215361683447761742626473808184963106172971265088843583327469843682070228161789285775466645593715165954875016246871122458157280112955470147126619271490855729682535729136756491525917536386217949508451926667159365214427626233906945575593178864338133515584886399574496349884818533951653841842844346935303314826659378357353379623045026368215055789763246798359804419663333337939269029892411184403891297263513766530535874727146015237949330957269571984559858765780994573999361264854283249882201002067294476089554879429275122241454879828417727758711455571686859597883995120438839574665355373589436036570012103614837954595713845237224206759363046316684256362235655866453094265186562280072144220876928774941025112850919565545511003135856731146345058763893857585903567598331489742779966518277969285075196353219426077680092256237603254678886941192386185351627597243244896040283896555180752521004862823750952787859710811305238353139471320377442949367936009799945755532814090051713657274007133396414797680969996744778411357442129194068320358506615573954594846013318231488977675221373198118989958738614923979347495443932420855069799180613931004168036641354544934144668253640303838427117416221881879466676335777249704438398493443897363649672606674489353391212639279369083567638130059456994823665954137532454092312167653862360139170217334636375690523239083434096610756547199679222848110237897203632901179362983503161550141459137465829803765985679710469738614721658845748743329225279060997283637882171667988201908866233050077934693721938162196072501859639274797537193235094076083661780874221058690524785672283177714294146563736555820140848659557828458899658506181175334713292335453935317219891451802555982970042634196874829711075282957775734996247156418922117042976088163076683064472819489924609609013624842371489049228007555926166244992125474704278691352573714561428435066147940873866026215421708183859097700704611732409296842955561444756339903537221334343198679288676393482956714879522685417718797782859435392913985595077750130065588797624478418238868879725458408118611452789342739077872133539387134624815106478579097125034427495932477803752309674653188178044210373426264681207413261196892469718618970129564246884764229541855818267845123903045556413182803267411431711319253913258126686889885741858215368177549731767915950198871576198488532598418693274773276549165318322407574193232131433071309867039083593811404548859008730759387185541483811353633289089816386654464234945995784728394956347990033082015221667361221818516585123822258651956667153712403379735491983822858936661752579292791104181081079991781118801718668045604162431374606724032945112943514226739766350493809360917240304725149036238302191070170242455679744994366470755686848845872232016671549447790532291286254520513212027912991390178503770085239665166778180382130882023369460748230926022703307877316918591719647739788257455346410645015469058574945497352946857288195381436394653894942291870631413558852141575525139374399303478164350770164176331531628263759927177313826514385097315747967452240572134169550596982936686414954666566793627008903457663187491197727075139421293634139216991261345990156984580174661881282655693255535128929844269913073761374879392141089459006185296009424176984011478952668206938751394121696332989529942635813504747265625642307756872098614309150438659524857122670438606052734634510051548657677298018988185037317853879939399804056835603243380712197504481279722844711343409351645988139485516578334386687818917027790226654649433943815581842224201323812185204215562130502667673972209073285836936003554233789826294697291469243388974069354304893493684567584495173942114030377498463872109194677131647170726696062597795755237908642733034193723750578330338974366274463509963285769773143863913062552257763447543800367889451935195214288386457997232264795495791142258738209653973145101342325192489374633651089047900468037333454445494528324329357252255576002789620427469865075324988231518014881823365284254303952636627686729724932626777513893353732676631144057847583822499484286553762447252185695066848651821936182936581144429827636949696364376116663899031474584551940825390575783717304371115224232025808378787032314910546756752118775140422678584973125790475875582538931961752751997634596106972682169494185384251412440005489651236308278655515292140890880992584553586242734888480501424615162665526428022228773174424512903239316139081363542393285619654353112120400055414523571560452974446156465277673500015072543021428247947028929059788482357324413112934628492975815902681645995234785895625211247838028443862582726248123916401476068150031342025636898566977786426196202681241259570736556294167014537539648435509760887734188724229494716416156406651364113655759632546662191664361895668549316490435596115994996528502863450008817422264311608395682805558536333286765916763193582957956593073948469493759751537848012149306174364237785141388792545641478319860036214229987545187374741175801684888597555434158097114470412765381570914124739224363649125933294025084797866406678223156398087316814919745346126905759614013420550518468710246774921469798478034496245395993190975194906518927970900059237436860578520534740528206562897366966272321086878580951896313593671624501050585016771613179348081616633403576852169401775030427181626628656855133891825063242931128185732815833922594471291013722315624264709929694602441204478975937333965453883301006570366823394805145313075967110102120205496442603211211892609624759027757316802269128862502906051735234634562036642978318037521768266585692454655746258056767595182236247512455471057801218032067975889376431242174819148521725767311511631206846889137120062595817646613127456425118575980228826760775194130271775235318343140563142778871599867739363739722054478397845422533144179485361042699121357177139820398830855465912288580743815744472532573732595096697817146916294135914940511350801092799989571605308867350834554366688745407156037684165228763625684224641498865289950873181798996626928662177482861639187172824141265060383172833794061520096929657133298977259179152385406437779646848560349665157076956241159239346368897943377369366561773104664697224884637152944774124559134454866215604962978393334932539177969734918172225367464367507594823825265869326454370063912451012686348238141679001480888687127356358977133204840770534144884735727352683108008264851394997064336553920765612143709102918231986505464890726836051398934818722313614988195243607782186235331833746173051686119894515934707625255096122271233567464315737943685574235831449321822322316665730172126589130378395573521878799154341376354655492508171781727512124267405587538216948922363638012924244238368754763922057602852415840227249896442773674995769323974603653410547779826992343164919438198122685444025711632694010272316887478224469481626331182210666660918674487709574331873333930700928826537613895605396596408138936934366506491504733059205124498187088498161654292033400826551529345301755144006646854963410562136338489452185885059270505586912343592191122393354123326105747886253164865976372336234594124713031945378697914518664126816803115779805288330471647718638376788240080875105859204793471694012951778520195921940225527827446728293595870954334214734877086518219310865339418158981684764439919676399641533265863593869022341755715916474726778357655466741898324128034771806398392712590206129872411235451793227047857493298923675914208288362813669235379108638321506577937924906656853142818505870113351870195393448883134393638972962735265411676361744336845822944829899421920296612861242463489619366713734742238876730497828549523475520843011683418513596027010797194969643065316223969095747175799609238332813843498439662044713032432296829569566499038323492457853515463881981839000374719056720396996572875636867810517718767687750924606973884224875984328835229587681340352669274422412189450877137537618891941178669596504143110242244451612495243891559366346237315181577626925857001750836857093944178440347931647235018156662621825504464850047707967618935225442255200856633257751276450216827340062985654142214199234331658078781241063219811968052344012859642257712183472524523119896270042301033300721669519290206636108844310206887314264463342608412593028907802344243217133975163156544364588896838467979018780244865175633871649064843307672386637460625211479741653919266135098986935119533905842498600593009875784733315324923164956967425804682246546114138606878233952843242363335752399017707230569214661615615837389849636833884563507869394961247398566572391128932723159685867146183548409070924465037555890679393332469418859109607816435940553550944351836161017377633869451287342672695662249823448562548884602413528091342108571443335103470550570080088891007329940561904679000284001573389350989740394241100263044907569937080191198096823652235929677148869853032494490093535193822219127782007365147972074551872146160181042881767946805831138594907465654313713953582934487945172718850996989944151467400280370846384194182327703576207552227687711835666502144839178831585336295849864634161599330507743548655660892383189033431225709200649057115483569533344859087459213012721040048373121111683186696418518700277575276811914732837920093306026696136186262953531222327650349672224954572591341658579194505768001442073065338041347951227268706334196892895982259666676613453614249356712285900341150713580826870797250185716221158370146737466334895862933182773630131619606926749934156171194914558284387675553136592828138849579303465712340415126234379551591826086317836317764110972786404224951362686770620583361281147071448811848004757238133499514587253797811987958764899029365170298157091980063199347852361501195331391580476847166168604195031003156516769296432809520872992475744291495488280744791921928712170839358744932918884282869620159428910254971571965928121636162506522243180981081082406237958844306196634566314097364488359210869384449295062028072548770926349300871068033180892565594124456312412514751058329301620662939386730434617995406378692708481117333351660671832915314262155957971932151650084241491898618565149990264522031124436533337511891624757726650463095822663904046070353278554566178750229745475475942751681781247395061183813965654017011252075925892110653045386186650880923671159197155081907792260482324203630048216500687285561621975208067445864550254103414631872561581947087598015579834314435496201438483042298129979889535287831145958202375439742372269518977003305603514367865259782753968332866631995398405026714029881249966357225287766661522372866886602271171521642265989935559966836587166087067989584819743380233742134342140891895531593154169718988398342693497915819577503739434213301546555464146226471286685409581834256634636327338457687650461736782581417553780457738287833707690475772454031425681127406509239593705251565714424453534678923871312294897478768094820223314788525868545200777388952369656326066051106665683122664363168605775875415257100498836796421887360262323018832148621893743293847295190295176397389103498235198583027843927089314822881198868563932335824677802548594263643290849963538409911544884040114952202623192887713277476177813770218793282114627895981298117197561156293659078505821947070019769253558302191915984586115431845484194940602407548621870990386278593712127476259881287744544029770576295084648383362893117705522181186459137203470682766991116618377795779847398813328871534905559412098355276394893152214675257805234041831079411429394876939092772397778135555090172809404738433913121316611215099453400496228467601519621542793665275023441831811504681390358540142210180738670708033045222613672360654995125901728602849927425442270523527390196836246360622562316725579907883642156451136674654885274123331545960139417126261718036568207172328669028523279682757768157532986117470151216870768867730636848164595448934585895722108444352111864370682359237226369941673891841963991812504610716993863641138548678616367658163072314889952499851170419139094952236419261837321280152812610866260375141979342167615294951296075583647150376825667658027178154649968108418624063984563096988626804673905250528502106511987889925825658341545421692914489715541296655764839229143112143200738837862542121045944316432465027848014455634662628240942115023566514328806197014664449759378561204872712698697091143643423309560536779852446414073063922326422363704914882325320447562783511304094290237988724760936953064300661732478135357760760691296853892280629966496327422268816892572872787348336712184512917267672374172654841138110850372857225753933509185771645323461713818874193246244183520610189454031924333830631201083532747103601747361701823109226138691586920441420669281358883224814148373238790285945783438404765118676332157101440614485613753235264241861619499399824638275006757938738887232961041376988782799666986275069500513193068861310347738281446539126063472768582134767585091554711681398867268692861738449960310486319731175357420383034250158437070289387453704551747721325751611597888377333861400955672996376375278642454227412872116878245135051144774153377788889848282112364252405141329668120804498828491915250226727891915541631655372188734407124157842627513174405810645863812878678297562593514784357931476583134370956296169433319477472996294997269336433457469248258263143599274693283668542630397940549278832842674668332728629596961293346217983475811637838495638657692365664158316715240348019466190384078960767568773897179901717109404675183963842241244570561141868273978275672551938361371266186384097286876692699055926619495629761126775528242810877190795292614186644266613190104415234281301475459825271189726104813278857737107943498333761881854342811748815515404649626962452191522352778224425329868678695449817899247087485020563461825432777584145343703294524682199265792688758624904777027240944911799748743666629675578949957590051637198158213016422224652016575164410983528597956741569372447973618143362412165240392395104334917653822029167648655061102204567641664850782825240871172178567824274347929428266090744418694924957938643127158582355521362099424378528844151611081891033794955312870198550987687954549894339205753364748480687102140396537695617746834848415549552324778600719023134300818753327541324608375528799284615939135610206579729762532279123966675570335089012979765895462117189798626456228568420046446682154905972953223060952773225004224402120410223936843163389480697988821755387152620381643155774462146364986698847545655128732087080641295369560206966092717655911371169129072335111335559246804522238794622931200456936543519595377429668683194022462119291392707764802227071411507183428924529549814218180330887012617562304142138169451629679455877788257363540254919376936218782254482027677229195778592228775887414598043724179534164463674034107115239461947888530729334356794249364767041414924024522305863054878849237076786831055246599819131544543047945314663262857535916272216432894961056555874994801085446402868423243359275402246710348310095425015560285818821852483902647352452277989604963388101153524590191900572316841730641597284377028054287895130087342524910333917468145203543108991335136831271837294088955338336578996415767352227197415914940351435558719796239094368713809312292895669973786341801254824672722754901397829231678307438811447486814160278644464552515613457212122867653095343814338351820705552536095894727895654731014212113664282361492434878906676691558103523014745281693816836162950957273840484503572076650140692804541055926037333943874418431463046894918204897731874821036302463612962148021215909365942618224201460244195202270253373770302110155091333981364746378933893723161240962606947121537710754373466682252576539788723477772901411297660936465042939956783087211127849558929938835507034435070712894311682001924086567976706414996681855817897128755121954475652694154131434282491535366144870789451856458252509845487654681966482578241472215154413126124059996076013177325564656753440795868841874283872988924186390297005429237743412278968267295229240954767889611590894154761332215882617066537086132749336013186244834199017872454122571602318889267719096172458036829049996170629886501387615154131883195224849497821236672049591368618541556757942246791298090688295648726799599501656346484634353764069444697737766336677121102959075348594476456908166668108891703536961319746654427030201647618725086676211248585012963584176212552830810241551567751956088024000121880927170500784730719418978086423336427049042941703997625291487984459188542360708728725748592134143261561374204872685527791368553312598715564552130610955187739831610424025992486252822275721321226368741696574211791808949321801769454451579003969745771085233024965489288032000293712115427291505136365426245211833447339955525254489731194202634141933877962566370842448213432132322839626325777125041111913915689369872496182405312844136623739367463510944237948247667343328999305733306312604912181665681693385574543462264503159042511568233128126887237554241751544264888314663199501236217251024191154683305484671288698701853111511099213134530544119633554729929309993944683603453617780579608991406173985270174295065807825935981557233209315882774095122550673641405229173674041552334785101414613004363688579245147034492975995720071903878511982230321256576848426384496062325254754636223320273556530206459593017717850838658159617730841536055576213647974348170061099369743777019483268157842236123147025344303328172434969382977656887149422616162386519288719017948501696414452544338797036117528300515436405597990403632674479921764285889225958615656311930945414358767002371638181379552095970559627774279729515574587117768373692781595169950794799047980922344465678411177761313757791782055828907145108634408096325796003900402857834959383859959912422069641933983430268739071296538698209348081714950558450487612982208513969348263482888386923105717453011610287717232337377488387191820968923840744449740011711962899885913834643111923013974665988675098461412442930442931966344028241918510708878366583180228116673477377104167147492364321732562967339261944274751547205253762448182862913706989714358001636250841391255624300407033158394955691899357537323459341958462345692501674527183166258913549903831178973647768042888313798639152503236068302642094621951785341646691587209905232606632634141828846658372815656195523383828538192728640451356964887208562522499279689816482481458943877502390797241799544604184846024521124521842584987208921997956039229067747173119194382424441651135690610777233149538295951391175329156851818114349388962534288865516154363677259117308401454640135646465794688087535372788685178882299118952723724712156837256941987927834098361688458385875320263200909797879215925580048368260862474379231559154049622184354767684484521721591566429672045726429371480214146225952053623885804354886481413256965189797105386631752571079414984169238190480803555009503875966181200175548285756634097781889879302144278284728251508843448343751281357521638742613286419287428317101740092580739926293391522831761885615939217570924284325644462130476796421792983519162438483537665072244173338377779959336582708548239607552628564788169859529371035196590455493051311778188887582625513184223464266920287968363491478082078397195322145169913964476471571588655428326691121680200476418716538215089196189421503410671117672892533525421361224417777027945868585507957741642935795315247445683698745790717729537670178848220576453405122283859051062376729419841048976337961513663837335801584193712751636815398044161478842622548225376524279012395385565373867320231575411263036404597042007241420614692106775635377761338247222151518683762293145010606775712442958376530536266676427300043169781854110540499998348401344293663108137122124241708549003924722282038984457362486828591792492737958083816178629948987029956808689188072369247372953438527454049373376085217877968620002473599291245172462084394964761626240791337048082726575679675552948451337163958131183238863390898849512380998462371947689894025289327045205450098859417896303006150958944073440355422929352801425960631439727122400560191468792320910596109665565438334928867412846738746445238843397395814723267968061375662443713164188418452669289144342498976776574286174876796813877623385963568753327953687014698467462760616115573666265671347407943194522041203657925968207769773278654978079513924783171398833041066634417228156321847985442427426595186405122194831077053466390647002453396305279580557344064575150441462823724035636963716632462893442825551943254663096680347659242765079945790009336976184146542607382145487838210061172557833871645281691895804342663478651423034569904272721249618556478753771038003955826221375584596140788539907672277356452625041639121583355729979917245626161789140238716733508225729771715354710215632096935391674596247654530756705113955478082894111867053481665628281099839182669936776785305527352685621146313919603375537808516914248397045249910342802037761991162127001198637782627267360570399936770039928325468032075082880939345935432358887706954809535217249765611441654314015779489356911629511448440173286713224900671830807949437204863462597786168567519513563655451443137600054210445983738475528910592484788197941255676987146383124362952810024074685113573751439191666814809222505972151083271780821727299137711429772055886978244257882488497535937223378157374717744867760453221895253308533667189813951778259588274222173381759326679518609145372865826316562251962953368112032403731921558267728888720686307004571975561306266438306331769521923297882828487327917314533627240414935226385113916049986748181679903395225728578778819302653787600730971593857054514292186172822224303797372241340643971356577537532458320472118618246743423976855760470526347544952640853546254643265788835385698790207456131997375387469301052919671182247574482743243184675803839953977432941266868559389226417761568123234438999585245768736284540850347278033567865207488111751719336306435736626658244500428920854846687665873294410117050836335283936352503849463220404627316097168943567146686027025695249035169102133117239392709203635447083218632618184818275831831054002220322574424358165232853710414129558425617812283641187689173346047658928602938961680821723447394716537776561003646128223318414076171678420254863816663517278065841675120374995865299721184990314231509002444430969549356140289943511444658358460807319754660320141785993726179615177486370064219908922338189578478653643415078247719615766347200186100875690628892271412511413789089632576730732395550710239567664482105121516042088775369419441336031659542233967152486771302345116367893637560306369464587413162390384231349750550304415091977855088224499477075218358572767839476249992404491467662608268351573313642134181416019763016231627893813441045536358815131892715453695071762714289261423312442568167395681010700892873768925396317073493248881497840758815641027766097468647829891143374750638671886802139325461478162117579303088128374657674761532294214522024828483380147395121915024725677171701145367258566688482284331681775528919282843148085350883835966568379832999066975647176297635021681261839326417635463193201293278997723352899660994930501597819079978329954581319963838628331318448740336082593982591203996274180973161993432740353696368281620271348504819279387197264939229722324781546234889853009209561186751523061798123241509372325239515920424924994212309748394744368476484383431087687247221468763396838033778824429046244195479766786156795050900
91971327535702486993690599451972148977365822409439420347628487443496763647745138837167355214714511528216816206345961972758379705396209901358960164008448954371302598137154157661645913243837554159096033658483286585736931525849380333192967184427376465268956211229995338628824229782254704730574068177327417123321257044314794607419427074528211117455279614936356382941127915127568856437022025675373056113298658121786642720414157542294992462518713573955173716992606919253366213898859297785933841647842710994612013125872235035200369048474347914500465420074486517588082439544850462736198922009322800828427759481452931359141694846411270217359140845072467063445286155262297977580111934978583732296125242935341931614577697217019439724410870206419039177922639785385868361084961295662471222336290064350767074985618725177957359313746484804546064115870779017094162980308112736681199579724016234417568357921178505045265938834185965996510448438472768059552524711679884331874575611316729988941158313113855374248805166027903989464817564535675644468638144583916037669623723248660272451997479670546894533543654426560685651844704491458533822768366134395315457624274910233376156467910896764724847569216910241231989519474654124697797205337104929081395815548468725516276037287949280569867674172022429346031081114392664637059490826655751827149428670006359986898609848532858591401445624626579408625202935542607601690000108696368533541889291868081467410305552423643869778603205161453405675697966477453507102816770306264377487908731754728661871214789618985028314673222795771206492269767834188524520856650994816129734269979690218519379669243243314581952355212926851661366048870010987083602922663549806570205806356028929705293658545483506761253881541849878599112128079226229765552723030974299262160914398137136957013372218276851881930588080329342147601835220252958610663473706266944387472828990685979005404664816479867785224528524831342226795816169735644699765590813214569637632241629546954314285983933526912259256875777284805055626361226775553619306051177754970741124003878354480738938734924701237004251287353306750009383501552590925465258955010431098745461787804910116944464677642766989121964784234642850891776442793560415273438374607982817575059926541213132851527370329517756794134964114704340215651137691122497995040229519637360599145393079343261440371641753746816871714083178672940561630725617956766121654723915849706729260170851385108147953146785180478261861385842732220280620129093505617205735253809065860662019471388628435123814934955264590662164994693761287804018407427476561809918231657223824575586324217614714552967332634622627633471672592432110093523421155452281624917837620382979569537481679408416394215990173133718937630780316310720641941676326037227836547872726989856539830895256159210497440399856876531343369205214629733701443450389778304818552867543005424708564774829899525043869743253442581364303567575643766741930487830258242458506522459038465557011978242852880507155402195478370325199392231838334539111704601705415964239092341742510111281523956997183677730109723068750066983339819155445194747832019290617254547889861347948333337730116742812925697053328443957723085620372904298212608709962031186373639291815548267897836755873217491125771425728563593753933588928540765546577983292437055931294236853284026791653899298890618337481255296098210447866853397939817350109362878581157866289532022836644376742024961126175321274524660900010282876461785730019261581312714025158869679395492997463572756648295582163479008702305426406026276894054318273922296480992052910871702910579470365341253694231852018662295211758192123338580280811924424692310295285368539192248132715659620393451124964564716216849124795463566155289291181957996887368167179735375887579983735547111422012091212667204920604064937294661430244128909310230363003829915224560396566747663732678282294553008127314489450027973927282438880715866002668657813893428559410165117578811161034388753373894475387773940845799566845726178126399863142626922069725053944368641644012916818715578684393884063387518326837799733559795923285367630568034339976190849732143653593787061803726441275887141551282151557493533759263074792734578501274359817186158060984168118959106794282259388182294188654835414248963329320196466541006367141049054247396744786564539987826691788106713751720493988193493889104735634250309920715164881254529226420257468831058468655219031413400278186074556518041475616342090568681936826935331203151118000452419329635875192830166022611753461796584829837411734169984114338699941139280424967314983893631145606473739911299936944278815946732966522183212449996246936133429128164326186261917822748006722491832404205467291816409254161799869202450999771632451353061408341292100512278107089158246591179463086046861458418824526858759168063362882464517344176147747977748130687095617356967081498444275297696441582064653232177672475996408276635367988095735504117208070366535253807166860362795594878025682126501642708179212617083474994724317527760144255885269264391964359853575326176532636239016705652794235472431461781455355210588551420741865919953274722687509194104066111837630185645472418358774189373759306633002398020668276130451657956682983447287073866561345845631911173002964464515110961860277286267976904536952154520512614656135466444162268257668045128025667360714988014739234724289462437095223224026605182135258052002686739961225229534784924864821926548685402839716018895653492293641647779837433891725229921777976457553988359493333918817287774614922052793289102700548296555787917241859457947170567610401158869847661519061977764231667487743198395923884008751712526971091116265753089475198445480355892736953172452191832462712564027369944198670913253297046537184376994149422525562842041467575073898972352874139208401762072463794492593560885306749949192534364191108433082252155253343194460307723073600622404985865684137755914423614765216389640930276396620128618541371897353083682671681237452671924402791013651722639751262802393534776304547923970428672459666222042731434964871617449479928525198922292315131589395215273658811464016570852133337823880548422343224249276645094869415678246845102763881841443473147443447643288601695302839037473795224502137008872277912413845952241979919739215169650878440356698044466651898382246379615496882252635979845426512433183409145624567242662862945263826857439559467120206304968469290916344117512558673222352601511461351989330928996507734453818638619113960070540720285909418007115568329890455070100576083154576711054797122945135122373724474378673674513862937797771797432460418474550868417536553618754732875262905857331779946479336348306236034635504673342321131484460130936559218718132138039415784177784072472543681761861330944683504341357514541179398699865486718371543884286941114693044298575662604748532368939425148151269788276930548586330904565662647506124347055931281972424634460744256824684698791556721224753303014340788486346282235271445141527848297953677740837016752211926109966982091422641444134117351794178960715327391714375815273836704823578248596764329244039333681505103953854726961901763633811895465635070962520403511820738893129793463910483097394739686895519228990899814044703467569289138591159322220855951615455298329363646635388895867643766469549169545984428394723815135127634499477350648138938049050444881588643389313629833994866108710004135101183782248764386365135112688747347301205134970820174319758885075283179487305594627330231739321513773331557340344511656710418478912315113476059316512866413679273132186906971068635894968600057116063427352838267836809197960139702620878286207843934383812025974353275489362522974858624768649664713280889785478393114565639521757917934850586174878922952903512269290605466755425327957836140677824600157255017864992580449597948118459736322566258194440908926840840699375846331428457307257834379926405255539224242932545016167022188147593374975944516329133192710955701582176985237198221768550407666778611884276553281660714341258271623429722662344686478494478635325705004378716303811604779121227100319373871340129506114147811283572225161248179515143766672342716302664932943936564560886618377945692139453899016255346204146488647123916406749492528989158524355635209469570929259697914682592138302318032616993794894112999192133970367402306107232865106370768515086986881207395348713536615706881753709119646963348961294559864446972385631496340585064665982977723556868174131219913308595222840543560628713967998192048255656505802716427142730479779624894229252923276411248515023068491713053714041075253992787818113036856926119493873329370080485728363594989867557747837745099634899072779587364710673531740720477675678732914065139722013548637681209762709639753519247645855578244507423754269640045221981932161599138542038315660571919283177678941279544620469459809089920219392694310124460573970884732619619060499075591691112670386626039873740993680924536139321150425266458310153865879588470646552328512473242542185189139242282275744477229135715446804018024928632741837222587485722001889082611886915403572257283015281861776866859123274377077305333605656943221706431795525123957411824185670362444607419216336535596880515696768044529070508483728836558371686579711051361186561341531289296756724053261537944274163923770031101831487317840932684858034251543156210235409123326317846219957361548776863189939551786953776331290680017144501601597945295123281708911690606805228479261919757425669573571039748653429132349716731221949865473663448384489686998164579673447313847869299806625404564536445960465666671544989535165020396065647375140755254606946448242799285666239951966128570246468137534837192796119979622816130482890539323355652169775740725116365906867403026462631082627618114743744795260736285475834155218573958731460173391916572947659278189961369407873157967398901379133570609773079632517549785407758011177222066288174888448431747972575692308485340873456293534792706126856843019036282043988911575154546329788887408634468455447495278773002174569217648755935892229456056115581016697395434275436921886966702674844174820967943047529299846998586233839537714618369481286187748728635057851933029463507150993430928329077885857841267989492170526307012522386460476663418888230048953937449183421128084604647645471721415526896983562786818216101806838624694643356765235364177673229996002646544494890556332558279742821837684924145674785079923705380755926144283675633487713104778473340809397204094500876874030071591105772471452147492979473559317777943540899730551121444477025821787108322820708437903666921336700666791740065219491550576305249750145837588577680652576452546972700946947946437716340276041154377552966998575728460283679626836216826406254691216308411191484424243467777324267140004751364949591128712935617827503883253195942643444649178153582307734027366036219985687726549259995765069533745521922235868789274826259377619246743624579606603722641554373019334901560783113012456735423288825451353702006145652774472988434367161063054643196801570514852619731849592942041686992915461347302232431039013571924399197231322478283310907614700159818825225131868319858338672097598188152029787671714789292953884543312798075363362047856041124031526692343692221312651523703719065581424148246611828929941871966843673428647375778761622952826354913689157913923929987137180728995537637442221943207040176910491987163577441547661754973776260319124983390439425714469907609182597301888065934606351336420809089182518972173023180120536266394156634501360867689481360815026096662622415250299627214125512353822124450399364376360028229195700069678390526207434034539893559408671136560750127760327469560130453705903463577387767624142000665692955209719889179705728223140944469652816239353293068347470241787849970378523355775616879805779354289689204470861761095850753555569929677128581289505241939687375731199974776670722452927035432029276653582042508838187735289048195111279104799765068444156292625580193359748447125289608054451427889928259813893245115733663633543218250066155532278394094921529916926727266030980548058920707511001358566412284800103887193879967167265721652986506225393675907219362871315502180760992672072647753343181283783338721178114075763397796515851997714848435572784363381623758411730931778794132761162785533668954838188639965692230390899072925778822795926539127684561318883533820375437429494202705942066052885442427622645204479148662979624026826233374656823550159879181733597752035625882044220343512776938475215526524615509422413633674706226938560192527343141737147963592934284892628923882517518074454384724745764989055726183972213358641350363701275120284581386184765312834856565294028749994103722757238376633959936077809588205176545257204342767183904808306752972949915061001193041377201995885909631953503535792450748139332128155208619615553128985795632982162276042109252625442687332613346007284259361411294679854669939855831784431836133012270804688333943119011291312394819615617775033773804185360341249458263648616076216135036366236552901337362662823671223081925384540710613515337223171361266896331372708990746321812352239525585921719884036975218356122504252150690244330115522220677757588604368059993121941586905409426237525765719949599804372432517943243485221375975952026106775171655594561135523499473148451921541436847177800788406445971066391811931359962256713285114046948512727734052131168089924107815336863483492359565950518275183808973993894998617929386251188875106311993703954129732889583355634787089755556479234435549567231435405855722434440159947262741141278591398433887557695544814181811583102924190866812437522783460029372459586257560223960343700789973970266425364090256556219605882289176419669148782855721157657212260124646064065647402772139577756896709117071044329388628938958788094381056390487332951127521589050575718626115970592812270095858287760353136516110642117620571037626177909783392129712617283157183894327418204008296386145529682860419913700919646956568982713037207252701624136652192387001395275860543981416242007569796293456214821729929578253163334795820839922201504389240183929151169499845043296864733773717545055092470856606115212155320823618216145563533664703635730768555654349992363587264840993368261525506761011427711898968841755438377736734213068795426643713648119773620151544746718865931357175584247535529312764744906365878665507365472449656998630705363241215218334596143416827266562324202930899131933965095585748156131760989011444736310259231953417368812657201534121031718251634809797061562011083315918894155219234247698111040695124743182226383360075661094951252987052414164177617419099677163942318632745826436072969109307567617187166728652140715958154551785975706313662989719469613943985592163112787520414491751361472474495905276177489116580429343637126344133271668619660441484578524774094794476882687447751993995551834857526517228525557563313153659018975131173967751911420767451373720447809123924328173693336251157418188374456648823067814092128478049845685554734022876840155421093529254266535544994755853529661639180469216201472840808642673334999264065261893163233335627269037547212846464731696786548327332834914462591168255316783956936591733279315730521172217367832614091004983797114928505987046942806564553110455987239441465971704413325836389143438934363466661848668778184125512690789374204871886078073163501784552550542854770356204071455321576219161857238045179384779766768979621299538034734685693623283441636506597997719015343292175798892162690299350645149827113966200115967807646083679973330227632231097734694589252487878705910567679133040108362634328544750812126313141737168026804784209396307122644523135904133380295736244920786167331777819886521777127107699233234680443038431584678027878891926756334507455082766472866131150251734858866929474279517710290380067993946367240683905479823448241361301473249335525056307465294966425981386493756668417663381063808282958616533494464514723453582966231082727936131678399990148321959445282680973611078113127975767236388647039838341782994717061465673563522037276483215799900319618426224536898788968995194343645634109841882598810853186356770504891892366861365111516661105215822813197703186791965474425964967243954152427092683491847149334283852167594451188696844794902458904139839898234428951352181630476313688448457974822755157190034345935122236191598113845032363700124326594844011944836158943740214940328893813251893037738422969641377096162857823769044470647548801407452594637726326385876786656470548855441057608141636619269691969436399374320852728186536279488571932575067456600034670966432034479122510427349797872131522062883271874222362768570752322244261602409766616217086554019518358341850207060014087129639886932555908718568437593848510703722331634044274440626307867238282335370884693059031643667415151635243177858893615067761993807435168596361382535092816108185422917585939643189100827653091576081365918453989679588788796414674738608817562898428243983322968556902402912293828023402125091370694967558252096554126227795355853043693230678752479513630913738939725711642848934262516877821361505343349093311366576846282276034602057929720677894276543239981956337929615086883088881376271383776508766758150276303208313114942012125121921019556827859057127834485418933367269949857223619579758613426186139341813876665915011292371375485344824854913594943590770292786531650993794901351016222732451579233233373657567846368233414463493562106440889238054011682913620911381823552368209537212167447457581913291524956126174465108359736825471145712558326903838343779504483116418929049891812396854563743090972335131661934434995520159944744641959479155449723776271029482548519216100481290804571826563209451221993419198438133792146571364140339854331342037219339983860203138588337567442557704372667586781541374223802808171989724252624030273537730821369647678010545431639170272131543581365341038440634366686103449238172767129627126421376492736251853525339934981095571880764693416637763155374793087654923412646212805249177764366998366734815119584490526458591047959297254379305782652163311342382923688325827169945929355516734396629991440099891432788711742684736861479400574409711468614073358375224186186622241106721214472833992592152580566831589049056058817166112299886013879300737556646122326153221538771201534388421782703670405558713755564834487483814453256158241502175181935571789556836305663581498629775871999861759983016439679729624260867825789361700172584548161676787493657748610621975672933116794861214834796296352579375491706541184140939722257994536742604759844749433457112590504864721603930173702985852385232924672928565239513465243571130762508592870859623397297312111299248956731964501107352291651031767628536456910993975013599636131214292930459119271246415011796108191302136522879874145462767188734114994188835281981697123033307527820991863203449590625742619847881945595281599087696494147466191892133041263725605479712608258487570777403868463225985093580140746840616583759245542668541914323679215475676231915206850316520693697206424194167901258749928132269272025649577176343765930591939292536543558960440574544798554186777524581919656640355171889105234123948232882951445236951894065783171133444036838048177385981515657886525222523668512313271033145675042284410802731373926465324521591759237574955145363947619469447323459983942811358433258474994053744284230852242639294454156127276916969938448385710717843011962893619579472765862928611304637407551190921883706080587071277726371971623827746743193199154934603716243447354872631385644653657591335139057030791058612339314391521372261893553294335052482677391451690038094567283089613262065825700544950062548348051854830812137528189630052996773559619229381367407056856824598060433222952484297149672039995527821428482837152896427612655939128858697772317182814932345361446507475920480867167918768794078682225552460878454321782380990574888104746962938543490228187526515840300477652148893183783943488432540097383390330154882834280456718592662157363592812967349001649191436291959668720377441104892393655866434722230685698563673804193189089291566510931343079157210706379010991290869398075752641140309171463467228611815371277726146557004159459480876159017518833672831995209965947592664264442068632283787043452094982264419168277748910953683238679612842583290412944496859186033923976080908210295182173798549747016706676922500103548553131191720789708749869869519822993306469500963328897313472273258159794295334269531897972841166254557028590912925070963743708549235561795767496383245393423272706919815844232171486925082453848277589123993548739919971190564764026772258296881016917554233375438882997629267017243245446166759651975341743168080982618979606051130474057239179330476437455527044406913495219095718699020700682669232996169092387531112923617851299134446484472988701487564903621955105100183398533128844279481743671102894476418808414475453204787249367069546751519041101265334820382196624548513188016548535578227144167690554337934213374513893138412974673536863944831971576746123924844797194024790931090635218015296194206768364930832775114819328911356514524598818820633621391565815709114668518247733384843875207887139993223519948732975227864937438073015068359479565406849416648455125399729274271028091350975785400987669591068919429396992189318511787373573144984492704191028125963386218789845738639635875204740608929736611899617748691814226701153699081682030924143687930724962705692391133760316671413973912834472552217007988717791293295213181125847991455459912979145844391615326497386346276736729138396001873617978881734363338745504344828149637294361273468322144179024492721125864382619164162399488557075689527142890807817461877585768152734667216761580924891426908746623161585674319401548774301659355858444760933576341611968625521738080336270982672228853950918767271380289323271464063105473154976133107027677019037533508665226987828339783521826714674749262482964194817647838453924281687266426468266533264019328466927232957212761531575448489935824660169021191044294899396128335675871715797295275178835354713503089156292286861832684410114089884351051474474584502877938723526704885235477479942899538040609779123919841471872189863381774027372939717494964656910569375533927715823341446236727905142223937654353279996112197262519836863321259556037229287823954962521378987352305263292737300301103968424779050149902636705445276805559455033935503084263456598935134378085980340425082937435157775590227343931014530190803261922799782011167925752452604679775645681667838383270713357973299665960511164546377947135838724890467542472675244631916329892581443478884833761714456528493589264416039341987139585686865544974945807511915525454177394759686981989556547577256175837648362377973429275332161586306326806812907178948196127032876619150395824305703583391936939901336596546614727366594215643992534260046784951604646431391287624421252831510647209685978189426913996033087335162695936875996011130187222473110421117671619522617629595927582649023735608795715083177325624301733152632478318138125182458456676562970984320987973259108065795933625532666377919160279197545170912256687805737254655488752116029116962387571189629210307251474279448951608342809332168193282307143162830756391723097595477884316457763187535689161189734554726269148354145504995187024287439716233564848813519387759733405218069956017126902465328978004996368188048790223527342209891095312154197526530615967700330812413974184744160103978231999185309146038359934132824671410339735618740715342619492198130227789528805401546719726595154034855304699139622670053820136743117547185440165116708283482319415647408133481192254702536289842239783972387384508842755242065102160101320910715447589088987200283216555684816512872255200546181842541380478428983192104925571369218861374654484760051188889535455860381755189393588282026587568541596449552634685507495642152122463850461767129904502496701488456005766452337029553446041539155363054546585036328491107505201216836177664042003231699806240637637179410481905848064749932570367140638381632672873008614959697625188241515845649695243296124614012000541383114548539067406933651751189208042110573200193774720564944138361696241474315794514414892941232375292161930553616006681657919095272447073368421410659271782965165417960912664970461765726828723151333686095114969212837688713243597624183826672436369849898218833147990209058814734237622678670918794878385869269897745577195336025709342389902826944998453719436456205543533584264217507256142374813281572011454108367862572955653404996418091847675429615063103022723784945616379553702879951730969735410687221818548371400937935335367858690694126897544018030211758895418181100324095691145378454801645976324239596777019912586275047188930368501353516201149831432543713734201299745848142423528890189057275960648384765885615914423723555523182503541168122342734346468445192568501179035530246096845620702929852636543415311148043256351884715199287921045095993129897185129270159767010954860220285293329081298443489788782888614979849881073807957604011122517751509521106098375770951969789784688487836121415320030675595984959595733117083756970003445510156067639319801614120532524874750830486798055497113599802522357832621348974076294229768923239683375439215885468939453483382365366429960920270772909051886537882229158725202531626320511503819135430513952631897824612842083016462436232995533538661737076299917247385118183495045780475266075229411631110480693835240749186926645931603880481399980990309926335260236833712352683454098458060235231226358619071357537958488632261088283748698275556748991881924661050212514772649361908012120365261114835455517797362931601820643525637254101089802995828685687577324698511386211031960906156954117388289080792283557125136687801079338141874203583796358134798759329497844518438036276721824937020515395764285345496811828695804881733230639716552489378695491499077333205613141741701820484359640433250269482815249897321495914628211873677579045573619243203284678764378619159440121596078835882623657136679293395285485314594778877685726098743325392398426679689913820903483316272533668781961543623261674765275975178895641619229311228893564780145633021158076150983558351870749753126162339923271669787093751464703417665832795290941320552228165403267495247662394428464882171209063225483947176954865479273109803587308786284276298620582202092783879399877093089860516416445719912831163994857772423751881578811815377469015874025090224415886905962631971857523595534562461387816292183417492344753888831689115800668277672797694066951229431646480825959803804806991844874839350564309958566491310041733525234136958357319850450690585354196727220085241178822169872684032132130954190085370024634503006615463453778744627171364298465265712988490389454529498518102819173708072056401174766056500666812109416241229716325065131825647054244823451981496353487780364883382797721946989739231042313972144334044540047551882435570662998291021111712810063738404405635123781318531763586829619813212593826179986724711226523670742375017929523320832989205762850955158957836716981747665416677579341399112349508575951616975325880529763706135495780154848396454983338912116118830426561041301794408436877155345349308480223819781228535462294345557415046344507239425735912990975944670130937049640530495965320235541747331323728060271257746765922455814196483523773878577505036885467264636438928352102443167507781698629993557117112784310775506372529336877788485113198264136108563304876364148373804449617008229611596139382123154483712939154087813974928052245955772854820656618061761220485374379630392138613580872331319029176258314987709413253032321028381348396461652056859245566547816422418238393820517186284541464086332573036347938503681497618739006525367246368576997656132474579000988857222862017194517788226684474439985834674239870999935392703191539846314599509464087932514358753661454250752449491184311746853335559180132382659104732203864151056868945518560246774202682459707812037763802175906942577166584826533956777200531420212942572136717237207112424809386280505246584375007468059671957582579133581932878228673559636613057316917728370686156341619027400848839860516181927391253155058816611923123597266064161890791625951119065747383018757082221749695754875682063759132526819911067976702091966413472218472879892771100391230867416741538762282943097877835426299882923409451136326410881816663484465827747328060547022488991487204507124066032786036820063432735644996192962126283990253168697028432378315846836596075462870748922752231825785394796893264591812716521975000288396692970531839271025917818745623665344540438478552144843752695484040652194962895814241326074465952879962553033722325298917368971888079198858695676020120534982962395533544088736594157562310630123422566116795482535539191248941988719033314068075915582217242697152452738545613161974711359123282776951778281324496241927584253705215407370376378395573065651019837870962854011715510607282023842322540762928183591734121612329517186744787578765266916061717661828197544445191835569149897031609807616389211526992631280093808558619754229614946381359400514963197791551212282718659059029575258953424199742678850574335921156792111323014975888911986711293223984489539786726874924516414322147557178650978862162054506044676495583039650136997014078616385247449399755111391809449419151719662798112371381799972984442376811944163357533081575933257634636481579387179673790632756536711525301761111366976842135285832946710904626279901516112353698976323489067302655126318369493624018781353882589783839438730642967866394945571229666114800810420962458915489548367707809312607866564429369974038490910967114851766820286791020409312684251520889057478968852312463321265707402521585894116004951649473931418959274573419602864450149528504683495437411948752517879854729981684560469235907655005968917876842826757224258022752479231312045096145142521085629287553850439465919781247141316846003334920217856694678656269819187045305959237433925517186192738529540536799475284792884898007482770415837344884104742431652308519421115479665884311024358052337731642188721658546226454860283639402788016317926998390876661434254362854265613565183856541914805848733124423421252195795093030875159588616515491338468056544519741222920947672950351641864323657759496871943752465277405718640077583958342115035513376029911489298373153537161425974850445548559753215669486566509216811461731883386701299863599939268546611263256277957694956734248265856604243832331177373161549777701420532578283727617197253250732185914372066802570399737412238359231288050499879401749371366964444497369224503954615468619360021132370798842713151920455279574164771917730358255390483677093145149005700750711539884705491632299741278996229966895840230938512603814145380628192393772792684723782137692913869060168920293844959486303334392098973072342189657161455820264612846492707134081492329137308552381801093421502522060833342531148121718388194505825126281408991265884641734675065597714531162412118885011652753373154724261012809366881624547126794022910911316251053146091185839751342358511863291573671275261547589063757573698058293039071496152547080517791594775973946853656714603805316221785803660599249294438268546733179099625683492923419810260876212593796755956536116732716191217422307498419483373546779571404608495415235951193972273799115303296456989640391424485376584512357598059684367181134683922005040364886613993179435163721172579572180475511321004323416227563756273468898050243595562915935814622622174320812264521425919403207340545252419297636344054103877844800303496650192127644180613086964426414385024278865912161035188518438811871827474953547329047415931037631525764235370937602344656463734861556543226459775603130608678630778163422862035875186538682185843176865107535387553976253044776710108247376847946786691184831560145188381461630085702206751681282960192634744362174757440724423068666296466518424265863474912629328928157235293997489751660017275934245271662819525923994212509695240072439310739042520188996517530128343919792309827330316675841263838874709934299121156282759581979515763115287378230536523850130392385443011131373983810160516058147176869987211845577505756447940171778855977697956952838078865241933228999964472193215977896638710977212546667482087862354391734677275905768958611567131183373456435355522593336998418731592298822312440456128785922128887559186401245709732504373057877745811990522399604235946918478128807584830950821341827636896359285034216397689140451318761593924734905222173330689696500076327652249784383742567299728286316347493468364008316484922225569727521678179391058655331327186214785302506138579849392928764399616842166184980609412072715403391345577576365810494722229856032394174264130550829681665359258577929228229845501087104777246302557172230132966511420090882324067144922752921155361811466637220909177334778939813438070061499191756754576655575915383877905620673137771199589172026874327969195698865172555272377412531032023698088445960617099378935470372115595382651516813594879876891925469515734488066306741690741692391223258790566647839358965205824564911921028319952926377123348317759781880197506360660843738461013184476201798215014082656148599664291839966330074436689787224316377226730570457521370881701586652218553180088146899821333615050439040158063409214904242790182569895289921064736790475486946343934661758526949981879501802737582470948978423796231754933618569437672928766741696668821873209196918235536137511536963326165281564733902598169663618511177655811957586670913074091210354550061214079075954345354264665640701794479626792324150373778184557197394642925335764236061170259435922345600359279041163916717258770004156849371080202745873524620752733195407439733405713803243542343233290589457793903073527148262183245782438156938056517275529707210746718109710357511143513330653760841141578397811576507984100450225834766944631378741294159911197119398518924265059055091559653621830337736513947750662198969665267278763954509505152389330911535684316684635039951816277032481258896378059905041442838550624489782020895335505530338825441946781889997100329225241080578723389172050282157608544304601692255437004529967633145050843776329255358066522121453777948935405898179466234595845665969017315962491399762837256498443588357741960372705855189434741186794349411281015655601144694906532151666856261763421249292475366850099267955873406625062439254393437604529141756492794017197971848418337205962738208520502373046834892152892796487065646125626964731828925785310894425086610926615649765716782882514683417740338454820968292796364410954106302843381905948179332372833152680695208160591823594312647799587379621705320916181390535656106670283923493463579216325272244233239636221754194446237258987943921247502978534212893743684947059512287071990969784293245951835074254874465610197834958059383652862934716242798830635693252180481178664078783661065562862297249634501843306666629250991430460812354332945453532149129447310043897962565227881528522870447679812372262147914042020788854878214152891113698052403926351653142175461889687458395111100365015478063160135657510378780196236705545198530619475231384810650289638400204228293537779345771596281324394895249706942259444294821292344737167132417525873412234378425541825570544299973646274579354757752690575998938989473046779023101329361123937965796285865231272739997847803214521939938129461897651139940944243647041313144583855567065816604830997109651673954220752895039299174590622519867023787955752667242244139564931471919790597551383348435924896693098994622773436282983523674881945982801545762627775755715655396619501526877290224417561041110955859014192804985519069439457468176263512040343718451273997196320153661097356199886961898748828569677452142070822387053959571425086793449532697754428226584296827735189988176294919567528608783721754711949846453997194546624803326385877962411467237918143522687082047982885259067556310320283418326371527065035842432654175441889163239377324670171388003988971898093541086311662511848873443412147743664696868693196333038206882489145224969755789069681865598397593264802640912831188056035424764349108662597054163278777877438655729529581332222509647549287129983252882440921802410994243991994554277735298592914125387757225135494823469861627256451978142241814718770944391493743053792102795307745918332718502501142602457082629619090253920950450909411172585838802275531793198881827528380305128842780074327431891140971472307996287024734447702951455200149266828143426795772838327877891404389767308659980675761046483916225897412289761599637398934614255284171146165569961671495872384887281656981008004626348158287543873806309988572563993357543216872438863549117479673178627413750793736213157177767092453542077584741728161419364989470997091248215691363555238316395167783974578121934764416343232798449489977690828946081597112170584635586937891489037776180327559371278095479492363944189616142579249180873256261463239735557411829178489816455263468621943262714179902889013194302163138988738905263303549386765953938371727493736244502592146336025751739678796330438720109244475976710773229733447044317501584831527025415124825042051071543535106713194360669255447748533337766668186279912702679887582368561581937109704163046399921352492267837409388740817809125040460204931687561536336602752615923573509177386466563105084725052089803973721711024336137239493292912598764945832682868354051957648712651462126142483066203142284551963877124581543708334702528449119038683595156035784794221037314390884575114784713175336028169972197480490032856683084584632524824514755922930310386173519409796015935389776151217885161753472226578150292894337110846372586185135688134856291756453024505684617150918252948183694951985459202426406719431160981313735017462808326126716443713794167411124666025703208312482615906086060280125178376623267533585175753412820063744735233258915952297458747767962417228670615839001836170372700848406124680674552667999345916301885816507716235622543778788046886129028610930947923977625686341885985312476197364456291254685705829467177302461739362048814324284046423384310316443668518031302607476597954917761947852277661922141518934289758759798124143606207172630989917327361559684017552178670491292216334297826325952850877657667250859412734191314811563105681603265201463653210284697620508151841835914314184089967281716465995184922911372273479266468617977359516844346355416575426399721627653931781216523428206186495851249630229030332150385746270632488198675951288387071137224584763129984487430239871746239105021570301345032252203987845714646252961001282341855869325736011655373795934645585344686292209632345119339731861203624114845615214625237254987515839049378412425636808344872492126271396833911845771306763256129299972284665187369979917847990989572619990986709309894999879424464486991305065989161811113039369169623309393312964893760553434511214729700083399622582031182440675342945833791475656157222858115460332673262107956287571443949811181524598024811489270567473963811016134605528289687474641481744372518488661510853657614154792857452181054775389814567413637494545875092177059127293113318588227802441656946920052132166253508989973693844523969649810106191747732585796728497651142812585607852706855327948344150258597358398730060575181136538785423627884894248352699374387392665337616114407208275524514949594444714149939522684790248922168327483820623525866278301847211565205236434158027812877457266060539254959555756948993253590063250893986843905779377819673857523154914771211260638550847156628977719721294485575485082217457599345972966334619163330768043524659655662347375647247227419099850255794192485649488790622599965494819054912733169084982155694572987895674715535711360809344853247075591477295557641372274101890511738179891163507582734335148725984211899076186525602447699235121680406056786623671125625349669920973755305674395753540682071425065167682124911543748692632447726711894352465031343897726671852998313285567598182080131206286636152906285569206988009371820796741163764502627123905161678733494278172834467483738161428687167372840722750861811154722026734889352673802810116987672426101504435903037886801564509824925623472955601969208882185193863346049286362496842162347245295138587857849740414437095034919559298823469784914922294686675269944493798993565551350159301622856234286891903181666117344446244320311378436095423101668717391726783504872454929796838782697255313333440047425235718377858099314532052322874805565835381462220425874315775358552163319277353130822860683715304633797418387302872991933122079471212024530828669511369555819572209905431196691726962022499715025615093729335304325760127145107272148150595575635392246553893431648363267183284395156708153494916690438632935613461338825803107997361373529261375791728734748227986232386894515679729210302245755452451415101279142383266228875330359397932219103074100417107509767918044749370584849353623589909157744550877353263268508936251861221243271150573529327497408978501469212965342937214903424259543166399426276454526966151626216508271857029693174142848149819834309233137616118717403177552986904537251332731136661921579399031471253663417528972966781865301832058197618436941009874637591539321867565352828062191273638210096338444179276131445140824480631475790951619471653666499650364653893687578801685961991934818228539052430322791485232861468229129046522166736354932718149606990151566275087035892699143369241928239849173965698131256122495619431396591918474293664228562734693863450368985736547849419125715898902410618038601391970370865272437367576536335177267018445875681648164954978299343387078478704874453087288360574276832979348944196055341985691684301956990819159416845405101451245356489265226541692793703229995431794949099569217594617765874040182284907822363379737863677606761163986309418910423047589651870419103503116374687717130838023545172550501560563731917682307719103726229646464532350676932202650675826341473469978381750784012293795778021123087584429714911333733494935427600225810924541662037138384986598688968923206247272159175472678951917247149677450612654032884368404866546475761832901763989040205587258491998747264762261428312112547157955027125616676287888159842761802413413937652139894466527549648422214433889108718488493522744709901524445105355876327289123993908197993547308635285452986270411695193853924921662673049062774432455215098107655789120946320971089094208748429392471492045894670583952417170214080947133244850233009437680476283328132242750951010554145218025372758593105677551691368471972921944388679966373126177209559120007370513885321618080348115302418789538524129357552721361524667646845172593521942957483295060796891226633207939642632999767184284326355681539188440485738963468449115788157864476472790006824446215461296482642655993722759403946223772548227276902266784836737504930045346740785446776937872268522371356779645461732839785149199224661332821264845330065946840519403098759265975179635057580058979001914290679437116775304619397099055133989816158891610096882738084434387319211166843851819861386748374928728638167713715760199843362422688668188932450202862436141510333722868292791581903461477683095151987743109862635841962730951946838855578463779179483417781912159734886736575138560819200401642435765234840465720427460920310824569446888133599478281142419028678664122425013115834866381046019508897190747116347768959662548751428152582265707822522649629337146943520972068817612226594404399732586089513328490227647271243283092110177211512138701043537950237373021649260797314381341956971194584293214747857976159445832366844391773817416868640914811940482767276884984336238655298146429230056472631398608457635004329191048679928287765974485915326629433401842784147240472930369801033633592207463155078237954081653082268074012887241639745546181991928533868438931337092567106870212491870822373513266139257300818012267598673936287795091357523815691287881971051975444961102920762964734810928945213664374579166395094436034620235066866222258945242530775279356696157012796359767454063215038444832817755343253119464043443959374093156065327139795332584086035846367220879748769941479386604395258211416283974295965335206384295278857294196583651975588688695565365889916554078438488317946434084407225153366695998721927183352167145723541200666457237588043568981366431645874140540773388018242444773931632686283186436598065481023743924424738974142772710314211441465227289739681285438663493352911777784553594877654602359221915127871112653298127891317077513399663786362680428648819754070392232773808051500143992084868721563967782373973471415225745393129177228787479835926544076539438280617955032556954281134356615035761348312211774469419180974252284307475669219835234319007098193226944231719198681912249224737428642295087410297812540312705097638293696657496889691915376069313365656335687369028852623729483360773944279899405281664570839169924622842239885465239121259029088268225432602841231102595199324859631260211668158638311095736697099195913175875974927572105714057742354751719936718629904123587864504863165339965459858633758661466968458714546061462183719915647019161245231857744890087134416322938071862484265283121267185787194942037265425210904873396393300136112638501354433720947911735064813112211250675218427585534290561595377371067824655915514463271300314922693902269457466499470456114769419164462198359562511969439483976290949712168843877727193088335396252090345530963793581297203190695661106800788664632402025492485247838342056011966854434728661822619384668388213611738596850716746451441186740374157621742133804573231146937769410512343492575626506655145642738183970581311295006663241081061867392411642671249837243592159390441258911073164484273752828228801101962441921822618712379733240657511538140786279205196828055590990808274955870546626762167621822542513706570574106886352849769757711899828462767686261698732293691718094829797349406171624196639491712361221526640720146273364314161105841903290733656463896080658161347199515115371751299885669107628107986844451023894709017108343179786502955699087407615372658462253281671684835764161727677933683707377049268442703961066117712494254125963421797043381357540815121717395826659069561662942764158923188322379733283403724744839745026786895079924273479240933196363575348264221236619101031300112585177290397173675520261513091255212840584106635789154912598893157779952634945923478042369789737717958954241467096213830888924916129995926539797193515172167948036774433754778164169689359760117023812808483291951585042878310843366925628478947638263641371831371593727675619541992621294037020873726753625526087933155339491235518406749677944331337686462856389423085290614145473838765371849890704275947559818953048088119309979464496564173597742807338288012790444231475831112981463067255757483608175783681829445863878932730874400866313943996796229755483027485141221018257395139784120722341117959640722297751179374848147499683460988848910316404554353715537793656879113159918937032959378943225100843018593695274962841554102755365578150138934442643287245759821816983761540564212799111916495891821018593410151742147810590512609278859312711824903802489945863388788340369302480712448523778426438899221719445259715663525753597760919708084761840813432741984242084972030752769012793977062668737057933859257605288810328805690245304271409889739262172161215359829734592595665461325878718052666968652564479237235068852919245587394925913436042216960686124645546476144214052851321805691769812244043098431783323392863847591443101733418750704164504951764418590419749567181015780864179384538908646392529213742937089560494110820488429422360140135692558368598849287541521763470948290653134285809737738602196505490886168671535352518581942143089006331788841606331697637227681576434284033011823846048186687217442731464516492392634325861272037019564512163460525721497295867298115924574526868302418715215220032073425953295856431489679118749487816231276721077869643914692975631462191253749145578130746981538977707744789661848093439773083185193764529257564397197975828365838181549594462660178991653711426324219516927741729108895611665536995806228493749534352447939113746075358361458033857603490865711419751373643326183651720289919727071838256482805979650539185867026818293507053865140364763158668289922392235286351269094579432944854345846578414802440361353474278090996684868743954662985845374904359486081047794316841688499964302558264576133630804269231881129886823202832611028922526432692261233331623300435926194634086164279382563788439306365598128342751697073475878853569695234887371643491248780497482489297592826323230406475249317878288533426946218086667491049536089467928094695164357466062970025970928487567678585425032752274519888535424879681441643457832708688616967123799483155523610735116876558025667935354946075525919278311824099185230229813313636336816121555381679773098014538436159807810863309924473621375135349158645799515952183872121263161044329133567703170388553373507381973741986537720926000391667148175152702085693336070544973347574856492377374957687911553101512569597458312073633878138002007952251648222797220438940715384913961038214032439430675032156174675986110576693532792976362437246165996330441717161594897316788092870300122933153614132183834415903729866615247562322844555287723037436083767366686383109320876612425348232312105145837463953382001734542317218445780607443317222502072571491526012226819211286188951403991142212558007576209524299593445295118773061750228330383028856563554017842198316941711006520030834780544246416614920738315132920030215256246788817371196826038698389068571898021261932237134603135095818619512616059616519913271903340861214365744057377200294652271831785746062407929192704987747692626225160596668177671620441477390934484840979478883368112961007586727187629624483652151934535725124519445616410469575662020555492070371614789572567642871238360620922466096069194589617220269749645865188013279458290406826524517624507721251804362722235616452048071836462221888334222747822117094261377791336268945478838036950935742776447015222086316743959364310300781571704380919473057123369684756171694559583588239785078932337914985913586364504969967565191681489821780048906703217701199829375954282068607497455285054209557713087340992588751484148692127994883931645496151898032667631153358138381896907137146519224252858035178558151423838906084168165883889998501748334670314828916076317594737521346921204499570606288474285824743433337452401921842572222414348322133160281074914767194991559225889314253508168823377611516596139144134923743192862127027443197337862103979410192923889775382431562917078782826726488606274749503725339759367889182584525135591294160186679342089713915650845580136223066087781289951041927037302173646698515879411420612239970744294043512481447363988834172619276022069211449669574985796555538732551638020303065656810392102294802459859518112147092683694495391271546823946545747302827077671586189451641864165402448710667916956207829386029829027688458165870883423407699892839682778497146152823436446533402534877011846205154491462455157972454841643188022735190574051466796922232533950655023654036839584455213271528336443799600341358858485614862432512366186230291189251521452067856421096159287635629922900421417348493291160889364185775925372779434921477002873782316802194136034828378364650751281883893898230440910196703317628559812323111817174667443884513095917368939299576522690517961660645098372468853210272229989848363245486246458174774538640460893601696041050385775802087081313872736551365762717014309512733974037968789798871856342735181718789717543247122929818294971035921632108811495174382634563108579751949261231263907835219572724822383742331243191477277043212148457285373656398437375197078172339281250111508678464205140880041244926983356767784388168036332893491626211872296514893914529285971058816719346823695024846859167492729945916784456967514412982206559140142454491050781813947896321488690328255238866354183816062138344014748198555371093934531935319660932995480057416185229334858670699406357264588564869737406795592673363938917185614704150629090278732114926632298145816423777057988359270377633924581331671512142201192356546257442349004256662456622657888691335386566696696130349768435340413755349914389411227273063855757213871391847352866835209331023928346440204871892678660289151429324853437896619257454266212537514298777994438839259026558035839181911326829666784925434944276557218394249499733364945201280419477396153424916845661663840610291762774015375204135648882991444524589335839916481121440879391291158081066236397568464675816522969883341911497632275530050714945220923659039713205333919117271861824387878896737519032107858643737900359887231967310241411983259264121041636139566614946159254522954876147369199253866359262230433840285678532286398799043605745282449103530474542889366041478321333657501288737704388654261723469853564479622585478249276112692724554191355979238786201784148265396031449134954135641978677145757143788156969592243838800991063595681001693304512567194562052532518050268972587709487636536396588897577506902314044700853607234032467821561675745665933317394216982317175295079225823121821763483785647383210709340331618685668181141118165952565806619672392260056937851217602618289541834738568050804637269334713214867967726243750443130283076490353014196693744929897762309195081263914999498459772834243309981621678246291349454805939212941911018967660119653161859437898959978444201207892716284051925937423486826871169170802808977615801075228367664503176359900337010412105135635387651438795033647498631221148795670404258565767612462665625993066408128788358321099547396618419168338614901616475925713621884276786025645678208810086305665790563255839296151125455615551972885278979195199160495488904995957567393546676633783341859192542005322009893740151321602479729195302949517790379188763136781892651378594512698676932865732379174584502120249255450682687165466233788790386107490412541079852225732218849496486513686323383304791970721125957904838422108032963605302111504264536588148782956198711357916973338361576512791465723455281870172791441245266475925431436503391937498273659130605021788131055702292187317562495749858194517385608583572523459397547726137697226877929669724159277813369265634593451475402575271143357319754893443913293807675698001952310647350610366264847992646792750735161533453324366822193604443219211293958836707634360370609418064312699418721876519084067327141417477777823330158985351817626337524972142228261988457691556052496356439615587584194791919643046717274848461378223435864566986828419569743071824448486275682193931474897388135103331338094517027131962090737996699590330678073418273571878216595660431002384476697635199684970236203263275714030277854103078377207946787654482833770024815646598122466222738412930032352370758175546129523938740660702533375011329866101820474949873042146086502308376351110100155515126253437454204961291874991862375809123324113326322594252484059054194954794866728584877481852532459990384683315378475189287900178652990165702939571482313281794811817187424332723816486308982547129465653541436131866327078782306613871162317499628224318598335797477634682512265139149645420361645037278378817633124757861607678683796154620320265783578456516312099939799093313760801268476720051671696632736206299882746612496752536721139490159016467164747814082574425061235986376479240189928526293997212082188886819508989680767520913150658593275434522219178698413111986821358569013494945048758427456022650132049594691742028145645493343781439746481496178671135331833535971353768604181581680074425427184170542895371488253496797962733019922064016220149212652147587088274614463916081944115465459049626132452377302297971793428543437038807385230255233488813245464498014940757931116389575348679626739975427511249058372996461609168707243956194654524879265682816576271087768681648842990165833817893696603579626973617677608281211291466112281742544766151270026479615483963719862633081626604647118380119233222567323569137993146395648333605177862556911201050714909562246404078622550663517083398729341891133506968169493699448535511987344547218597435633328822918151118445037509112374131939668286747994417467839897101406721162879598272618419013516713585932021923903422429436667726274562889303425361848654281519440087992341036432714225072789489865684385390028911874589043515467865118124374702752172297872165198366071972225886362219552369259069519769418791881603517721185370883174322633692317867126986058913023011137595357685404406584387193499122174693146187771153633908953726652919072398966175179869135163842332212344254209152859357110109511761663137072557856225589040781232550744307766261086170674022868449318186811387378893976686835244878200986556656725434998105898292443431948424301457952895030133797312245067215631090349869123571954095289648528755095936699769363317386569119334090176279769128311176725586272124491455685355615173521191223142165366385205396058807713360173978078802672962649257257105797386985903302182294116640381896193439027934793982844725379335321640275393752378687774715475817753934134013360494405635654388975539651411237159581364782127191771356741261422351438995898971549478844731822323807230323049900021083557837714249384525277328940729324786195605297597232987932514134810856477360792420580250946465513342351829255661144610341089197212088250574025180883827842204534609686131527697798361587771655353761092322044494188971404492877563931958807227328412018375254591054533978797845322916857375396369337913605152218678682139780664561292494006637226801144983620416891923994445878740823725831403502775410261546964830274471700767930194385484572489965220951176042120558205300178872405471799197980524433778845431384650861237783074528077629506156760626573321445593471629160978856472671689402602673775130448100043011581553756951983766230293599480364373316190734427357282809326553749428887447216402118492650533906432831324087853759733647883802271476358610641149839352112887949862541444432693537421436115180320855968291989763518717963702335239961832265354101069460363419454431044343112911738437910640796001336871462375013832427679302964010016482743409057781292603962023875097358781098624033994120095582813848862478867241782247646459755607772437031842402817311415424036758918845445823648454656998172271839971901585937981037959953445496636978946041047279922191552742256955686990657296165635058827053316356562921940330888964543704540032819662694787894167743729005575690840641992990949777767528643877138936766129958694766687239900108531622892357248882791587425045236031689078193550941680202113157390213827198314078877475074872920308831944266839295262621292068996629743666646182434315482972535336377566986694552636675056459972550604040476620912149454576751676777923456607383897144688346996286328192865514537815447453993894351784315699811910426313243227127342398761293748877457433897372932416369184734233855196258862481655123988691330513977928316854451114465701402150833134532148584271741360904221047435285519194647815990570528324894297195881185762464111387575711659737046145872107500333769235218358413183203274943143732256248362328188316955259875193876826169998995636996195262665263791439326572347584731062119173098552566287419028694351397295189609266185327154439767783905772578614149674226239158094241939513054977322620321610889762655658359411881398641196245618938828302714087494008251574343530628384137521938760965367353655104957191222763946163711168982438126209094642494847508525629165698075633186045394384487247214937718253375777231608057568585163556161071164925788328886537710217045140325712941727326936260199926776596865715758833404465938928201318603812121977139950246878926478858431620839582885944806231937273576453571146499216051679706623739348213108148160373939403454296699996047352647541886512433254243153907391577130633288486134483181917228995581287501328731862415571822668750147911355265178293515631639747596741263169521580987267935361743624088042427969774652349785062723743391013075559269367268436364335569511037930001645861169581360679791493490938136133484654629376478259263909848148916559289005058336619347638395211678487069643064543679938849776211239610437351734654216895976089831325018942783013296943377563293903166531316364569531636736972569167142547562796796021798714785426421785355083810909896963284721779188421057537088977903962069666017874900177624413028807472939189851427167203007429427144508615043629657198883358058936578855007874812731834871217471255894635276758843178277633820019878466299537405408691396428744393745594586008972947040371938656854361090486186765773268471394287071669792139772385541127966246342447081015891130494591698513287353567959319342425096778575578117982952382454295646780649677773110171552686484980469059073215565669128843547469074582718481120421314217050205519131932534815703709778152818792316571454584770764804624352370090186524398161415356043493554113429651941508241282817341151311999495542078343302481566239812283710805953946421070917142996478216564944147619771708691060308633188308419400938856562120432702375350291909926331497834134489509412789055673346888695888437403302155845613004538562775287693682326339008587982590184783658226676883531642660046116378838561295803279738997360594537870550146852464298874819394539442476534335686596931479843617889368637829657276414955452357647185619098884418460764689787199572868909373675725361210334694649242876354720151273278997517992629505501283573626232692259219825486112164357864953157919137136257259772268241233652183646893024708299803022757931226867196688906488777689345850995475459458986703212915369211431071539312521753778745993146487464492402165943632243184714333310781474264329206910681601215554094001741608746235374429799551236580124340912057345893598892767461575114483875496217553054073215647780397181558477876235754460869767311326834801672818956661269087918624199395417173454558394951651219884314954071100899571021841883216857511531885072813580291689912509189452803984167286858271699414401126686242104014774050805497412300949494489011297777836609698581387947691264499765808184878396887881818925830659166431035300484250737311715986355352171924262472900379820686846743167565065249613881285349612537847622612816390263759771058159999453400253415524127916133181172544372355888571312706152671064266469573128303420784832842613029456847947084190507893918291473012998358336420360025698678273579494284851373316601563893221840314316174822159347522272102790907610810853242661469291562415181245137842374176893134794158203987721373410255611821514412068992308051819790956428282485751769221831197566063032428325256876832619237359202694196235808226065369280128449411335464253540055077320270367720707434560661917318134722305351421017196113649263747347123907959159772659901707353554626962965783833073867497405123813080643787093800068205227108866138225523194949852525421534994895762764956789226668613256314533373827434394824634530371593608426210203635553846121703101324642171478846744224037907777434281641716473489283195903653225567972817717651224992549284101780431806376119283268995772300441396896232958453656585371854253118691893917402604259322547761684227922046182429586606492318974101889673590981364544387331697568906889697704333801423448465119321796863694119049584866813919636864673009216638599972879296252958595185335661760384261699438249161081476749275435435974365720896517363760731294554168198109497410151872891689515802854833757516597547577854763847445661249550665483413934153253468482896954338265321188269769945359588597468111980214524942769637079426880339980480698192473655341699340621649237778653791574342174251903298207298220527375777677343731925407416565355442158131812530461951560481522341598827120767178148728180160546657661437447521301072957383112441874915574614926102940289137374311943904622820568640678165971053364815818468421825555004745849478684159805115206108031419267470136073115635008447471431146526301624308316124856802636133706125229061911437674638781414092630675791543403633337036537323231555083915420622557176219995118521022281329457731786036363610666242052243530865231247288090960089823538878413235653146029776629868343843099690226747348114648970159736825265955909027445384329289706828552709121881264947280672261664478674832842345944112299676109562242135539894198788326441889245207597449136222288363037922536574116742889216811464412773813796407954922720094199835438092803636870893134492801956942415711442471147311049771430577338092375173434673393706946106679673793049289766514671103012372036264867133947141218498308456367880977217180421176255628705382984386570719065554945117873983208141819845890722416042012732493530303348889770225817958279987198599410942972323429293059023639297174749265840684885412387131494231303322235721494255737673888654341308528178487099090756721995115557901452842545210718692660968597000436726005015362639691212047529473146194140394738948209079459608775573811405503075734433044195639296670177999930567995578795410475425233182528491832331859049267752211637597044088195221913300861926942668835225461058261271211784746862848772673650752097776695901608355537869567257167439765434235292449196439216069885386390164165441385231262845447669071433849858080469550659201369622773594362121167401104598441496026123455187588758287409524486579696092282747379871585327059798434213662368989413612755962997713382985237660926831119976222460479398586512819754023327464947541991128310430617272868347528911177672819722664570156793116731634869682044207319637379459854874110652384934110412653723680765935975337435741911025649614919144612334599764899283308551139541334032589650020549221639538535398237096608337616362808684014351108193816751413184693115571933372644707623458009751019140289234689714724759213241588138243421549226995157851685556897918731878757374868036748489419978779913076691958112841141368327621465575070436406371299426853571911523555358565048888106447634292197065583742517876829724467134859669995531264928578604542591193939719488171624543972131336145061030765638276728577585934115212186516473259806515261381243290614797314906869984721877481705364844341621418548725348403282376973242555714506306738856625991434379211396562158965113715634500113042274846558190238624111611956804393964816711115086304610511423993560823873502486429698723264060450285518401444988392488454324816212178653628548099517768286956609772113417101663974428648392324372179989767851687330320717179144349136157724023934234718224578562839045616801186431296532456084269649490393578471253021572938429242725331626353341967132667627655672668031287474701632448971784485121223284465071762627563755158956380293579547568455962321278277365959969149571043142446869199137857040312524616515669948021941842480694114355928219403249754857313167288614761141657185777244945422358087547431253360513861316927825477265782872859691731197488728311825693774203794451229445989935110166777394373982802172021441804165944352845425590118208059545689412269659588944332387268106627343787465755295325896469316455418665323759291997826721861673552728321924402276084186551435474393423422153374526863004756022068949631924195837943836058179522590106326412722281378199915413433948421949391423845534482852417054591043710043397550542208839041669909894385176205117776780782063470032584293378774456699046483176779610249232979047136211697770031133598740646554680563130613338711972151207917658483852276773125971967463566956432329563454702992204617231534458129661757917854109538936551420216624197465103428157384146269262945178433307950288257065686102897089151719959401187873128368864616225143258689671948748384812307744367881614857963138572355223353679036547649462215528814357725256403128483192281036889512049112985856789031995725195119166521396870836255395210327599367281453259362315891883903009761484723368622403534515557457824344825807758652724455946539667089150548581612332955601322549698627537679927665725586168931068636219592751141599637643935755225595513375842876014531369960324959881871654274537135904114949673017659814818170635535644706966468748244215490162134717757751817409895551946691969943963626090147837732085192555283751694522252629431981306495742067747689392784442395289208028199653430116896091923058084538681385562850215792839439346267489225616078757191450020506014868542991179320513279406586356646210846932130241513724959110504876219232971675325872209363119424775591998569402324242374118585864638593792761052528681969251392447819381868715271684139431063101696010400426707233413591040744720029995319258952851924109207690572032700482751678753851952889770207781416395376246134416116123662514685807388896226176522281774120955862119209471318351010327605737865216809336418813361133688194065576289666766446124275439806721854458933241921014251316966522738352398886237674024342527941062943656231460292044196815520531732659241343256725398254125964208684537172392377079319347165119187912053227616312204225065620536456639275807967121340277030391118256452913899265642752575210713144832737125593779277764318256075877159596777421469682006673877755983894526179234539045950252900415991614842333965324746226881237295606263856781775122216295920448706616238961953430568270345449406927789765164587917933590856694719582699393472497459204522872526833275336875174680629894613159776537851544782481985723634397135785053815984788792195133221521851749750184085606924510434291585903847081815433408753379343909272013391432735379663457855398147573758999796390837999176944279600220264185636426139539012832105172973481458069731696614983817586206315514729642030927394053554482387731312144054658598168197769335887748490462198230497038877902919074709104656272238458685056048628161878969076443649383783564857828718656510688941648360946180683427567725366136471053192962616819563220514962417037789944237822044351298598160036893877677618781864398329927091157781425593915192008610312516946778233034869861617390533855136784462256415463347937090135781362446218535736371651274902449053685250491976353271431608716202614855636513882742734131169205403666645060792292931586044854546719795143642847804218478249462634611645783330519556174567199703913620851386489401276849922616439258057261864117434629583469806316357867360700275931342627020440454969314113478150252942927103254858899147763602984988700299790694415871231915867401485472175719312030609881515029504117684744734829430432959499127161947760587012393798995823245805868841976206428952348100009614606667164148685314274254267789642518757267812910733738582488295188548516676965649916478810191822853207465879743668312341270108805224824872847599872582227003550555984017928637614741068543714206870172742403019233312238274204128181775958249144788347845706487924630899395477010262906593682666744547174563903322252959966640249944432388589382222344905218408178676663986779308718017507410230757969741728872925624330721108623073402888963170481760131636423341366785817810311618148358895729267364167950426072003168445831583190436157536120254180819012069733997165309010211050637766638680396824505165141740116219622024440287728210655214881541033297125961835228039867169754486851843538128564998248711878318369491112715758911150382852467672823861984504349043803254777988362797591288904183186796191748572915535122531752643077482840749565146235751836762763039084666679430562907386453832853812815633055201668806269112172713253487487826646537386004929579805704517165437411125235342372087697740912930103065036885011958323745472996092039099619335696766491405329472713763943199572350950524000469305506373505512325368353233889454658586111574903529889107437225819745937291204219052523322418746704671986688978729335165229231378305152612783768524679362961249748666849406948902022429228228827581374076286712636210501647957998234592714679646862283202295435846957589562122368707758226666457741162009010445645497872412212114437756650892339135981968492697259038354635313811848154782703141408135703992061139643642049175861875252798568203848142397578686498248869429181133643792925577370485746360221746511781543916860991556423739325877320022976737590299031688014848990200180835490611287478206002360034990379157416918139625532405394151050694186862139889822293159661004231305658745828526844388677902052499293375343230279147796460197548512139789305264250647679834952379671124340455912756062489437684283519677598435271217368301645014333251242436155389405863751476377722124360354333348091669579744716189562116247953789238464533556499344300920222835223311211413953745320380190926690037281681442012622287772092115354522694964907962185204165696882362105892536967724756719484204167926513510278363413464788672166897711871475289660331644818764780833384638381992587632465119993528306232624021121011742996516020826634545472363397488976062986891524529767623514122197585096733915395080990229531381597123676725300967757535273727473105059373463942687706913129859441857159692953953446677321844468410556339845878525436107027423036488783683476262109778138561935334114026886493391536457241271054075068439999670740843959943971694366585104992027244838895463893261667536593188644914612545250735360812596081595312266151833606407152959716847826246345415722603149055359757854013569234367508725233905424578810912518774841035247966815975402619537326048850832122227175534470642256054305483322265862751953976112632323231650742382496325512285285910895072900529182341210838590412112662765575212343957224756533218193247006317169419933966621195434785128913508654643124594616702217560619225140898460963974389602229873862766781616614683512918142695792228235562295515065820613184483641447319997062231532036349145912919319258061424608801472363314724936894573424065082679217365228388136096238775248785150263884952276784734118748855381434801146646655591039763303716832529805354724961813760819620692994047999129003949536592545158173112220695139570916996710843495515013052395712665647582219314429229434881351499586188538327595481720162578371897094931921056287531868093427894751585197491414212490498668778489288233941844282185336528659159018487923401196734671957767183694616328976852587993747514664626927978189416666332127664984328994879979276316675846386476765556761031654025241652701667229502528326883141396041722175679682767758342863349514152553377973108876254564112708575688097233833418099316149869633657737022521566783976643755066719166853554922698789566999464546178882301501056469083514148371639203487883036229129372641576024992836261719087272029163583490668345529212752891825567308394723362289646591367759032516103614794949427977268328188536124909684268789324223120786266361553416580475576145995418251059744236494354907623979710880876321600147876177345422631262846890588231399299407225589454884594313859222500257195552788233141395085201077506571619718109736967711347556830333415942599277635083694387764617726550165672758486837214488703346590791937606699461669454645585931651860891552433106326675901934401782655429495381635866438745332964171724516621859841663775992211849589493829811301274800866863995804211124226647495164940925223577729021146821464536666347164539642372981169199468063776180577590677770348402776473538046867177461416325751007343432201689964555733815715217497555596574830813292174072456146833430908626796505599689959223080211310498875291680402295091400673513421565355891906556100012367291804142037683386666512651742733410474274687663602417041578831089277984243444813135803226821214767839929764774309223341895383872755326115351956952358454465907355602806593206768044829423368601570491216978564962749165536666444081152376983178265915528861489348694517451569013969643321093297453826715650386735124215157529668431719350235702229709101665182132700567577429632842808139088987208319464823712889916667911931529437234729547976835128544087541755627979052712454096330142573568926424048161774948422538447581207203930866643958769125366471286589431322925861973404106743069721682274337671560329201042072937001610147763677613126668484856226956351043633538452801271497288476489171493736249587664153403245297206817814060159216865145766954464296703408728292712726181680126620556208105188365776247634372517081814793627133153529309703341535335540915640633805553585566227478913239962514223468213073035695109642512331788095129981523758562271667357666883182439805259328549958387632560568654019027936215722621111447206252691413012242758652197202349198957557692931958343033928629117917238417421234884826627886182819573488377540530380043448485436787905345186741802609287342572589846426638202624557955629882667241322814670285012334146443841879227085955810628774999880570855830846536046864616296781698496509897552712455461948405666236449345432318379852102914995615372853067258966323813164422712499172804562153534636057927112285659624598343373208481941197010568141801729492555529736681519691701607141814320893374522955043247749651299785264751724541170857021319924982097490882129740341958772347825400578832197532830120594611213082567565323745468234225666008259606722185176572429475681255338213258075504178580013515034227354717569587397142836026935514198038151157537100375388331872506171165290322559356877535561794395234596238692131659452339407047548270383944043828696880326767923761302963224983288614373731925040499392435551151225451821495753916422670832112862823349996467845176241028116038728860521272441248494478371765583775257720111493020567114337648330699187669782570017505205269191274457931013880503106541136268243569369928394330272218580942348860334630651147249394093794787908308513826822764522594572549967161295936781775920971438376457770853292110334313836724547140570461275636445826941719150730438763750815513748643154354444773841412626193684035380443077633740357283746895973215628558581465868768122768993177556706822314070243102827824481653945716172915759390747106983619656295207410719726898264298626533679562757239779053916237771559126182363412324632589790049931019253479937717956615897013132619616330310738901955712163371767331619876531588908545293893146454533483637856993405367789227294482155328565134504588492002863249821707233811671354138284625660201084353028567943075761366512148877487574538686834866061394023556968790164328315464943689668211166108338466176270850455923874097919359159519328110267346679192376431056656024495262923375727230463970488878379353876781280668963526595081842569707716885473088981169048773763826492487331922799886919511667885816395459195687070006246651822268534989573494455988355213655528867906332817259301099792752317293914866322506473605073912494812469794457361993817794457748735583789837425529968711966407278391864735155710568333286611150909191361374969913153932499632230110252647536274348384764580742026286105222327211749830996912809484917313694922374642278005937643331533916443166568379263941296943693526215386255156019831688497604152543302986994403439796067437056592249338904066636931364414531391859195098151355133731464506503344161517446617914222762942534100725698517687223786446553202744713838854228324942298663813435924518286764336415538255264683593282109333686867653391922431200810516599138675321944936923056063777991610230301147492102015974615205962906010493200784830488931887285704550622026165461994219236422282291988101893413018533980239452963357273289068637468417671465359297445257593774586942148548814625237774436400782473208045861670680684108410415162936264953525131156765871064132062419303124459383577743213402828541438970965653986341974992218334311684740455213855914441993489712541692626385256336047857435129082410677314273357635255015432228179455571915066391880522793001778997093903629509125715530396990670586245964407536857318782391353185829298349604739558982109097746686043150239253199676768824519784182341932488343349140612221827089350358343165879829695480761235525521568242980468967674540316995733445158848406737176181734082689915137559073282184324945445758493237632460126314429031241082118923615871348689656943883879026547861847639497802045656057376421538306049133367006198629045797167720867515168573460238139114552079629387763557265017396670210012503448243489271807938723492097321404838186217450364914957203412707594799164347277396544766110697464735217284877251743235555260994688431705297216441204007224376967183793801024684912170369180413816391172378894158884532309085366835092336713144041892559449419773831427481324154803855821428845113520282775966616782151113840639806515651320225515812664858871145439096570370076670715410412746413412809964770315188499901982702416338392542520991118539337507467166780226472086183128527429738621435045423322290278529155099458252559269001649627254554758911605522472084459441036210561147439125769669127221356387582218450598053889052455742511934469953783354673119186215504317195909867711996758028233867096298925103015385359229827741231122076529891387163171406565105909442515152559936586879242164678092528868331953848373592067379164367404482391657419183332233616354080311530532394215482986506241870153288492527988027206140047750981427215210312869765237287866214176337160332641392730222901318853674369400374254357141789246908853497456121726187572815376999836338851285161806281365258974145821308064159738863199357044511539456854794687089525338656565103978159541868330453470531477718365138016245791282551133315776925928541986051223042509299251278538911841241854591559783652572396464267755503580895767457370285628830842791317661548004963228139754234263233655155928659332416378765048550381788047082626397156527461456780625706353166417741508110448824263643308260708177985966826893655929836143078833715157262283016801974764695309015239861340620223677019921140350722928475554093531636351509781439893283183748208857880889985987085811804248482444061059962763398434495828121195520195943302712788337641319131784503334282765511278425166427802719474795027890887462989724270749153737488338104821928190215314958323324349237563361589758599259568548911586751579141823366882084074572971679225012822726850333372081034779555369198154121919946680811920531340666422611415124640763644138528770159309702151923391101244156691414125745997597213457075938784049273767550897434141615909187543166517913269653508991736698903691933652323049047813288915244136199482553845925856398248734354442581275389356342593734175727688473318819756302426742236447663567923689368053841578044815213618959224893830318554541351310359293655138501812580521447457027799956161955538589411447503429783729356341349456571731550569869896843936107456411023655588379303618862956804577849338966921185541940939902564686548163866574112082069931356743545476496895638926121013384807930027277254365035253221208136562998769901519013382811429881139140367165896321553021251625551229420448168338956528194933530411837912473446598302136674037745282915580414364534521708003966696366649050335630497725635439669728545639857421664476223403890773822056297385982139351452311812184894429846958215239688620742881284985595107198346350574957825942865624528553623740092365072992868422369731996396861079827703740789762380954925592251305683367191242041442149300819333756380838562380121691175864966337604508208114015549512991941622718728512648636559652636804680341950024566956158221506822295891566961895819855580313849360447111451781213182656134726487254960780685861383597144765023320296521927798088201294977963916887976530669787274528516422951307613538584747660374678273366560304128168454539517324122664347192341621273489323784471623699077360643172485543700552065732245833951356352469117846158667154600985145848805592951022172475679186328533310852365917911299606709631186358579836895982717814330990215287784514428912656552015010499107147512662397124806183552709212501133612120794662205161726190193611614173850320658555094883562233453282817294786414048802959333401825289770469442267891867035585577692862137026830069157822552155874553664856734737567294411632198169381146184827631606764452514616319294514621188417469932396960513301124971654623614665859136343473891952151646010089141915625361763029885891653552996947112775932363460559477029402978334712797307993967344274136599065058293616340386356108927889061936773031720858194540941914545631186414794353649509987671856708047631725563551258784372425666346715980827959175864291425451501399788375569429468829412777685702112510148876625648825843239907105663198944052133917989298321786370880983836661889530330138400572791242002241319858435084897365509174266223246817134856732298719628262737713522229523864101549299424709928717341505913608803766162227284513436391767210965970353490453268058110573234376353438791371816841345993209782996109691213030425872152981017349858043223262780477967726376823979039105414295216772552401514629195292936139084945131271489464562663874095847067986352273271216203475809751547895064134300384090384752507457332895078537707469560357845714486200846133682836154519420398882236986444117569129911374198811542906514115980172431575455467203491923996139845643882231728610431191195491248745414447799819306231001975760139329866813374587932017250143299228783197731420753870270721355808608287945511624717562270103113231997306255915563634902192443263991891940343327918343745218238186387072402567260578341451357273508974381171806753072573593450100540622091474457501681341119817268994599267126457576443493985503064766954862529423312780476292612772901975093121232073849172566245883212109645425719548047511856735473496611715373160026721221912051245514621388096648602033125029223193894612854665863852564856418097688876723053506900872216449753437916256519304061170933407503454238447393292869522215071348233743482019631945207593496955684716352327138529528205781833262784114726484123488227646603657610514469584383682992456868230199251696961271860366561493858580236112656622064723841764827376687274696509760340348495681159004611258926086699338340872424660372027124516774649419136337694445646870546528637936028393723771548363760683951719166873258945344264205099133979343379626820627930141337726883383490956555090809910808269138409733532256643904386680925387863781548255529549733737199289040926768665906056112412885937883686238594230505171472633693982706596903358056515030264100583789148647515604803846615742327172441090304145814202599419715903566333876533834021107596176028216103964478758381683822325468542531007963375319533359669538699581486136465591432096829227683202390431173751758008349312692019259144066076434092587727487716368342296004877463165457555875656004938212957654220945764579767171188792524005245666485395167736635824614509357091672538544037529584187860190775590512344654343942077166072712893557563082434329747544336021955955608696001923475152901162146409661632329471770841834013942361458893323852369816110850041321829845795445458159366586376907342725448683416286455914535699704675976328541467281370363975348741648357461263356715786876606813956698255532712631483452311442225424641611741945726641037683999224993801643466824064645165876872584728975926193532661633933245331982463053379733562837543167465372510239385652321857178701621647457695278061897333833461215225635993085018441331530363658262826384734850269036227747119865663469405161829379486022986789977740078567717315356543417587917781810515183633755318129851985548317524423987745327395871232793332799256048236309272616783633233581763119852206029248949627673994309449948045927753544365124854469833956318822490873406131247146401447030233589275981323931675854991091147071601303075743478929628061518817080417995213813855228468011318316658393806797081183071386945266364436388817573829973097421102854940181295162256390909420623007900608855920583749912039566424293212419041866635802116512478302241782115971613496148942876598467981037986844169082896551270294165986525459139354527018785697849701187511420140137722136652713420928529825700929711590565369219336934319822305339210220682413606736090906462246742622593681925120138195782517084782560997792588541506394801455531468903582269713221917673821148630886590758003731492236578176640433604168219884753219514630085313437224826034831947324465235476705350005050338824843669843879813608151489942578321811295269439167685037820754432074254275968295261449795565426184423807184690001349161487447699028365536006336951358436591737214387277875964767168771260326464037643207995533327926637516638199516716629291226311977852885396600206545634452535338496535129346723272152495011152764959407508140736375999458376786922650513721234148899653228186621846949844723855950668120537625193583594592288822841978612633071646679622184291496202156843644631962942799821204536142420822163152472352243281352721987170930540661945616778440911466963352579146644412268028847719628726041121248760617156824302649433073966442305911004361404821635497855445211912606964896876978996518637695145595079876414025062679933479049373934916415485579618450912768942356423621635147050014568775291724767721816445290628906537974069719249930370772673626534774711323552753263923285657410608168688572333483879675843656627484878075572323126071357324204879491246648449378829974993859392917144259162439223339093900162737365822674810214714360183705724244166543956682348197365510381841340277321244443422740704591883939374416931543952492701248348015981989311060246082701697913445110313677833549596679419221471967809064455106541708865026897846172552177779262515272825853087550296455123178385155774081882361389158713560370940673068700760587577420433563941711216783399687984163367019834130357201884667435023362943848989951446472818738895197484270383304365888440796742654622782525318123527980995459297111525658178968452428981765297709001211215811467287977918391733863955402428028980720984194183330744279140714463405723472067530561902548223050218499651398572245452635734333767554574959606667472987801452379115369865158387789847602177901070137948712508515781472558623861141034326011512290135119559481357757973444065162253073016781144523407332467614173048110597271740547154938934456571076579249561254825588843117172486854518373752561623121128791286670474177824874603781210974213581608533198997348447624836341397863557468679289771181206366358175757311835801123409202772739768322494964778562814882947716999280863668540842412932370625895490273012419167984169285877616424908524787262206583784682763521848979331513268853431048484991562085513306386221574233450423749958931332631717322745877354110151551344984926351914105159302729227084593608362993820809719776948909709735783977473196334359624858841149679278772284521653981487277503644519724171736467483668233035656925065485185088665897671853865535419637262053685125058026165149503918931129883188833755878323999940353889365011137366822464301563215511993720209275478986455684295539781846717573025954281974700911630079534729971390118900954332271123643635752119095483660954967389429414656162664334081480961922043550240362437170467269896483759796889324778481277143888265789042780711495214806372091723835324265337930394731877605880274008471507562256361912491543487562238495115591927923283067768510214010778897921443286022575373548959535658106944444741461067315751759384093542468451879523438175510573430906772209974564641447178176837613021740412613104596035069822434849898586154037173937750664685177571963278375266201445487288531842369485340184644508400297207118286095505111209319294725458374919558209716475852045588447161424713911779087997949255297417792213447952937585215222511304840867595431348392876032253945125757993566759757112393457745471476744228242612769662361147389609828584713462561827356319221605893432016818649073367128071939365520812410113277847405574357236650209170458713811778281204191868266256774109726035950878461848391727627629681852940128216304707999679767378173244395353797477501676881449717804010130131272845364185701467231741843459627682525505346861202601998537218068102510332259500913515627261558329507038934819028760219347922345327303123064259647039913976113637134202341375135839689111598331593942138622326064246132262986162119199934557420120942469611052523337975417238123370296622994220821523153758743335935604255693520066352604500823962121112529640593758382633114329017919030653233457099894220684804431871032315118965216774537402579077786149382181143134126643653558423944764196100462612231037346980061264453397569844259242802443151826467212063437046848516097464264126767640869775494542911689227026557253423409489906890228316916770447253781264314324537867991143471457433770734534169555474683842366661236408571253532684147732281082451735578811164323327351684037943458171327979718249730934939733979436244825729371679848298395130630591559716198339787188422575448888680844397853142511979793989522374109853636486009121814705100677235038706322574758736701481824328776926999398939804577815245821529973526273873033795659427435997108880591726929082669235282120832267828410956785153126029491416066656391992106702332393032902965954543469387434154538782738411461316126502833333232427917530335085794946059876323765697190089785129162512228611061766765130108002435264982473535915585796018572855888398263049022051407787270330071457232855065783657585066771784065474433925539323720454129972293557590913007399138966299844940406968812487185932177164295308219524631187283046412014952800261873707927341799299639952843587674025529868470195825134128905074310485047638871774680842136719273124862196821687642559559764497163315422288249554218585277784890240928623984179831724358140522163326042954636854445548463471744502042684010713928728494751695495183435319263161731716250542761377272324383260956729252056090852408075220945392896169255785944722186937954186394089236583197412156957844087552685938841216269588341734253439855386565363129493213967262515025626584163588152741748543554204341544211982129419668847543670629366827616075054543413669193248829565772502221669942082153811851700129297296239476745948080608445970743068548988551841544345852872213641523568035290175237615965139117333393051339996306466087842502520896792907627836337514914371435186946374761967395761525386231161702370142334109608751652279875794514215815576627187273572192372559376580048499503756047297295442922198779679788860629678372829210612427449291129473283877926668915949436799723530839274112044944284623786417192417766218997151178166125170441966595587990769062980814799104571305180965342633382434695110555772316169379094744741444473605305462128573635421442769504464549322743234195723553359471617904272999022202753151448070135762571544952869341988753379761424603607323123554986724228239845417527111607436987381382579185208521517818124571926954797020167269942741398590472541485062114656445415300792158315998520472919560676724993997858105670168977436143894674629833330746514491184518117825103133466218492227433060145990554863218796437497566496562217910248297504667859719711109436292356324255314896947974321314522900407992338374917107189973137847697571613886407115423161703913587343254269847299652254906111132176082823947294862125130513520672138702632940262175953175389628807568617176849761139345967335377703476416797019888824635146248119781322144920175060976175986347423368566784838831372534581598099874700869487012363731911803890402968586911432491311834901407984829342518034985810524417042146172152666370633173811561690234954025955579643434201442419194292444330606469361244127562121946996444654983242160793598572474199002483914497714658903482282497277711968040792849773607825295430964298986870452199904294344979330916614665877664732930408649492974304608055036728091560505227268459615721237623566443186423284916013917246086024202294688117386435651586265130321876648423986869339706234266950958035016629667192004191709244754233929345204427399668147258111224205442809686625964899326122283527185614280269088570843907216263269495306854529476457908946491457608162645519490089504986166594391207359849121906963333103496104396996481818083786105006679476367716525739260836365773459449766945395491915580435677835188475423171220086250549898637056263230316662437725167067652714416867231066843216310899792519238309949199429424935157938907827276581771069609121581928571910792108839877837302343628892445977998515026687590862580768142296939592441456574809692443870546579363944205048889151870299457879704129977498016801356889486667439214354194259161582817937200690897867418351891414241941586708621566471370163283139546651547221152138200869482567766647459372494717153614407542369131143785565428758515567856106593903242361616199644665969836980114123715925177260468677027811226098315678252544797422132311764947801584384750330848863277988375308880519182187378881810953306302151426599695866143308313295418424817401821870184509424152370217181343647636735552151474884417034591214567293053968639209461457579222600218914945461285469862830253675483338236738397105248329500297129929189017220687827048026542971954361934403738427057813365792183284758198552244626471015981472510144745779132031658073222112445679906210703667157409075570803235091873947447170502695646561429739212699502628191162001544184328267825393512100124674765081381858646501439290058722249614512777201935412282399718622802536043776743853127616820564037108931884992130718906197356877368118509700187572919095567884528702563342218158899942413553517249348931289553594486683841847855512674503920747887306116959346798491702123860117369787801016496056629539119408795514453596083370173356025009327630037512053971382444603514759315715766145594989203798178331184595628114788347718933332435934816053116386249103637330101026033072261103143243295280687126179637222283516863867604738794227396016030570079116647345626302512247184593694689085376078169046710141109386413844422698879890095753382232267065447737344468711619293753346857077755728158989747721064772837844706917344146366970164286658830631349096771453248010119773345359251595958742950709255887866102781018543664156483646127226537337179471595003417848208411284315041287187629546087399116857312684567830925749346754360955282633377902586676731558227412303186827943484516431615692449644270347731010830280103058462653556078052199634692701083422874130723844515690114782144300625758221617878756713337651573760155129594084827467901573169780831722324854785226145107400821873259969695938691858238776260661732146728736732643987853328788741915341059913745865518437148473677645936356697231062221927113219608594685321006914166626389365722426797086426796779210242649866095902251041824946263346276775120538146351959894383788847253119308918708294395412294417231326492587928360737562076417451360771139391504900349019976102297638113876880920470593898390049226767459898133180595315453880985861452868703364951571996104962153490796771562204083812680837900940682375410025479714158348442822671967192214436735777587187870444479363205554810653331099727635282909224706210484275914203969066393996265855216353670782795375652231392875293490635155212121263684752954547484176124960552048657696660550833659689814553724297124389588115529306905160983434330324471285237831888269420527273448725388015482601744614091493815568205822612515227907503897452363611296315595441579184587311174901828755243224796821903984306137515495887924320602642041491712762261162879488553081987219303952997139412659200288431606676322643218326791359747954152988134292972018562789879435121137986127277792964463684289413865256454591195532228165217804728333341628798923679260469039049597545956432408892915250503724761757342080612225580758474153248943386294725843698626918148190543863957596553974869208873915645169899352114475291617498153261304109328394907742987731947376066707381286373983525359437193015675123344562733834878858064538825371853040854951859967043111172547036259035051337752442303356139400082381923072107005046685352807690746493242396829685888249302773421285679946828453848572775641165154793112232149458705567887477485473822001228175977791225416378879553641613705806396259629654766992217595182697430848643698040453578713381786369951951455214770821571622730267761930145526179837134588489765871996463389422229555678045287249556794514023067626873264556952282024579567282725526633863942011507733828226879112255922746697435163945127263909377211573557145131441141667692881625664752627421744788887854258257863386191665668920021869290573934965868611994878369563725598762052437293968737702431823609603939808887795205929854897993106127875266870959634691706926936529746933248313962426796399552723384506475736197616054171374003215192985359665107186465567320443976719211863972061208491020975696259566853781013735474585927981918140389376480906927469463609979167987342490577353425166944772271518057198079765266738780697996031274149481421066889149110739447390469174216270031319158579496646127690825737667434027159665500347968134571427674048146562864601575519610121618202604249419838700636929227983326408258566394428915961863916775564794136790775671197832740521832867144717162627418705488133728380372291249405754208398436723359925832714651735464811938308054248144850678693546248181857931250290215123393127568096146082494573149543638286352245751061382394622833641637307445514173291547151526517432254977168433545636312960259926735465160635702087147388816149139853428899667654105952815099780553386370535762744679153411286186112068005665418672973020464889551611023758922989620022153582666149444185447113765796374573475399390549818687355279148154485143195361747264353824847530752602861954695832518834027895981886655493597573745506339496309237378044317273810219295327536169161822817611868738785216153361190242221908478585506503182711047555244006240946441544351727165651625273768910625340102487960460179739250103841985089284100665761988841975603334223613123365912600413073905209522170137845373935043930537429927513232764666532764762596429592661778792214433801673584762721160917389391314897335339258420045722876509872175844695978002255326793952226907975173060661733447191815334698078371225248719000718544926015100590056174842285360525841678952617303277849073034895693827042094687642419172694864907630298463221436762649112897485949703629520554864019731667512724256712643187543314858354885876091969084626271409770398279515337605016612935510995336446523185234159747466263290823917981897901670740666238225655557528020868862817271540565013617919620903869564294641202592249171334218179054381252446518722564929492775440761704474848035852619844471370935962477771318889943574899969174661793239182345628300549044049627371295914788572421318124753187137585075159898641515025702936548874587519133955748434656291434402731087801990975426900556849855213229176031982843141797465381183061574849418283962596910258582650874839575873493872723647890404314599178816197415435637621523152125648389711493384121453004855211373881534548785646265951342309977644459555276350016475388535565329594529367841333383545871644742283845064186845102988660992280674216167714588276549881860621150128865615359527651797567083283658253967669246373491884194289216678225469853327638064401894041123809444855869159318193179454591342850666847348630728113734184715236504844316076788745018324328330070474592147018390111241622049153662393584584308092311908946616358307257203464118146682891235597117237877503717189283607761233456100814898365846563708262516048369639472686022299043265981407270668281446869285599617271980969717288689300253192524237820328365814548772498756152194537138843946797718753051584533589641863258647089455989039696113411811751204088013933995584666746911262479387910864720339346815269571292269695482353559950745613791958718591386779522930345883754556649397088668640245203914693689061175674259913451859125281280482831066218188971358178956350999543081322077305246933093177684120839438453468205862220557124457446312397595706450830254501636783752810234022416879722844484116708311852246933297030345949594860949968151697768359948051329123421571463744733219329534817244521570276806294142576173995301640858743874238425262990050668304679082714072980313235243809143998856592261956196003497090910953465779585662277922651750921382245765189313720227549590730201515951048914744180273718394177158623773969876688412432868339915039656675243944981047360414160787742165783404887153136528704078415381415117498139815343954654173023734588523984835523242922169526726977936910893858625793882297177864773426481398469935325387391183551584542182317499662736939136593238585724694556407784946746741907130072514771042525624863789446863648779457448826935821086465262597298244865172358968935958891731857122498541572413933392965402375070353366974424963621366368558292802137372497891092538722191805583376081580629887582276793111765812347451589534635035248501100870873102098270192822127578580769057782245633712832035228264187032066183275652274082075384932018917161829559553398877218191070759835116394314875722053694687819893741396159261155369496187477124322890215198481301558272930337989120085923568023674943783267527998094338853070894565588234260361733045656689799785725727103112465146534004823735495942165863190645789399899158683288201094463749213826100812748202117218144602246249928535027342641136926061582353127418134213913058141059607323119354302882796273431848483248037230791665586105523240461209235193411365847680219367998912639568222111378353983304210814599804208112322667684097725671621653651603151976290112212860429584886261492411960059991691760203743866658309492884887519093801305903574970665681011243469428429526301263814453967184848577767125863081258476979362426942049953443719615239989214644327614216971861671353275458796846144954476775937385670883523939767492126909670123616842482242294782744239291281633086785255976540422276244629562853456572707179272101438659942099015477272424496666764973739576399277152591962487634919746357062569789186933332716202742932367849858472284434553330527142652041143941919792976066133416741779624760274415800175619919616623993456930799923943378742757366335121916627101541826125274254539238780744557329123144063199561696170969696437131261743668599311453255977096208717833643124838783259074357126503045850380259311591517496225039897961530354375527499468373846556895568787931929359233053890438344127057323175630842452899944123441234260802720705519877834628626463732111483375402974968090516851623392227443305263847320492111540026823884243215690817417987238577321029502828297295670515167232748821587881538528599478605820119115498438849516985888782237753343043140227488637328232585511686760978116714967947864468822824367410877927675638224300461421856684227442824365345118335035685996985289680259936273278237898418632232902116688542430792649257529982798673826929397401948185556943051428281625421301218197795814582954879477257074103906248386177330388336335555767426526867451263032557522806826987808791158870641017832293581413874040159157907148321985236392707141424677229735578107636867780368275640788491906553254032541840672833276962283338800647429382305311939085231970736323836837118440002542337313881942759638055478952263473629977393698127565551252574856866433877136488579383036909581465501374693798634369534810940919583640446471965177923626786134295687962688708603298686299488956618666759344577154320338855314389685759470415237461303819971610207992193554085922674689432850428010870614181695321615326003831234747577925122176153103430033159197763855101382119601684506664314585865361533110745193044274444231502139975987835093118729427481862520367484143740311997643530116538879964124549623173281677935568170348757549842553355549007577993933397338822841214260307247526720553840283294923525443628237585845844673275724518123763679418733655198833597351326289180609993588267710652151311772506451730315869676005543445909247594128252377909773158733617717837116211416712452563172510647031730794436571817437551433734887115151281314134436132807898353698558393728500369118805954716083513817204937317689364083228160222315120273039434585212325512186250684928263547427483136408230395938656010417249662072523691762668328579352744489318891224137666324583034486791348699894505098990395134809403421293901353085267151337610163664572682763361683555750071242594773530050567683367610478811653206257391552279175852871451588311378683634905311814759398058288975436079107627373266710308803686513561148736998966734769998880963325572968928915362763574241176248490943860939998975989147490648664280559998294523052178732806622659269259565641014312318068329233811095923296323124539467220304972892510336987676508094525405240211101135414236808527543078587108312574281026611868270661942934894495389053366757842039424205538244381552616584415850541876971975535494787891416353358292339989180514655076254553188556501850366395142994171335579499679341081127359797108177071254515296742591638780544586958349917168302157127259774236476339244915195999294067195785222791091185842587421391620863459345545763801548920951209576972506479137012666391948289907126041923146506023923932649938137560281203737048680505748734945452986234765840524642136917289361236985167077711836692154631384184953152665090581931327059926393607875503460400871472971486657786701975566816163341663653987540193441485349366990072665865573601216540664452988048472876933337354143031658474654335030995446357853573259800937766528251642985526824090296485808597333454846211249949905865610781285689999243679146669783828101874734601034547264591225453693567451570787570234915232093171590683104741890640111943305467439963780107569179155745598482104039728942876897789363169288615477616111979695334729384757797042951772384534383354344060766633829692932536429222853969270765841972150950778126892326022784974552755381466654014642290623612534314998568826233106447961637851386217422325193768912546609241456210123308145562010615651341216305056165319221426554321234823423806090998554140364836879934657795814142030778731999874291671074458104933573688704352929884205126224312645544308064319179316026358247174316184059255061484542758236335689256396526371804699193995880540238698971763829334915134401136255053353917724657996033435841626553787178649288727327151627987626256402526725411499881650472727292246755650436571585836032412725451575785303321491183784552511808325816422727741921397385265837579391256498173877733285172045585549974213022097486479518925101532078181053908924676483618215232111998124554399895774259843894839329421646951126679914212216518022501641150278057698727917662546926299846211167652303187391950115596024298083902262323753520377275813410289347666018878338679799636136876155341966169478753588896823875767050197931446857062556326208819763206878828725577243946432024418842998833176156092549545245347889457333657635751107947371161930902184406395199005222354797620242500235852222141518220569763117622151419649281367281102411279761767552274167336947544959713341405234172759694704417336262976604279075505212360149234939852807064810628417777479482493694829514258241350134831434345419501499796710692482887421682041114911986672215267003432584552531103622223084756878166343788940878241821795592188063024483453935609518778269789530444986555556245277417135156796483845556973267746545532390785581268753977490242914583712509288589197774665627355775432338504615022429406279496154352729899147462575976018118330377852842729488235390141713339426928122848946111485511224852223937056051939877561554266985685933835742394918452351566824614526167168723744257951411166591290047016037077400421456986657237739490165033858364962174216527152165546538350834802766150203806651150308888277102621432884626712617147631416395109992431838266091514890731642266331683104872712477080464344683426425499202156650712006911432321220803845429699563436138742760731523036657978337695705136703418258936840044432388642191137999133589803092177561641958597717246578524190931645344937219858163925648662879309573894296405112184968575083937533439159511357807032635779274295649027327704464252579073479864653857239051847409507851977606007862723608063222293808614974484617197786804662472676833490268946670513471287028332330263565150993449932616461606973385743921850399065707332684664831410715326716360517471655414416534270033159446789520824260569004566689474168137410108698147432352801321566821115373400533828580717457897798382612400484177631463149076344538454640894896076786611657529779492557886845351760484866495771315596555988841282654719154208433466165461509082522322621744796475308683533793045885057874611453064183076962247698661514401245898004023499440804209241533816572559473069101255911714404382684188274114682761389455413717435247109207357136940170591040487186143182574975977808181777068528874364889923211186028869910675592889220358929775047226492838883878750791780687838531271373328922827435111593931920124133616055362399149096430616659764531112905897462877822350857373039438914439212945693223995523384325258658565453471339867532962628330113421656907774869680662589171496553983277339430145622054940427718871510484244103792173951348288356845852413250387311161088031427153578634444391759220421476616811901027561858044447049235084460667435420633811321410969910022753667285008804385031954880597415461045197957027348111650816550539165430330513294834475443409615258532126485617259233114907758748866810911198256253735831814415496763215058083337719471922050298687557378355898959954039437669242024101746383004112665942090665199865734128967702658816167178347698432200548211883549023946871272408871767711409619264734421276526942872269933423007272322575468655327656189704243065993916055435718896990873521249422291045879884452475508122075115741773559316893405428150786798301866966456441468339830308587856532491965643815669512766085036683442943760700858414144765654130446574567253870274245720667260563734514631331346353234741687528632097641102213053684526622467322481083408384661424762196478618401290965758685603994586838239816977956317836098969557073449477347729475369320157741125131535876359529253176771014746238137391293087514409896132528735403664611693975018463107304676628375000440541856800702113227015661793656921486749431070843117139217933122630290994731689637866669979474861047381496674255443448044835567383869513181528883914910328533484936565127140104566536934578987860653659975847723376043872536454031224631217688681981990883401678158466180663347963172388751162252156255965484221948411738166974365378062453013414485869766282757387989867232886467210896723269944584538736249515214285982546729474869395964566144715864782630762392693551855413020917640739795131747842716958227841654231651590496490243977618869444143918495920176360935723711533941461666294024100987590476018122602692139567816606335729541898859462105013601237126051368955528603286784450171907985410168754207607512905089029514444050469039369145935917323764153541284675485315391420185517480804585962855463737257495765669613167948863888417348214963146249199499811878090235393396639224835214327562738649697965992461841117579222265404686687425493874518544166341781384952987765374918033424763237957295072126232523871188792925263775549696645778378158482906486945494866246015871685721908685553588938087675327254957882911695605851640607495596785270336399733033397528207390510456823298215622078602478169210071453855419913563495308426319406927210086482662904327611811867852798391158194813278762992227148394325049439903117053610255662946713114804432173547366055127521526800414563949941920359432202966447493609053488243866883111094988384661881688829892586055811160087519414296947573997042965310662878530429281122815978298162031941684979764763980897322035541438201630641552089679154286452185305983268894634705048254877273380022792133591645953037154942432882754599343215398697993434529818506398174371411192139735643210384452181124210642287614823365749235609055406340461450108508330068953197482293255258422402399202627320282128129627352321834207402817926456281262310710981416535027544613327768122618963026302788482672531892452534956515972404731956776946262173624736235648065878723401619063540755069996284922762780606292554243092453677841716325093047607769525233361318259534142525140404432099724285826610183677340726958385160520520322162475531251272142837019859368670267262757447994067818271158580904209758153938344179490734475995712158731570971919764406254678226779348454863211722528835689457898979935346436095245276922582724023106559388626452157178021072413663142644898328336436333686119511705881999408457368332555052334491927008577376652326104185416610663858961153133309356820663927159497161237552938475576821229259735855776697653818317594354746271904522347692831504002126260281084194590710580436928523420231747817972697002415234981563939915426987710572240998653625430937305870655656347794457694572597736692701851826305468781871397635166274948918001651903671569868202746234108830901891473919526927487796132187078874025156459798026586553412228378748450349689590567079690211356152399189409988969673885307279354398145337355820903573210345791629181464076745171411302264678416222412383718253315647154781846378676645266388568654421189206457684139525073252961821406432793331169431664415663348595895047541744577193813165423471742141918085845262716389104072577948121174366596993933132239077954155870918251604818200174147033338253108419256772396022210886480664116765917385844264665652171896826446155199244492066335831385997581298566696961051193676177981766552193186575634815929792429625074441292345011824269220349614446637533077831448684020160037312314815149060601326875625253317397745382971166813895485359336140630720208922934689413130688351954977725219855125876379610212618681217746948144404868637212949837116330783395238273195781627971874289845229212459745944258018843566561486855678147719768623895130920879243661753970126773735850798682719511585344228190051828361939133412617619194672446849986104160944611825160552700513038391676025512794448952846535896386753898789031691292496064107265812139688337743423913627395073118245523991913342287737790655808662689889317071335144016615214729526115321468069161694848132121128693555451748915598674080567327209915597142765001082706938196865794386115819916943449615510354531237279945295555777523531279794498967645521718980191399604163715137554506417159429187228707557829966931961251231637495947167359775735267473841966284289678172970153976241056083450307513196975164269255455856937008250651983497265848615972609597096014535035487856810555005894759626778482362376174158647559044485491639832947674550364623609816119346602731493753124517431774745320156718026672295622641491975422006428419171611625433164596264779991189263687651845337163269594345725728773459282730081677455682799282784668663876782260635454531386694363984438772105948592215799863624341294063093010085756163336646608123199614609139124923237192957093413414521704734389921742654609869878266680537185793729303955897143803734554285236352313997077490155452417645736288830148192231070281113050751064832808441022082932561492633622547939307872564972420921516025571934149204861412753163200592161667751994856575473767672956418160994538852836538475757512537227425268332469860092901847394422674361568342467288269724309771354079191787947551410795846942524960896395579592096675584705645596273888429427570247863287126226644867651783869538355796961266333156215144253395463762024992761478176582276204179344524332750944814119202246164409568706711352389392482449605563650932192663963116954836643447659082026219066662730881909935124272014191798772586949147166065982495796071439546687117426046273679843850058549033255441753433756387417404520791148308634181743944159586911088466984078276926375412792955747859818730534555582667057691972353235241035420396846404132969384420994304210061610693314587142665589449923753461556723854064909379133783451409075685384768889963916241485283850991041534825031950987781545228311339382826738683565179158785016118571442870487901653264128998441904060455542486270884133161684481244291908357253855329654547443801605744229492317531202503803756526772869985231518811960594917333795591103647500125863770833165413990738829706839792792976049266433950980554271201426173170129703307442677401101549642568915933911550588326830235328566394538733279207852966210311800796552602265848972681589368860872985346237178745719256585360172424196413155805575306233136576460880768263355777427248561904076752797507841106817854788487127744648813464828023397858857354299121750699583723827729171376459827444121604883040249809308305636137313874282759604324951013900287534697366975193133801061635347663983717885228960326892827235365531190042821071781141641546062834036157788653171276228226359577137778899034486493985331681264176787351537134271815882779354032040605194528552642305369616956831578914630179482684430415764159465537472173717882629277912799760702553265922269195649620254892349769839858427816503500524597010180374882556089601354341956353823090308136067396679281400617340404072170717125037528464861596212467789083718215379587237813471899159534730012332486634812706249645862217997213171455486680043089534088393343599577148248922007426289612127171099627960531568206673938686053735567805668147543440369549794567366338367373551801432313133286737596811741951512230773959618192165278028498278074902882470257234366294857120552571881910079996825525783363759231306726636119346675702110356099482446678152175214225872747409603633922772036546169167860650171805720115911975531341066424137525356393072632064099813910591142079796831324424384521248513274931772744540239768178940307579966752545779537759493060928653354880927970352299608877058168299194481497751741395264465345582208825226290953416235153864920468442565728371862017471685959876114957727840834449158102681469742908672651725137839668303590557986909198527482980666711743220381675687609061021444390296122417067900242941423725697549318879368758628298978121070124955745670913084521371454021398321224921523356255666573717981780525524229750560768496486993468243229369077023904232288012644425881366274334551423426420181026451741721139469022302710536970415766446719390924016696993811762980665636429357898880742153595122951440475685366976825106770795863029423198774910118613091261785854018812142814617178241389627912322443895073334875373743248297547744892825476885075387224018082258186287154224418320304180750369496409854103568842926517244905997916559775655732513267181815652885032626633577252444096861608511134397501147544672034177347716907987764294220031357463411656921545798921754290653600121880531704279878740199488493807188324774411492576523136056385972279682304791930471917216042426109765381875944086346550826290945733668774563677896411467931897836435758182769346137536722325357521271772025766319869254698953753690741328995027522911215179843053317883971984965365962297266087621276447426883982898552212273433519794396211038079714687602297356216015139187169266268243988310130363589969812189475448953576364376653405208521065349583627178081256789865502838192164737296058339585649479868595139183241542471454636120274862193176223209452815741662040649088413623183673403622844097176934512049165070787982975028299572748373035608329837419829875132569789785701054466273073205490200975106541349707460692085654539609712072345180218201494132425873143654776851628476957219335928226685535821242548617237028225162686338683414996871191857848551279803032186234257736276380899411910787441915036181251251297161320135455585801038167414076243877791743364201225158730869620297996227689205443494223784156674443808697927320576547121397597049917359811822461466085200943196926575173090116670519782097418648393950180086286625830373741268449959275389783672975986203164568666019462348169489298918218128219241220278582695585053224893505378811195822360998602923792364316963225277725904279317393494855216130183938507751664788017734158634975901306732531850943710496463104812709742136936349266119243052498225393224334999476059479247972515873635419828987093219082862110236835919319998374414257564411876403826969398096731608444945957537228722124084170645583981381903473156619770686650502142432884245988609515476816432372719816919657180179252610617905424593995091075861304957492454586307136661113439468547676237034475568515495716030621761611318045936406548913860611160011099326753502415266111082985610964201357885929643152726228642438732827610594613909305221909410924396269807664222693894146837419623533536459131223921949479733366149167381421783757296806649657123947865614306648704111999251846247138372392481651482666551696478873324554345904761234724537345406464453132894904682522340815245177313475343054567066638138789339751990547828789494054161374364849293720305633235370653426103472983158141413131387076844495714783150946220745497176370142757740975109135043341424751150179292051099912814311783546903443115010376540013177756459560347036197125157562998496261471130154021466890857029989920959490828488018332026985410833718481830343181535644380663578313574387739637940149304043816010314782620875098566550374026759753237191662165093238313937091988758659228532417568548764894429381148611496517062432087984831347022870425284226570761130860164836358648066562092094929869335330157354416968169160271357912865270989583814513939360473832175236701019091619083289626469077163322629889637712637578056209360518790672428717586798272066992981396277910228242945675051468116532167033841622567437987384361690281345356573933576028093112809848384533193321095998186195833961474432924624995887327410262179418698922026228870427261761552341851300038112722764303969552640621366255038161081891330619805823815524010941484201558934359658709703576749798564512966457417245195043926891179741843377489331141862065014622801616210565521708747804328302583460836541913110907377586627013029014602658002946545953494283616943741682371617212348319435005483115351292499955129422665449562799327923717616109769165538421357051919561073767026347353433547268683974647098143787252664529131037462556968128001592431555252009277258118679965332651230574973340686312197789941188377629174803463379956116583894592170267127805491400510202531557144864240545827874963897454511464447516135471056376293824305107828676391929477240218539721078875472691362554508008373526828575074632931366805948911881606753995684636673144453979616021720153113726687988574177816424893757844278535823614367803239248036767985378833829785817894919761949075067382521434792362961950189104433138139059997131822446991922688118353187562189659112941327863444562860568493831156974553328528134031974936542118719141740842759122728971981157965074879288229697706613143489239511677382415896167391514835570535841565101662494574128697891582785448078632248113640911716227038109238030622715478924599733115531693996236618518395586227410363613161753738765937262310182087959269351574050391015362246334530778793724192634084323908186482343177564393749177095727974778776486718834748662492487728013487611258258456978484617188555393312536702885576415197502879238805224961556153814449812527514371871421227555923289516119290340075505782629448342485765146549659785454252095876081906124539179245558022824673425405807340113262212463713702515091527766423097740635387252440614787199801301757612267012306781902892143694526241730512792028827169406524227073766415553176734195813224880611066375172119111436019538759508381203911795779815497501774917121282632654299229821854878150665407949274869376087618483262118753885267482240813114777432123054782223574446210572953507014173256680852567061580416868521793568701846477462669418961472524013166065252414984331183930721441000265936171392378635968554754335313979389441689962764280317372921451579627347428096232704990917945845595758180194614265160374182777937224121189584365093449165809491446743635026241393524688175505202194611198907476332642611479309835407315981674717631075568583811622880136654966932416211880272297337241513205260640430961367914656393669154710899429503635935954395627712234422051524716475393879895502893962829976435974350052548300810311334855425553053448302832394387553253526172152551449035010395329711612672542104041123160851006324310328691557875129326921069605457599778618646236914877045959951723135309582516403730369661234345841406306649417388301550840741257259772437569826186458872796543470031116093892739792510242901482113080070141346858357361482812507120498828229621171764764273600235333574019269118739955420154624617511405417531183720513249249580884995549268253773569120301563100774616268626295231766522665755266689268613933321848358792945468391863393371007205748466896175734362819440534371757467879407759239135512328545772726590804902935452055824351641283182492797110579834364131941656479562730575375903227516819251103662177116597698020397943744871255664154673820958429234714563501540913399994003230933721284821271258471172651314241627303894950909639016486295928429765031553322508728122644742192047081375718975485377271686866565947518235876207939801769354221736437158565409656037570292771158285343522046262278391765510579770944954595956027527186144376826405682202257882391247102280188367772855173239927813324767038651295139513524619907990231518971299271598374992663752346919486673495549065289119229944328791590551708838871165703766483211815387334166476114271857975828343846567509723317721818975662981536629468226595708137837355005400171201582159617931788186897050308398320876961369530136688290842813517179854449420820027501668175463956229995614469406660786215295327212620298048891870117068174252030404643228749167741318772244730701468228595736115303910634189524344424890493858166227013437370524752578788286641963095741045012142677152410921899477448337393710728936323812033262898568272523576766150823269299071694767213893101028942983067818926441167748512683169005013298215536163634684880866152642269039273130147542765682837241928405939168280791358613081038823807648704291538395313164281881463089376237621527742126276648940033239969860880339219704641835383377685109366474644044508196773952505167933742939458990629881591680453777868454552004815022414648889214212450422210714036120796303784043024712446562834297183620815649657313634645176051788779206953531727421442451185357405349835037886791414438520691451651714166284374074864464035024735892183440530325109044542299021261847401000435230835145312253498559371991355907475693565422656896382645087268588319377057528936391615293979811823961080873100817903228278618983477978276102733609647876341686470281709891288426700301214929273576347916067712886024114045962803595412550443370756185813187028187634917461732511279099016454880161316460083797814030994251813972477495899877115850170630404172414845744161754671224736067059868472155270532811766703372029374233540444693518599861174268708628329492040585674739695397926434889946715203307085314922637432150522565335559746021942057305117935361764346699624920264472543927666628894748839549996962558121528661644035827563084247803953441408132936081144471952467584359023919890797067871792928241967542270016717051419339635109948832012588648705595244582713224938076567155488461816468433669618117612725704705646856383444272878580620764237554670742288443117412076431914101952211518594242198112614142488231634466810986670030031248465392703180753393992006835177443595542076636130644572876467378578685204777518858493451194572000275154715022370600329653461779393267473794377687586836450137613453595645765102011532382375292225643181897214148047546539831059988198861840402981188057187944750614813577512948513267837169692925829473228800463880290257465830294112146184640729044412655376322581163436257502459311499835183945145324514192812133035475154396829490214103150660872458261571245947218651399840430994292219502314298049672968328830438324105633406722931798657978943472816939314673187677196470735593882684325208805518364201354572354113196696434331860623839700115853929963162459436459549836292777188747115321167989884792271190309030976869849658828661564783992023193565564824466049845852290126275638706860258107665602728365735595295301484176675734480488622721031185711964386990502307156118267287451284810212351726706832139135232391313246623186535760635138622713977137613873625500412406479310776932213353106093413943373602437855711238850726521284392779719535539389847473851345157087750946478366690275373555099408256837091438251061960753878322588756353866547573729428756948589639779265879384161139990803644438172779644693649152586504871528089194394606236605014478161143683098150672051362732872910733097979396933728140295578845492484655540278522711777174126230231117521089431246497213536568455124125026190390321979470515664373239975629420127262762377140551132769464365356892916989179396470316020600321460848362944234655024536742954802460910989249696229958361637341117099041257259483492236443644932220530212762763079596228203148828533668899331131689697781577399575050664835786995165596783433459278816012784824711679210182342076242336932066561110512306824614116921877579234670330565106668292345742637161047219976318539941791946286286625999926426983200786716179180740937851317288238992351838115584199014533335151680555452160292490649513490328965111262557653451235236892153060394790177448119463878630956225414566652139745915896112348941388750637971563361292377662822768389530844148556837667650329725797608186130413983769629537066916528078061659611908738647072543671273903619858769678964779933934326808593770217744809259651954363656851318577560473957406523570616115603889702264843643892594770496890211518277529371995944113936132517093960797898829909469022314380293382435164032964909765968287467454958525841557651641102404788413656469701526417668826680568176247998055108429357226349126485142731619828405891079004898810696113885238726797899860394090757705024417180680127043046146734850442529097977855968047025939233721125286013984433810558348473071696206969766505116776660355122228606837841294972290412415388773004052948851814119593517356142922669289478510547773356646964448018335954394502156875503688869591364242182473766054854931995211300918662895395934794698890688834740434670661953352982541943468385547373297175442568784330319152124963254650242830295313450145713235386849155306160562152128304688497634269659336903508992808635642782499738463545936693471893013738393968796713608043168255308439105427522084658245746583949386451375175918386967127229715237511752045025977328914015936327381126594217371882581350932925346352744838555222532138131922032118878907857418312595671405858161057219977161223761141337356138201863202726379678236905152261989862225123888153120956573254274845816442608695916495558153157055787657293729897690597165721436545661973757761737845739126563775182306900484393912354586432471823110948692119724111115775292295457815569088854947586562402517974170159178052670377347665015499671345518506675346047963725999667712793897633126506882862804430922732315493727823682015316745989601572526471630340396376566462617750830036175504512440184650573846036781555276278324624927917748253158222872499950673593072320421984431744405776573416416514454009195695624834233489582448417568393048435794803292141645222981374956763789636168163372506952474156445267976575365341946982297982323894319965913033577805432720678034165934192135927285942711831188581537739123197281264631046128054494884892519874253298293493663618867331374785476519951011839194752112895837761930154897445940930658786933355304669941642086313526625863240437190103994070915142596042355353735239201440915851503451207442167262883453652385626263273641157289715746030353223208112524461338058273094516532032865944558907534381287559089923421100510894166134506924763018716018687443049375167009299167428378488456894447950114939810365268903990318961469887431699387374469472251786172856960686132518960908649030290136644940340640112142735295585480710937686066155936428103482361435086908146839947499899991190860461162380752359627575881123944896931426246623999494878875087888523347775964353468706118102744559902551906916668623691207045795037986934446314543196045533044007245368178173422536877359906353976931350130894560512752873461924861784196976170297055737007401584050305329969504105059369083402099418232360377455284995774557362152144550135391812267935638245116057679221547412316670694501713849938223547871379170203182751023185441359746733814168441611981768054218422209981647896206403378498169682499654634740929887648416467342340530724381469713491478139986329954208307400683929129248453044116518698605329533482637493597104739079335957454923968476853851145598569056824768624577413740655018312748118787898784888379011891354661828023924932740070317525654689339935915511368868668764020652191590974531275282813532096087724891464315975371902239785445490548087894474311798776415563029671386674619128310722824606331822643786376329656472882750185740322783557423831990533275771252166223897102356306599441428914367054269229153088777284433238817702964116943293921936134271574031977950194633719817104839440551197566370371515273652866025850249612853918333692520820961186525666722827388415853361420959366277119947783093070479737501671292436065869391573713325672650396466768781444454439234445722879168097159437109568253411538558765212151581646184281163427724374572668138033721706692683205751701808763811893619574717346832252728459682544352982891827318481235868726146717377675166013920783855776257066534414602619484453876494689974553849228777022448009985526537802702541573978257046532163667136728357637813534179179919897989863315048914286474174843163643579858758361213484636743732562628481291856028160103167867037811146035523486058357129767341428683181374384379271655759906648814796159822200402211470840143505785921353472269778994520101878740205661915973426599565334367331268881499881087027364557092526530864655748094251859676764775222743869880473655392743583066825522555235343295235574576088745507250510644723925855188548121348852315479882723508896574015580654667353299976147079602113332286065570058169271484633138521567811427831699201885528231206636180892999666710386582264912305967060752108341101286782353293014596427240426137551900249261591587164500278264321223903878424512391667567906494538834655549249744795043147485846293799835112327531201531049617175539156734273161433120026283465244202484288834691882565804071866208719825729948372282686374126168137882218857213972722493110831263337443575722185796128048277118672506434056332454417469941820795479763788459985349453118809746425415425720478679873532626266883844282689815639818628123897764202190220355369899118349144608430968954806694570179592902317636075037950009840751366972865579693149768185212512541500655255021582217287483137222830938310935371993258984853742838888250189552727965365554488305524251303911453948901665484530213238792497719151302392458729366416472118482633940684015121458681175771887143168914441856962387644974031282045447294675612525125148907116266284446105936525179424700295084992546163831123266227471491443258387912958147276159962479059251696543821473193229508917279147806175373247463286911334354923913188755619499467916517365798958375236175071481820203367528662769391555113081877419596732690084736635500163055269273482606196745726308736770413889742209144566776474374822618605373841446796963133861622567852571141357616627082741444124908806993243566514043397533564343775648668423710429109130665596525802917960635901360946882900215165012179439721214425091071477112987312824769818208232726015557279840372441650798871515010134133705591174582890024482848711112479844359113963048786942421146307317399245368323802495744197587369219489196873977815617834062021543846311329141398159229285609542698153315182796043248498575824696755666679182555009571510311505495064648986675197137987236643426552564533738592291472893323459649087304462439815787369069966492607638549463043902795012758255285042441689643238340256907892882319722893938825293141249425480430114438172877418831889780178599196655719375492432341743869153908791583306989086839510809445047441084163181636419785956058202832687375598466126436205726761619771948021582336096964242848884927687896252718395601521953138024484550034401453344685078647771534008849899047624486001241490139713748323163655196898683933846574958869922658846856651093842006350051791769289936866617263252842424359626488342791431685307269622536533171375623327980281556489164422828812483245110939734475494239219110266050411756637399496487550109752171177853959364923827319677168566523835849924102225307088242445248311553461127123249395839952601316385119846515014721969767242986955310382289314085184233178430814822229186428155636476156945189829583126849510877936682535916306682564263070829531900705647913534131842366502390559681370395181533802018567945094537105231653967449784370581853091604537445910886980653021932132707049556014575896531342926732507802641706905692633028193846629274317397985718394516694324851257422845383826813696184059711477033318649339273022043222296599479885085685798264093568954707203259831453561497575632347867022577392774543107625237728748585429287548082959421685837232059781758839247686736057130173490453681221601779440498201805458145525367503119687803411084232219630692965765527661491665948663214552874072915069739732112547714203356213231543544282981434717058865744493368585438786783909306744445976132174444462544594663304680489848422172752866808678358243569095467717577591389512227656990764391541242042782239145974320171267954603859398638962158559307964773628254614296674736264495367426957932289747891488259915375085727058436955112681745536462563896446176236635237078359018406323858684145598501663458615080871979890662928642341313623015802858542665246991077643351149612411534102638287304751140641482528674415696151991087510432537677572488832407389916246487646268317549725851874319221489686612962016812163938819111979912346495114879080507221947779190097793569251166248405969485640144896068133944172073514246153655615445232926983194999158371196495633182141554351491994263906959746629339355579875915906911343559127115546570551601912364271625363203693038025977297623711953181364669432847883078318287275975717340082283724028721188589377029717233256523717322978618534130064884197633261773640335843160153501431672148578395399414478628453427113119859887553820752544832843486134970587411063415313974746912382563298888032747494255045169362621877303936449267300111349325923557124937656246732466971824957968534120881192257597866471927854327678207223022391175539888537020398412121793821351253613840037591958516508392603910479701843623362931347798909009731695966154139076756787123271945271928247009177281776440769935976823332873833961739167346471395449899378252541298505983919288858858782793628594401888192243532537886653039524323326085576517371371525583738363970831966146179352731317298448945292697565037976016700971214942498387343019606718971592797664847925986162277366113664505075191340581173414720953717622185768837201458885839503479436517922144984015668861748124957179331927599123835558883977593853857839580791743756117233125518146380494168989282954646573344553583973652790045584189802626261195865308673663387475053785205679623268777438002059712231792858147909925361141427181339219575839428751992041222470100290472144712238957683111338933953589285324730529372920126617408965137144312593697334055460682725212185169453313175337316394954235834689354714304313394774233061855615679639643411504111779191324275213740696759575611614177687326348216412374981611157955500312796599838655462650381279724436606519674756194886655231647113744713504879450373114630952352236585977597879426831400389969908073433575150694330832201790430767001298969788484912185618404263286828321248886156603451641529500163499489823066844930194008420412828997051080649263322831191037366785056874530447273335514954902296177637969743827189705451883874034829994222316339235790166541095982083674212124796433190432161143491514089836566959931428343437198116298823716597345417605255088356811818537628312595339841969472348421113447302126549758922408122022527338255208852694806622880366361454888536496420439834509705374556176210115662081174458338931130911764781723332562449787318544064759044177354407100563136143897215897454881834216230073778854431775940163314169752512250293616136872675082492203588329715252147565825758883631952102412112428314318251124201677412414559471624089816114633058951372525912661357766042420171125282439235020379245387396788189319711312937018817371513970334083023281582641209822081526015239344675227059964453083790968767712252480863791686082107668552369675222866351914013481418807108180113795064331438310418424725191608063936491941041357827923380877615626171771793900984101124293572364602143428533986591096254775436099894316355441351174200626601807546315029192962212444015283150891864452122747281726648683837178156423082599225872734536825917490005966844051737711284320890368213271237145901984042729948745775478740052751719571633509961034475261526729040458472127238442639700575485342788326728701639951191093252612536520662791691508783747372329462566754446422945421613023633973308074509089087773932456004846796731750853182139664522261683497229021542414928982262249414683835238515199018469056282044278648615718576818591641121191341115043634233549464751772233438507421601817408861647439783808132207875629345264903948635696475782842686237979752913516875200516117830063039827967935977282437762252687266473681508983803424652995153786076959115735596588488688897661645035064681642429327630381219639892518900255979539233714036369225971939260429139791932770984326234839012248952941713715706060304777311848468527448464968267990879590143173998498859981503508573681427116911576998094292908961747326264025472860296348842161928102049417878357273062501595981041368557556589336236758677836263047753293921346989509865747833029248656912510542896232959316042198337270686898544614833812657066522826551698733411884963963312282868461484656409851776776533528355192996797730298542584999181867542947397678688702939247780122885975592689146464782543034452973180045647761477340705524918816003795031684699434833950108695577656707589913053564337834150334260007789879003091362381277970810578491915085140558436615229242998385324766124499535296939898275392422075962750822639214390003208871251614916730183406583181340198400110515477495119789186504299299711161196748132877286527087996591489912317086833769371295163179513896750687786234335655867653316736429489310208118147265738340475299015174949489947041616843881311537791744275171436109732910129929884291096529525828385222453894478151747367959517741665775847284289497768424378278656231988287027418037328812122749002427921994581527590730482555539452984123213450412982036861042039053061954247018315105143013417004202971641780349358028853763367251271722658220295699076050531401676663156434674485289823993120965726985906117039622684791039525589220370492209861525762712152327885159592539552164978204922056734586028847612671768797831806926551781346961058289884586776395995653515377927464087973875047944352873515692205517706195578440638282664852974172205820622714242389619958271129153774126270309223951345984551809943261713040846682478649278110985886564445684534915149767214825162041147579103392230967384303468979753684191244851229286875288447214834538313716366882693839899959956382836542943114689159370243648431956526214887500712978425859289282797215661345699881055728794173943699131688937603115558268298327669504680684771282197854355993344877755492463692758127213168499958441476523607327588664827677503318416143560524302515567268742394479219908134226191582667408470123391001543644479346792899379832147018963815952154183647219735045319675733784416367268363798236813253749209465942309183523445895465885448805722494726514359121847946808926849085858508932068815963255597689168389839594412153592718634442042179281722900159864299232974222121536953802744253810653793116515247168379798279193414519408313375908098237711186666065880986067726804195448911616761216341473820157710306225418622249152525001384796285402302727596516623180111684747985172821979544931347961776333360987527499662521439525517298998871176310600191388895572373543419388821128777137206192148421779910516620151797282369088745995275914524233101397694749234644682251350117654906207124792672510706585342395717893118690519564742982696893434165875442157747213143960973489269371253885243657844554971064912841979632284477163144160933612954286311775957956356397636454662315298257207446598274959873656450860537312384163850162173340611196528729222394801284273862517739824142120748245628149565492298627625094853719164811621232160632755720209972717942005834495456625912818499377849156530618593959276417408857287466169316479657088978411733351576732024208755156766093481271323735481812063705160392575706639010672558048112865767763802405005536121045431988208874611097602212391934237564866666205914242245324548989787792698274729648126151013706841194063460269405593310829268968680012165295768354833374410782051946164811383894433326219646785103161055649472691554614656335224873504225863997366880511814254468571632525462133561426311738906834109346811349684740779373305028951252119471150668985648633028111261981299663117530943904125801628389384935884256819290344100685761897572428943726749340221297513566709946038854866057173984290306572985593076354724907882441368868912963446412255902316834653221473283197396881811332708765836308634753572513905487419862773589271616435082057216642482748183295809162846150839944341546902902745082817959493751177222955695336470942698249651846212693890891878791022961172869869366547211642683635106710208438251919031227572585592351657606342526108851013171919598466619976710679781979045450172022983201885128892527962005658986753096474905690678705466927753575552442994773881449218011174659854496041326668401938674813128539697111508262172615619315272724497484922819646416572149881893136813654147172719757144162838893320006234425581739736745131026456274694046293162132557709162321860589268424541878525943047429829612050114750681636741623537465515751854119220293533844481211336834143149918881403913593886675973129271024277488841659698950201287591228270902099607572776108464529449148159548975323273665791714668226174054932853706233724822693054373281817834256799262262044225127168592422549974192133658730495900604044191925327949521948799719332826014230927979582016346839506527021135331814126112840012932567766879354852152587455275221664863990067920711776302455546798976688043302843696256292196630391056073977195614288275956243573626326252712116892378270850880010819860723521349572366498886029476767722628742762958789174783648563817286736487700611962728868672301918302414391284738668460335121052653293790951559816438841762905437775813766905168645653893669448326196186471271414406867375933033612649722573578453050899413245528166748972381641386241364772505536472483890136893306182656475202110285667129678987428842919220627457197763617158178549566188384165739043951207301664935639592419788353500013618902413015294427024227634027013788382586453941489236895702890161028992387986912855577231757604321981420322318675306860053762964083309353633493169893158237665482345663979601818988104470529099076038146114702112618066866856674897885915163830567744320688152890130363759463216783578007910010140536466982318051386996202825557552528727514302045405873988693368529410036009799240106355040949243786687159362058246755058683539557725112539840199692292021795527646406218302307863452769693539965692502267334247062624960992567489950353191550337276706756505783006509785862672326559212596776568046278355569364435476596326196211578357636305625481466510386243344977593558772827439281036444906634668946597445390567595622030942227286849275461691968618957693312248953138896607516559123948585913326157007828141567605609236037118868734853792815231237338007501013916133266596855205208131852745866390579111724845891437700230632307074253901722618161885967045624908618341267704729650979381685265102886712324379063984254857532154441749386977531053782389155393087478286212987068345600518408571404113064160411785334277218238203422438084485036362481043236777059893185247126495051129425067803684529428687318016178557657678959080231376515526337143695405653101359373286177272157985963198613038982153684360249980331219306774076742092535668781885841403466119522376255623139864860681115120232477424296669501684223624141426209699845189854316351201095628536655490341618802036728243411908785386017173975439711821486054299359373901675441172243267436382904665684618136571338203620476755823946006644727605361125060987567372995866455549963501814565912812443353979821442194925064221141263006814369827757683063392473239628789119366644221793793522279758889421449586903598807859440709591045875135325969122247214571459250876051020840683378142673456985793649480260901033259422330483907634145933913226033599963802302605427359485577998946213011262103510737287468308417151525456415988956625926068088624474349334648234513989454725978824169479967716169609325795957788578022878947754614733281259249482447683546086280908681699406345048935238531834359193005451016184651917911882256012402997082643842381295151882478490885108352899004115749562121844836224368312250234191932716486291675134492756876424299736379751922237119514361683840882635850815119530503744644947424427739084922665224173114882166932144973043130399783411876160102951971147253071008144957244934642832358998256310684155482311786528314435422562690300921023862309401380861567048944425306944416390587689101114894922361902938888993874588656267367157622926536961175914984632111611033871407395129228679479088650711895995874842684604856459733381644128765145351913517388794842201919752826534500079865011935763566700628382925555747265465948061602885937038742244580636715735022510901627768906682864159661775579097543520999501276168572375976583336237362854194262584968172237049960798074741767126340440416995174291335236703193276282825394652776067845575536134879712163582431403833135653082468722584167512172822197581868933177814374311052896940913919369265167355889911985007609627204398828405093055145085375647008152823906237878883967642168033203422843782373808918217339915699093635346110298364597867521272375988340835198768291885561937434173138679590576785880513823643614074912428468727931448528315264505968895323261635878583735781831333418985843529842472130285665385060720113950882954425033678049939915468133949262442815791870324997064360394888603424058541485784447545845367656878254722752874500027774681525312941592398532231658501254626156185248945382249351234421995569459167413892863088019145100186548538615193037800787406717372783799111436666325521197960343460245360371707238827761169965649053128275695575606603369825076408944095454408741612672715977147566434365243142849767345078440100695733357874465322068837661500174727432783213630869349768037435371351795489001514068456877204225468696747350941371798620216647654842862819269235151096765957740887117522046645991889231342419801388141611616955639258635912193360029153320887410194411540919533956576572835109556869074919729938736569412432722756314716401857259029138125622533855436626484461513723904231277268382213094293422281321487642617241183942877546135055956699759709633630832367471053762767152121861841882423447702914701852859104732837376093935339256617087493961984352679483722656327199768011216826736389015492831507772398525132300862217064726640596439684664155334164845901341425942873027314878115133161513658166530987252881614771330661494595501636530297109999924078315128427668311317239822856282311419796734756228385800329714176766333463911587748241989389819968622714761372994451542245151353664252270409831973769917948567899602437173367318629213259397754957713625886362767447546762238806981877778170861054925467353111864145242547056964675992299100978028762639287920713366297568045759395786411367473976179141654204045582195517595196175032989586278521696084865382656488295368951652076505071375255440956773520519772990996664816123642557290782454499675091485027912235391541688934349183494822126402658055443931675768356849527111488153631615974968974671996992957288123874116106488604791408441504078670553941213689279666266459400613214141212258319360612392372986141865814929132774402185597171163997104374557913383047997628892888536685369184520360911164255153621015845949245925655287927495277477037244434388135246686905046325587351206635826739103985126271646781399131133260055848922958180358417827385655638956371205960721436663362271536005184191875545314176252993833774186743134631845719388207858296150793210215828791178942614028589804530910194175586367789307106920333919703147577291572311317196295367427152567344669617980227842747125731302883795275467455302324758078657564311066288987828791022647948439338994454432162158599089651113776029615963617099995320360799415319263770826528444246876849303873495358937033988332322228272251283569344381744514838827966272763317594451395770657115729065273584275795767061325973786009265324610155646163956883626865489323536401981917146172286301435186663001652617803884083160570766662209972859035770155354195039614183421984777703173213466592719139118023457326770013363636747811429318272762142247046696697190941062084642872365691318124873157584946390044132966732415388596849177273994625386773612420194949569255655340679166203221805348143921486846559260649322837606637517393055524104193198344304458803865984444728099159278783845079229118659115734304924751175156757951164771252462261549341676093475489848799554751057997426904827738285498746825264348714451537038587778232165926030628850371627249522656051235558244911219538992503095682228698410876409212343370623710644074478660972716280097863141585480590458891829680164774951735743826289789362736334427931784184101415532372624133947594736914786682182028543249384881281459165549293999392596254763522923796894859439484534767372769931597598677436590869703213627098215982113212172805076831719913515944715754588581052478494498703335711913497754066901929310216684118528470255692828854492443242828918545182250048413411798296781163634233561589466225451352955685646175471955461212873032597239319623086454000654913941754486003035628661932184231308094066451753093273179350349566054408599532932525804317062571776496614569573619797813219367725170501979834438629754885455847362713831739602772166681688918953087912865612390653765522622207611225405694249014252466731902564354321266131125818862888241820783652319118054087857385069075238383882718325903477398929413649471213082399617251090930578792332916082871684088115165836295022503085435350209533849685986479865484574973591371842622642516315407263240654679211109794624073099343762654588567665575119319694522847574556483373378507576431710248678359845616798641627514272991267097764133269697133355908446982622787644660521789436324555433100910511346002702883440287537924936252147290548594409664469614312599934092944036078978517977544277878925526563395749006996257643377606459966626520745273067365712471797754207223412588417021194701784986576894537803062621143533749487543762231570660647252963319132277430194056044761673734728983094635216206193189918221792423616602015588444251883580170978307421236553835076142554508721912623953634344680640114199847812924260915047164576907795432088628798314801539428914413083549656529299149715788786467378361574415540617882302357772735778359884091885313408278934651202831282760151758504109923444599381484769680492301364963704438311052902473409599304047625838385973662791437745937410815961904096300807779792832996291837395041191844772778548197137913514045227068359252771589527344412363516275174592775426898172731228489077080124358369874374977876152213477602452546478254773485953916590680332144939665009719803328351008787186544886266093917268862001234354429673226756946826011427157418678818257110128658229656401811744833521556959079034621045800952323975775606486553932705327740678044372253971903184493122593183762965285473276328169900594826296549875415311940276635885338759932603779437197664838969530361128810984904409139300492589205195906487812615071812161388995854439792304961990427792646537499350046168854815258481026022679876494597652131357203940163112683197431430170133760411144578694743250107843604160737345534918612875066027074634046913786512421565948581257842548294790447680557826199739981404104944733989402112469852217256840892380381262043665206897622218663195442488216029797049490400227465305631800323290483621301597523923054890337908922585983414192836151986296318208021611702511572853513475183068732113175788388667292923607717397597156223509285069284645893191035626587691809816072565681009018985741783641957261746297377493914380642057683553054884074755690843738735027134539593214348317784840381848522465996687825735899189181394208283962922775397664983114331729821522305827436998741626784941465688992656528709542948826062090726346241250869887158643999464040842521718528348637775841014114624157722404945021176815010429922395252228360678859752505758786416069321038071946208358853742068222972650306344414283729643461292094851727514709499684313734429188686032711321843546887808265586790231329416616172468806068196720474341142751373581045910685743188649583161980017623026605768594765873176283996704806968443707360120725463324419831363638245226839193582704920285685388918476198643982745000439325393503287549080658883709519053315950832295151056875110148332627564300846561530926850362565488826162651861055756898267782885471600658236072964126135387649784082390122507589296618278932111433679699229761773672390888526253962167644232735774924573966933260765929212244549784143608173524332817572153135732161148766337332211790919984559272271960634082438561521624771722213778424766148213773038978129324788182723652380079670903772534722708986264978532474069635581244407164820381952365213914467938023895729781047568643347373160123303683085018403985383412553811160477690515996332612723216729521715449221552649584694448117172539383152488995673327568823389621206440329114569903457947423184015498555249404131442342273768901412789523366652577441573119026143722635917043944438293980599258436298128604388413453820729242402934042843922556245988678301914762218783133585647482327094761131728154958379158795521543951364212731662663851009139071829386811256528345460828770228182658941351743629824385844809197444401856393982729899856740141618873505735456348750920349612856971646385483387721443975595589298280569837845949175695129044959139563858180820352543421286594800098787685109345563385728352777239335265474496489149120364752289645795234632560484321312367964275191143247144244776059335534431549780273117003879712489619545232336571186207166187154300785873819608675979620176372289421686061806197223805502539824851931521437763996731571046626227447877884664330489676050757253918354183483759658983249878417591462217735734771867839627150597879264540393159434938338432422725735964020306220056925509764725710925303558740212965667602856264175271911399460695781320404515898783645973975380761629059023295677749150798954916627293035413642583769477044662579011499851110226332276783096071365743889593460143390630882435384658041278221659031896537284175321979437344861732275536150260527118131252529634968777620168887591536365699901395029561373124265787970980186999688975074797893534129533287347940765448069425580269253771517033529874705174491089105824267139895920382642281128869679992941190854391263856867068755824444926977969485281697990274407581171757556192173339451611542793124692345281600475448147816172136257115295784597120346222837590443299449660881580409719759846917824579984943066143965122609991320594329996649246387178712864639521667747653668327938467011884358016710642955227124719424633865178813518091828538158141589695560525145767389069369759204047926682277705275082412726368999245734858488956525031515618146719746021369808165950460211691317698366987019747784569074557596761202214210537379157345219796253436125229894398582251718741605368425671012410891552987784322940311141188520193350429425972044146776853635797101574474889775974869168351376881519070588099286100226951809071861469608244104635159455804394537301888677524691667041688516708253384949788390401582225674904758175957161406467196410865657731981519414928461782225710363548177737880398209325918373332250481587595254731713564714424862524289235466543749188777332846224818113584215298159645914739157378212133260319449366460697769638303431759472132750819510512913658973955081419656977179574721081718610913285055556869349838236264360369202218849135711326017028835955942333179438228441871144155220832117193001105975405119445972171267995914832718359372181918897744410653181528284788223092581785824509091234473782213412899112645532887208829682173326509817985890817463934239334038818675965693338390044261973540776293641429956011082367574692923481462271695298568387518477118635976211725541824084929659732049321544737039515132018825628179184414744335873575866509516205174291627544184581311584111795134205168378644016699253665184022716105539539342851923654539283768445909159030048474321767817696800216802491922548850362956454404622391299394144385774927812392587529444627407801270524545056865459513088089341319589169991137931540384384253244850976913301538428247405531854786476639284461985542608141427317023168674722886037730146829135710338737745259662997168902492301552916599876971031174054517530568732087370932177073375341390898980574774431239110538506138381787650062226011223518849016342220956856047435560805274409718848865686399365716197475076912793611929465971194802364210581632868981770560982921796739252851869968930877498681953760354036694505639855827191289434367342867574466213966616229551269223941441713866225126834779664242765815165176150821394732756394645548543392539980352831916299716281165056236393008925616911073279966229766422367462498655781856333541304547320812647916113890229258084485652779836743532949441846274295456817182673792840897821009392704691084825972702730332766107110607116121721893523135989580992773441738421327153878844672780965067038052490476122484163144042622387434106912385340513452321525906537198367028344299715623158058261162181644529411809175583926113318285253463837275359287224033213577208203859808104684180248567421633094853768218778626015147238550925409097411017689776747523567038324566693162108685349998285313866645159155331779861836581118160558636946332159338322407732203808408666637045896336812163992806272579477534058698388824202518867485348066075654106474635785666752667649564177209741974098603749299348835609279149263025433092216284103140343902461142095302260010010320350646353637282788950436285623199110925743470928520103527521672486845927805656438119298559865917730113437112020656353050247061377987311782151736739680051979647770472308495339179705139056636502269476592683368724527783411433430577199966415544606127099106431187766135571957103431663614264928082172108438693391212217930339261091487955560510847246015487485611572144453991543378981819334321216053262964022935249933634986578940492359822829917748643188227587307257107124994269438738638723365961471564032518231478082263945634478925396369838883246837561726313829939151529018601786176415289890342665640825024053308144976262763391495939918022351118693065985139312807494045679273167251582910452029619456461424213763688267672615472432115784781869277050130320243857613129511933828257945214093670487850920829968738655400113519587669203922764546184844625290482780956613476027381723781372484354787079176893188931470490714355518696747835397276602286634194379454132536055837181456687472661409041237378168528542173328409276453669006145863126081164564138255482851375832752161197901170086665622987533391176664473101504625216451572725412678667308172578988136954046049097139611178159716616266711517912812282486865319974763855399286636015827314664416423151524782772374721650282668116395529440028170449860049181468000309791187203874896578453818411036864212504429988559127182534631168723195609217617962229094798102637662003615963687649639890629525517838497177233954102657778530356863233309522296786495836576590027671767722354752241749383192568430344929635692638602282631767844935758193571708035258646828714991896151495927298595538818258389771956203521182310747699589652208291898233750493351992804221713655153491886049975565188665168086088846129524190900572636118351969808025731297634130341622672348593279193828616788829475724312234238288696189856509435809414479130492277558816146461931123120306109042410882811307202187797981594929737081858132328214940534346801573987084646142970101092034625132092367342414675374212503643719036745036822628939051145245857733143222886519362375331325529108994632218562307086120318449351685744978826331746947778392038793633865746484692847534190727099063011496494984867606585367924068767542685329484536899015452806380116356895287334971620471652766709584611354184305349733922768166404196299229782987868032296767016428796709299242457213345217449196733363653350227808333997606607551701183864136083980860714613222401834074057873630422753766249192157665140202133926662354376643933412318241422967494432251844672511157224651405613118408959532287343815115445567239429566005829699979856132361629806054835630516372149653685357769131923582646229651443689430511489637185674399615877540483103312935416931894566103011568966323845323343731750244615854820227959402202872386412115675171472949381532719157535924252947383135237685887935643670194875289685823415661583102621462824755832612628447893636393989275215084684584572492995578643536452490232165767543824626577536362497211871422634551571877665569114711547428755798530302532178228694248702541070914150921616355720360614020421492146727121173691490000527665256968197193860219135346632680473476395636861974211734466529164753513493770645211180316451773558484104422254393217512956102124210687821594523151060070338744897231684085998251335411052724299719935026433198873684314244874545497499844551913382563612337966146575364314164344408454111742909532292244685123770382827264651036422527390176757619151132463546952238493612524767116446231449887201270572948946120031259627364495883458942837587247728302367782544151742195742168393272677538795522391083812271946974276769184650418166620647394997649989909880029339200971760771170657697740259832161771454875933869112220609127755505912774622785337942939273753659003733286229246419887878719232399829876670219685524334814170760829123435742582294489180535307423331654468335875293550336345915697765871157456368707321716765435843892473508471347373350571050866713919163914471776178856391041256816794245251826887456411830095793392634884126214355560766431941378944941746171926384092384663674754902458444727159671254112568323248546651065296019274662612418677751713706961140052415291179650776566912259380426855430637021587338452847868848325236862665042331186144910891560523956636565112323512472867512390567026632520216346655424404025977678242708005925612106813612890766377045502138085819783559035543962898395001675554156520610858028652707339578564511133761677803150648360153221998357765405341497417772745371456228336227639339131500914645246158324978880015795705553753233126669269280865902168858037383926272763978605533913839693931065693948808772268571190166018951498851493431887276049049050219687422601225197366715881652516782323403443018196770849241197157911936239084603099624478770755178343155895599754980119654731599214296339926025302385761102322698545948236515224613366305611377175913423523225935886851217969553143169239534130315379305477635544477256742736476037030819453716119353494133601174629591958634800157736034590295765085759318755251599171917423872779888473627713127482241641593134605187843715464921571470539219111836135916923643744281585573081489572405027895586299099472867235735622808489243565947139336950357229238430544231066311505065663414038430166980346126332569270659404517348287459000304512422517363870468442890729166462018000955598064182630795852861927823404918858702394611325443410786802535868844511164824381553804796312320585613422080854528482977612286356656322199629244986809597892697496288421112780841741050984912516278928641359413132014705582939960276853548922215612913333932706287540687824468139591043734210322492002897127284983674633563374126457268179497336616928846681441113097205452778147124878955547328630716028088400301399681758231038483739654447314995635225174336321859620583778834680913085282751811379609796001871790401612185905545118373948651831487325008567669138889265587080572543488895021391569464902545795690322313244140110532647393256107525772235245067396014720539664887119628254014597318319761754015471493718692051587188440159589462426929471399777537303286687995799655145975582011144042474870161882432734112325956503514089225271288863283757570761821613712888263503268407773674110790481286951329556937291398712216119977656645139433096983746720464987685394638107896972748791780902389012836665815090099534335467856298492130295775058944341153289559520799595521982509730403783485525658712312325272954410961571290190628912596841577386491193778849779600494071388838265827936934914373672361921055735129744433184480124337273915667855250968207587889180685696222717936174530671577336415017714552222890574654788105677975651708590482879944174957744217177055531711225261436318005467320099938206387119514606499574212217408030047216406411589075178312187948883668387866583789912540054379335173965356766431519697313434052125319723542589898502608116718774941034360741650893331071493011208593166632373652317372539657664015654045724701587913173163439365518703292107926194677269764254159435312827515176072122131514968920817345852349162415238403871838861716654848581282748354734117705462071948182027483793817163123041966945235757893197622116561172287115911282942711990951637175412546955241064885297553516918773753888213611952275236996943251045338186028719285923135123311792159931678203743754194024797282736484337827589129143504639863964499523329150759049382930777747275294708341572456261191557050354693482261926663068755639547525190695689018437893696400157256234044296671518850806763923524109443982974362155326964663350293364613300878889870546234338007143176123863815165439564324854256366582849646550781729810567039549179734866419023086492282926372354342444503320789253136698034927936946833426118932995332876169896409761839044654477622660035114565225214517365897734273206484680878811618110571301053927428479661103344194177629496719467880249112645155405432650798403780596309216349395563236732276886551891345325617139726731553581577849116818330945273410975727133828099132986076297169023368232341752633804885367889002469143898448057912351064229771118062931433235695918575938203956211314972968477687445541557305007003276451982342159087263235232574764590890809417895308265406280305469219361477945186148025534677525441043798156281367956129148734539293117825592215577785750290596411012939999673326027666033134897092929282449204169768153021372824106229901169802163227796871438298089345426307109588622850732810153863485055685070628473801156984944671083673987297275577645387635092287451316259664900394406553622557378713314027158519240237903753731178693409277565355851951260687110814180443675949797870916477414977219410149316809491799540232673794166613031289885581014652377623294239435181209603907197189313485132617849527674034512798484382688036145303498465417231123373644390674688784971247584161082399049775807748951929711872062179172971119735655004797731581103741435138168308847131222529921446291721439251462836394861865482316214636658978911848537246126371201776505696117815808743974188726202083926474782620111668661120546531080590000855196127328554115870325455498187485255808656558767728433600535190121477671520539587428473197633371931172242546605681637685172075152236830549728472992604613912263460740816661423536164433024232280337656889592424328020736408952940855098929973799621662618878219753734895303648111532602725872968202798129397119913721242638918032051056239994198629110043069835404147138228831787981745584276868720773215876141299720733696035327595822179792466472223283052160451280428716612633036749549226952893344389038194174453422943319536210393973218011659037957876742017528523845028181992025108616044641136480524699314297316597248414823145224104733999228394074045783661631766232927128560183222935295619487033729976877833884062052760108479348173029052110662977405843065297521542200557335922508529914791698954269614724637298877245779525935239624151378329597968447461851946295131118245998502266868451121628297818392201176285568653896429214717069204198836787887810362308184733014460790255059400682370559517721806377550072484311588792216799212443572387329536410127613903362315819334562334808064311114676478236049956887661770861562488884458283244090202657098424958699211497290881139733905420907049147315830775588846320228794309596094836377704972163656298325114953710131868977612758502938073403600214293166157955424713107983576476169037933516516843352945798283884414834335987925159878828048568507563563950232384747322724960835967765946527389276918371592305118236672470435315416906394612989303603923407522127644049838216244459486679534129114601688353322599433972058521123233491011911713417999756885595561220961542863489569567129142453882196304673744552379754571885056154519069166173654043144844607904913547622792763101671703051688410853605337970163668393253125489799831207242422734837137604619619767835232250969008622095117747714274324880672405718645257254550577289563347332455497146311215691048416376354937322602394162295847577397369427898045944267360733873302180214712918599584564287504502046583257952261877443582396959770962341680832355239679621946670705832106606306394882116243534742368798165845878864588458742591373068805838416955493720203068143673357596503030901358543035635221590425633761331885177661235133832110262147889561309885384461235876465621661183557397027903711828097185109528613861144915591448501357413113082197759851266031782438868095698335717714394110596149845626025875043563285927329136100432895357962584412111609572238887667869774377545419381424061111940541443752134324580364938536116114875427296287706215266413479546434885500714693956362078886541526179862398363905327815566664514635536093229292557246249408807288517741896927364205175602203144586108181974416503685514114897609604968579014929629680141927651323086241692961709437708267438819872997783925411119734222870995878719112553676574613398767051177027610494817501518406101680848243698370935612198290322584515469797319465067929460373621590942666386381450514507253472980913718869251753271774440291171058037076152543054960763581061147288747092269520532584998158844978986042236562381226891599109719112316637305415860061822152488555189934793421159315979620380850953642646980298854333386758524755892490424815898917811727294855358215196961614424748891064320698998872921929732344431968433652420009412381287605716062744315158979527522326944972922362135778222659201872665926889257748699693927550561561749884870165226236905499536225095659335652524802671481336524642261266832136499005333868223927312071478763165181199414236112771323165462029355035337760404017994012822339823774638658862119417933489614961797164935991867642380665227118114575864868520011750543382523180331511546328633249331140300832001067437225195073707828845498762781732725335917341883203696333853345418112118100146991375435717334855377418914421628448165284510601045982403340249266662975502527481685031461214851856665503937537151743611759540665879761624852823836489763567330724596219370170095018053255904973583695280518509908617531562747318167493210813679398254281471893769387895448677467515191279832053859753465190521213175778531831430791314236536928310343273870696953798667410326418299950109289495965338045623751035172247780406511376673851130782174909450935980227336173611508563679742554426465419742545844424216796383609128386294242645223788882583386698454924579917357780643789732510714560479835828047395814253528033459930342783997944585086852678766691548539767996717784975248054852134490725639262527953362732554229185421996108733786939846733313312663836537582087575714384991708384588551455790559303747760763271262067945332925771162936571666837897635615565586883276342894271362139649701456463260792867944764471996409427527629952135953435284359378887066431158283378711521602513376592060691522839709884492386264197212198933256292245595971935116971268221555325168466227103772534669156579848075983353190503307941421964754681191282422792542676728221871837792027713199653622605477625327286684985085591542431310206459625756633605468477599240054475158224398316053641191406742490464706242179362147670555985242595462754424302514623825697638210544922112827327471183646852735321302101125155659929189548637769262729582338798753306857673433536577302986363424692233506062287106841408916365291389144930438366524363378852355532111967345975431506654474094390987164672799741997460465617623515860221399679303001502460322224171456115971931818409662558335928797569485341314944677615133065116445123824388279517989014749378729236896197118606156056757417809648516567766025048645429658936197349259832774193558913616096651122635872047915934690193693751619732751375002825847151155517573525052804937592321051745614518929070854985698169190648878668368693517627139918304158043280850629861409831392215205653722128381605564400628148395679348034445376195338544214884057139472807223808197722272984698761393659282695256207579495119942582625032233322936588635832453544563977653337294374449256734166363804658273745597593212748955556968762511987253489548894576632874458638737781672380734472365286167961256638547261765623343971089566180124948198545248511357471032743904616068851044569396177328070174680442336510398454241549694583232280065849750647107611645197119506761195656383248682647782386210512467104236926162314841393758322903666837081812422719892561628775699401967219987756946959661653992533187448134655852068832820918128884698742422272119823928476353422252844389809613686667815935269863079411463443464170335413869917172198507759166622590440823452245751614057076784744937516549590997150808254581403893380680117042201536282123672252145531729698633572258762238162247659915128842732975396691669375776755066343309302105058330391107412420848207072911240146754237527353887844220261149243462273708348423895081427755543458491749522522607967118267567775252158352762255987354328930847170485978347432572400348821348662722418311445216264798278766496750551749453554978768746347112716228085262235755823023382067705568793625946932743742351953855457311867733537044552823972496609804979689953852125352812545848530146059322124280046154650465236601340691505006065458776894454071659161130252506910188484430941743540849230083296081545574811363512977821454354072731840919198628105348842947356540055387484016152417768095781732499535610174169871673236357551045840122357627236178571198597908498228345292247896556652285438440419801651391235184414803014938628976712689573341527777139165596535748645160691334626314615403263497737067520918717370742475745128348821159557115426964853412484999475929959813302074292175746627780847982962285599287249326438843594873143033233737798510724674655781196263764885937997043059131823144676712956578881353536992498557148071910364270045798329958100112133662685776167413797530817715416054487424493315254448773953139739822121064289259716693088870817179655420933184582780298954304784181513889123523789593177348891511642073834023741078478864781077932978900596474621535726271643445417965478879796091388632175682708153273856775791777658756822993777159922447193372629441937197516488357619219211234464312635662877946127791731641680597186260788478551059373269857765322791637782725739276081664213806825440605231239434323592747637910730486308318573750140971159124886182216291496450452833309783235841079697117757415450819858774176717948058251748038471681489832878492578849520129086123918061043768308192937815627939034452208813974549471814991362438416922919242430532009040069853939721449074186439322426917508333660055363340427245339626918087542074625643404725912665892582562283362018826013954204586831442181757734722515522789989718124738431369962756742854498765519031244169966741728076041012540345049922417261841240144888737782122588322406328880954233166547942072620084773747598424704848855474882071329823382297454999494642585236042126732601596653147174331827058149383399332222186415381897157323411798004496398192950962078161196398130057878839979336330056360313894036798388712172113357783216328345676783793914887342051550115725004079852010215395273513664873465353566598649177042796332791448298551786417824889061293143492268537639349950973268980267703808759946898427772270529511652294970180333446758423528416593975233504277325585411710502025221438448011652776621888493725189640115279837912842285632846108981283178955162228909910161258703448843093633116194718192273936378630602295407896536323299863712542181471082829386643306912313786887845428082944179397162720268199953492746001766388805892680264961831860202270882732173928492821748107548593562381678728515615976521927854065615756970058457018013986941326318445119975756309805993488160075754325746844010864588941762654848293829959422174213733119797096617818847640394205295493319015349735218486821984629573886554056777368291499096409375762400532771382060002424164271713541375136534988599777739882449973840036390297802068607076862512638794432840379069951017941190913339543310531810528872665081478852831387972034972153218615574447698869750384957316257022033326074493741941762765651014648529217902384381576935635433943213829879622491871162424656387557816465327123463464323542187778365254259098864909240182968966281091610884297824654157521653211059593217530928405481457864332642455431866695971178711681030460124512232438541212754129417513147272738135391786651445591109934530210029410285155267742422003252084532032824729350497325173453979086669162666474428865897519717767782091096583297542961744071664827751782404355908872927384539602873942271472439327116978855524196212033946575201430755047414068077625328498353312021314009967556119211081720351066727952823676952562998319956264273354136408280351063783419629570041893393328942149838794139809253056768738691872761221643329429511412661545050392851757636766336783323576833341508648533158238811309758995032017449945211389472388156053889049392722192834698764921026439320567926884979594671126135702315813217601784586766036650782782214523646599362497530822240253169409696634517010442266757977768076604812112887655462294554929090302836107829791749645897392218722351432578598245653711438390476120637875628526503925910565339128761447696541640266068957393263710658736344855001274553990768746661858107222165774545176211892339507135242357996895748347059083516224375748212771878032670388558126100698795552648182875247689077766253407671248108188816212150532909549645650920817742065451388355709418239770499252307821192586944873577531324735555144949646173846584074599668693645342154956757411358925022396001682094783595351796835300469845753552185145773162935575469752149934357856308536940984788323409978699256332411910154260557874265188175558830052621253582024716667988963665360326293292373205490310242085964107350259119257588558339975750972575665214691985297955427539541279515474827553039723034691398454978574139319798523226236461339867789452689942420646886279181450981716253087975332314764692824369296211145358864215183675068844662411624070059306117026879835046957756166805761841540729377786216026833813155483671298843854184168440262847153661427354645470555312964334990726012771196823171424861409733109375049634340733339225401335379239792711924161241547109432842646951466625352330086738934904019045126874576165584643558024868676376778111416089743167611113846399578635159968320229275135669501368986673563388165630314198860634688747538671483683869775782649575989488002922384075692062980274708784878365496647725151486375096205095832775699561713354809806682461677169100751411550999923063472484214086955933288757165166158277472840737441416392617799704056292766529650015080309537494572581686941296607652893720384888881983216559581298620955725322948033501850298800102670445055342051366202060629401272391288703252246765330532848813854766720307179302367123156396152199578128568210551264857261974121790225136418571703048657656207988268050449430392760998649356847630041117202092974553217047937585801131926834332873799373281425225565420388453879087271311708131712680759347720943904132214081166184909159105909409717568748525701187941664741763165527223312154706859355172715233628393873295192383216834881871527063932251178913333116911417534986486219077356416177184079797720762026501418352787522339748720807029338203635401691533592035654251321512556961631233921270799814265899382329372796272074364195366187163971189267438414547933084984690288517314173358313512865464105399834115689898151595842010466871857364402655326835524886121863807866232184293798790414907879789753962816328810848850421514547538153370362940502952558051529716011618736993736765808633219358070055940105034634531286520975904733285123973749305659595292548013407567147374577344090495949631258544505895798807349081124431472152253413235379718579629395978804396547557171745153428889632948561865878471230049546618517893853000927970678278235867861446114713718974189473188696062966980923764071909618379261935464654442639948905484308045995087451378971577381117566839053693329678367164826334902704467125583199547417408939647461444676479833635530309414906692417384719261092241179222384052423466966932436115163044022046607776547502845815463562892422100621794673468850998016902093975817214356678899090338289913574656248548206707457367396361112893164918565120126203382302984562253225361577984983114450763864699027361116502467239070979315444034515374923689794734302580924871791719289528321504253555283006479426457179553171148442135586281837127196465657458141827249826544404657405977942553506725249101160893960188326405275929994733450725811570414371340846536249457147693406254899671880323589359275794020185673372217536246588283687674073606566511277913555727556813516767867602268581610576597045481562115652634698717772615591342420119568991730544653655362134516035944199545183044850465568038106259507715272165447359884080830556630225884032247158982971373320924031425295237069542569038242051349855407721746016177671539466735015630300057875715599705495576866804137991742428941103914927746812154496211808742941161868867768839091329400326679422518363430125801795475253881360636370673120880897424849696537692913332133682869896747275799959068935743658868704573820182019084375351220410976991868392524361412621369393735441607294472887760460749805163709705587750596422445154476413480832210969418439595676159015247780572752152902694729212704907532591994378189835218064283300768992621536952146583330047632364371355364748387145194214351299519437872151946320639961095307844646084570862815256363149243201315456151437515382364233135814817398627327171157239196158042806613685526774951983653585480364874260371615313694746324134780203925412277743329265368011169774050009582813798783158309911435456173022688086963294400153857570335321086846567982635027258597633128749128443818682069262919565611289171692958199134908981468550929911283810792011509371790921555827708345167148271919128973376465214164660289386999946159622450667216507105963435494054420479568693939323483117072942152456867528684349212589138541931297075098578144823337327689533525215819385513053164087951183273061791743088102094221467578771189356589461769173317765488153473818943630219386475401819353059433683677507489729854223558325819374672411674498370688809331798458238177867666194748761921211229336743063361683195190003472657534363715654252413467958407998155798154842846649197313425156988798388591317823602879266605465429034665054345846346313906401700379548733815398212838145985690368729917984793472561853870077326158580307161112901804471035201176280488213179569182715090851576879398617383987059550368747617471512494030131773826874211383041945811215685416189622176477614171415116549062691562755181698132489793366706368225583488552028720878700479445093073899771321189418689053257649061629097037883888033103778382858132861120625267449284522105136579210684908724656119417575827955599393625958716804434570882645643285548781319267654992886082752815334709467205607807133945232461432203685765588364226099395767876777467963592890008895915741892614604337935551218824156146774926465267170501575911678978522627673263568375914029424048610815737305896886675579558071144515171416140668276415952070947861183881517773388826896694086574174526615610584294761551528290838760499585991588369545074530779572442886952767686605375311368354776284174622513240612210439132609913390569770604367270815130990543336538019451221387894942998584580637856435156238942068393220982444795998661777234889838405024762136340973151630602327241950876494630563872515076820614358827619071023809460815307144964195522809610375614874064236730314251164594157833984214304516322996226699132411500659796726818947558854389161673908433250267422916223737740769887640395433432999866859850983871156274618080856018325597346334105304078897434221167887768976330191426913152704047938224856106577717337736491427785724587996533102490931303650968845997213291146494072896888962537179808380589735766173374165186963089963279704217486570773275675720662588310203161403053389728385450508659365195285534941479279099605652126086758819065269188574574229376215107701666102955304412485218424895288724349740668244287405303113454998062828143074557690018481379632152897588294724279425536754981864571558396835424858548239363187661511222380111314570066440934088582797425840990153640368933259998305346966108755047701183920217632807489879655556014118186962852914556663929279340345473442107631229807444077150481844266811557555313279122007242457724554870309721120049192978760679792245944239051235663900889785544953755107985526919000588747538644992172250196637621105381711705619679250657634133813834425146727669721488249856992297295925956223778167941350852640162322447426276467261131168349646456261261018297988203614814335694281882044946230410323773987814341096068407471965617746340216340799204935794341532076769837399254771400297396842692153064504768170427247162542629681727383570756242087084922567595213606470213465217920597236313214764568714629319984895519147373756419427515304308919228341992937592697898748464210007929833252069892718546388325776119423217028518552675298690440468261916956018194411805779067734527451697254666832738444240650931477619614365928362394559156601465551262145209534242450212989095356262544898132352573224691478488273878551248361305355290477461196742163383149077463373597627676168525491917310493601509292789142129262721555415873452537922737206302391466946236143232326838168228133983681290492687477640808813243415412069559059615240346987481119125831088339967175141420603448238717423153024649875307584415619370181412816659390635053458105914272971694334097288868141274280215990945303533923457878964146972851746795151660441144987579795630877440324072972560935553679155142640090371415366176292668933321556397014690264284892505292082686520235233974336134370068301282181657653352945921657257216426217235361181131387203663736646536444026454934325150942468158699213992158611923981509226130684067434103647832553620458472890276702013724239367424765565461495810961847106215178264261217436592582751274224750164145382128309152227867482456946732233951460867583631028009850696303815643933452068765974449629669589226718770795999222673352012934335866540434302376044068879551517305342375848716508976082497789505161715693324026244946384928317651596200951339935444999729844252971504976630527952053644441824304865064936668433872343994546847728516637774713141654731617285952756707907543239675718450330135159073190945317547184554314572700637587517612131413939602542553388908667836976986767511800672644845613887661433759270568667958509563132972273830151919392105377582725215583151693259664615858351184530440487180832688867732489462576308670485081019315676567426336353927164335591411038432918948504455870657112436529248960298054512921615279819474544116202854842087288163616502278446309881635662546566635994631911135431511560552650540076787951574728886578677097404544458803575450006676807581634736437487533669760554739379774296172513907215243837516442874062279663954285799782396855342360316758593793245296132638407761804034049392195574417768295305267394500595428319610881260342278719767583312382609759786407874418622732582605733789932654128648256310433804465435920644434929379286232851159873536600182147147441556050133955737115110979720912239219675361215945338560854976724122551033300914144255861227190479333369491848859893420088614594968611754779585612220685274726258552216458288107374856213946357353446885863325728726113757643143698524633739297233000238225331347933147726822188841082337750402773075358658453538863832127764251790341369728240284937546661098782159642925235176573419021301099284981428813862269557034645393042326961858974712969471583167771162393583124552913464858500301757777766769322446059776163575184244991551140091648379391680473676053721761031896610566353486282764704439935750884621631851809363687281745990738660465338798035800930719327278892591774265070396545130726813987797867412946349341343787127584397649978854471435379661373597724045592655418216741460396939118271513756731312919395197914359917431377223273436337173515935205433612762070162324474040897433947326426129025909937616499220467995514679751348499752331897830594907649698962145590896565503651906076255174825458405390147533572760452057420870502263532485812855884827539217092867214407687184051599901579565463872723586954986304241960024343184512153832258465277118383669643555464943074168533679266502571088007260248384947553021155695663160582183089953848573732939222502123757627733989597888421695212955834619654048856359969543729519317921667655439947646362889798797192815889601057064723463957203519590603803841882147124949344571651379110144217144156827864232645281624567048382789232823798729878264612937253653290704258225196251233905541378739765065961972199910937534627655171627038084523505172386362024213727542092652564666682990640489801153616641557176434800624561701352591199621312417149938771414944317046191375955885788091156322908813593190414685607099728473580414322196979435565134383712789128699252151127452133266505301432139887589656866260459754641828505515876207287746367862287198749888451735017320397956381665244462955217554891096804139142577469948694788208353554251222913285355275782386771036903301740389873832439521938435830357696424532458649544923956802142335150250750575191943684214548957149868383716761066785534945022619111871744840900829145094920124021815216264043699862755677701426193473779965041523611703099913829777410802831944804105809013243062510709169295374164584888331915468646771935639279164930868310127379422235601163459656373754015577332037056284839359110883811905241624964024260994328802690620869861151144366565576311056349111744726291114326555513885765703128201790512654786876554304088762338579837496570407173490162498841817361325358977397305633894201997979014670509827267760916174403926586061527374214794834303517540226574655402523278226056814219786687994601125605062510881602634464141150071494313860046128753153596977245614860755916958038959625165757154916206953841789863985390026127317105854357714635261859816444837056788768533337454345458509173775433443867740485317709166839334967505984886246983319658424589859306567426564899211924412054925545664734215131499790228824427233386162866024652354729157773291062806378306953730080822613843291668233312288733294945879743488556435148642659632150564749337515586329558767702865642520930162491043407268703086467468840460951995926642879979562835488574286936598937110411691256679330703986458852104503671374188502510530232679832267690947564804204858477632622195639737692048258118395770015127128438209817473819045429142326464651864867174523775818484588437360242469988477170672063357679911129932212559513338009036611360139066648938038590355803938406925226776724129689835173176013464105194755706746189656577343689032174729319512883748547675575236517769065713207463447939390793868152198760243279316166604366930341281436966261221912620868190049465982257137339724105470446727844875735553774965832756528158687375749624321471362366083744375947724849853901212816395264828562420752120497241605237164409705462182284668057690178347554265193342791955019982197178923181358614559875159823917329997391656367504508910252458877607659166988183262187210
48792597397879356068671431915339368278996335677970841567705521936024891713094947498331568408845499077895303119917272417982853888898493785330199341725538886004298032985679877311741886631155319200466511510125100789532472893920895658635190057404415824080068155284871269402736782996911380776436152205606933024398895238270328193947448692497278741738120111228877229350205291444816451044656412132184873081361108414491860319024698886876568099422374199112454523648278216546687646637294093164770068265182068919048165222880586889811163642782220293685737060211742153037430899989016648402426137804717535264023265441393084917492229295454394331425416611130981722129716826637425616619378538594836349527700757886253127708521091207716756777604024297105196355392280698216181032082578444015226741088153791421274482144488671094880622382937083426988259627346307448981776792283583344528901162437938641249359021878226127562723641298570637983251325347028323479991710994547235292467114513878695177245431704481779495738997223693327396745358200238482579054742976546693493880555839853962528200113891642583361311486893498799240240288662771548102261523167541243891870745645935313444827300673788403360515943482195095479345371129025435665821456577966134173306376724630993221998116944861684638965190145486631414815923175247489814078695658136382493294867682494591502277301590838569750326506088872768264814615135997820462053287933578248029471023378883801956655522998587615013355051941632658851741231173476982184856312192526408536243723564123187175963733494932769533800758546176975480889911577717762559590285562985368792009607173938509375895442139626260757072170947041588744091809165979077347372431037765343257947657597470366536745714487866645791438453250264411058316378538574751327941749922432124888397379827129616688943752063910683694709742415552781871136086035647767974851973953855221558982941957096136319289895028017702115106715062218621344872486536885162811128316151439493334422505474674709337191546616477604939477115828534121239813553949697841579283708701464030803273351840888551038947622965706989340148611920714377635582953719399011383030734960910737972071906562231218050929039724657549381038823627829148957845383565580395032629182946957057237968787963395412668345721824616511798755694975648269286445332780484217109896757140826215078686554409631847111814543964473834692478215905026214577384486221884059577465847246955682488283462071473935564018519548569862692676897798514247951087436549395594747188392311167696680413214924670388669642425110388795042183917682468304786024239084422914804022926832884367490195881659941293688455657593156993854168858966448946223164902526712063443687493734529265489759330322532752562018222861541890885950366564732477542407306795584053457872225986023406955715604575083148074167014407643167886430350804551464670301539772001477957038699622461175897478525977467139470913064418256543600828819006669454059826055959184050314357615679503398400150272259780362899559327917166554057912343564709220085931611949814476822363708400194662998766333355431186919651085368934990510836713361315584646861943460012467135584809182662655664393679342758935999694404150953476384053960736757534962336603233647295316348868347146576261308296032673502748263632104157511346315480718822618655308574424676534629369321048373780286296875981746256285929247517512591879155484222644159667670265496036984680680638295885145758278133574334569585842759122675852037447292811656416546049512379397835701299563876392817740128236989312907038539398663975122406493231935754645642326467474929233726315251952578409971520666338873631887058344227773465206347672152578096672841583617853147015725255973095181553255392017621994181361568871167090802742509426860779341429223634022460696118333493177617141237814756189755716699589650951418406367595847935689889052245429930724539238522026845936457580186057859493627941680318256865779754900793555625876034417776178708875658753474581776618684970942545673859798564678175591187741215918951727718269784142885848833768366025779259619261632423290498749322828769647148792451007387812703980791204354960910964205129465064955315979799988767264549801415559217259612839929158189695958893196221051126523763917216878251632494071579985799571217288423788086588782838764163834546317869241714444621242541140179351605384343355242296815772128937175920883747537437561144040549616862513889665073210781617118057762036584812369865288899259133884837452249494583470761498094226721225580990556595193011921363700757078145552011459389124729225138411412254609315462545723959917381071835960339362079732663623307541137984205704575638961454939327186225151907041324420141518520516669687630365782469509995539455734106184869452958463307162921807810037849563660711372374212899128068277561437927529088243980247172612517114447793677483462730202481822909062809455336056416273802298595839872462973444730482220899875766214965723435592870479756651437691480464747527623190685570394416918473818889185998813255654815236879992740826097893693370768625689511806143939899979826878107339731430461296376527233814033954264798677615215688746705049985442119221770592240906998888497156276915699650977842742992915799649467049162367922734218522524401230386391487338278029899302513876389028570459293442221494343266446389137849760961838560893875119471462170458360815460442531241691129595032292455558417655490463849843249237414164431974454117337916011732759785670906310493724218353136558142262540385399125407267634518442702091877942746054743233658159791681719755496572631065717221413799743161944907292417527145777636262412213229631981468279929824767705095770572834977802228554247952377792848438927448931479342398701005267403496027998165402197770520885887869145649803883712785793465237183725732641175771547799610176731126608114705049876408714012238813565015732661162740679614098422476138311586380075852055947721219456251547628438416697711063930675629753132335094442481288908421104806130418421755826987323976385615334163417279718741769381423384676959439583345021099385503414571213350188136435201255796273134349333863441876159933230451812189605499279952546297570103779455280677251640813069448741988759757705622224399165988618602832138859729991429090162829743256512922723610503989010779804317007226948639499757739955933967519048889197291373371640372514914881797697260471765079256731828951782234052456365515751453342560932577277176002672173157004259379128351422898812561607982914772288549165835296331206099787256927377381797535903733429979481564822763587168012231840653727134646028647646881849849042915969916903977047075442511714904936026436760960518901207053552415810784154740519676462679936405932869884458213228085338890996853722646722492777712861815615672594627993294642007418279370132572097223662078134156996009303345302599580939477794423663893758612901209685234859604250272284091293427135615975316371087482266793771437526423145943925609954698471122652269387068196658474487562715795571523677172740061517981623644160570427113516895065137020773998261364832268515148751748991931963856942451769467883989975713936794129896249906364849430195129038324933037264975065432650533924182566828175653051989157651264106168181237179770277868223744507272835207613342618213125542065288221460007519284828471402291475567691548080863528675763124763017659327660058719262929252443082052247466576966772731967731365841648724935998601531573468103251465865834458842625595824232693392853639910886962660301806053439596507775288672617422380085456806834283237161261242473201367581291659877756824580759124925848533707556248953746110402317657915677725659692264821032631831554801932979700364344725965214611732422406781437356338943715739205667286010292034888523799815977656029993679780224379290747116734191310850431066663632434240787968652701232897597514298374676469898395369631269666282494965704826185275528049056706991561195467019545954393926168559563717003139863629081641258868283936124585967536366304229929618879495227367497177678715732951678773701022097554778830142778367213972352851309130043191538744632474846539582526671686291165376642285151537742854557486098245674463417910707242236362604943737068461087553231758920955828847545846627014496677455961394929524830296994268232558479273518380196044423889119165523801316733620688345603030956849653775991979903257722010244846079136456468919722915366733491814973261085150685262614854335430155857412144371563086096418753927126013133257369961124252099389386058757174241115641741906074768617207108694966809556852490739741841360248510197166538337880667574155635294054624300397550895627901877306528638573556650348719967345098017691451681721013260366957581492712498388549843806919416563051341045779488181907945129672723977573158286809281996454546464752364601696594387646021894668346977445525283877356941305316711862407840470195430437712930043850392855102916856867036303217444395460944446673264287932663842616333989789863006415098549496397292488714314629170023944407650267449170244565460399357998490778562098916986584369438193030831385696468901116240372552860559827843954242516508138883545791984568738742114237177309547796664287451436141355283403759897858210090667194822377014626245806923052705355586083481684615372933687365783232710108827629547704879474671363390831366121925730864794513847737794358399245369122979409350977197891525281423119851200445349973767642379258888296309337244781487716609222637616201899846925746889487953694367635156967783450257465255745116426581582961628520558542561439669125270226296698175096051164646663102810811078810155379166156459342173994861255886888602371223066743073023682496994213345275786052649590039053237942498121236830387221222657544694448684337855355399963468019677043951721374209209746151117659951498903967342264171652365791444727132091698642034477184530258325254971691337581133655037299162148122141396696882199823826443882745349111184231217650175703479845651452933749840205765526997160445904107788595985469153748934497540104209741568511742295579125623447610035608584989826348851306630646612205864592243677910467405180191942696997236239487499385559023834128741923553905792423046189132807129878358358585896087735153401579193162978966574176431631388896954786734483667299649178523263643050092526667813046663243318184111729986947707766834873033676391049800695981403492545196954448480480263426269360854782271289678361096756616238197633592073537558285554594271839731474790681667621223411647201649454657865893626587172887162866690959119012116536962442129984719498081772100049616367614446354269414988910957656683292750476987086267123500226397183584464279867262940283261128150773322909456895892736061157232090623599566075275839287421316794850273852853833929356019057580253545168287358231819481988853775497076798678996977233731208660891273506164866515785707535252975665518065293614718438701296291627367410667080267259679410891192527097645335063805915226912019713870487421955924692173546658584762452496574064866012418396274255338523553322562133570865632217832906796668771576922302246355922391231384254711761948571698129771100990597768656655468185153721969163171309930103944914727728993868884695756259355965425832734823697782949160835185688439818843382973528875744878181535359769941488538987579905459170699440538390551589060571460150293558661888413469727315472039996341163661502042789475667498763172719082401543959523724610204373326325802913354161559122034953052793982781739183135753821795213992876496047448246446707961698787158113090111568876643833893655156907165244717783191941372436593421545609030873261543668454234165508412576634426625624142675885955790495939182543785218507306737515605432951039936904694562659079719905639221567581999433221415256570738385662214620567790720382957835439126944427447941521573770669513955292269893453475172482282453548839045828246685422818045736174134242321639957397547386112506569921787251488632055354126769035980521363295848815484515776257431595552354659996996801055289589124126764680123103526479332163124260692443947485896657912668034939948452763331357191602393604381173981753285904590832379659017212268780542201776417502011361159013643402888560540128983158940652532386560739072501147110166667274507685818388659854144189084434355854682781873955118641377375284810677096428798232680314106484929620254958762472152543686486603972725791461267285687134958138324372778308066112961034185038959781151189076315705074640418255286162357019568228869524276816586747132361235871226326249421485983813568508791121545394561358246519221695853889538583616826481482275553161625221916106534902958949587859681569895275932488543236368712711882759641995843894799371727142247911216756986192571981875003385281011193458562199608484478019087975218686654466872363534806427103347926739536569346995240401870957252681839949068210596021438756271596983786247137198315116145356591618555922053779771214552296148805305868678842034069312920945677957317492412115113522230520473368972429902488719258010847298035394191380426795559111583946823614453439074195174448494371060369169626483253792836016097258210198906397674217084553060587320759036198448599639353488126428264415540284329919394876735862928186501261901909896742186441736119994450793772955873565339380845645635891211967420360764353239158536596704192422137387543993007599842979530519228161559972073104662488758544502102999669329156042353821379961457469326389785526778772055180735568669644364375983715170287527591570117579825599946467569292270944395107372938871684402155279781172357470989333764553525001517688998412876466692427334285681288890729789969489941348854800579777389894398460186661371613802109336551365576779944462492205514610838555454653139535007580126310225667284387618908328046679676772364761877913588947065700412925247918661956833235461695454770821552884114561987300343384802266990038682653985376158194712638627713440436324437382797940915654396745107338884898177999559572191000448189338799456681921434628643175903078725977728807489361647361278037286819991269926625916214539863324371883684584896807662552523358396242879926462561616918165852955139274614674434146527381518565679385419247269476117420546172428936988818422582676680789329932625576879548087461449620323118026398578766753689668854742025545484227814564277948581992561563635324771726266735953257576481167081986518965487063448237756595935523064261825891733983371631884248579635461335512017518725519117966694311297478647447106478161673663768359704145860364503242654588328981416815121281652151323208312335120255379242349838557673462663088321643689513372731976344727300557366799187071948852812735478562523743783438184147982398046925585171482417753108164546772856821207106162288498670904874147914695343284549732528841679985204187701982888789753638584216250759897044391582345084283811496684824461322123518698989756626554176294214992786585856751363358917685375169204930825155500945161234468106554639795069095948186294196890284349694976247495432751009321014926362285877507953103981780819259471765218583683910251757114870535556813836497848713333829912508074031301147890593886128085523948286415909225884518245627630790349822925788840863604726528674353550232563511709359212218459133784045654595112966183995909456804065896587470713743236757407325530727755053678669442008070251667519782227412674134466275526537012207974888432254488668127097097497373285421719680747802584335383514156358446425622137897482854346896389537657344718955916786078470183900827607894905896782757684692315622978116817966576184577939471489270472966635468112283230833723629044075023491615249880113243663132684789838269268832392093661798062829445870733214314304545429938698041221358924822812863037508922236949493866996323538707829574999568142316703422187738791838795749218276677733502254475869417562113317079390788854377929015715155969982763482730534120582220378239802698873967398274108033987798059945602526239080568879032956448594606521807825850706371170160523836668970277459538210848329435859755610936751731556372607455432162565234841143498549046589585217809983219327533829436080167176495507239642792545274509962205137768866667575531599711769874842238947521172522647530152020447636761229813112965127157959981628567718711148663316304538970524747353953347456611690962729679471285523395943431163129437731939322520884492945358592128299066073608823040275764227153329831912725971948473623995682738908329098652458210770986445082231642881235459270758833456659864790527458891241138580694768978698719208697104787422381381059271928299517527373339502631226963245968491430412642476690335261351597271140696807740235216217732572284038083077980376848332177161283741732527574074697125161176771589115557684263544161215427924886173607364621257682013575509497604784835158511499979426792731197518216286171554783858693323284395622683409579511441571472848695243425969644999147933222848277441355358898415244956300919825563117716434643584162732714432254559795137806658278318648980075587170977326227381326684691002565785792499965387307320361951538016152239347448216958872378273792226532129527591451520722735447555705757770697138500453813153730482289765042580422986455634694464138886855957625669579113491127452482318892137492314134230583193028861814334222782986477184365753858182148368109831616851618575387782178290665858931291433295043522508720478930681293476976633817572832573458083386371353970422857818237824741362399924391849718318312224694519092153730152378333567907425177475254511321842495891547576574627991565775316607220706650692557638847432597659551190996068694448079988211998172249050089854961238063689501467183621176623289958057952387863699108118688662553275752309497512224234871535146856662604460559587540603593487006338937582343967388083172961773594883360529135116827091928087760532803988693901665999602945533715292213984881929351514403957948406913235671195475515653652997059473057635952047882662552945807496299819757569992232283558992814574543469198642047928583589303435038461784534755383378852847232288894475956277021481952945686771932449707834998321169405595332658771744963375654772863775859335608402745843664278381891576395861138553567367707241440881662814797416725155236955793435132949629260433670813501610635964634945398906949070332198783855249455958498689888130177349553562262412668623254588694176152449725175341271339949684219993925247530387535738946977278686116697675603375162748518821197865967757993533818398221239856105402992778256023267255881666589766144694809501871586791543474403518336732175243624885018586927444673956791898554946837741217128581323996580421712799863777482911362615655354434715507174055866818843389645068999728137744339960976451613931670001032265383820837155432287434684319177361567222351521697457214560670040514625514849769391364348779237030324452753864716175981870582852162366876605415948872056435943688673725598978039614047525949180332274413904759614704734491530728137307856534742324801489814106760063939885229623363809889893105252335047349134653024897377148769255157472227765787359341164794070276023318274254012425615211537767608288356561245886544323887304814223541613932952179267160622726479027151396166742400118672186417932346444669628319511915788278282515025780479393351903717962398701772918905172361371746719096962335783779271149572028629709575983774212840141701608287660178269952606745272582531067675496276323163961868618035418785651768582231307394521557253499352148796669182953631062033182342422960763915983849137312585535768343503939832078577132602483967222296551408665912925318858760759867768431547413486027542926290266041034797409419929432513719397129932879819015366550208535755798612648297994116800229417035163762676964133355185673885064488134561103812352756071559463701370477270078779368794898447183565962101925832573529903564325911712554984190637649043077764591862821673191557473251481079226570819972935675653219463596272583495315955833536917627216442233753223342732811861031219597238356526941272447867590551161864692746003947955634558049667259404230526954815783234178591129150399293698760794681711994677126566459765049803801110427604654403529284469688097265283336496808985715721490332030427027953886509733711855406009645594237629747181459680271096012661717464014316278728274795209024772544179552815879440934904159300465289067845315961727211572655114389912162081482134240792594842117462031572879184636196921568054215593343797677649907456806041653277148453473513488991754966779610354573611622948367625817988157122810178834425577626949827707107448816673806261261766058132553558003210287489431047040497939965657151748190870841393725938636839272110631572495292272454581430824014228798358269868146783435832552313164776107839949080304391667163904212421827974686110706541995102666177100597634316152338501696326296232758940495088489369536489013814031374804723847913917621183562809605048708924374516159126662281636526784508241661382046276196379480477534753607127214233906834507554442189149607422711930317535636524456276719362821319626258233028938929189215478951299956173089600228381712222903355457138806393293758225314478588455986910185259803736251671729787024616130085616965862227853301785582743057377163728514268298478705084351427477760787966682446710516973979009188826258065597187804143525374310928855563885715737677734184716800983612985868635968824714495922595692648417528666195679440421861134352282856659561943142474978553655149204624274438928455654442407636525287410350036057571944419252781428373892571821769722801556032061765646987176871360676910539727284418840282361127695868344798979113283480886378990668622563662026740201998934209227673448487318688633894563869322942717979349863628725547248644324676111480977315366336187465659250080870488870096776090628157085285312913529756097846460973693839631377518096522956754886395254062196262233643177055629032067434845789747951693302944616366367086007199770978639987235216674440815247696964169453275796736787308956635644545784225211141761697008542516393036161781106262317119578079087899189863550879207271692760665893173525985762898578616904605292697687291521862958877897151662170151266283484593742265367121502474429258439346941656868298554642319079684214226501569615832224957687575825236791188804323065319613539897463232465326399332622980354946688861394419439358244531834082772347068262734247545485205285158299303511368931872669089601651832284091987488104726537057923804007537434794598301334703827274437772955486927232967786952576298445935723635158496259373423133164833095815434435259674963854794814296442666442126513612193654310159905668526368754522064585508652232410260433226917030830296674111311288355394346545273902160639925708933720920783161212989836188521490123260446442011556898792925828688228551942826567993972543616874308277277155963721948689901345633700520173650618094752926576153328895600186614023744220955789719319145860059149359583225817013442424864610336199864222893774376384746649942601726663231524334652649625528219392098282803874132662183825836290376775743156644849078962561287121457548460319828841599239799088593984663994614884696612054472973512874687483624428535701611854747976150605378779661367744080138953587524698061338548827493110488956377110995474106256398821315464898116570700749589303803009638591403770093345939833829133449584064882669415707772329982967497645296175856343979672874521203381927554989845799182518873506420563666434951920295148868090919858874518799871980473976124829567272944107469355927918838429185248637775849258613260114929794530077419337194417269784372635852485765196730479663257858262450869684441787573613733098493837398774392634262307851269627617632507512674726310601769867396869494956575443782097981278593654747941270449742641141561600915933137200821864696790437478205773613793684894140963129830651367619631193509167298159748914275432925220725326752748780463814877641153956413917526175308326617714443714463545678574889316324951841910593518949243623182332739777901159121143570517288880688762999348225712263747728171057209344970084113161423590062593166401032608227883102512553710371514342538662627330667153861157856167944569876182795639273795952877475571128203293637797874753650716990233689196652227898144555236237985162686528814259694377913276292553027583933422237376311258184345342814125895795653789507476126776368471660948009686750424741386499831639568636919719733309010495124779757434297819050909567110063858468843317347827808255511433261862138571846009287386419883095684668838395738351628515396050758255345222586711217033044513888889131093058105826619824176874815426426126502279513584868369791729991038736576802641249376655085815408539125354892452937708828369972823097468188933409545606772509936798616974889731409862790036347672213976210229035868379884751183575367436788099247656825717394318656277021225233404063211374699959726309339318272155198677344314354799638964645013768926287247918430926547809552687252100209347439894519780828969330280436414909942970802272658066786358878606632328741492443887840772332254721471264076530257291067976123281613519725821524081330824029736870896325765435114233835867679456484382182691555734594278852854765099178616547863824071388443838390091213779979485805513318999195446474693736276400571807877264717419449786936876572845132946549147573876566687718507594701021065078959997231229048889748909177879559859254213362327856148341092698803164538036274785614932743726588363280979488126275809298187331338155465428793311891613337384745214352610818383557552181625520853752218319059831449670824939496395171096687742559565948531804998677285121784008742782582569933494449218452222097323590635893896418454801863944029276725742237799281680246565079445533455737050248675722513441941518542033601911654051597718335748421195271156351256133670076214145469654773429764273922715368855678857628418904390899770765245473565735162854777210025859303986430417068276991488908336864963877831453235972895691442508845214254567936225545629590470580486635392203767799748708849615145419625481335697540874772831306976494630953312339361541181731513142865816622287856359266956609531270061995334536100324981607754198070225677279549633438314357990094961003504288458678571664102125767000554773319900236893875442046993405300099577355980372443633958911498206322037916145898546874769709249510826726298245573746296252614754172292584041715203747058693910959640394771642692881735810826179521547663200372239786696056460606575351349546393845132895354539761538473461311017761787391607523235405658474206043445409781321665688795798383981535915823546024615157732284304721516347878080662571813380774995857835949107190059057716449923171384488624166222281763292686192788089714425196064181913503147041841918926867971628530716653225853110112728787134479234278745436816070237982854818312242436515569662353693165875773847727076796579765358441248229967697965459724593202342320326080242296043959689899576341377635904777841402788855869875496599381546864755513549975795624368587637271346273455679902714328658602552724977044484224279954878430182567640449777069724600551867992735777935452719267518442202664584478755388954161222028404571989320916085548262989876301818462586398760331810942409559479533640967298851548330835675469690630275328493159300766229714705470255535511891518574757774333966318602990473738236756721478692531947123573595235143664501043124229727052366129764690597980476842312989635651161730056927858764393629981874916312271901398647204755125296916281447447329354413577330632226581118381839595345515462652960759437760869108718379061386823733999907805441725982995106806491143123252409847937045767581564121263951837900927433929878927931803602444429442507414505313487715421212465274997236121974829973015226530423445254840544238538539677642839077829069427979477991188435702824528431647958368855685148788799604970852860379799094646619998825985825450396608296805195654269425795917844578076696998910266542961494968834597623224295498247808944868152396050122829195867920437023605159758718519276983159637735624767588226516408731412934064675841426954701875948276658646933668321367556949979833316058838383357773713950268619178717947167990545971459477591494728691419000125308805346395093966394114237142101562026173561888526841650546359106869717342824872497609440049116732291976286745420596740889335642034510081981224319948805207936557004593556745562759325217066315713905068691923858754817150018109256215126739116707332962011517716282504635356577752048560381871340697379719546176046524057845140622722968877888613236432889647698807253252955664614124949732769752318008351607873534405460159393870561111439779589427269232676976810789357029562443711504344498340314221657096753255963679732981824181792172982743609992808186597178533396931221820689701095487067997515747717748945305420241177074358159393372811478257721760034083475567435024469537646561205562398653565918603282015698891256577601217526089274709274795708765736646351947231572333156518064269629687789012297877803822465473971241331806872702771313051033862857370520806676516429449616080209283018159958301081478474259080774761533594028895423054537666165629376255884127419250628175592245783321242156511452597575205641881492869060102946916038112175160868995355415372724532815884753274534349224334513313986452060480484622031245396531741984867652274848116491554435705576593868908751318605897472180661797199007404452958972282294403702878395435581713214360259672728446915626184555762193164837741713669564368561465842564049632929632651057693411079483633634648941537952211871724401617970398486020557889242788953882313489412571118451219299769991467107371095753712043374187331177936664189853997899395150308842655221643276892797314874203827942523306538967565758596744265531537187343878051017783035033047294723412674981592961917226895108935926000716915643848588620573806362721528779197065963835502294727857231173637589156675158633317844887646656045813147451079796678986178322072533613222939557634877099329071659388285900383356433142579456198106083861071972489529451443681951681158238219975086546169255446427594909275893903795936681345851470579424508519945244489542585932553639380404731331308568264309864028319236039715348297222249396863318634526422335295156071173220277678014697915969252324416833475426535560615376299821864776358555715745903778562961687534606034998185230739739140388739238896343423689535086470396178854614871568319218276506270976058346207780842314266809287407367321899070279061664664082651254398624841564158110618071484295526336585100763429193117654414137303670399194077549592138970813394546504568955818863383848586174966249164486630279156927498467501655245869581187650680641870485758512231584716294839269172433426078354929313528626970145839731714303819499692347664737047526166028847315382366085556390694655273295557589069257184347932186589902959985696318698487862505018371224438183901577175986236925573185420052875548634183598011870497601791095412077386636876686993351245603278967934699676143394633236111279821548100562794314673164787737282981622171645547883332695497313749670293339235301249630598984399210610217577452927985537928570224583749165402097170296314997785734190770193567868972179441649540182195413034190178707616165397105746256856856473682750613515871636531771851008623670086443788625678931443771217035163523935295385124722724250609228317368067949577451054362553126527587762516073807605010359988893973457605648181797285796535825591341217622124977565425399984770262825645806263382689957356057696740394298574515765639086477382594688334300133543368925409737959871029384566656192254872805548765538375808387675017939605001174419161468558051951469247411777773586219274116132728965704042852651167404702659973358199308907582785497993261614465993243281836693284823754912339846842399256375616912571892877759917580085825318988624389232485914323557651427793765472147359167791131865226599286120068672235514720829757363767243756060081611561904273953715498539910193613421153534826979394412984405468723281269611392438921690861181647499033999858949299991895803278732128972987955474053354681081800428328843888584985857533380663694487129335783685475787973410748033457817753575368309617683170468423483536549168119639904792235359838033745415812524317728690024846214677469920442775281542645386564324598157336751899374415804392392905370657378760798472692432716681461504910933004227411879675709395273913989284880802789858449780995691273868895806289677694418849931727475036851795928056611546870499736791694354607970889015912111745322442092498929385152405259815007933536044871151292434758804552679065348906413214963539969665259163340359898664678844596933987145683433911338148839191617553979841795697768166829216730397481543059049941696234635747059355026222591552991316709752542390402344486198096988193861076014182502753489311126306663576747766713172121713297512104255813354238673914332752332130264331712394734611884714636981756439499761617996588277368778398308951381343353025733798519686661128627340760831663184275595195612960046257371444042328879987953501428435076593730892151221720573489847179812301204633494123694701281176684454374719861778313566060970079383167546687353127841236415028576506805742369408105422578694679355969291037874497642722482447859040167697731809713489531709706713996977181752869389629799922935197279402243903174486262391722553995367936677911995417104192146808195513655619974442938960178493877567389220495063649309323338195023692754649103512088477765451851349288167333193791560476140902670585370011530403963289796013332432853153905590550520572128273002169256612716915184643686066195491651819258732914155448138064074553055681311114468026685433592215250928749549650670134595718930455835364424372423340358310972496897269123759719006963635491619674345174745098766790705898622183329138345516984067505976165777364659752549787404460093289351889825334511623025756747197979489541659891495256921005901701718478534165682793571485569683971288598778349635641288364741566895676525004398186671215792281675418265149225439207464070242164655946589756142550428157492284934277686896963610474159737604099453634179973221652464917044543165586842405718342588511879813993219359409105879317646902656529896920632670722082554590300599374299821260600280975812899446472870386184085166716773688905364763788699710507932988014682417164410440101430066550881070173111769175663902696059737153647432575115457459883390360631670072525693221229746535251666841778884353770987081947555665594889655068518686154065998375419304622989625616664105812835219144765472329562807237511980037119309865827713689360831161788202688357770036998509205026871981583968781420996844589019458741942685640747579832678698505514861221893101908915885231218931404668833472474326151821882656744044362069678417774853575139348916259140751054166723333264577402751675314178459802996058412834859893338100776222672239431247415438857586951882994778137687724058848267022822971838315692615798785171536535717696896735031521069885914280217901695594887105988615475290409606887895757718312834234532187742113561665365103273633723824587628489655721949754167627857868541186226151194604976757867350358976088014805652091527527634210586313146784069611984704497363890515712877599720268990903465227461361746026632045322127066045499021465878399844347067724626893778932984372283555117155124906576336053994373451961792599354432367721372972448857920113376023797081100797134955138797681233984551435546274646527984795476918449916844931504385290646416757075223985033081835825713047956731631928132040236541090281040678844169641312675141661212310119185846812177799402885268445808641606721678065925733634182088413569833052549771358269517295858935405190968143658573717465898394799502910806039566206431398579464273889959522683880768023161825192104603022379304497966820695134059073349218791267639679810838691812494034332626341834866564207816162882385393577722752577721850999179488459343041424743420773732397195620526719398832428241176564064867314314638279684068658879836539174933887858541204083532632141292266715398877862743624076361617999138488914157531012608720795124295268694996899990562301190280932517464535188433860899513769641466938111104939926842847364452437388977918825453133013624443791725072648417944988287393167837661974690266398853071921385881376153032519387843624743752199793625425645446350816876459581071838623715336694259716642831828993326155182163911811453494981844758034647887607455913576917438612369196425377720120974417801340996103299622681439141434141126912093898521988010243612236319457546983148044554068218454852103223812418827594718640083358614489938460907039198077896014459004142143078840273716457540572646934040211680904797957920602511735793495980573435341152482190142583450547657396107137701153872411613939354638723794677252552842190832318546188765895818523215820609255450546387230185988344528146452104460287268168597131931784503244314838869563439286793342729427956283011473328313794405962710865680153539244497081828712692178221640886234783585938986748722223586215895330015695928720677394704000091688414375364542852203811933919373846650819378945989862666883290561864467859548539462451029261654238990916469174790150637194631757286998366551862483117826844645966091359694762278382918134299428268352203730879959889483418718986523287503951067046175822096033990251166590385465213388187276902483078682263616507475142873578331515658847228227695722348130121783719410237087033602213678515183397969281121076896802324007121831924753157535483112649037619452812379770384877390956262856976848535468116071096197903425041026691006634690779579118143155847298066879383277086041568542131484841659964680441799818360534763152608546417864262434616946829557507568264991188401205820664388543924894493700816785174226413497166361131837319465461826273559135189721541679867279464734618328290658087758657567824629863489559191674023365221787075144270806279351532989274809962440768110214665583229486676207742951909562449246170783353410536068546224903974951819373345991388027019659822855443849023519587573021570633439027331225185796929096598559693768918026300576746133686315122217231140994799843724593607374489947608646088998762764279862245294972964913889572974995791314724173431653639479891859289294161459293271419283823676457912480468986356557642741526698364176577783514304117490999904633873367412616042291574818942779024575999791256918591953584023194131270558524029521421131312999039163933842502354868223107284539746078640174417984120287551399752770669482755787385889027428247559730833523691574378634859586394495581157748135168790476255162114073168736627889813651936910261429974333134622362575567225580128084636181169667369761458498419073977495476169198372937755956391564279686024513465861023857281586399157989824851128210018978388304481209845477342349649172091365868698831446852458009914046956418725311728691849678967736437985215770917388738676334064541445519323521895158759908895691635368674456974989829881261836385850764933381804997118707345695807282379591123375773642148616107411634597696708259494503894743364955587145891857257467113065572885425649966814963801315873925797491572971504056882890711551472629964934765706835037174286784718441002503294925965359988871584347462794137522022442752420082265402696672711081127576962224099015144428777718023264233233106330873517253572114427997929120108996802645661479906031877926568385463665536290939511697867921596404665416369489172262890889720996548059357015526299217810234986839818318169468315202172823454275418917749180961245244338337310264481528487369247999738464827487979687782693721987603361851532298153421584242626576990991392739404394118511620012639529915210164781277122749930294241028453402974422812040245317350013271923619132717007220371341943150915748543256924678582135047391171489644414813066233599437954480628746185406552162511302293139852426590379514680570097579516408570592822828615413147218123698941044715461720820365142329902848513199305255426512638395437164200648945454618785325543495522079959477428769436395282699783851953428236260656114088306885614104274945221713065634104865915119203864854248841779329106460022338714550870296393362621780317544315851694421934632900362721157804332856791360389488805581962058886842085423518121951596442579718160227118462871219480426900298698435395871433264567366292170994304335832683229719861765798752551108226313693355169549554006989432175933846163541060605832355760104876579775073850680759647443666911478117958744327194066038480140284968985789189839629929353506077319920685455206887404679502788871786185674273294561272508480929824758847832561388741073695242108689253152990280439231200891357328889312804060585541104354841271144283839821560233675734679203145083843971493303674947286594367238115648953391968629358865721978435958074366144099097041860307672437991019466252099773784082213897461195612938766848692547269588562565439525893475353872754881874191630398252017464466250343506382837358031928036796476032728235459931995487008948754555997745754656009204716572077556460143636828634763226534626989479876788931889761363454594411618479363279542559478336032575276446810946965111477375945022437440145397674934967383116269628092380612138114003554182702583277018597770900926629669751380978544058796059281117176817274726412488350681214202437152237679085194852242455984634314757239951966011485428142739439845512453216264938530482973786889234691526247827120278661376739518016952496619145986423539929517525318550348151581715344966080783503299986994633198487805379592417796972690048192128322920949567295611725130726287238571149218181253282936220284870646904518688041408256368446953463523821764427623883710179871789225526010636688667915138881858034943904515056455587318641202285130808686317722856629152231970037441990291476563508817498926691503281188254309474528447111632104399758740344414324953143948020389425968141047482610501285845672108391802140571907830937433432454597884892549678854999651173359030168812627136824393934713868365896348282202589712179647948517636591835416562778921510951828368374596653717818700017421893943224792436120633016862978115235140723540311491088860083456996724925184762157628158727984363968189815645572241026019377622296469348534091230671998769177279857667910894058599024844288270138743674652393582728780841989568011548559293448737993514342525185514867381586548424090406087086581308672163639934280227578601775597328549993016879993637092244233191660761895827380683215987835552959712655984201574269251412892515395301219845597147050686061274382963199638877507114560310689299322577572422655521724601804878919745385765194671824424331195213691420595855738410704406601450274167119070787478581617711687015857030102574276979857458142053243432521294572014917279578839119096197821802478549515451669602359651178615260338946411586600753294128438493841386765661811137146890966050312098637028512988293623479771145867847914527102554238885770986293066684801413409035765193699616767896128011757274836288284121195744522517262432924317912759472541358760921480735206677018260056268011280538287029091175329651596055392259955793318798032233470850287157897234213827247806110808389613710324861916324968987585342292937603935496339149227996402025552621785379275438613339775264589838037267281425586891483050277512954974962548344644858774247124605673889347319691139295077394398637397151563362222947036768399831283963911637973999258672866768946053002752969993617798983869044749362467550714287325487857715295281377383304297458946813177158623053727939544799390050824731785231081801617165459355516512910597485455149552647387270430706284721217573629234626323208218087996081398643985134830205683836575491503155317449409941208781331456570295382476550402354335416713084534197336492347747586260954884453433677466221693886541847327847624511517530889110816541366572934208669013347711212150946456884303719698720483684286539412443494231350066632599858167290960627653256324969526121525981737615976680278646516090808787233524355859136577424265175493391327263819288891257163425047787837496789595157955444809123144901239093133815396474225239422099327987246875184735395324699617614797980201688239932668359669097647226631233314592723212894480368666633075971388532167686894368739436153747896323310193599354485606659885384699631964445569254904151613687465979195584534915457849546769164180642253600842194831226220176686332966450198881205046560926576556298475053896075767603969642802770657886173560679537333471344161957539909456117636813469942803819483449975025637206547777803763963715018710916292959436049969328679269937142734864498108882364857506344669681406897206665930463206597956943285796266239754654841556202211828653421553267497639039024033553145535995510994949421622986122228245955511799402872792884180873439194788193185942398092642738471741305939632168670538758236403847836164058152999727609345653408391974583933521092499161305907127626834562387467241626273273105521624804114920978794910874222992467053244747153399526297829375518723995307203330332619676938357274064812339593496391841628833073601584587279384738349993126212976991620181951646018573976861329483774128413243213244230746725565248955361995265176184395034498026029569979920233540184576827430511859847181768281202981529927152751080624444107437217740821874314681455042626031593699184544199044822925313425603776079573111622831150792697591985467823384478184385443935671233771323430535970161969834962383629428242597899483579449744652740572974696319648944670888941907999519697214046647306494349642571337515637546645472777216596234580029337113432528633164019793108348178068526296457339723317031786499783422241753409874636511825182131813479087347846625364299118944061005893314958793732238433627141217640245631077206257628709547360324965379597277116966510914575185922314089265374941752932937172819672488762345736309195768648310993918596302691001632929188670472603301168809906102181597169170803446993632942982981156318197391196448350354993055610878774202459560554970895659149703384061674897843457159522810279205452251478452670832760971600223397282612095706029362713362404415425144826656370702217630179829758768952827035340136181342497861144309051295526109207378704155609391755134738482541171683605497146828638475373026886677464475970127711892270248016336087333654497274652118181784761666628269553991274811465722145249512298227442683602194216312259076868568841581495789869221762190238364499611177277693385823543168820191993001689357864391196200757025984680973107474372755460192743749351177010884548981516731181253023458891264693396479113419873932896668254658116485376563734862984631091389534572134223624324729585615938858327513380332555789198876927295555151538656128982267033338054566229638502762547916535442397368826802358987685577269664058062580656547711729981394556322932630726617460394448532932799352557839520356078809446093779454940668624663863485605173179407353301693845798144639765416253173372854151924556541588281623592491577938557023123052114583190763562882549814345440949234463321784590454907560992492344845910126757912356216038827363658269826783251355534329855366657869750484711276426218386845235822234338894877561977951338596451593257766694138215664180164666688491389523538955095843236754910644015324647714932979894737887974931494423646863326274817182378594270753059469983603187504739383194525205290903012689125807686957489908826825202930920924238973955178068592509369071762968477940859892102788514976537469519176545858191249865840807837941355732269131927233327999564506642337108387989250159324679802007194527633719861635248668808691276878184376540081236366178854634302485768843632274485935380983180178454454208974354959317698153904756092348421830239774706173555688963396370176879651034555321651152337868840807507447267913671522802162407211069021911887464639774878643215712107059153723449034120115963106142418959252283789697529173151493358644721744965350993373727998811687796451941849682216688555656168000854329470564846677214713091986937027778131634375256676654797767034108157379869697086849893706394541987126340111138271806573534731751421756280288071516855265689817431950583465268339744129760076363399866303133062697214970173286711882669394742424314781679755823843751615274199469397874289643437764111467913628638315712287398784322428998690319970731771648448125491627485904099858130536144078207163466048028681325838238830216142667850503056235115049296558441571965258567673451434092652781596747318121793487589174345383614712639542483773176730536756564449137236512856513231788682334931366397740187414058493843344375142774885923342796519569509862927111655889256414301963442659880776958572268364361275215360430006984463550037682667893808248529130051939186369437839802588872359585919577371770458773642818618480665376233626662481221959428421480964358328763269721747847233412893721680023214293100178838343587066714452337066411633788242792873221935216976535044894394089093582700012221796666085689105916862179631388872737543614469263439747488146366939030244272874091091547255656790540945332816862271446617189634876817946832249368271907603109257662699143688964156359277238088569588414336951628499320333703988121443902617134836365336062940635650276175271127785516588389701181278951395896977387373183193078722977835558112415660149262141450179726491691889380157899036848039946973174619484868387519477237600987706271607050760223167696943068468610682165570885870323645344216452764450397252481916245260936739918218466825500839624846881180630858327634973578944097781879578507729829297979112549791311096111187375485443733461179492984682307615957483030592192117857447535562192142673079798232235074378515138773534288465170940509763087286445039289961886481644287417861359458727202849063809092166059986521689265431971570806849265971683731144247323540857357349637646542797681456111330331722173342118882725316879490666421606646343981289228336625197224355615788753446392267686981351396347838681403974316146218333827998661553469728803569653624449996373586193891925438885812685740619075925336916358647907763150300351334440820599747385434508991588583096553849566632083593836929508898298687525416452505911661258507192288637225004266395366465429612476190443047625192801052033084759847493121266792957496389167177796647553766666867651622849543270084432938440145764943886272960738805181060129169095256694249535120181858142733510255034336179768688853989517877281152327587161701765759372434670523747828657118427598970111599876865828582084313702743917996955559443153056976231626818614245671426725137799919315271718445857349769209326265256844424794657437935728608946195570464138585348238231191547634610959199247756965295518525250166798693485669950906458047683483397480153451576655130291709508507547260669681132812724526901362676454699249658217424479273835531122148791553301051366322475213471520718710682356946427552949351570294775391118906139777142100126669882200425943828537144941329009131218667475651738624985824587916397795752474234460221762403489829841913647206728647478974378675638469942882442499834891379525046454329577168371535010282832427339974627243777442583176683201594967671819899222363769150670184757566926998531733584481227547600658305289845776183586795761161465607269958180581026123938687601142723513808371419338105341943074986248075496710288764146894958211947785403870112439309939193225456893615809716624892838446497027204826968461838138589275029469356582083535591537436148334626529033226397889306979684078393799849979872300953365824623830541983652446783492212699755015589361987858083581688856340891030599820740645394974887651224855957580766880477294117051519942933133564953047852131844109249231816846962778262260889644972452222133969366278937292898463219437221171732931055562250580928397266698766851057765372613412281840761844949097649338272590960059019121784362025217238959646861091422969963943383976736738765102381507967131811544120585091139605155012719434873610556316038660981033416733733541175868789331268691926607376591908196043997601091820555609390709954226451323297267486642207151522853667215738028417328800882098257958660967950366666950418272535546177802537825173471489341132161615147434739678357802946426966897496931419264781698138599652844949562887788950358629216812844769683931916596875400746314286912409472286897109427778714587737923241532176678840746384662461478305760199156483348048667343051694626512860087894756400846395533667102236089641996190639180970834683255153585965385469058294008487166609606271316557256205067139217533564227252491021389753033832103265178154610918308265290191180562728626953527651301266531069638837321402484673946550617644424810569813144465754117862555660521759222132138225263409791876191597590077898015679512267339518639734466545444578366098875826116756926017133399436607061754287458901864978676539982207424541122019731640213378535901586861207644655221071518075116733383096478490671042194280168572956266596903314354346939994375597349642754969557433813882587593460259478978942349730152622037674394946922712635432249189226732586242623261930394166675757051429068510408713615997530147693224026362316884999413843397696931528284589968477756495899028088574284128168153794391992846456016269762514663392983813905162889269314632099551996781511374967466688322811330957129364617887929353540835519673143327004402926047042829017679579735116475479668745988449836848857288952382685586724879290389578924587872938262759675013845540372605632670157784568554542487619849271679486578759584147619294726474480785878542152162242715699379461997275623081785914257482713937865031119021266799884607649461650446226160877544791033519203921421018307844522241158791245706541493955304166584665276755371933862809430795467336282444939157178327462745172515266019730184598474103109268920775274908958622936429226758261470407666714164800593344313492893004371107683886645290049736532424792233643616797611400569325755880732376341834681723531140597678406692375367288049163969418214334548919977409651998018390595613141055081656799304201654129549644758551318480317045989949278044067501957338740155861074185380454485748672418091972521777684538000207392097092616888877106077735435290310669422554738957879392576459156420234967494547783675255895756447440364617404776604714926552772084495508785059617797606399504719133513912694711774767758988524408385953491666864651058719951825624408955622229983722480388504688523171757152154296611417292327872549399763679898032443381578978936512662367810714419709865928747755781737189787489368532325664678298526144390872956488045431782531918411753543970904168039263183239649555186973186813643653437475599073453099409299266183633183329634238156644297532323823511773789969346906362719779149465479521428347579622386803976314784224741913167420233066101399771801890506569538668931348292802544632578926158384456771620792474574499907315394893413056868730806051147499364414563576012266701222483049441442430248801108748967592358635485328122068113837739642442620377566267968132778259629958091923465201976055218773171687287045214435528709178567119712274293369906713471926892763982939859393333997707936537506297916924525871541726994312366782685189490866829239078279869838572302322282819459342469249449620555601964677709392129976320872289168876966262263641711333406761772036550540169970767982955130151214635116091944122889945219221958834988965698429429585882647365574444147383577138594791456761098489975229711957580809286213359534301462172094392479876363899044317578840554583031029417996451909181992436583921957506343814306294903649945518198005084534415571587133488800297195576591754475165821507622284627976502565686715857115262574279399941685340276884041408969880918350047273649512474151827981774603323373393327313546461594385545156809225939862455475399383205545381548997481266347346229345936193573011325011817464366655468715239033592591534909344922722942188847653085262925406831118648367034871827588419786450525921999614241739639259826356685359333017786654582668642889943684805111913956115280871431110870786673487564275437589955787409261799857577324497803540821689258652713588224689522155783510392456463137516972801711793035554764396912805884957379571235251523611299783138707519470899661441943534389867529643706721584289595776475986313887787134392374740608501715955962672179993831405353750415458153575188245188031197133200998395816938375657618143853927811933628964630815614754242879974388050942271237809842284552717804579892119256245851387527865059078635997306830242845791829716111921835391661982411043800611114105691947253315046239604994193621537792362957263483467506229747450420591202611955984873546901360885739843624865679169773614885072088463228021464795517249957051544493887268193034050526762883945075744119494379146804034184233079732314383887350376059563561936596342982029964253031477289772744870544674071993427301707319415664009825855109284707841509817210975865945194658553176426727658022059864287116204725882775819672289810829055847410761267927749750894268536084377883937092413749269240844844148400584682307070221454388321020060767113308947251021372354277444510505158723888874174883658585989656944413603094588923529581504203396441600289618389179968560033869637791436597826700053751625798085587657873286431871582807621805023983499719319276683650815073146406911295663039915119366741305144633756522667698090687394507609832700344586917706011796662932286866368470690823721719487560515073926239633646915980991624761065843918556742312852435590876872631546746732105167496942587593497142671773468394255490695087342152952681492270926705309287155390657094431782552433841552986691849186142729617514389990393509300070631133676194295063116469103885327021034557251918214254232323226516789827713695235017101357186545532359978003607721319187874466925019022896521696357238811797629212879882306227828929691568708366533834474269989107190182539259155992675865656442157336373513692032330302215861435726263936966474376112748333177882922878738346630422667775789418527298568751977157128270467536634306163090353250011574896459995221769798119268729729294791655495075153794656334243572209661011895685980641137457270640657271141887130019932696564581789804032265398204943783407295841264672114807846042469326822383996282697249741160862369598808873553291384469492145182338352244262747071016489651061265808521198277928796995253313216996231526536748867566113111421462091998256114355872249746337466408386598702006012589037263288181776280332029018576126374115759536517737951945262666411916209651997621978498218691473747556084095992998313914412956527081556372816287846283629692541612465533117588403910999592504344235433948565237877696927596647628421587328974853218179397535258320797604617783930608772337443586153844742368699949048747445327745492982236044291957075794243746153195798715828821051800123865835152204893134741428793053583802112549444567285438872155299493374722474801561440950558065317195573952503477166084449888875517376993894606946497501861243781922619848365480694028968373095601882429709109374177665988622738303004867813251534940267538594098655498952647269594292052197917478940685549967840678797417913946972583640198420550960565923444496885936680372391231439346732968228782626173363789103601939138635250299200386216529202041998775271955620338741173148956784103761193124194449293567419692878212003588370624133555480470675524213569013978652156044766237125852664210375753086384359935709947558025957739920536465463805309266519561670408173744254500451548215965227917656917898395783784550431977308678888627082796826304546334972126859572499513435917583885282707909529704576717194070570578548661675039122888619782264963651666525196201341725287834613373356832752376658940422592754759107487814613404174994050639426545777790222955290511286868700096332220226126283274698483779515196894241975565539759374582515421152670803495849243700357563174375538666826960287856721613215149705767397025561509575744605142448091137789573498323158694551353362677587934694606149782474287832123264861477137851432946125703137520594072938383958681288077165350959059550370598535315467578194642296551005223787957579553663484959512629394839102880193948315587890644043383844291149378493830922330774416587669287392512494933761736405367986539762297384538841233320921094012220887506270379736968365721848337271490119654845651787565818111320434396609391945375617011769120548227890919694820297757861804233895342188941759865307154184443911130597697504783055523073590883355213617453809422692299391253405886207610360791154139578253518812656939332554485082585964316613358623468291108336892699857828287433508498294141582336892694038369190183089922095230383429892725438411519572364670579193684483262876186179476933558736875016634257425390694995869458443858444739739768008919964641513060487617792955179587716396288588326719827521587670145879361685043122702227452595337162982727772484330408332156980483842571894294579873773765176495333827849637501079378043846267645582713165583101019126834946463173931152449532923492778960888870337271828937540537942028872338778159821441424631074855280412018829438284588034209563220521048207434222525973305642147772591495439629109189507360062177486495947791797807584729457227370131873884454869787451931519680021923913389054079121498316849162437312981563236306462354058931158058845410395169465072370754445754700698660449249142888289425613472746471831199392084233643419914312390402240521149785386642102897641433297158279658933535446181745796844808302943527323885482376453986682271326471962261898308482045225875182365751924003038574128383872653791804666631645425569928927852454848380754640703732162218981182319897573065992196362854697455063922326531154928872481822144125428671973891478922066773928007869314266514229152145675921634200749603588165919082629373203019777956727117770146040891757495545806958108941321664184219111860225464989401173842877282865923896484329379308842606405789117206987795784915085711594456078869111710568857557168253823987228818114404926929977547948459619726695921879793296831383671576557012574523849231577112998026057084797305258883457498355828544965699384445555863370414882628224977870898276102591334937193681824529343318062965208817464465814762543324549701457605983426367416159144177591443496760541244607663536951315116416547425545852872859721665462124607346868751179025538278358324831778059795322417666407646632651478012611666627839635358347372222388973987757033877041789839807983368103521165237727316159261238316782147351692917375854965008674011494757967756548766553485489332508258221539021807511093033923865373981687802880786262466276868733374285750633845638929018963738628540456831578553330597929712335954308358187724533837113573204810521483420834623854002147079248739974287443574791527574708254420100879402750687961167950193368577902296845399169905791954274577181221486956852242926220147503819548734367433087776130369388426954814571073833892569879690053341129592323833083128487398592629387834209857118210361749654852668287337639923133505592793807742906368623270635154353153934819698703920989246174099025063838581088235964937646965705825098434407313545816547492180260956232791633870913573036350559243582663683691739028309037857589283477953678185631721286892985877268799979279799919396056909522952166076361987544710353788844154347274488481098298215859875758945656937844635384240781115133945142538926511318644918374992092733209433297548720933323111469005574212515916260116853255768624665635481215263505118067367924562366864500228242733659308396916241238163364950582173177817478814463571664142547371959566658691225686122022295897776086533344699606835463972166413276640436718810555728084274150938835425779306490009455378377691969981631706301226365749674380766206565560195419870210824845428554761618840314656278573968811756413234829066182731790505783743378914542223804285937886847576143076482087156555468595785123792692615921231779078080476517769511691428232975046424328335876187038730949988937236757236346917614030149344424126019882159367055615377199189438805670191927086755249779606266130359518828619311152748378578808555877701928753929522021369384410559049474424455749372587217387169364499616446299602882423198658166867323963383791862291847854346917321674399246465614828924415179757785821760741424549513893887580843434927483289073022212959969929490436804743763296071149294228015107917249805040040956270613683831350850613585029747627727645804356989913175396763199568532755454467504873462805238590235205743689349848961810979980488712467433127693413524386932685055547178142184234063452505390999699098078448389357519320617369857958594743530400822804923460454823307287833145547020850072621744221947613871269317317589981577251486577459521526448940877947224337925494959674521088549208837095275543466902801879189481505754479607108534365066607558886437216922712162300225548098775925511699224748926865474064298324868556237886147385727244118806344435297780779210864806826955781405961345235633515316732662477705120973966359132927821376609883414648868726882518883620645259016866585642639038574271557262733665804199011844468087350974915494446749371044889637145524812658991045480644045673232361791357823114507572916109646364030454509180808282896965043522578735412583298269783179763625548339253006239696572533412812912351911739057775194038572353497874797401438230599267940631994263500125733529729768629264843065687897861192809328243124737434121216956148016916643292699674923074056500034289148512806433490565984091686703442351656573846614941052038175669033760013302437184751063451101616641609460053333464204640625382978646377224918033568702822245860207543185678467966196749693775083373932464844388571368749603373769706706739841607054841980680597788262472525813436109705957055705198337695921143161192364912779285721703354969182536106998026507414101220527271505884621277289858068669031852560173337733585685350797757818964360762621028303327198316235583815248778155106186692695106324574370465161560762356008596345957191416522706265486622528338949042272579342667896783089188405084762652234040133930512918703610721947369874884158687579254763889043871404409692428885471981915192150964623008974477859034739155561020947130852841079115615840811843230194218368246914094133226359339253934273091648702248822204483466317546289649862736488971799109575010826127743765342028471924558266462377615487521353967068773108896879918936861527481307672649785575349114038785040536721885867401866959286671324265526956141748276137283251669147551679631886155687275470253268978363844014037702115194949818757085489355348645968743744223290738169248985388333001848261243817195126942868994968734506333501948448416805170173094387238264402863815804013316296779295060685933216164283255758467731787731895162314846653945347753617731837936374380208715828083323134451310464535030381973255287984589847473616460324495294843987169317871922017467341233278128832272615103321183884515783931609602759652677335997802941132012275718151841295883782214773726895274070885983834759138884998431278223658719635257676956259491582971314741924239312050807571781053657457088225025179266863687432910762599214699396569156854676014672598506544931695893858947226021648425895687360077143979278627238338110513551389511864409822188190692903466741490829573258515047513076884070586939503814774785613572809578626206333879325056160396154178320922664905438858727554723663954841904542527843845488589370788693652918283381841482439959198383275727072749444065237125898038993947674783316637191527917812403341262552096171591799376797046764527791619561662199259482964390809696419917282410691315567926153628094524524426164011518593213508978472792090551457808361237660956933152196416122365058755444868341667895903209642296839163643349457136758042046617987667720285795936528828191805525640673914379103365736359380146844768659244832949684106533309181714517591635299819641572638777614643351613386846817429589379974639183363621640606896963076098418645390349560174762580730298467685437853134879535639224953753976856118118813148144069146268220252972284227762486171946837681868531982301583834932984035601396421118947679954867804409963198982949342039917581731010423403285716409852959281425057380319454391319393991437058396735929686922268649658690830132055938915702348683127067103679635918470678803223858035934297756196564004529966211195168654884341442499928094995183698851159981614358722274545869824143234388892940726981177937273794925391378436369520988709015761658388449236656619591591645289759449052626592583823824986466653067189280503859935950191711916310615234556592164689800607521152456072292929947421914100609128381051596386151177399448267121876799614216098126465104187152288062520992232250537634067950895724284748485879541892754420536805580712145442905670943077592842340028826199046538326972099898193898709932252178854973576378868963931351616451872327400672981139752066523719207354355021359522810720328517864600208241704317991399904815296752181793818691909337077841348837398890550154706847869538851171305691280350698488002224141080233415085256287955565486484993956398338830647953264635480077305271206778181648389539640157368793722495351938764155909993715938665937112273024619657374212348919223273356141892997643677171595815798957926681295588288026466165901823630682682529182072734427453440863368717710225440886112333440374697478463067668847874994649913609682434032565050735117462615812524906489525868437793715458730631281764562512373641739195744998963701306926011985608112686396654936995612378929572293069334862801073679787642528114420982974426922897379635298866716039233624953508835562358991294508936411280279738882778385503839530141891661686823525897971883206713133123248829258061545132663692775448572505355633274539496133477041797878686445871199721912751491898655170756843629637954284732983939239191889332613023244952236115582121661391151062359688616004858733550566294646179699415893267271537711934899668812561743019664159877395115775670333108376912651521038337178670165211830418055487708750691643219728740931370188404670874739247107372749130889342189283429440846797526840161317330176078734111453568923540058489760561819839777048446989197509409114260864916055135958647053210657434284526274127778322617818499776765794363987569807517474034640774653673395953682355746263728962619666514977024228602802574168046411593718590290755137992255693398147952948928592028363041226583217964198830625928134855758044844908951862350971545588368773387926764056127465701717361432023437189359381408296138272851789406463112224195861024421869694287150615461503251706466955488641301248936380516659176994621776326506786767325934380958428396342185906011893636593528563495008859522486429691939578655863359342616686461321438753430892286268109741743936271944945196261789996281149407726996711414307337152986074399160546004842269848676791405333826746930831712859744246528467377530276421161704300507926631157315025329979991812782597369699706141393274980692661362516103877599958786421629414348789878523930831528546139385073430721716167119564880219444261693895346880794383679671029400395192590822544370363544316631973546747021998681122477684195280874921831480553521774071132794536711963509409986846560882182658836358937512878362022713238351875716438305898496593773120435655043081491054906359658528778966632782073559502415679105383320389128733145600146266540203108864858923142087592415983118284547522986531381509856129595949965968791532024998811321114590936473464511898762076548617525069160512150415313045021551326777471407426407263666928378165965684731862024913413094499253250381246865498961619307122825140427534708313939506901302964547838134290667629465734172662224062445616959672784908041046360628956315668982526888865066476837852380411220084098288937058474572453049795719919836119816530229817319545200844669925759723086353596417628547407433339701276588893913495605061742418444148764466844823595366019785554019897838936169478011413334711531041263181493057468494562440564189766688133792968659360701564234770536169474773432067579578019448385054801517378931726344094141786583263403335702132373973506418454606480765686031952523337119182226686324501431592455443459716733983243210342622398987662662528328846801367320774036818386579389941914468667261864429823972189005691628641533547993661888258572492182414842988926194611887811794380716919887230919257523864539929688809478852016520753033349170449948899131621726766741271004768632716458929832998566586305566928336676685635915552097727790383081096317390863260797229850179911385211932961446801687976883741989833978641480257432090889078334344424296854476296442340512375990800653696895978919759884348345505929974562310769823798287492936399940603725302535413851678275755318538273316207303651109957994428634813922725724822028982434993881955683404344763581656371315269688956513117273373171293551256414801180414682939953514963288391249442640613472743247535466447101769956007236716736330764678390974728260872470777034484981568537265454365465912883694235769375689922666055577909715705858036557719299278391145938225732407998386927451302792532699058508478388998795845664917325409862438807932279936891839244719628180742548511918030491836235139481592419056875714563816019246720885778767456089818977098399913471266313656040294344894503597219361588729787116188991718225321610450526577696596993260591276469373684073735588858894262633502589316682621519137967213510103881293468629582212441247838781619681434174165830699846897845847511402193696178990393394247656216257145331141481878820056391728295182914932597939123287631812524561215409713732221628030558984038358797267232794727763668878438510833336091951460829298077399130383971154872261755013389102117937822291063118662354890617854276397623297665269934236627326894971396687404368638186974246736927237662016716469926691397047643637932843322606834028262701757093272130977741582312410562526898374669539076241365234168770776925026283838325474384338237023694270923176607746860194820344862498858003674153448165919840790893902794672559553337283252124081578388605063846177551678489707579284245115658920537687685870868396993457553521511226571983092939423778233313072627125498903908781640938258818383118879851322371535122439765327211812547922600849442723774352554648278159331827673934971725666340204105331188818453356458080099252952819462513594643428064232116884788798035693450177880947560989869958493578934475967276617734126430877068634871728278229782243727498415589159945493641197019710464494494824980621039587228957562768045820346333914115610022835509399134795006753830437273660407735049681336439375874177063077634977686815640843639139601896892182432436615990657046635641684577573674458055716918626589028828938004813923383475385440229711912868138024775489682332679855395812517953466886530720045451514396842825534199028915729583931565226903658777366551601255676299153708681049004254496617111796786745723380514926961323235870773281861975356277492371791500670640503310205693266078799218165663257941508308161824807233276261839289651134360334231212408422695566313197464128771557357358631344555962723556425994217003354647410333065416558381616251523759557136767732864383367217451485018840469216587585685861146559387483617199968404784791070415776149557652144969777269810074669438335781191642059961725433781437447994127174653259134396119109340041337983481832705548468966548153149300333755425679554868395337775761144251870481561333874749607280428519282138563180987686312191558210768427964213420654104512917401494919158952378425304122807622141956356298599849838864118579876786838186346153205510169150711134796566746694484232509043679267750979802979483375482265187674615681484612760408315718615372674168539603216546548662064919706421356991030301324275836925172688914238084941391467775235045263715641445466425038471986944741861597684057811356593014205283588979860381648225477855873312977602437422102168341977639914637788800464675960756272112785463112471938024682209264913967762064833459885549583554902871975955513817707142687319449424793247748755074094868925010518325755969424992240783212345998986859441976698312878841582014932335024566804347834875011854398712775964317286996124836321951996741447712287407511025383467907022399045459481745099851634792611373066856413146417868742526883985715195279491922608859781019715315199112267786982406420593459154511501282240999589838194717284966663763893818508232225269319852929659812327318877817538892989881384711941931756061738873422621099665093505664416940092653156103773745802842146938447573215471620597081317592693392992895932845741536048884689521047225759786398186819732119354258878346093733095325119438979925833393438668947968010203486667950169815513545222358559488455012548822531223462313026804744346363439530420397751884478951314737884272661590952164472969546163388467324344869351892585282253561749804294261716696635655777486058684244323299665349873763436234817362853116011327284645238415611290398204852786637482235851201252269174675449557441811185668093290062613888900329262368585773034407686925041262188434952637682576943997272140628576804427459935619519583954390967911755252155103876825919397949115636626266287752690515089743698771614927990812725289229544276489980931138661563642223040872670496741470990969056749156801017560352256590488144459939501578085205927025116626080522158931575459163927538614218325143887527836258664581928422682586643427115455146931216311018587345612847312613792910143951592511331799999839249713588937010426233572392474656428530294393792117707994963940618678999891092698829608749999084016616858107239254274343011908539787404763573184560934527058267139226854945686890552683154526571485019663594298962323120801569939115059391528814929262819704551477633357904239647502587367778253434194126300522722841970458291041481282567063644304475114501845173895175133926911528887059561553751984874919071520386583517689221982982505074795344373947363576590194909992231904967567969663545978306019477808022488590170424142580132363265270072729148746304589949350504893225061211979357569766279325862451969057462320368395354587289925778981668020474233845736262633440678741791365257256870505743638616433031920598187312576123188746479217022726317372586925965393482071262254973727599493444980761875553807800589671883493321345417643168459773020001655502869839459827447279762564554609472865303868167361576365046234806492611359813566410489975679583889932343168832988213855526278966923691233895001571238162546122591422068604551470778244825330241215755840239738798924518094650827637048638348146072108382508271718390856737747170514691981057454071166595780600522933036669089963517512135875373151111357934788879347823533322464137988413279536186541620115144819141006994661588401452872747343717938531161184286577296630839618129308670837665305279566013457924780736810743532417840367042156466557760021158018049260915376220655863183123534738228568749161125305764326193044506582266823670358062867990833075509547543736757786242826429375290094669792695128224881556193291791944853539641351791802764660353626071167152117237709444999856667259967823147746169043194339681877699427651595997686839148990624485259608729553577731220413882435778540589984502941637236314771886918125358861281738707518263764876115648832873211861454398864741221672158715827217766720676718508778328338936894311443846987181594866237934695691371513859457328842757430545669149259690420074583637645586382135949751875782371580959949800406698961179614138301723721399209028733268210128897914394259195992580311229188909522649988926919789771817670096885882968946764303719591799256408205792224526529855353488645927116369851632631236081080636826393867625247122247081425194595348282232402352554385349180078158073518982210482378990130187927320665685480185432146393201473724421066984543215752576738440499883115897245482254578949025364009106703967066021696658433392913724285865809221921212254038306611532685715912435261810897578124795984566007118774881604498517573192475954459743760620959255685085162292577771532409947557980091357195916318544993119723561239642610722322472221773896844092286416919434982480657629829687030172984558583329903076638073252872517427973658949354981785131999368645866698223660823158869679741050293113902865281297618595987940536646008822688022930787997161056045574523121943120065091681831525719213359075984577624629677761779049907937122614170454799929298844854448493641424935009447627565698551686928045131534197258746506863760131951735982288081755848231827654283755189294112146613625934826942490577597950377467635551042569168687643181476538062185746387859805597753152671021818878759323229500559245855179793495991467537412853869564594775115895535907321330657236429392229703569988378185163688102475475122680971927768941825442614375119764748509859599226887375282765291736373358643938611767086354445099887486265201332672985837726946290565712968228839113336091938276373981376401919688680838682305155981119155037964859958125387090677504840036451874851751079493105735224282402100559212473540648469439194766302306829277564861407545786595466108013353763619351098920659971914104720374853031729725516422403661947881009497233460618981958960127216481369057094948250753162044943561119378057935922895937921531329366913541294272103776339584518663688836767874411819744767291911803331941269642122242637934425224165062123122240177319660851688772434436418274608763031921067772138622469308832991679659851679794887851833041531560754773679638143697395242595141972493475426245368564096985312918326292030691213845875482496258251332347108943278080093573017373468470383525541880307267369071187468318560318791614237670562992189811121508743588750836883693968924754195782987679117475695580673145206557923749282429395292820514116412223371771097131984255877224612376536895483970111087182254090171961210123041931579898394774367693749181563985529719775352961834018200367539180813835011326732058013185008005941781612646784588696977464433345943594021926650091653815707067223211605621226571133585779935699834808583051768630322848833599515402834284344903122452523068656788642606730096571086957672401796615267266738981525626563955481976337495321237777048845866386387723321328652110303264828626624949013295845455164372548491367177102793698787504220992924655839328823725854052020127472185391823342681493014199927770205796393571938551386823182559765033378348259875645587364179579978149874422837144824631310519785777321376386923812713496425294969201574904477192378437394473761785683480738675860770259621878254322027353160258291179715115895438355076682578899730912489171179832549043063453543381473716936616666972423469898944696032935069111538948697345698658754540142856282771135888876674782994881181605051077135623946383344355349902675112954280885870182647140919156617562443402395654896501912639390918947198694595360669718989678882046689941396087235188733568112797754420811248257312118617194202327943782719551450661774195618092116742115985052497348360420157418499029852799950067652202857569566493136349722984210886111531919576317942659321223242172912587749919508569321671632047021626423216173808436982145827339897465990475074637264133264951443111583817301732830450153822639968289224957571971632935380357865845900976941782769469988416567501162802387960008983128049323185705550092157949679898057572779311571990766700866482528278324142558821516399200749505849062391117428473468948082816791350883763498037370156292676646589117593489403295805973198541939376592389505791535937306297734335777204773592081236836807885490184429199153947403457496290466895597591427504925216747686552685594124764538819188976131911784448497119132179956777567281232794780630250311985407932891743195337379403152920383214415335122327714487553917816688997286913307997986674695583377763322836097443384438930511178981856283602226736807500653383928610903915095399506445577026738928426631921166808808248133211851376438464099586004152467553472831361621616041535469699681498988479627794448228121836361983822898867575236788226502610154671847062732890621871504086334041768005172676641368738008048514432682825269513954692991224498838955565661067746483704579368981942653049656576696642430849172661685670735274597364414441695179385770413627621531319755899627127319464280829205234217718253684786916278073465928425532271235040359735823611501280674121363890759930145391294630822916727936894558344802340721501362250686824523588212839859184245193355234922395791349322969822891603250845745043610938514867696928147178510228290976254060275409976200697785407745746284329816453099149455120272618217828931338326057208180985989270594847799208695999459235804503084519675017939311914654843892121633782669703037560936748729572312229952734066059478669286134719287368158396766422450786958864196737279590811499750050249785811796631686564261394297561396226064608290959195983112206748128846755666918361538829658371691338837666067998737197307059001370882175463477711955214514568317657153685990511088225947853062304091532893678389557350177317665754049643504401128120670841183439456608736662353925965771205289031930406807393141873757970061918140882923688735268252127216916499777552628597306243530152215588583817088691172452026595758331526642054818221957471464599433295527646779611805003106284861376997364653551967520457672633872441343971724839606834829199752248185137208994976627131641557541793193395863269771864500670637394421921138227388160580112343843586155265322515314599623689980164829638742635788760565367352967588644815713996478362346687474478612587884816450218189106504943985549702389249111048165538314148594374315755498918465037280416677568037876614939251404611372883609876662641892602192953344999836978094284432078350892664769320219744941182318745723233351264190763457743143356978433404703745486819503735422194173111662156490695724394178407117292988195670958279574346625975976560677906797806679365970314160167523890280102887458195053252127698850632863718187585171496471526378519291351981340513216380310556783114145565074969225689095611592390838403363687463864581829826766692566286358347096563862245586681674503664794563490401103255070831474379526009916834216227426195462696355497016616660593473491837875155346064039666297039181390183905628374655296249185992312881980195646793427612679911264315897276374296067529421447080365823869123880501353564158604676408001293175761801259164052499140429837341389614628436448133119857653992715532797582087387502499246877599943168625767601037547510165352084333250721689689017836200749833242282611407045822462851956257672636969687962426030579444745627831036507231824850265617450350644359143106963396818580842997195296742392673842333228468223507294990545461765949417814038261102050358547269772476273323378503940007086841218252266484268225446774036883288031872382488157576442726526440505845999167185519796321678625496392860080718111536584348654297464557751049759105557612394529621795851576424080770356104868680580129856189040738123230175254857566996757071147658791058498295956494563029994832529367670356194618347618383069944552850650321343939192831754028628977186472488218973584276612921765811468752969893901368689154849385797143691612761556411152949375085131260587056193396157907894676196625605262232390634115692103437466989065496289135126577626988718880741112690763613047383567542856641494501478284427534986965131272565335774696160859294319215537043433858062228420213741142812182399071087519794680770262559062224691764636865014732148840003537507722352488949781244385802716345461418531684884404248423163764361575070031763064246980576432495195964738755645012389923155472243264954876069869365994135643772256241289656285236412378042747027679426082722154228006042913975622255180659861894525887859867337083144500740871554984148157799155328189595217227334724769723231466167660093093348410212585135152233787300937554744784579072183438595237455202357763861649038184465285668289218223626823104731083768201424031432838746652577163277077615452234961738171777828188466397988765565656720234125625917174201075048408637762296795336018723451689859268231145249336450827030436691947919730543452147324386340895813429896976955954170724987752373322450063830869985929421653791514555432896894246840297153751473336558474608298137415935473371618325713921832587776072882841221889146338957355239864093915845715104147245735141775355629216176914344987266641768495896547957992648293971977329759910188596740681722733820934933852282100691085927817636635158881936860466767790984273408394842812060473344541348170954992751999473579013189475998920350734951668388194328824649191042783105993803770722685701281271238430112811982584337008892988015356167280723456136943416693325118758104164366352894813199514616301373342178296263064742268281213361979221056534946334830129120134411486212633744821779614473466766456635640226093493233097054147197398388289685788818924641843953004875869257097203631078483392039092180435374440660410496272882037452932983836430397098253922824491307677825728168725823484259148127434656874683985317169409497014905470437065653950538336731963088640079102093998725726037152247381847491261560402776686515217768550428283943166883766216167885134638951422163512538651552458557685512441613377562849983715901207644419375744379594296394158867279845292225272437964224822337391180658268290414920649358542998632743147243627630891047364961547890711768725924227668881011691438624656638778518668349422310692398694814822892916127794974298228351139843137608965556133943805823569510274670972432544227424978957600693128484389420954204745625946684187554210165936152448793935238750457511996632788151238235200846571493202905799837748281223813184385994451960164354208834147378439448057684801114223881934473512878473290028414819964354945825483113017724849696615232077208762700150234893885978248210185636178831922089892996142127793273512751434177341694212884977209782956666664296753297445143843744892641679093484242934736671557515138840061444787511469760239896872902659378762807081016116432693706112835155177086008295982210964252221194692366014877994862756679635933795986396336362433278289299115440583101875364066928509293199138878388938435175694848527315736370914209475712458040874898956246890774741252488161735521835788794994825441314884068273624541171732584549515142357153304403562537160091601710672359635874432535766843134755555251163417335099609380361632980119625867188661369749746687289964293356718945836169056267721094132992703219868998182876327480373494440046389870586509174743789453409456734839003269436491522660485949588564043584574656163394685359842247861270444547367377953931595442551950823516155758398204550656467894474095065371797305214575016169814431528836447771236903969346959855621264368478639766957150385788646069289771165354268885969446131888700103168311267067699014872863221880267662647453172944823126202076563546997846716732463295506362488498244672722907150967261013429525376577360391408674997096775116316804068027967419122269042838048167533918511452542495942460765989733046559172141964472173581047156873821730653424093198072403444552266729629606639864188646667709667743547051143607355395442236689113556318379871554891910338284919372894663591521288977216338300871354698720411450032092928760770555613416749434663206476781755158009476230279749177450269886725226871774578318265615412662759313023729214824299218634564410279999575849505674210906147130472559540719533238285293935978424675693682484833333875423697164726694023942751814537876523739660872273293786040384253213627443683833583960699269722285684616551636844606496527853111174458014359413205305893631384228576291211771511396469334258288420604368453758924632527277485285485521590014956135638050265884361330018997615519732856941223640041355497135330589232303567113349923345127785722239382993083882253744182696414496232057951534511371969536836714919198603679811331961583799536261254608652321351711503127061763743203984384194028458457961360231848395091006792602768019731245740229313258387941449452568709171623937518569992718325498693240047987887647388372902780118739255382509095576353838484528289240517919578769958844127556897722734509940764209137575171885737277216143552180766165521481518122835986960855376742775854887331467373948184919375224692727837281634288062947334627967947169544602802140663473704275004932578185264850711131568692792407924419994231114138828731660787747881526159937008225798567733634583209027977500123072382878081723549518996898517095756602492474794154668262531948370540123049370216628941650667896959517475284086444137040450181350741628782746247478690079953266742218815977385786683235686633537394778172621093698753399932168371038912291792065387380679811951524554367742782187841667448521169541920980953658054749149982262169071658423220221538291965322888312163220238152310373819267932249316499864532739331545673725111296394580813279280406530183969982803586825633639312349115010158859474841166072998368879176505494655618158669907178824662229977751931169234141731556883245941579480985510256266823008569379240831768086892546849323461219415875626612446842606473981802197822878111014459823860989597726228195306958519467338503613605135871437450454366954080925198793334484488263544546255076439515918582639674539453202887717275400541729371345301913429275147116650755299486484636237038554978224548395554477179328076351697882887518773452468815910893321528344063012087508082717037569715502254357435081352937134779830934402616771069844267671681325148802928623567943159681866069752555194414126453641239599606943778391829816373993073825077878660428376276848821790977840875828621503990384243408317437139642004786716191486646845409714545944872790953415667275323867412265190324602014528516050830692525714139132485173497187646415396166144157386442798932680963775697763798469940599246785890588745186724303393210928723355393323907867366103578539390846328740497438237019849637348602446161369284713328597351176847178405602573470083160266219433814533817039551304859665346829512899710799151891825098789625239264045884629138463041648097389523859035671975888965166720862961324502885343666672333366288157234206085450758291247404937678581667652156168669795205508128470293592183974711342331056282378343387568756686893682686130195628116390801779408646276322912818002343096320635569656194371451656602261649852991389703940076238359651254277210981299424119947573732646607037837592270693046867191794114864989982653877336123596492696188255680967077260287663465333170950084912995683497908063436621280431261267139835670297711487802475888965647821785848680891495718871704899114394934352816957415310242345343571330491665960496553556185336751121871982677640111237947409288469795451788569761207781462182356226566945491460136525569523951824252836325123339610495942980545758693171543707529392657494545268081535999265743638770644889125420268304443104848159651149588750527259063427828958069797894872790529811578455941938950944238765424255643711254267066841211337874055557018172465796752280349625318946678481553899835202062223377614368707601823617741719692917754291373851505232456282880585551748223222690399380924766061932372752483842366258096465797503656902139799863788279900372795433095216381982520661377449717615642292527814840776919924354536836703111479733681453189833683007282606002432906125877698046331909979844615792014970051558517196947525414597966371431228326333262194372617242964665654647746742595178576257399733674081539933986030145016848883411959162217611168352977388237016115116215517271324741287050131111923892703925372549562266747380391426355307672207542252678441027734015984330430559070726257384752618850298903670181765044884454189230154030346797541969973259604204298413871459052233323942205406558549586071776414747635613293982334762586529729932402716051965691681895829165004712443897745311699334044612329174108822070537200591142961377548246623979771829357647235808067790818766314768897825977407429420154906986884469171595086528007293505849872549467449361686844477996716771235025496766909436292048738408708845445632299918550536829933784756193624962835536687492091310334015388837572995408254907336450609021401643002582194414792148803664894715287537559075691155977098241227013562161776639885286143689835947469032633561284492956764073916727158777398594356948941205194121279077515263130689778532473319833496129047963852384569172966431036774283533364629706418310220259082982600583451776470498485533715484898565943905525060630943941359724755912605927023561889895566752384929422692420559382951595417246769463613891716256263421106326837319925555550490654920574127967670878957494141461340756798078331020806309547093342644564061351167761981376391063823474036938067695219994292095783859786737696307798269239559038552884048256034742957993184091482735559776195013476850453171707804873772271831799426640846054816858185334025046916519245717673055615864251340633443287361250964991550563485271036633403634563965154476627473666836361826722944532371195795576988514257450999594921888508269630651940856645838868363127680234524465123614258835614485168179481704652668707278222279390212544765668145604778229656892734507794020604598650236090600529472327752848460500322995475681942164759370695783894486677784488263149342369901638530331032016403448141741634111681593480176676987733206242021725653223457568214991960131595281845702586579464699736478560659395134232489972341331216345212062174819374306519500999765749212345383025334262789481971258359522818233742693299758110807558375297478954013639276876258482881317238143897561416934932749583770784807432240341989367269227168230495040835090119260867568792911265547748153495574042358128123812394427571998794922726230761645368988592295567985330042261643640836063372439701682398293686957648192923676447339723354097084457652460407656959082948352853346193706277126662334948348476969354008317457717792334791322683449917826926353174683584844958134849858450412756462093728883237834374383817625532121922862304542071372316867667258714899191161675707116733190687649309985602913714633839473493655147624574339548730403532696387315029193792099814379764632349746372613988358189225637885976666431158593245166086443258733784824805739444986296958398454482513008810604148821514729097716663902959204760436947588892124777673207594111198573657241222976055531727325845389450234295682454224215742558357951560582207649154324099062155005362321658936885363029843491970408311771565258567255522682263525819786388718279502849012588795636199784444531721412216293547515743330139290446420637419055306290976398033955290033551984583918390854312871858595261840263008117549402933553995228741431946473704227849577578524926959778893255139686902708957057787174366193080847628130446439438468558247492134943191853339959103139579415885567021481807688071612594884990824220639627185741221721776783106826132512965034624721476382600468653461647583433160865924742685907171967891952118421035222710729545568128433270310442818643723964651651390955000671542493608387230640562758912809335165527560283547416083013619242618418723140074296292069472103400524458260812523337315478591243462266793679269412796207086010935298294201738337322252353336726079045749372446744049787825437854401908598216998914717651982773365375758260785928174730364645297584842434034470247125092237473577390985726363654421734760418168818424288813109429293430636349689937202744240628815719601911547656433020637642429915208401442013451777593199424846581135932649274799668126977621461250044414351439935617896745779925859975971351849798614035344366657577333218953652626971778352023884592188874314311088863994877134152917202820342789791933298841479636522880894396950527780043986934878239274885186535199654873844551655623733532142725878133887637142650816932992706905317988542179706617330201294258954670342331895861742369128902506866270649021583433811012337343487810672405027767616481227244223674082733904440593667369819756821891651861593121925087931406149649688155990531513669561754857242138171609623500663283455719491938841861776411012564589435314469733821961993561112756996714876220834071814671109170324938670864677980315756487889268978755763526473752234741966848678319257165104948152508683992814621718639619196084125139893989818034677956479524689609148539554890970723649305951783938345387995484995108772216739908953486672123080244599245648418881870497173760500638845954329177260622068769128982964572681785291647254882601587698538587657048669918225459541029070003899769251376879415424716619318051341590872128289597463208516364187108689626530738636267755662467296694105829802378940183346183368019179346342397496008199393765069892623794431407068960544363945137984708498296696380197373877933124431532533854832841528608567272092233092211435987418779728789107545011189436195882649176517855167781212640996077322703844151746382551254215587234917559053133104950873570448900749658681690394189985937388155500177909964170032292562287121829199657784749183265658521133072544117841271249539252952797430337322857320479920945619932195798017963443332818562769754858259262180423620199955820558706647565432291847214248916993971488784837021724966843978500998292712342697087588398319580168174906437328665367802464877304550625999655116553271699888772926197941940329428774824495164869823357184613594792764286559859738494487194234690049549796466855786392722703709609959378249607482116532277147761435418439561298438307714375722116668449837994120549118719522009618992171945304463072189555977169140224815653475929436857271981037838623989598336305180799565853478552746695381735698778742796528011959774189676775754405444536712664486552394725878493769114293474559185851246882444193493123285968533285802843913194471183537261181003183958807576778035314854754165911241594631534670503918318472945387429088143693224210662576705964400306111640945821973145542693349715552659599297680411957584457775026359700791738625557539768936891985989283568136772463822089118662742841287919270244985324817448528097366147392885800497936711648010139726138475580396045079649317578497760632353295183876028914141770715191584226580382002996974936153523513458772821493092861679400173587753429293526052584496410863993818707838497286175859363042813067669007823494299583030015047604731477030747990147101566273903393923493707709708787456449261622993760677852226658267295585129892103966196625536859085140092909015096772258116625068630416893162277572656952006155684981143155882036565807448385804842721879192584743643298841422938342280577925744122372767695787572456765236268324398997404624751858783349886313755980755706127592352975566928150952782863894967563556957558884306029524297946543379144993575387248652724079946925806150639967104354111308046621819332495886003569261459392850861061341994602014964363929800436244272854608589633631869854786431080426061892374429092838565668624940045560593506853684284676277884958372663779785890098773830156834509879462777399341456477160929163843850529582449578814949926017461918989306283374539842485628059133226002789959351943685977070584206076088626754311695532106461617537532337817113674917841856911116055596488096663461352767186531663420436024717800913565868489431917523497966185914657884501060024267851268477106829686525784867394014281946591971693972485156643702894342585641587423811328688694019881465926268469125526552304703979294793110317570487070867519859693853838830497685883579083428176582918629755719113242891782880810995618321037685724232360155590566973236987754838934359754602062099567788189807825856124846323705938746807705257269794588464070548649470687472864670147101951534684985697028004193721087748128726830343675314290228372198822172618336528411331393587284917435882306260621362757130933012436979028594099129061606246145021871854158542789908257476311216330246456677295254349459792516031548198772271707464249262278942459205738210059149479832983169317069952725959566447209797110572392370547377125121329485923295915840064099790181263637254780661084725231773719733594585910663466731873866916942728923879837047241098047540482579284143170589021163211524990914626697293437036588786706248354133977167762992951992640915461557458514936039027411511483086037694285194159467211113628826836194386972499151776041534137867758996564432243257050353417736538954694278610259592617668683233280190680616684430387521395197435137313118485540799225268314594568780571147652682255869944435874658751447079129318851849937508962098529540833416113137752483969636705707273993857845263395188979421471139642363382947716374599668838321626868274981721996264117177099615331116871603588466516455571127305513429016949532689194094645569286255935036846635493869529277606396556851672629977984219101317424753381434967970034223291035616028359623174310967938566194680657820907501378212896942774790535585160335140194620520450227656888720139640992642125028065698546324528398116709371663199866862451723815442854184258730648297756333394628426609657347181480481725247682113576999164477878973552079100425618139990321558839851014724863249015483240297838104837144821248488653772118132788434240931666843252329497027196472247657666977250263665840285364496129404396578960784833278037387450931799164337936561612992748818634746713978530394564251569106359765071802656678608720715929429769614998186183744880614721130741948566163180494605626638968292039389438914770757223771244377122482456132082771315149945299517975834500357703764470500917857156237279573934582011133811823394595257938875253268588221547251788004591767963996899815611361690045191515632991037114950846754275069094961647213987509852238876384404415647767515378997059226469461708845098746076957135741424641166786977699858779068522981994345551490784454236962355144907411309466708758545939925170884944231765865197048672967240269979566733080404191263689479622771780506918626189683224237883456341627386416280070639622360469471198265343040816274372407529467127742176484590893278232782374969493158995269289055938120465532983588498961838666287180463567804265274284242150204841329097554488963182528251867867023585324029204394399968144687756298750781927575771558402598311799749647213299656266989582796185559422412860149789155812803639537645869523747336503769853438522028426846271504645764409754452847297026318370563281770180551569856878678903200702795082930190187378428584082276723132270536425666796932185836333345779690202798498922633752737066840484482942983430247354479455341122297239644973216289761363336061450838705450250159725536080539671539328728696121585116957133883983899654605659469529616919271121773996358114476683043282195519834693871371649042421177449892974604693549040196518642063622783888461501231165535572828461307581669053278214786468267395089554672183382949792135319621544909755502253614930516965717425799823072515788918354511731534730477665378958150413499395705220446169912444455148535773736412735374951191616458240956271923486750949224909839883231292566919471032778590059740204248992312939754837020383855188345178285244556363312217762846176284885879808973351237643725254778119603701373567468449862858160286347375168091172268777206714565341434351070509842557616850056278797849111627962812253695363076934206202753309926207738926721727743437795530842173953578049495641227706933514918688552816526102930736110770512481960600791958808767654346116748971398512138140368854739099060839564089719897861187913537891397228672188966808416180609713963749083522057849966233839041883460363263448746491736418415327538312715616079226817844783679180796584729394610652811083931889427185682795154260021933195396046254968640892691078836143062957624686212820376818853225743996323554511954594864444478308023840855874847707198132352716317972396926229719344028125239749011823163358377336870740661799971247261952396710144719501306846485058917320144749778897367253391463455700987445148871908564851698842587496429039946615915956392793296627072813985494566531279184289372636503036648325072203231121719140469228571322607495945607232134802152365155643595415625677552831645975777043295457051768322053614798785478052465884750813598752454611080921071788224706809264682811362234310202099775013636559651566636694875556741388834154698739918465084779299175675162855591844699921292176557888444674748477495391877252088817734824797469451791596799894807749949123584019332221617281223730673857443213601760371903077910678012365120002772057838826915862836268363951486919851871323525999574875861888348327117486851466095340555381931961613004779975568690996089776199361315996071718788664658447551765471328383403864244605822135591806764311376848823726867827626331305508631636824668703952753714733164365656273175688524258739900251941924972949373788198810849933778401899284076484438331612415694605127715209644603672745775346104885349246080892984127226927034620646421564307236816413684798215159597799863430141522997507812106033724684650672696625188143339668477668888980192733899926649889522265442864839744299846781138045122361669407275276966375751843669813377389122680696125222509378545129753466068593805089830010293383857487233786196321397363614668994387741186608821668785106784780818762985291841179785664357883149480046025012986628021140945332189549665829595114869963730864823021743586054428885593373300865451609866546328306456276384214161780659590577464226442966433777206358153146217745462522171185779625256929150292155038946630961384045539293785980452668107339260674472001211976356243776653658210138488069000510092181591080397066862851377120575545757246748407009508855191472783213231745975547671850372659627689645949518696736927596581222683229622481192050640584449712049242379649882322443949343556569803844511762672914417978986586359790678534297523741523582931436746954046912129666125886907456462833741491005598587448680939659486931761032083411031687902082496339525306809996563235026490920848922165493387287528469320836341663143455906138154849401490593568742459611683468192737524625385025743968666358248566089416425318756119168863836713932739267793358926863375294106878244211482168059833949152653603316699387172844575749744365942242673958756468502245681061510285217453774997610594648872674153099842713327946917296836383488137797448889707782992744439938433458154232550139116520928307958736103234108564551590403039955605869854298475907813072402447270573427452632637828305037764010354843987562220053645709684667214322985736983874582275659715607804380495094494291451197477668681224105464115155319032058431263073166965060569438963688482802227168803656760070951334790937913710120489280529179917163100610616542396603117777639681480189395990092744582955271152344949694823649896227467762861908946577511050794214799598027723116022360500469348727970045344464013002555315184266975070156759678436106462829583795517795684516855628855002327491482326061466929558960787050349589128253346782607437994584255928692582408936652462591603487441887499291666443649723127509870642708754137649833569749982439667134719124487656646766946908717992467113465244972707891438883136313123218904535767525562510144645683403347035212594426730816867045769703578917397537212769885966538178273956833849372141179523829111438732814628261695982344656181578201784278088298662348148932569504002762664862478973927550735680758557280838964987834776638868333375533736919851456467369920848230443109799517361758517986973184416460512215331520813188047778592516644286225023325056654654311923563894137653709128281148740829874894402282011778496344875394517686493181321156976718294212561815373615882957167499508292537790281625573326514877412937832347663538465826444227726759618780841851333786472294712861023848695172187540081286750596265981663168859777161230838557693399833164799799313338312999681213734500576374555921901363728800117651254872697294043046279014130804547138445349277374195573718591770385322613785712623641196132460375016877777908318249367714703096257075359663499020156234748617272738742931212981832612764892699288655791290800909185362599216097116887740968522073873933751993560084325061017985500362266045799241842552496928686776422408095101991776689760263345856770831852622606737293794520885464206383216816783194821517886213972486819331560605581929544863689632775864992847691369915086510739476889879344477934039329907766586805614728997521876289670523159436545581783921825479342430064139957194470460046855747332680224445977717935153163341435132517099927228677997836592453340460685435847591358781863796457068706724626556807913727599908108999680613548839155397274081210191426245219142556598593376675827498492320095749076692176225626338960328236027929418753339241394635726128907093344149016396177175697855650585607519919389603920313634850848116082876379061390058141614867104849322562808442714433871853561168133198831268976999519154504511448448806985462524136645280020937765766151681837544793316757736682449020571517854588278565993316335224567868032357637228359045388771858319773995618422098126897691343433749695187288522971111751266792124284292547596690277128101103236515883123045032208772162448957262657171389311554079844864971858822695611492457289533242880586623341888927897922872840935334971687193018232113151929125624124115032714441835317987936952180671093545988121018156152795993107595043467861686714643569851422441912479279839597741685381971516976716208454493226362854342448167532296686062125385567001343493834489442155643988627911932335575786782948852187107829336837822980855563753647536996614618618224715517174157967179698593985332184388329375443629395749583594846729742656402396106632339632438974299982780701435834392674857965666988526619193726127993194224374173082718318665172100542477648962016582606290745122334246428772292322098551463751716484932191018876816397574719416533896073323094260423774361501274716299192753376984500532480067677814653840744789672686780491323836279616345866168724342992234886794379043719108934967217183613947567198922428937985816475143990615880876125388346078979299784283797879533128961923810400567869332916087445393449948819196056493706119504520162592313417598658492835522672664365247246341289791409385082986680829783633653987862109006905011431802376031524233197912651571184982811634856237922800124427571748061492149536934796354329148661064687582067569219431243672666936816981278239111675183182698444954987307239114074395341149312671487247816471943316758804606686068070239763103790797551817555449227421463175611444589317392835888334442382753657864232263963925144482844346360029059158494182271120083597004966591567945624476179832873706977473667271563331912861481942808359763550551245772240852468947165252396517923877954151327941089454401716816836169607715194383545934184897770509777567685182709657776066336944338271867891145531431257898961921204855946382203120523407077922306641630327755155775146715451995343876934707221465193699655816123907020388297212990051944074873568972767924735668771747761545171739866339108194611768335259868986556816923217353912548488250816756961257043878203541626880224025679455760963721158946859331770847151991275948713172282978782060458753716449633491396105721368122511996938992576036277592696221033869088726469925299159445479569443982051822471569252297328486911269550961965026779446526145567134518762790327053194387939970467332798671926473757667185342066056995518483897545076804548151058894781456388849473223089985314216324210299396289761136323649596699595592975538475553129107864766579045256506944440516222600143361373689238285131351925474767370562883558970303182712349742035702129305654650811419498288837975837713009881756020686690620137164479601141511480120251419058260214394483528441642571105484633443897521291892412172166472819505344837119468405832659264710214865368216136908596938174905832970126878870817047497653592876991567392418873993318289579727382528459211015995569074111386243192011256010108845242422520439523117760282679634042272274931330662740180439151967969448177758912957451072178647155759727622020995459501796324430790232487352398328821742351126189784270017109514220322295533393424653791921991998872533402962854473421271678557893363025182898784576912516573315293473247115247930469623236022674387582329915439694179191197002819028854017019926642713220295832929015323927925484973642095817385828686321931272679282734200863379435673325088343199884014486994090387468927265019063814344283561482513335437941082180858102592436028389859686563717263661114102914672150204121390892051838430095961244166364996471296778369388545448331300313469480954805994687943482918549880617727092800292871553072792431651521303514135393665576221225812176379956065265871715004228912498514851752184588445992601789217824567981571768511585072828487943233466926331362789522868058636725570840954399297892917740988631512665802655586193141114204325452931145417218054874138734177748949827737990857286465894343228743983938215334419847359860976631076843229888865626567216207522638627706879219811395346448037893096067515037883266201191656630904192844507033801266497281769621612766381917481012191256091563213614925713711138135576292298717859755189826653422607446220985046250403837846742944573790330292270681868055821992797383186495439555392527459552312175552425460843008175796013677828094293624867296869785718365603608173211278524865573996295383331112616515079269823007851848729249030814844722538161583932219774579392119549125746036916039593063146971148180362142256216921476622431249952932726992974967505367115541219374738027239172546612547852034983338329811658612236480943582913775886143390535266129856786494762285846907291771588918973978562337267313655125623502200174664429145502217955396961377917005461948896400625675335116148004573284111264798836344722931728011438126661372846609345822956911815723199255342330227527897287939692705036286836808528299385399143369540238020249132281749457386898277746483410931868646719784977885674388127116958562605823113695845895840458076270160085341230416720156832387188620464977836465256117919684191693288366923133481999593212120572654797144162863636298571549411837298258482517529249383882975529842777788574983195127591599913460453542515975529606468135644073352632527816683133287285739978433927374335474162350391448738538743979706567935758154465652953696299637467669285489906660320484297738631559149509119835209359283749326263177469885298374515629243650193793398303577924657215536281454129358739601260563148454996796857239570643065521288688542148383497390633723385573512826657286890052564475761556348788789961889694578717822937475334108391474502624596372739264490924393666585456386135940088344593879396289013280322199599593886646661414655210838120172494774172456492071812420657033924079595470167453921946383495358702244630545738182288191978138755625393891514140683392819434279596798424881784192867830080870282444739182883424434011914804121823857144049914822397067567553891787140136219590368166197164121266040676328126845856832781466372271782560761800879533090139797394116280705071217794857837046637771130741010180376218128178632717906262283842388784936651486470746478670897275559980132169186243213048398890132889752272946927208147567495751897682243707563274336833802582881813995605059804368858322617988870218770480428234169337749250461466877059730514904498128730879363322142211515358146675522054740178061918385178695481633252272829663664139570942075829710294667578144611804679265220665544237110947487320814418384543243375420936471910996118352338477721126635496125726999269078247958139665350358955897568051564260767961832841177801468972348074680880170136773032250017790693517660523974028440571572914424564911715917538667622299916643596687157622068625380447062227143333672192794605959732847275838877488713513924706267636364533790680023506062858246484114257676789861299298455494771201117172458733746335445997735466493709284075994761637029029578078074778597191339325546692255115167019554473717974682189971062866544849251774877883335213371461642430204231389950911931186974457895996436717543765723257852072142874837597849042358159789258611913605291989481534562319307218435090221654777337875500794795997138855748821823861640317885328856973503879585237791710164488442699787894425936871330524663843581658014288294919731939666645380292872187559353531492739826698528482639895412735107834013362644196901761815499786864532649261349731201048075271972287022699190366070221512526398677730756506626108851355629630428939104401173788516969811656557339457741815984343132228967840605548523982571414246722856264657826288017964334769217712286498087961744614828984449044287927784694604016035317461713258867432227935484443964713026762445359348616919147666312555505723660762147324175637359819430905488726486775941522400225106169224057718193242659521182831590973172642188424966157719032862371481769905247577574909831339865979157277172041350131725635150083615113683975662098433412054098648861379981063475773761798037169154835692503056248753677485171813765623862273743879483639418581849413562048402888275447485677658658357136225239382486432223984214484715546579429025167657355651525211852316688325752057024291256496364441102701458334488402099594860546496855159046947080982985727244978130980361702917986014208174899005936795557605546945113807769046568643057407761671335959075355544522402679733747438314268224097517025972268501993675368445912316601724940766694334714185952586369094759916373588424015959934768856557644268828682276838920424111416298753225129537650629842412621993957456560953450664417689315758436629157809292032360586196723144978831605347027536154524548782779445824934487819933949860056612949982857505454219987952792695952449018873603477695720248143684272956133687903987711576772855435396069781413502118785046202616514675071826555525348651722645048167894259942267183737137663659544888446792734658623664020184189073511499082658458124089289649976593559474568254003848653875869339883433241747824126276924800343159123697824629175848264862188618630507487242290667401983793780366491967937239714090326225979780415477614843238834675715314914470345498941258826787370432688894632966557745773333651464230166449269599716074821592658787274298607651432232654139765533117174971228037579192133573958299264344883577806357409482754411971054314371123041377921585198674683391056314898913684785967296296842904538236195990575957153283551826473901997939046466814550717398183508601163514425498315494467246868406430639518029737991227484428414531349175975883491479192785794885492309804171108912244561165686996149416689006620358195530868537210702484885228648237387956755274493876084762521798082814273267272166602244311503921653879101413736475519094257832361441080543822261538791333486745802923491358209498035711862701810914365851128906891482919077364129003113765613356096701362451221345668517437741040752286635917695466372773062342513022452247053777064157522295428336204666931989001972639868826861222784109955581618902096889842220519158472423399817665171586992859216954650695206231865937822415650361284727987544037565836788651909606319254044246720361606809712581892952730899568983635652831045671882913759413830770464197436943828951127804091290082822998485989656352371989929212516508898676721428471331703468187768917253955445074321085070527556873146658323739784739614364805332462847959142788585389206337272329073553347252767276144181654247879422091299586513008212424512343656759928675199617835403309146187746708375649572823259988254255075460013948969912659551790018438873411226120500938716915516994261194566058266279300283719713694824412285884953935515199546282854683389998308486813818628108242337644571281797291932831628767154617894444304449784728641849827836355142061078820529839526757282513243638956686539198810742948868391565136857348616848724933144639852596751209676916796797598441846498955479878999564321288119592069568433238896824257514263357512261479812405882398777976479753387664065261913897866947544138555744165983455378328658651999267396264718162568231920873666497023692438565979194991454464450305964919437660337544349091882135184264831105557481989181953535927818778865116290375507054949592650369850485549759676099328016265938673446878231260813067091904803994085628914749129743647602163729141242599270809887382504715148943765832734654149025716378750546163251808851955174437223185065363746199715484368882221524960711699733667119197788579884391923406842245936187766679393965288858158382837179364580758594558612230374970128679264250651263499726620252845287913449917671379430512505273271712434516885682460782606080487196176320393393928668615255526429053957684842723488584782173933567359086685039664986278007995497730779237616689234429947952844929664537810398139678440527420875049474928282858407591766647867076172185629070538985406366165665831712546993133442238092519851664364841358018359443171834863787721769591427857912975618623222384926646010673718481530352440132574814523405503599413062847585764351161989686999833366458095526279855459858838849549914818542280768913826677910443140819699986429247107253788516153055044948551253750029162797742712780943089980395757994339856845974910313634395746967462882162589911053463668781377969058496054726299684295542984905170578242327201027238621862344418845690828107445703195504737593100873289611953557604788299598522755185588723684316396377460754811443469893509372608387490272007213676462867177037626313260130886940103450577014754328859705264984731785724462645740559461550186667096745867790903538298886383325744019347372984036981368655859212630724712998869340713934929216786486456210009862668697333979925438549579867854326569221867259210162984295533445263744867980639740694712490805888414184501742652681891798088303525502926744224888023802499902325067134422536568664465248945805923574852235804726760262728659221921506298456393163104016863239928837977892031381060951720314047474178635435026640442525390789953842539156350291422814743406783109809583174659327413485961698321978618196497429683418361971585686976951190024542419226366357835856924884484343816721879564376339352624787131987451418447984697396476279063993910687577007262760703788603637479735907820366059414718607943476543274975748471551183860747559238183249184078290616183788473276967731924559778401248996862034820420162057235908915332937116839582798129417277614325589471155971856556830245767574867573666486474620789423946434541794304223064666525804064099950837386384784756308076613446601546881983953845799294176200066806102627864686795781646407751241304301938240904775751577581233069054671461718387249644887694469144154711338351244933810754956433119776263053674127207154028523059116707885295283959891995266564646146342840702787560092676414668557613674759660280586124288952038925425860939150269633716228447418872278715546351971679961424849023335323095671334861631690450672549006900787869351369875520047933964716425454806198583018991014986379708331115350374863171943319719376157398249764198244233223545323073348075614044188315207864766944420657558994095980562999348868137197475744327306964291421584369857836272430589697614528902317619482638958285894134752767988679598764676529216849326418297761493893298103899831161321872253834104961888593037225615968915413588944989077992331769455762273541781332622720234583580725056587121499999717778471271932881731820969667859162693951629571487257128958733581383434541825271326585138353016785118827965865479143087805229915580663840713762959074835866581873188751111030851137456856480972333715981310980765997344539137156221698226709259645104084389552318373443121883688199599876527123609411041469203766420865020737532659712658953778909583448635489673719008825849530016941389228126224086151771339907640778699858269655336462318775993182576312817546194680119693296512900684232492682782849796089027611055782314532978865052805022875443814668459233549457746982390052827879749416192127301403438997729094587284202404944622951232577620085564149647750785688648441429146699497958929701294877641432227209181176306773153902474688992806434779988628649114293097572758777287145482876394931842888320618611180695785722286953145466445586029812250731911489356674698844341953931808521396186203821201777077573622999011790874514765068138551098058042854438425239546878060595711844633538311778661515779797392720865028533217179695556321894028667335644162469938124645401982705436710268588327410336560745647810944430625631558265385744573651956476826259450984592241564917197404600301497195376725882507629996121563807242346253531647991641881274339653279202314127287441091883638980963495873206258323891486716802440712147808391515858580626786987855476908173892679692716466607839593419284748135442191145017924247884484914305118889659515090584298826776184568077230751116583162589961938367045818273535385711712744445357339654632522908372585441916768673245513693328984753377048649898410363792517317834767588265302116659579503844627573355779050672102494293701094702920161874595708727245820978291119576686387675691487399457707697180757493043985728504737439121782578166030361849946736257793660563312058919753259903033739165911514326348584794535509881394380297387765543582454085141656471956485908492435813637715810357563360371575766991984789141134120392968274447716909629991939859320924124156846429535738048981800233819964326894042159496528633062662646952278147314796815466931716643472828943633661881249266102171506479727688154323332535486662504299314588870918743668228928827611176969785147408059811332142721169449866411524629847597012610526218208279815735117857662761102528777258576769295703165068746838547689307951485146043610497629775214272862597422937839079597373268688643813229984834074342732015926380712787409256512621419100356835920136041721023550220290737405541150450276144380998336064479458916340429780716073133421372823921843914252459425047168683638192990983465483002157681956826183032993988083177835980172884345123128136830571513398097890026185014975976723250354339001557708353398642477611335496779995816151892678060623731770130265089207271190142129780188952243615692871507747868736318972500629838152722522264401238736430585213367771581695445546135521048266451937943601694382988958565650422947534314683039425350379379533181493268223151463687635987284605416421489026641382823281158616847434883146893914912233960259569034520414815864844221038209748491090667394412252260848119263680897110482212147086280364660047566340215526892833416585282238467875760751943220663206467965867725255229785209645129026350840926194359579946123472825988746207898694832759668917476942389204343669932353547327873674806051116701666652945601641227431969864345826584582645092678611667419250364436734843023692829382916296538673537861264965578132172874974718125144563661185972662442323995976525124181463532396860528521707400037954637214972451241599898946034838961489366369473186836727566605332046796286251482751583335940551622529601251732408759327799729210735126504899974857226594792797491384823048449368416318673421589033912825284016790383347989140857916280388233761209331562900756920975166228199393804173629372289121734046755247397983744778729918261345903577605799879244901529376571538441989115410616700617318588367474646052559562811345648701444829702979817762046668724695375464301340890361880795759352713142601270034137543085583410345177144587833973222195431295037196913552093060148757626548419316349892197040141654460192026854769390829483846714597511719870266265034552722717843769481573168567631579275331507351940565927752772656917742408672421816449979096073322432317903141434463849987316409658675146342386892151480454220233517025309224927128774878124011477808546108346018085848833365212582839899798172721088074399381019341766914648258129205370462286012482883291930817872656654310282222471054133476418082862864935591680144447687492879472438892829320590104849645482698153512410212796681558363092723196102441324856412831763238506328628068829502935572087532648644760472447496577572293228528972511059939121682542016520883753425047815945623775975232017610961160327964048736108217685642120681465144845416788722073010881127993126836172876106010775526131299358128228477659472228447966039997376576698799335994135255985881626041719363068154471687670174537184313111475399533594647451404822227938839516263998172439693512912539895624871246612994494337682243701055781554991272635814248639225122247309567474559386825678131462870085808724862680389880934318935675133126830781740577850188097686598226656592704045222734100740645266970515669166886061107143444915789241117166206811698299567515879042132824639785409323372441149754925597232142996283166688097578967777196218246359601526415434913555958909738784233572528233411826437943459745181348037577413568706156670344730077996576243975212696978249586718236660551837306812168962447950418985627112985530374028912079778471127925991838927612485415396147837340323566233932844825929970051438769765565320567290942529221897518752463022083499840289099595061865325369086839409860682129728742215618435018736907061457489332667439595901028033962050268169410337459719883434793389804189863981587939161286454245059694651345039513151481091714232674922476897192664648565048302594670684794884384134275058530574526827536165881791277617333382124112412721662939428139537823449521449916512817279855989845313548996508152311278309614261547153284326224584783058141445627793763707058224853795893863870952724405655546966861343164793641085796866464374117278331407479681049654167976496152512351618509567447484831150732328908374215239109819679235217612859360787465895790471071141741201377440916326195454462258250710210247717557265362548106321583346047956447989104332589551338891783866384425098781449642056900158237542357983971028279227751325811119397972806563430854479023998233896348595188726865813584339796449613229591555825398438647650598025262722946512769725888106862433479753498692799813513123517390567632896329341520325315980598275675400343492933523968117634440251769427216552676198926982166304683706699145167647932794185224362948974883727269712470316863547643589414065229678596512088387444876445531827218534526381981721280290846875882753481425119101703756797064417486254489962387424531717584869134093110624853814219145998876188371448353583486228291816530190147931977116787712888715229453969391743186969830777245612558098447262232014368090840738756176997471993734429141860260805483766392897460686155363577159893351150764294486663941647453079108709817898932278973874989778981049892148080235546242614877583418412039748974913463958444363962737829561681429457282496287487316099856312298552739903324823453380472810834476712403324899609634842357998477078616937797737354648237043307819945999553398779472660765235577385330565518086294151678884252219278816981586787589424324926250670383503897238981122210564603797761558340687298214471277917331002054470998735226540600993299893941275439994352638964743402823491704214919712776638193176578267917353929975955005442579791926554893486848537141759251129395739483701308048434833497044562558138697473378669959525743893677473973591714278088222243037758843028213132916643037476807864356410595111350599697957152160695391991507624687655418998732557032669987120791019684214682772218574759214990123555192401924330811247995224352627530901784351247887939189472888301871112690814585749735055992233258744655187728842631492209456588800482473256158569958267195399648270735328667265758987132556596666945871077952142794688712784143739487802164365704900269587628479083338746970306428695674336142497278836194361898397414942656284451280741188805297536296398604248219599869633218036889799835904264107096815196402551621139206620335670841987529907059439689376733415708333636986699082664486472025415466383224447195158227729820734828234810526875483198842690988390896381091644892298180373216984221228470032837545064699923529767135585184803883523996712953188513428229885105172987577884012454699676866208995349060768967453661504798576073359541332257120862473711144023032626725856666976321478635019468898699648616649279953955055797267504722371879375020311775135774438842290085399635665307490269403870543123671659934834430928712468581698893920686804689888576377943367578911733084285119726830210591696894354773164996915174377941889832453864824527617898110275381156159280710333608955511343133872767411450181812697863855753856408392634188333631983178398116494556974513663516415272187445712753486255711217304970510032028999017007268958941873600298537319878461818258179029366542973228788799636046440141743206089450870882164687088253578098190638254170066588103684806563035194987944351065487586273623599825258279548135203817730984139614581790036029124949761047160262831175764956564268865155088401859073960269277551889287577872549161946872825769478117824455737678608790486784106834556335761694921073219668538704167538804302823422614182458832559627897625655673312250785157762852750511848995710608586989793105265919426492260894965775716262939680666932842741349695007220610816439181585952553234230255952101768906374611401033199540822577213679502743437652385786424867186973954118587577812129650118152128741939908503416506963695777350136455633893089762562173534853229981577546541645236750048578493635211836368803625197054712739915848654621869354738120325367930694645469946947716468354266721328693579798282132409972783573909271315490082695998554169068704331931357791529954427719969367498836589763378684794811260589877183794131945278350771655719522770047287282170529185176761764286355006626168254161946686967559799189547629690751852048999195326418375460167463660417632666592776903830041835852536774026518104353247695596743537171791246924563929389310122969012095118245999932155829344449997483461880641732080527489834026224228318163153518374846519969761083515779941592741264268145181758807071618731267117778907484135293995980846442842319806886344312478536896373657743930712672584355290297878919329679833722815657148073638498689101398384568621711114681652226323511671570425570952157466798908755189096690261128579083614797429718623774144542920760593594125673155221131873403719077784858173272324923431545361626953915418217834937829931382179182890238913526100570442122081063011468225539143820247992872432454752623948532985105774888635394285078261007135915536143837368149048917688441232474225887893803520586842073639861247683981519227879625640415645832084257604850664970286753223912932850416414202076326806886656632209561921945805809219442072207547145479301384728562931095318483376355847828141703694191347948008946227194773297978827886072215234554610164269784523332232537504405099381922700665440771900729488059653414818979357895251766745308246995511360417743875826743163706107541864265268368013359337419955033972688820524540028562616086886244688239539493446090137972911286961427673069244258914516153135642444232470980636182148688768011748208500614852068982712502896826942143441819356249087340842434934800518413836563029138519498675183300142427546143967852812696922834862025496534545485614111443763137788876741334820241500378927154623988730391018906300520493362782808967848125692182688443996869873871339397189947961554204963938298304240774950091162347917216862359368215908683329478466944827555781933215356799826689972306351417034494633794450308265859585119363298166661753699984130736307852253988365852798524565593163364286560234655899826038294326471619761069872171580655547469077710054236280408165174752331469741503458786769169284252257293666606254280696131646628947873526648790021636906493410022156266823137675421260722167495401883784238489601969990395995249183595976492896570848496265649406732615285937048965871796584567025309278977912459615055878306282688321633295888328848349593561658409341318381722595975736977364010484174634909817132915611761118211116121905867284347118817106994651201994482035804991248922891369995564994645916044139594975540992799961865266167373194723306802581395885656343472827831451827967754082100278755840616374239690744494928749551383815621377610743253009146425243878164337543754141101827763384156108663167896130981179856069597842183092416454525372433702582879370996953595505872898158224489920735955991068161703648274407118258156904036419762574306656695636867746938724721491419662663413557809496367496429674751526307299457928034510694562209947570949011026925953516203283598506619645615581587250548120823052108605077464231099367161469601090799323173203555208751568345940575479995452088640447216591929202634777185161979904284473021229524366247383584977396035452318619060684350602154624919216633511975254891027768537986216363251538405201189414641850556846967133312130138400891542489615359630984099549214683923011752978369625868311286129677479177771621205923615931957344734859592945555647047122861487258926890392785784279330829794788878930164765776122612078544024447933274638577777978648759964836125152616064721058976613977626947277430587643350031695371142894913819505848467504546135243652983479920173245689993485642659407447683147227570255484415979995317514285629882638806243749582081787044171276268559582991844058995794760848987298445179295919497313854561575615394162239334876753918231956028116819712788378714393421864982848822584774560228560230442378367540366052181415379703722539348293214572434992822198828316694753054352813563560561440243458351880947240913675595314671782821867772019527442473118273800689460052143113111131899821813489968465575738061685179873597258501237345166610997237453145351125326575284024934427942734628727646193346702794799258843282424830716476817971848739579339588788907366998029395324549866888166299784495694544179372608503615803330159978447750783784242017187151181477538387490265343622652131234797812513693440679793951378938298821720766989768711445095028943440726899823187875804448193300968602249107045623871726381840527488094872563540558914159314186773460671115101880403952877317249152424480657137042386265384794898043245144632727729884485376920510678730879507464287933593014520221044718573475680855770136212978250254520868821494825838795300450656302068941317590051944083528617715645834724618931899437734308288271636239635648719286475995492724883553916436900966732547156883832967658434599445237282330990208634855300605219346637036987891166282508294036331293186312276010522925416138186530986048947751403212390454762202148199349143785234575840855234429360393884886309144771144279405008913243371595982675753596687448244427731441874206396811326255330098777087273450882846747397593855802636447097684399282543691579492925155994572286809231465726852162675970785234382309511545378535673894489987174828622673918373873025969322666343095622484001779543738063557964925392355864651073424719222997891002245200179544663088748390796451602492824646195968733487914144882184733719082333667020902759928515467188536486602654003266866177515684188963313522107477149968957184467031609775280684768159789252613849829688779852734518205721852711602392681382632126872863357742370507048830429969808642836710541452939475873541917566571688794136738484389944802281164814277848798539399072260006866441722751351931127947859956257959247962494697709435217756331221896153233291642901894826274388959779041026030726951972253797089329727638831642235162703977225674664123761853119822911334433235752883487797284837525477707684825155103172761981356571733253705455206874866672557159328093956674797946053649469598149556701126263259672410800578025992971748290705168634460736865764010587427246565149979887961775322163588143614679184455984078914336309993600384632623897945899490058115800611625354491758397859086704211899483074445332323656515073851416368137788583851225879490614843710699052897757336788733165075195772044372333163889516620180930144430881651876276945411577403896136141144627660309073815491123892999110706398047299421035311325461530752408164380471915634302345647294884378421845384575319462167371966562228683764578885593725732773964746516344028358949547440231204658646833436736892734485612979934732497279258711671059286619345964291758618284146256136703779379161324970458575246937227462557581356710909712319332784710364371855432763865016694674510528339381237317691918694234153881946930842168438885834169029154505479390219539778461986260301726727071627776166290052754573619519204813577938944631751808819234057237374524128038842597544597652644447019004501682958011832358066824396579480912258456760695920161393457670290885574752487426886446055669665880358800228315799674208459956125142739208567591502522679661665237595439312328192575950677335702328024119264416090849296776837018453862958235630764337230894389183457421897058210476150791161284124625859496430894161776148007993688483421326725548019385361368011337644916697915352874307559943605842966973274635043035107451557139107087758101734454771989386841713151557773298710373929437431195328246698112838479356646072663857962992198200565716979918427554902930387576909232147750464184569423969302611055883038280055423899371867839106818465762105883651266803294433840898016351664638506721945598860183132482694892781911583672660413103309302891679657036890453139798649941390137426204761943626969895542194291114039413631836277723886015889136947107438575164445446578727970506369199544404889065717563220698495547772933341118757926598015952364635538230826386427931952256653611716035127905665128328446561854940132229141283691445427092825147321747940052867862835863923225999156028220138159859887199757560595543771182323133397966473039521251197430947196505828249804148417096300449141728293249187936930639904647463122648113086357592435676372689573258584389792642663298235506625142621952683600970088604302906490359419704664758316696827699250425178937285647928585067844088537617339249178919879585649535215468478484867140500584095513497988684651715223203428828672112814461015554489321973982771892698190282126698647416167792468742000632590329324497937639426552184981293184117729355735944738493546521318385460444415433634987871902148140663641330562275782180421885056182793141196782659673268719755249163980277258370599365642996723452261626798202419492152213674050574612327373083585396100629296745197102961518678955942568562899608282641762563159249253848592970712343197003973400846282984193788565273486570454361114863595315149330651475753922228178829869559966330434139981185799972232854353381576896699220664397774354479617946195153270305471925509665021562030007639420523375736331414332558403937656519643974848022323535807584455382924237746986770219845264931103847985288024643457674827799367980529598210223052726922781189948326814331571901547182245984655115535887108556984322169768438284216309829593597071691146351734570189299443145635796868524570073380869794367556547359198037486552283340511368885485272592629664668773693860216121664650856068907187391936696724479292863792594078716349172422683731845691541330995375548698662713654266942830522230399469671378647519287188769063097128495551747137402495977295595501276895736284436594545655394086943837615879194395584693099228857225842492533553369475186235333637158982381048215962827888177847856096864317952337551352439675308762412495494138814904533955977091242190069551735795225939364157112396455623425857475294293720220676690766749310273471936922683778370567212311385914575309756093894692977623118756058374778173999881474163468628899218884961912767441801396752266947709291806622643493128360248493329104790670560582511571814038622424955519368554883861163132387436979421321896593564420435232474995145469951768811895804567686333524269334751328515056720546038644235301547858433442092497452184908626593776395925982605378581289279414561149783393760888991496396334979879456581141001127783851673498245013261009110630998264276642696266476749094572955691630320205780010999714369780330690959972876941975137276152647478296907689609228375820053956782581595964528866043409927894788020503945824483109326409578186941666188155827169231665944926620113091741818729068724356013783248640456458729264655584279822603513495732644790987582715910992353199375627821995813796628887177199761287965020146024216917976036611308385457249431263801049633349346498941896346414047369336848289131411656879401747650918853284320376192739704528066285168542856809328919091024161172445895424900328546643268792779245146782749042843596780389565648487988753390823096767275528856284893617327648569957804034031991112384324571985133030589412527880240766596551153716688552941098569577832541737393598460107579321208023693556541593989542170435380521047264866294056267693421372085097747694163616715627666479228361943423264927199124594731133362360841139402549946188982792986420557845591443535839181443290118350871485212762431211539402015129473361450019349205292292445311788672002231491036180775534847371444331484724551728805007964488373021294214384112857372315473887187043436154948967998262876317300785640898259718471798494543713561498429873462345296655386255407204224804691042684749803840985481826538728219388566246214356376838922886998357884521194077255250408260709532532269080599061384218326563564383934164929556938111762551126773541045209471743620872087246149947960009080493887908955132622858727374514114569578875664839687578033825014925031401221953297865738533195149674468188474323577639547976867439786950322242237027894312274394645191106054479808992351286176917699997674876710648247915107349629849447838475355906372500161389632775068438932651192415759657118828399857747155379971899872123013611810682452417659728404865222427047740979737565891882611723424786885527836897161126783948612095436828442400012336922464097544719291632825856777695257898169572503535865188127776337893372073673799935367216477397273646977980374280297855332548566890893789971135413342612934248401114576749110882946459361546288646183782531711517868327176644586291854759547597051019973357918514966417747930331486725695971910966537387609172521368860792419515403794622997461056147939336755985298256687963412060376645565886195610921681643004636581997076389680679354075613449697699591089607743978684698864042702545244119527452462212878994354686517754003383377193279170847783823704364558521775795999270874771996207470404688888349755698914783862445240333426094532674566241804519250028867015815095142329975714889249764494277256977018825084577705994919393094692334432553429993219896233159068004481474946202666331192615360712982609425345959844632240986016809344080041891957428855418700141488491166898572534178768351116483226490853694125225091468563193747764653439671209302628771075838450223640453741945573876859113018628309694590855459409222521393591428068148799322657558898515654103597775833849613962125491837154335645372271306364366922995399268515290762437251217242999278572431991873524219363882114605488234238048855885672066821543893336890928532012029288382697109862344182431581355717820884217555738569188324132145087298885459825569693472223487819951577872516399437622283709793481438595923817617822631039363761398153174619776844688967153439984289585989881538395665847889494593858605975535137975155445507298830813583338393046921454471813733994595513146139698314389637259707688299543768856038296887313688835870446709441023831181735336178816547963210230726456521912525456555947727938722709022791805381217249757569853615127108312300181392241375989104497292172758770225381196764980783021229722382276799974683273338939780831130958073131187597873359412933333339695453555001387729418646458763377579226728164734817582809852771733357612856131127904143134132697824520034522150151016318708518245542404984659617883356512388017263908903125170041115085697889183707968280523438693533879329154858228245595174503824851199422970694656184499936764712942809967409559345079629307946569246986166082756276833223835722358747511488994753253833798573948130253119335492685547129291479355128313785499779678889390286623311857917543854645439316501930857571534463129592407374154275735997624937624268827664164136938255231148367645544208261621627897057583978424288888640797518814330225692719034522104663309678448935571338496759267732613756798151152633258495630646999283508662024254995174554633524883843592692139321215921346951355938395911973943944726769730815132483141670885616588022509631850867141747206051365261989368243137224941804730589365163874369593716848490786244674502118594974383731433792158233847663642540171150732318264731517191511298767804341509846244985036590289659652303547028112513262294715138145754333189014580120857219299276384713651732003007250949568648338595186378540787058795840595445592904730706999818788280277363433347076756697968493315083627092055612977066220844520871769052128063533758054227222918494027818442284273498497694929484766214967587729799634718010650430803336560217194390552519746723912203321389375273030388624166169669221241322549110151685032652203266138798567264355336586364444724874092640362279952994287139413271899133289075791414662901567358739202307837585563581253587741495313380374969769460071242775518777762873396686833373705012379184013605142966347464423948722895241398171553240381724788128896936085544435136683255203170811566779134060291598964345409859173993249459983594051805592808427894952341226678018535077648269625102166961450021633215156261622548433347428996978389083248435640879952226796057652961465750943504372417038482950692015436467033707965127555258287663658410878483158188688999267356816606609228167898655714427874055675508628513580137829090301572566195234253851069793651672351958251304114583795865698745923987297600259403184932264425362755414950765624012320473877423872728739118823353236957138256418215947786888567945590853685064859981479720327895992497213089337198834807263034723436687250917126667459771147796116081834568425576618379160619962244999723292161960125298285990997859109815097971192612589416661711681813067156543393553094428505787688441249850326979321591661387586627464324939513452703280772888462975955906907291395688285664233145171175275131185707965682238794439415047515541117299956349934917631192990728365814991720242898981299978947449668461324985563673682672550468145899651215941348262073573069595886728544184839831952053068752323840667151058258166980985785191837819069105095040052447397748377458788475952208725565823631315001007227432894596547268208239232958721474388929057854780249840992116213716231736558605521785265784089229525296471975486866099742752031818307928539902915603948887005919894433430672929493337114366607450777535827991036276533044344456774662136197221371807855382956688576617498312402320912580860975633812691446444251917531272341489844483795258547987340968591142830771045719258865403099060495751531673428276947019986170009008384022822453086484328708314947598621250288427585595387735141094906969439981949004966351486610657983332750348835524081123943720713409447153888400029067572676653922228672931681574316161167184737044956409900365527448105174338819143032594310255011099423671254476474682209289865312703877097580332791966599498216841161349001741481128094392343291450010690413843225347426936574714109883163370909758183664419566028467777092798574187977711097947978719254783156923643061119535269923746780677709906139582382424873611781857268449864476476984159234717959059078547612189360312483344624538546648951605143210671463372066515588455837177559879508522427376298599594320457447600318578682124704908840337936768205994384757098131455560594931065774165439657960302540927408671248674083899191830258390180372963595643684614627992857805855622674161890136133709596127408591756808656464428963192426051328298378266772581926407541971338623126994692466615312857009785792755695460637158715386115170365253509739535193155483044546414569370528245421624950624995653607694628672129203338905771178846789548562891066731534185956590152986036169368617583047844718018061734850398081297191328349147481107201411879217946884402350357484933753018808972147315742063333735939227137001060886722376692838511668359324958785991876501541307922973412147288459990373954876022243455286861182293960200795133767417483148579553436192181334084786357937982396534057930667771545032407841281939843868258444183062291485967764075579578644464914347255217624029854312615454737623407986048881779513769257345883764411971232149395633053844906399054623777491835321031747216127629553694235874250917868078967937717455111436663737346271312281596557152488979164986073857862772634964714382906729241798822767085719279013940400884201254788583838218536692242336585287878004345628271513232146511164154838811867258397433268463890269608297448468561270647583545349817971218164681714562070934691857731288735048487481861984889375664422435683269877517186453071681926417221978124151548228856848239663145137791111995221531968418496776139292158370328003645501778476252185034362758513656767610485418898587365833389979761397618248043114518126735818279753556135288719786634874441184197392017608828265278276599922215474639408876954853656492802513993350085722576575545749091450603175348626814489704821486124653161963708222287684274522418746542379531811484735952933276357941696116685209067993280519669494429078796438550263285223149623586221822841952077599083023722918418497588219524214136530358676410515563857556639419387892538304247676151813046939708572281781812926353611919156511558553479743839262755937175818315143274243889284245991780416572440889824386669720110143285668858916264263645014742720121457651915728218629921932138058589950342992367256432353869365912838915926673184905594215337477367839496336322927908520723795856422398451151475244378234138714305829253443857260195253889034514142936825479817416518728498446466265113984835066686948617476844880916925540799155199497514363597866635095425843979404655881152017882247864816110150473254556567822601786141709882583859945475954309169612065622379734573058968044581447678813474059677781250505272945317169410405254223959226633485595224928122424036582387180741720281042087712661489952393603929624199421323988736034906116544228702115808517334779749937897449115607072724472289920478972519419043005274969152399116568096599043029438032668159933151233750881496751245392727197483764134300514340173755884472902584857275654480958999995136529963840289070165807404983848416124922784696478161698262202982017372695865656574901619432664639390070321369052055104630675701708938843665457691483129614635684022910079138414307357295497605458965035541725959186446698729361342554738715543286506642848871793547448997279078499631782042577184786058169864645439661737978870773843418894984618033017823414746271923478344415274572395591410401264007685672600927448395330433322036997546603035719895143463060643226210096733728980658226546607951299407684322208498575035315774614896449504153491132189798369740872873877847349606340547376101069306142548544527491415787310848560102196591904136611549281538798718234207254747133120464910852636628649199176283441788030498936168042687452068664271259936701611295405155104885849377770010489536208898502114163322856742277292785535423626133695771990997276790554177737362470932543877487295230439886497702377724999539066791075916569143757986433435361751164795104443608904171840468273956562301629061938428513673945575338903715961242021950674559891655464757648896332514894127492911354050967328727271140023651648115613981537336445550577685997270592263665456142591047042775482456039898422933683901494522401542882281309839866351671779989683526660397720959315841953299159054295509093604611737302301203894027346371133645747895376722442651798274873011527141748956523854279695065194634254278261921310741402838181775508805757205175180648179614353977876930466729014630460182612544189314297472435541574144821647020646937545154911827433268558075456660851148097646952772533764438662294265869091433281714810261238308317421899708318519569274664924936816994967959844486145862182254632798313797933822305346269349953274540573652462768778544364610438508144357271567411371978948361777961433544414195411751928523587973431831427765652178795285258112094373035151590858697169888308859346477989985692316551878881281080652629768288823209837993851169107577353943540797932762054399439283900712312858184644449161890989742578556408417226265027271597609688232174534574119058096695663764392988510675394445378026529582090479395634725293113699402149661588473502179486616665829814273611657844376589389187826472753965353654869032562236629268654864670320910563823170413785920782685384309739636549376350467145226607354915846661938491946180182834210436747118654683708478819033858409774998127699983812335919440496969790293352051978761593238848412146351774177619319164373912254877061553818117446598842698918762251241947972118314147964235805892073321660831521249497366547904408416947781509592700329326612874433908935562389787802047652326599366918863819668947286975522924673589775164291299559631935355463374766387789390454199770473036616862984943274523861837549644758210003182425661026863186051204596451525336681842731202653952581135715126467947631250013632783991145176548967496065377435053978498836998328219828068233911191293826453930824742850954974730462282679752841483906337270297247416202860272643331785077073922523994823256628545780520969235187892449572116066719764688847148748537785261837901310859673463814210939687673259111758641857437378001431399294402134726424268250619267412779721779684865893023934984579337845348430446857791593554525910943284351747449791099450037099895258465364617579679995011862777824291624518459748923868115854478573736556871751815909555290145989839249557457980079461771342160353933791931179592729937122529497548091730271381953175941030397907904531327684247659262610411137779172902519162583031357694898126739159518918568521536958618518142649060929219466558380366486646238942387648308800981819105649617891822158888488601734418467373661141749572134341968898671177129554183006396777502037532743912692434518767798832899536548348472517994422478334819858259357377989584004634794822800718613941997355018519193344102461685375251549786433145520313554213688743053365465868887795637861139507766874063054374333085073579588841669710868613875041561583481700818209842396629943529506441958881789819784297693904712116992716575205670653499199662857614749464242544547291481986498766376361994761195041842819262243348185961340634377694862472389342855987269612052517218293533014834119658089150734268127366798072244004871134544535265126165796363452133158491875566453268347789292556660150698869406550793217669473091269698036365066339512847489891726849572618239719615277570271042127899993984240267079471512194400784131029062951144643073456647141357399796990746056783895943798781145945287879185949317589215857457422130836283991909544509287228560617206007737325038949584330358677156725790905668743312335688179991278220136609359362149563783361153054903971472027774416328244487631448831451898189113525159386494952075167576012550225399902402007925643011633054356566176053250442689666152384453922789632916190647544197748036262448638193064536126327277013291399915381465572231351633179450942943627756652907330123962223908798706462646888793228468868282113061194933810325684579079797982109694719924699017372306886056775359115462802191707011341467897852292923749818469554281117540230698431219704511814693813101680596542194165743585032366572309645603800482267831621533426134193242112910883127300837977168399101624537191361175649694356421845800190735112029324381881977336475543782213661465388897346632802662762504042215983818463177481286859319746950176413404031617873263366819227241397024597190009452696959423173178955899169824898974885853333036703897640945681628151091691479432272243127928862528218895705781812418152725210123578252959618968699355181563914232253874456271778193127449347646636884394817993000885259543839513475613643559036524999518583885524659020839697108519159499662896954153984670438166864057877463420276598556176468817834412858969069699792139691970154845290753186667630373979326076051325848928384773745846760862446228999039626613723125055221098470972901437608738031746675043048374925245802656765567131674804296949044172537306415983781197806271504029972563715688666297701087692214532692373349141790921707786384066356110647567913749337249844238448564268118831593912359028446034928767981117360827481343268454655870647792883462612164739594931784969565383526258633923852749979475439375141004853426829692858227409983641496948697076031252922956886070834474837539157283307255774705138682787533022390971457200247692660775738621375719603944476402315720501842628859472339144245838545554597555953927782420431538482660736725754164635662231623720544855509200327866441875424038112969546059388559582431145387801281186076769352421254338128578107896768302763349758218586383424521483644488790893348904760425431809704743723056810719905435370655089377775440260646319307365895263236976753363578208719096527196987121867131256895849876184069188094489944199468332141206467428309127482695532549168331197475445649234279777173553246323308936616542200548005638361822598881311848823718303853716104101953433131658356419211354840857857130974195923783507561919810461827964981478188072002349534305855171925877781378684932229318099946665388194287881356599391726874455198678291193107253481724169629573273113112190602276928046905175789927917003146270373669829539665253187213536271529145316089974851682709282284776059491633264421092988705947989148486195759045249039280265961505854355289751858394325256371506571545932869557313849965700014028091471396293030452039082256139331373529094606245553822137442153147389155633321957838754339378733946071634265734566557430720528566646508384833726186058133160862847551864663135291771903839572354448378136819364639598028619045740221262761440565759264332529818635598370421078489899511347447671682935505623415246532588170593226399765949560703117334753133505864433559281781826991507406587588157587460338036938002497886544121315429910750262376699692668365574234910967953982786621965596366314619493745953979458311487292198093172759986572262171185966286342270934403111986713133014758784512827306963493322472031978996868632582541065737852087089880514758432852123946766594998529744615956216188647850439359191234591655077118184198599452937881084677825478566596255749493141625033285391642398761676851393005452357877627377024350591474871045391981287201356955112965662982981081513377100415669781277295259731594907461804835138762542157748206797476802588759748817717732672634065192463457854902453494244482563423670913849103479571125676883145628956059861875741132886413922091911076530849498053184986285423785151741323597269154877373913956476089544938393489901851387157977772655615369772957390758951517282208656545252493062983362185259227485422249841995143162748183515714545369444152053016173947281970744052444501725947770994349776825221311184913635794736064592153445123224967859381461333505640257849781743792171741625424747159633574633389915689588773291845020570763735557324281831273385689197274133158392932730694892843100048887788867361054480646974234986724849428924960565845785304591789374572023155667280803321921612115288426954160386711617505649860639071811481188331818299259515889192383717312430255694279514364673516771722862495177730778822939423751448310086499097116619504891518091616743377380388749834953478344938160367925217458626240058744389757390586609736813120527857257996819954420585880623404769278824660795166353606100778351868782564972671112389458061952428063135527538042859371534465323674185512722541831711697948977732131614083283646133719517068066641218405622266750633159964984957257876418983012716105380557227861362091900549887609014117640315250392561352719215078580498632716761015855876253782196964387699165379426846968277540383342204695454766806471054150889857498746585005463955133338606348201736763087104842695580885531247762159934905247968767588252284533990544167143517787354669628578677112529698302518195918268208244585982881709149349677039914008032725525722703831403717676765136494191443562787098918416640255480634821339355370956586655790801984077344965296250016333959743136495443278224413878419396938635724591644906498421302352087890992493519415392306697658197775054844170228437991782200166175414562583824125318972227821168872977015767995605414072754920441845029861541072994511357536958549698609819824174062757662658527144079575828153032631473438500701799141640618497266896495282848963091575117354130853620800658385448878260995222191454941857326955672481505295585314934125908789844722346353014126558957173472810013555758052794548542372987596256178408085136346654541551115628497556806251554673164356620431288448587557892017874337437229145599997929757733437483505024288810860964491828258186928745724819952968234298387478090312371164981185144255267196556161258532631423962813529688386945906728818304659379673432374561839592994083736454204250773716245184266440843103434738472456755861990298812540745470478117779632138219536246267764618253247388614738549815248346528297567316915534564458774835659410442096650371355976464854758368761287213617022883088331792906095177901831397906817183692595464873435795733540320168463714422006554018240133551241692958948873082318806796998598695252418929859509584393084086638559599176966050432987355638759512196566356881857663907364553962266316118703645048846936274190688736023558966642857698339518359993986660357444622183871801353734616115521410394570281383911540142817522534879975483338513878552628816616824562647958676768417414532061400747027353131096143398273636870537205754900458768633241505041903960441640788950815822242468772703604256444567332065617638316574654442940518963587374697528816556565648568931855231941021009193739942627694255363269041938895921477493680187797937213226485626955786167535606743346935502189633347063387116620975232551604138444981381385380791441756953782231539423415431946776698686578315443707156648554837338212267685959249617107930034217693539982329104606494049781828492237958025811366096039656554755307453548953365374439566740407279223845896908190278536012668981549596804533744336645407771644211274308998050895533557089613065315866418909766226776899672439554824300923593649511948897407134996907972691367812155149097786986851439984758700385932578729873267528975444568538480722445351380914249747985866903641186609120574732361987567738996888200165386653580983987617236481547210232356535999814054821141385609566613654696204781970333747428032471458774182954836141644926249371065352160918851916010697175574589964500720544508311854155572124386378421566651170313185720169794612247594321495617218493941122602126907396117297387089574234675609571983408246299675393591997784999798405228891570612858664448725584579386407382520388948120049672569414011590913943032976144542996673998490945084518371978262549343269035485887790831870183175467373586611042108890351589731486803369092327539445058796429457782543975785583382467383132681379840011477817308439239073121759696318768755381735293015754618783018741227757787819752481262888500511677948239796867168384605586252451211220145355331963993231689919734921694282017191404387976922779964587168690591789432023845194584522360696016284420574808674474135113145482606302007391812514238610442433647373908781904342380689484727277216209597107058617494357886345168605041816631411071295014495187799468039768529446674783135631805697788248965571911033512995124679611771751254632262133893848592615804652695813743803895572098257554787201589969063493201656313835213052187429787063752229047257312768052267585468547557564775437975722651089146189591045934085168359188757418876361817777430807986529667271914239058321637677899013638741941492846208319796977365123713485914575841572278914851590044428595449981364908222882749941407118775304976208309792550697747461994096520228175748352137627794134201556781856605322281950889499666704434679426709968339412235938366719150671166243377675643141119156882954089412514833506869568632378512586207763219335351556225789205543779490031257325757966874478239787206661558854844511989412325067508874345337426931794524743735394535930752530539485882873081283317703993567832833814930791679899633380657352982446378759756234171836623394041462749258371269516453123204688745919961183935092139799986418428465878340577018805943506348441938460094543463221684126321830594179605928450391872730835235552805536713405183082658705114484168699986553296432708773505081182967386918022747563830541706647908499256488943978300636250106529696283876823564151524289502565292430416878849203383431428956441760337860841849995648200025786210589740692815009091571258527960303022487329183405837614388361348627499639651536731199553133177412579159756940562219782185395465837361416403608550358887262834769031657434595244027486446077531593655349045969615917872400993625687139687025409198445287154694927962255925911608542145935764187145691875426477003949345558372186641942518394854196943966564046382323543351679554437542196891213089839656842063595170644323738292881750514457061918079262279413498020669585693960512478385194474723724526684688680123078638666754779372991527985240909817808391619642302066561882873984708522690881454957378085290561635954333544363884885429994918544177378867657414259194288044486124918557513426741051643214594620685698707049482009279791444004658642892588158027651426631968429498620565962411195308922718726495425520234675048589638563148306285167153169152381929939188618211077540913949837622702651950960345921292019548445613375465986337157473084072114456432208222121820133639969178343880364774191400556630162999173085993478778633287957943393987197430848075559602712503633152525423398962030453503985460619346864299471997159465469723693357717368376259656604978748773904590436893524921634176656167449988584726983431184555773638966298987378553485214773388417134739590681277621924699270031451756248645196743790603120372452796821792216222838738581067084454205363848982396504644800322342017268950900033912769647846382876344463499557563884398025086315376502286939101886538858217689458898875219267635393718346371682295859979746873730158057767637649100214891429535904576212542592618181185484455427581168647696002322073345887741164689620316142767431267438425570942881630268022841931702847163528374378178585339048577384092738457978613629765046794230463908677577110591088220955638683936827737997851800993122867119886608589251525904932768344146601754725334630655041192339491667766623606366590999804533873561000459434471146932854651061260869457556389834358192305568964888497173514915394657741771132898332196495297885298068556599312725143169331551793839556767722187478472859650281389095780149832142180721538968053207376802628165878454686676753594772438619220413159351668596389622899575849976686947558675762235459497830804943620389467901577216836308439954808837996365930775259257661061830847470433038364444793696869155368864128534564366452884141900757733038924787861974614294860391734341493014041344545269368052511268954629010751915512775770533317343627538357053285616932833577181534095197678882175486363929276748943322933852858984492444220752208314189336769069806583531087336331281827387463283599808522289172698018368872228714548521480200486150462446867206332871906004468438837431113097586477693840754916880305293338876295078151636848616427047467530134992199212327770666425376429072290537451742965496239161891531061471577121033086827845913209340741514704667791873008052332521994042795184437521356868240921167283103136812894328711313368679377744335129481291139639838090228301124653659621387810536456876826982686508576727464092243365223371185443059007280897620513118270219445767824826555718719478569761145830339863528377547095392823384386832143258394288548275154359584548698787823395392653700758742509540270349302427784606226195318927349699703653454913249554900685149769736055655062698116274378780329343799128678445692807218282067977295283699208474567158512328265544366780851203078255705378891139890330034066205627886435598417442573954013428260380942061155671957275269018329989762383426407148667168482592194262413895306520479295835410890574457333800145158587437378840928961328953859281128395161991731595052835117865849192687672109041477539324514247877883765588133133355298067478758295910958986793438355825821236481179318003182409524533648417195476401247797744424968513814679285715422464323489947826603325229911769243492214294675775367911150147609255513516627292173668289553065143727242278560069774411097488459926654835579005898298688155836661735078635195713317387604551299292575231393646567799631451707684243862429844793180368836351722796946141888726431587208343084369494933368026060959863319911646966453115632628592853511084315725190367894055587496399213011446069202126437762514275676780479366828571766691661721422578041507398427142998049358382116320454319244163562216725582195779656615587674427091872455774507875320357183476353003764158582908580860596432925162235654916424432477168606480507213938074526856144564868606085417956064525872239095879053640076714511190781340310595452066935071833022706740321359742965273572527717893815030175739415559458952662266253631897540222202635978596418262436063153770481512979056566672734839119290229856367631210999382548693159432183071495137814198516267399326293623624276796681960762699675786521758883020133128913290975650619149160341675346200917074635366519522669154815029634759688909893071222272760588357743579019326367933617796246739591270811882557462238108950779885178636466375090670515395122816582542991012447819151008329079355805077088374981992018259669199757983554514751815837214630846983460676959897218782935585766606577235439838661750171630143356780185227370614597443816499683636782287462205992389441986887011617778276626907973080276843963287323631970251648936716518576892386706613114299370949852157751753124838878969346872147941268600253358862681799655334416763424347223523585946067277093361238743512504061200867724675168909331634666376089100329832350419143240648247185630715105493576618035964231667950661803936733764897485252622627556155321392969981750178739261963783166224977218358274322042338286002315886760640461829675214685031760958752981507199919344690123983686436363946394064164981676181416756953945960621864946469005154477188254697321910265672751123997843611118762192337989001722593232078548647424474555643111789797956754522992779783273879765823590614435472758852017558398962056071395641138200624945275062456971566933640301069575933943021729361563199715692422260108658817158935512295231541699323360688504824362715428539995201390457163885163815460577197501629281551418365905455737910039382387873777915625583493709333015541088785124188166462799729358132099642091684500394527330817508430918336118546273961574810824636701321241365461712537233677290857916158858934295291839852371795136956057500898111598456885387352640569846587245430060490549781291980193276838779431264588540248781288044690425817558287055241242982575823727194145844961114984239054485522912734054849429825984725100462220930612543418916725136258846667673149946108856565721292134516779185038518020317636565571231257967521764017738344230729631237013425390382824076738841950222252545945258203692301631798889254545708443131196976542259114858614347362156429636394929319083315888930380363686638276681773471493808455990851148048751631958497756673924129666898811803752636370648197646827986561452212254052535824594706268151146876748229243010483674633064286338088818677281684870431396364636521651558174743025952345992939173920117551742495245861707482904287422971402846300463096351928693195364234050447661622692827657810930742881933920932479827794077273421815973263505359833724884537908479249571676824852165307638624184253244749145799624441900649686159649384556513835189734692799456277806858465245179309542103871085941709423311375134168620505174125025589327391949161540692421077402232697817050785769085222974660353195635937674351302238178706777256749519912325127851896684489334121666504757484597161565505331321616304307096767101947737826593107487492511836945230956707764063498208328544567867093143197446094283641881622710784550977183524217455698204691496912537992211966742448417512574770646338535164575408549231106665914938767274519244441335235215314187162986924168179739857772883411177563614880883691790819399094125390244947904759158315888731321641881739377718919115776958364282289509418788764917866442024413704275840721862674160932395535535163840068146882701052030858000964654985472278015635529284666772074862574997377936893466350285904373000769852020758389962571011356409516397437457697403467383087263719330947751404768139998319532241110435938525956971684564882992783803518881252869911825577605391912405477712408280317965010494066124811296880371285912114359688864463626697883923273175212639013895225099227304718919825879663964428623789507204341913437882422342564835734219431819740905581673079731763857014285044545668972913346071636619029925417956391626248018429536297786246887448721525318618519182889674275675971877542811768152294057953733670201633949590860969278487975445658077962693012591843006186487970426077700951282328156484712866102343979584652544755282186507027808469608589308286688418824889598986747450832764752551383189196025247132204821334442205415141803312963468267397483628201819233551501167867672822657377185708023094909480479389084721918181076984916852114505567689514372659949931045446616203885010998863323933481602374889815681495446971497871350816540458215991874672028345696384064663468738418285229266395346810185887713778961171316782603920331547956161846491774859913123748678306175665765506828371115848172241357493271898995431611739157501947527799777028202777913370127587818361439255479618279663616934239717470103516466904616857072122147177699428517774256934310715190164647472681353709926381041375190762631605747952428962377603720014335938523371411974275970442692942551745042417783667863632814059619556885302584086698666126760434679466831285307591911631558452695077955417792999031542373662779311201285486492075215729823285950612659127724147866886855442362045974244144883757285790959929172379369666654493359529257461943043312293879689668595744013269446290351698350528430217031982780661861919975801178726109513626730418873097864853156397962624321177223381465364191733766101185586731750074876793749485295262988426409868414749921264894404716471008786139447839277162660332834176360643663998733461193272700813972893991752322702235614885889260811479861542197678717467618561896764237814837864981559108005863943073125325929503242606721857731897642233759312021822365381586265403572469676357209240243953052973512726585634722769181538617944505765081339918837318379570288007368992461474784348962369477106344428773778135481085967622877438869525066903525895536884422986346697553925367263164411859341729893598459139441273945206145388307171929033618858976794574206219727113309699837384357762150023782821831662231227165782096784066360024466085543660655748316160075888219322963077560817263916042459337571761858686525353730038566583002716911624158589243381236028633255639957923553742335799305590036237558375428692509623489995266455647488783703513293913557519746199980424932281291456677345135317975034813953542862449127747787817569288226696036715795618888497178966763874668884606875918242714378765029889579625292199947889754587562022504849046565961668128912479831671911812522163361723757507468317101821857742227628791395283067643098847032775875592883252478294946867509962574328526736373559343355774563467549955101623785677483560729337335672935247100254437553464301453859342961168968381306307427386577553628637482355477968778707991034302300394858037766897083821741085992333766567371683834795323177055390184288369147481414426876181666345873189352655383236288874907763325773925869171466727473162638352377961125798601839934441754508728062876143369388996425558892674054014241771921973874864841448237668287788392926653117008672335536086572430599707228504296886177461766552132945882285255726459966913295187348136701934330726563221058315412806240647653362206344993759983337159346935145371799166792652330395669490852192165061239724766620601444045003301781342226034186529598839779832165513983515527554012462623054393659474522734032707841377578169416807953070496921349279291047624235452867724972030123444338786154320230653569724355225625342165428178970241932477153771785536292477577379696397424296489146579272134262703381217216245217473471677934477966586758638175375985218099852236311967903610450164317654318517010595845773240499745716243649515611433953462772298695867922675010572276290496756461126882492116348167613056894019396623226577775172435749290765360105281971644907609678411521406664990192775595469182565411518915044984857455834667927799112951970320339107252891727773958859185635413939494780658838159240754520281349662736552014975282547353080473044038044536859389848556435658850824323142952539537889397698278682497401719113483773247291633104719856999612554732213514611661312991799155306674352212822715936307731993616738569695623334391865776041629691845112060120337274777501620765622070474653322881414395935327726305450735446229173765997649344107620565288121704327273637940777763615958400551857303646948137692359891686079572773813412477896167652146450835563103378217724989179382237908986240523560128369513788472360553926146633621797159669638394477201815357844122465228776961273901071727063866546965749594976303362857025244519813685356184798693664708239819357624091459251372960591699851694767936213316523499503471629157378697198310745882127451733582393103381384693230295668783680096575251090728460308147727121174864527319235883345917799891346959394785379226371451680637593133234349171795774226041813661839579484813301839504422220915945473009693946786389342109348928766558600315077377045998041926240102867789789247616034745781069831344411124489899837209133834862157533676953264229884880263255923245856794231193707216105962201251556118477288153421688056346382113319468848668826584071747866790292466955788061618884640928935845236619718686773840323192809676694181537839997768126229919008624204359031378325601059875264435421697677093442825169465934170633976269588883101395003982134832912777681438379013763193033393224034662034082081067191116936479450983743416657407822286673991229347978234031378724969837033615779176892179014492620416756916487496363102414538748566137892146718749391266764336139575076977944659447906627064649348266886969463892565944177378750871683216133709022489745555957413566825490629988653504181589795111995532851256437684676224245138150360606399906080277757722654210025081883988595490509974671776198331129883776634450162145678814418081911599199602894925327072363845716365196952994504541405156359019260203712597731994564968831176976681834211520664152689104957946517562979611229247179836575965228771592403674448842688435973427585475289902182478578459053134236402344814094802484645524258151858551479682365457249163135490443531149968284468382256632641134807731272056833895264223068438181414491640060762695341604024138490764349775916090016800057442451455047260690382685583798302578334101942282626466838602760718942505756115956582134347946837533237592113389853835567841930839625503136989694931518364773806056627749080157111521269772187448848489618356222736178706164234812646409274533529778643650637371610968134179933418463126448947996746153891788316729628913925904134283418981811059544329993947870167350268474796808328649616098371557684787629885424962875685785539945777282695468798797858268596875301026974581677288463536642287373655620309068239511878320861585588942687510391526906865922463806745235699735176328479091795727256610791452991422722564390436974362017841505425975905592473993390679027448419885546625322091235005577067749632598673252143800779440330344057545871251173733886627345380224814517523857882374517976842805012165939569931965845353603183697772903569631107150972058575839998567516634478631376519729134486603186280817220490973494164160228478294563849551456045115134942151867331872971711275589390378836709383968886444515771090502639493913142997189812951001872378958662671615676776021324197141682266593343933403842792279975230456651351306291805451638398319183857383665787602433432792981107042143348724215638832855912559168632214796995375466164143863561119246247438309272601697863304177399686006749276725614168312068372841873948627574484747234311913081456455084951531738915110133969229642368895494977184486476012350216437784583599782948886669385588779609311776576057678751872309275492642926963786352633214818954888411885256768834943828874029328588091525423867989113462295574189632912182289287396295346253525134442661645312780845962167570188742927037986977459936269255207622231047748704800686206272411372547269175361931774555951183599824201687651464462755679959558238775324516999152871012229561082424999204738652741537921802229626624002035498942584439476545915429967405266970963636612909372128452389882308445808693947594495247113986878786657435604123499458167184256976039206304860888979179474324231577314132715277496102326451692689266827494419770137235233629276933682999482510118458416020345374137287805925780852996017921179181632060807736037130098035948776531771922982477594724362504973238758292656941672313588096652151990558364971402583925412197490568283461627028373140137119483639164656908917707588109587769838943294851602247215749655631545890919548781515152818922213715405595494927899757930352118381425362286276911932165567849886686869921855909200792345789752378349125674163491901543996734377610717367056678932455489102039172984114230563521282305119980118951198548746101733282774349367339129744834141763531975553976278532790043273385819971629888314016982800315736665479893911832385803471916599048499576486850512558963832292477157074196526300868772308139897942171313755617285359614349560792624143805855285205044533139725174188834994581502345378315648220649985368644818067599688835266061776417798209212143752936838942988854409681289699895534879158766336814765402992793721375535105991827984829678652695760149091689873705767539710441910604930686932103294509983818323624553274601607266953696774657205342567276985328283567199990928238352119238189498381824135476195811875956940824093542334665431423312653664065362642755456267208373052613821635246126323081118629595151129901096996229211838982498686894857155753995888895234761215622065295364152250402849997454054117070421126633201482434772389932040400572300938864984933419015732324369512145386515640583152239693165550568829355969942354396048387028294812089754523688743244485562796450453528274255063476731515536786872689507062017878351566655128129324058163865938266525776879564928786752862605718094353928984178310175549505063555555857567225134563216788351676245708384103285698616528009222916020388160431028551575746399370643569642199694272120730873978918315559536627358222501617079041075387039788967894702340760511677719812669474356105062779877363466190994963880785415415329194277857508578284241543345595776117827893725788250307619895479461214844697409269990436125099104124942522878819872721583457185169072404339430401695270938590399790577715899340814132817271157620593141909260323922785916676710381702767718862772402239146994449839310663904745374422282994319457646929759894339789095688361917741042296146766866453274858621313314983191208102154985977648983086147059771459286791009379568379611290621376406344600848093877389925101542013092947535695619402276814273781535988899645073167919599488851094683889216424353043179613565619591643211998103047879467904733658043131898279885018246263091093936096177453375510855236774921965667340126803905223199350392066099111803759282494865849133287966726088635188980542604659213789998615127871400594444713497487717252478488033455851720509401355972732449020572499262776871574515291470593747718876650187228134564559420545329729162926664955738913938875257024232481755420312348021993348885053448985444778304343542664384522272504333392345897275289080086265119151783381873798894453654104978654936787190928129273784681961985759932508690863489526083458149702748598171663231719185168637367991504033156913715665324203393614624556399134959791118769665272528879885624431856746380546454055797358289175448919895148381461358245978775387746726959164585476365735502716605305795125261778425871358472464014277380679992699452349392017142428728675579272110347548929989367881670556121569838746734519837321064775623016608995052414659312840497546639004740629481978583627148341948937958297393449127555098826729080170707154660388354721474159350043747386472665121314397150555194663480686189759869262773895246726996616287427091946849137156834554102848803753995762854655042520137340130575680232578015768962959167558101448322760373286966798246295628353322569877344505826778859582075887901940541885779390900789676677857035145065090367488800182490542634285683417474544980873249998662595910163043142285812596647244586488744425449408652531625771230948452473186484364224648759275452554269259788266527484360027776028844889299930930736817152571913354764577561882896763547538644097095744357297644963605768402330434914756121492253799894818211052927222121422171229323517066569692962354596445216549147851097015748596007867362371569911972466008059235754425112545246553152149905475321835043358886737836890818610098089753317644729735655349056696905933419612503866571858826357755791417397038713733229702916707306576479243006563272115894469486727530971968321196641985845153984262376725264933397318953108716937858718799794891877451810305157250411802576894416486367088849391816121577515724002592252192248928454074040019315711679819897605438724786333319553754879922924334426169950676374372775919458916481376822231963941936499461058476744910598654998235417572239041696905467932669958020589241912599416515297595047439622684980526482269750376688382215991568236523778006774758608801743807218446017985144414201742147032674832048324651077636526647583347342763666609586166538234079359005836831384250495609097070917418332037747876979910836395845825517300084354455031207936903697980593443246477393484996934218481165162598574629536033265385048067741026459797073144118370092115615493419577347530069937756720583276237993905219916930568672896444117517319403242532874193990021586940766585956485936359618931059965426742982118711874421150708546436743930212921836124896580495399648337176326588313310531673029391051825987539387006799805963631389894368944464404965027215152686198758208222797118727871534135855603554755042307995809867548052447805886195139302043148909964729994631499770862328581720561096860783015084659556043621217897758663590677269347551429186319090586287105519603679420746657548392074193882647193558186012755515278801242756206112200730099571503837993837703994328940861878761117165596431674590914783634796004691502898247461301701419648153176941469511736397983931828217248275579834665706804876784643677916724547384147872407891126130158238350448025967950892424868444090018400743902164696016936827976944063905426925017433237179938782629181424921942219210981915739269760231115433258581085016617212257875443878678998364563821087676446686183290818290925784349442387951414869649727878308663375669684676533600157216415657068592914051021996935178066672378209139125172253581409067837213234471999251297862867573870297780179156614756369091454647715010963873497254368719505292412313070458170610564359547804501584226558774455979485815813250819192490178865540614843679579176677533526251893128081285177452207082559196256040552566625880867754453043309493575993424065395975666057535625662637161536398402233504374234759586259829404333673969530213433446625871342742355397450016794852909311392605014048508566381976459556192588247864271608720661520388473619308476962617266614662492613460694802478039941496559834491565900363438826327349321988935676623156516873897695167244559727854723517068855847547591027668091395817944294540843139264596134116417222700941613276418587893079238138582634483190294222843595440762683431019764903635153485226502543549702723618459066265670758094251183897726118625975983994888308843001617337630752281743670142033522273211274385822497852121650882703184561527765858078195948490706351343672512420969892445831744139733410312721830290646941281743798560672742856855131716107197566437828570521202982587109254586875660239851977519499835613938426389505256362024195919835677845639143625637793228470187437452872953254776149233097337887141173574814159236524895614404165630533165378387126326111096187477254629966196288627830226883871685980439743526862499809357847362472274024484816375541262741252370011828466869217737887329182349763622724869198972271543865820300553614857626819788966728168320952246212632666685596894539180867217707427059819104948979037298321525633461957186827489382134941989436866618889431348508671579724674576419019651004384496935539930838861616546210383380153213938483653937478145837417836598784881575486436648364516837957433855090324044770810270594088425017822934471194957499542697327165953829827804599487884619022202174478998418968868193543686972044073580806119375458566689741786839746901034020321218775159994859341846265722926943933871739339498774059963126629920345054113070542799226847786106518876253612520397362550793107008487436281723585225404396429566983256831978135063904240528707741594985540057657162959440775636946022924796577420429784584742789233193949034878282844655649794732604683056340450611416060469083219834888740547221649157675993354573245968686839125630348129494924794831045449071955869242074489152515432205589154687784311342358101854948548374410958479379893170209114723893896395111213293073626510661570514589889885166378958488487272951273741372535349726303544664721117128625269270192633345845546542204970957096177834576167464982671561961105999619258044182860782242464420310649986800877213971568219624179799893663944088084328177528970508876876335522394442487294487566085726107160265878964893107475323527868124829893755727063718841586035192777124479225805407151235635266253017110216164605323047627295484192177255350345305473524371060815968953636644978605659668662833938689443834484819561604779858352605343222242252787591177129695911753670997673722925117115038685494609430795473778659923439466606266273415524154911519693735380256993679779707058634691369694699981996266700674945381468075729615022922362833876846872830147742801435846370982404361035436674391772360883837927448329407922458674284177130431714666625377627312498984373248829435273859277357188822920603584123867172028101302811838514153529177824493691680142679362595246102597952476242211953111679617144251870795403062483632324295349887092263857176726367385933505631629063852498254704712774580230335563456522218596560551183119799199802641778179232151584079462315868129374363396817599826127049339848607238736644993178317142762837040551227242615843845829562986949625187851364615434075623043179248892019368128932889471084084668929677105661273136692522516097562329788648457757608835861896809012197204054932759523750497161151117492167582159567440462126831374959652040959232099099733091336517849336815447424595569723425607311338970461397999307492667982547764173031738621229597211685121721187678303098215752172019174243340677765897935835159859457497813192849127272393617245201591598693548217222212172249955837459856265115897308140766327201773348513621333409674198741355666835555763594604403891747779044555131606195067292939029318521265879860830909751887043046235634035749586343687270456388398643144753127564835119282079317219446747792337760668760918794057466191557568076437217149733485804421738811976487225620930913457383239154932881834373919298489756545855781643558230688083764936456789989478622021574632710252939966068637737644611265205937921986045738039666336687632636562722649003980522579289079703462850004557566025504434262863495926923766331670553370604482109048348380890061180507773874354938330811969305289185714688185790885627895537345051673621844213295338018124106008344235892427748508564637761874932338807984240042346054770184061242025302737929524903069818377599165459861595239794098394942529842167026492384303227395389935007563930337704868353917854571561651853848410819148239092781142734432847225729602532351608822339417846251576896008061261122742931310734144571051445394790621720907413014739634787740409571332705877828867880306364161855035713660750358815609573342311484139364987169029118941356562467697244632472532034615440668121788954549734664412485139981415187878633409368997545938165533326627255152523128778269018895837838446393553824802755275684102817146756557045743792348660447643157072834959724374474656296238759133298319170325494551896102398355277095614536626595467995253982892398199540763793781014867625859331392935463667459735198833207237501255550455165943195637386835682594012892028922675239057237121
