PREME/G/MU532001
038552651636049427318486773338857527202427951985662968729712611524809851183358059510350181503830079918818932131847357911862356449958675331320126783545140712275415611930868998260294999216586098281050280756840969726698207306659777888373515118674422152060558588899282317387545682323530575355647141159576198227568987312507339424632329240312218349066853709175542604981113544250659723918992935469248317568978810179257765400149635548538401161547895353408009180305880891660247786069574869904491628405548560784943117007462636445184946097346553365452446458775769575349983205363403080907813311514514196106536826783032320422901319334463345237580203776201785841250063612525788055417688752734098178239581076696491147664103756917245510081175670850813868677682433923699015538688596165586995364926973958024540674593618358120532702032151688329483098686103126331022351789288439215889391629371527789101606934998667715384478304847272209761976706395416810506948290310922869376569919608236176798688435458111857518720280417217241508790298948073691872616491480291974234774113890082574223439727323730857613223166715470485156605691658482648698458159357103653438409529534424818321684758457196732571644078589024984423892084743204006460307759227215497513469975215301267191135136745979951737076697812070311903220600583620760177632106544014463999158357777756339644692398239939274818755703083851132437916699798352121501614362905278833257994528278794745539955767660780250964083117586100030923338947881343680262758800782020076043303148126754166441431638728651032698091375685276030766362752628420312569886256211154081431307283097725104480535517681451556241069918869900903143070076872610801521588975190866676129793677527617706500778920083428140128061237775893968517247520856398367856296506242025516836223266351717271094236194898956013607526179550740456662645493495545377261315299996948195991853045996866952957160420017295072638164433222692186921383006671205926315745352445514241450063266550116775334347474563952437459178981368383454385726919523418094392784213506577689829138213519403266232248679173564851968141747383094164364726356998707373503787615817776318725790215695431179868598177688151503162532736185545479688040682587306982070579993325961269530097574771969807575167311800993756665214421523428032891821040259910222327942042133222927686783211018838028431484890078410771381742589745521627150645166323691536290560327743673835765729609621142643331397108537808939173334441462419120398846643517213712805810871955903146031396554890797520072251417806032520490725359834836203136496009469926730371283812625816570682828614965697416700626810542936039680003435003810120612142664390127420719635451438978161041425569606413957237946920181779365057544692496315759298688257304081884494638526191074155528294692338621556808396113457135566282521134906539480351619575844553607629549273573194012511335862383064347203149578431682028814663836775129431868172989248493465843647781767338465357382673265085765264290259379943197984702118604371902973814424873179887372470715226989915755715847873835963506607828002437254777706541405160274602654208369424266291713175542811051501834946019108220688787259826680931706042322369543930276668858860901392787902408408184361665770003277654758522430244541323531126179895254867877099883642370067356735581503483212392972203714855403609005394988411189743358269163958292389920633295896925607495868434776075536178136942766560949378298025255296308883989457888875039237822553532362374515282977855648868925698683184300287026212541413108463924532539668275703268725541998191690760112497345028110898798791927708217974495311005228007555237837088627043922997398867706749148911585689363384447146048492329076630236942224097752472217731710419858514473755582906833932197010683505204499281495186696969219891481298577178454180599047374988886787240079289308319076130798109003112502820345525274546124397049821370125086871237700985124039778764420905366514334476534215903924495654978224374960506044091589476008520128505780901098756970210361042281166188312789936046511954727306737246658754602066181984919734552764482437070744485811193352529821095402059455288601334218086376600843752681449560812791773741421954975944137763403022524991553613559114160563214688117516451486638199700479952453321647225868837516549716775385654339786348992755526656475785020669888284108813468793153681612721280316370634454718421784929759683049400755440432549017826375832645720599461791467302190827906161898480337336574667964790173696640967102151981267652365468136288923338237537348821637918351795622553577427990218827083492782035002331193582160445520112075909820661850891430703052163269944601031848425954738044372816939735111461647024454274756951472576937497955111749718589371242577299400896310485992367181485548274028963436700058340908461303597046182140263778130701777982004642926573267428159344049273412102997317648214688838222770257829166544652973571969630958935585876470958739821585696618184093245813300671574863945089964615481802005778978766737343068191917558135957194066308286634728552029957624858178897372142934011573508786378096565056062133096659776769682989099634308298703278918727295563071085365859037851482014049158174443958043663883598679649328637432835688890541504895738186802177481404339702926342978404395730267299374668663478917379252343998155436475839282736685640015414301011554272235594187662017802216383403319942629201621595881721839637365934739833266581438740251747191306683032060176148785805735726557754209877983484728643599747700928307882399532746470078468871669183767638217324819667131930018321567807809882354325552907945039697291315135041894157728414165500535611841007021040307816486097972664879289581702649723978205565408653539117159114137433750780449523493700297287236974455667515165476118015532328636311896181987290485554917018694744039974244171667472229257550048556923909405642307785276746299097789383636363199032778150106481993574370657961625748596226684314778885165608071698899253714647674516766759518690113388698675266471228189383498600579219268608443206751815686486564549864351174795673919097221062016663069414175552502779862574834563282184599697048895100966530300613889897915488201847550064863469675815571312382734856169886072065730281038855720942538564037073991452958141643193054411243600204267501336860518973212544550761198737701640814538577685054077290733360901396042072244211353974271319957952443864307755215780673827808239797167575748729960763760023742542784764976187611945389496669323938769591863739645560916989831522950231084820415133804429877349588397207339421256873104345321404770196727776203822284141478993415176489544191575570418961520381863174755483764341526506378068768746627273854842150646735039854775296900894026385315448062382977394408154702412424257740011438768997804983048072699405632856382202533210415568129604501681697515829627180627443390351026317373374374279688932080267228712686598802412813931808996271238201951962790668352483807767641840637396508826435682714894220325037238722224716215184867779103546330588727189357960739492605824141403939494596685952346954975174634263977640670495699788074427827382298078005160250791836725225897813164408504481291990042751379449673252984300684055931490617803682240058819000895422773796374513842302314721246901547715603712258020943158589728905925331495715958764125770253404979490564094589034534610049294799468733480827908795081895163233701669253503326095812506581188881706147126086643272028291966188711488845515923787586352991776334638596906301999775178050024578642207574866272248155635077678104116725602557473081464271914328320904931880965472955040844967939023778143267827319235758439872110438849516097067045726947747097849299086543262506361757146536715656235972092796223106037151635796812753655905951481678099871694463785622523928259505074554929235214779327353301340190699697173516076601866192891104613985898397623621780609258294582986647518360987790475891285545902558004977412019217831386103907034352565256947251894602125407160967407382260310872216190260827677559591855838194181035673801003462964789278289744852754867067391141476155541994264571673958565781129919711419884680463528960056016323225601727121229814408366438189048421111966196753547025002334800152731449079973150901928487751722001975524128735910776445382349526240656423186476628319824342378226611644856029468562828748776733367386035383777215375004334639264104263993091209336551288832163426837439556151853309603901322382028593776785830545547965672311095696305011846405626946371199958334403582365364070466973101486398550395137823514790237867537400557220720186019228822279468742201990266585295172513027233447692199521573915950522831186850380086752142370075135885035174080145435680993144594789380064396373918257892533446248211036386489284025148407903241747438432981915910600682053163701820126383686456999329008766631905212574812105841904591626989339945590512564466547714659358361451125315279070811760791826039196675294504336380187619407192309956271642372749652812712829981770100298441641098205714261323434097627804338888989834887734749639934240521496833569160212537454241817213579801192407675172999277528520947558151705394317978878064325827361894759262908697786261126619198881306313740322907505069291801741782058459308158455413739026610574088814231610974652415020376699775979921848136268831389543859709421309854218093244372052238914290663075539448756110431894252036694678077146191571824926135264425489365707165030155191150918561515726450817642698562305541407481013032187879686978082954429321027396240505765352015716169342788770814300619339725849825166921973647528141016129835622303107492690927162032912745784897190765648987442035894127062076635743515324516445026331654705670238329581606270181673561090014031709298770636158488665278732111436417802820774680821918231340416251255482354814393925718443826065516230297096247376529092415412343300005764248464024389271781105976912305336816492063743098467120190330654356101558861740638849534664351657989710478648031018459710830621509504005264388507185319060945553767524038382739709127448354376513894079602387261291157031293408578145467475505839749803578866395909671035341812882963899357425739458821283661830482914642643859009865305348811205415593452198167784888650955905470249689811815352981457535093913067321636740382309318092401245773899188398690355967011150156031684854356944299264707930205024460277482717157144818850887190668098824070546786503925347096064662049869518090247216902890380178703408493249523500142498839632879968554292974480386857319133508732216888846596159460257656041919204584789217447077126863414198847865813973120343518681254644540403571474314370483410838697122113117733524815794059067231748065083359087477112667697228047277100243173043705228192659046113677267271628239272784660962113536593579319646032750697186853728487351663374117432157543132811369273427185189323992313365082228114880380006067581389090708123104177236587979433714474543843616966774135793694214207582073508529925373072739848239523707907766557595707776964610412559203318620796588522218148195753601753436148311238635697702153265616729343883838169162703556804107681862140505012807141786676613203565669241258210061017621925500235393428900668276234488814793789053389042537297456681969777897620603791857274759505032272417770714358190674019670681347154626126171026865932323892051551174220869644306205117381200814141537358039785084582053124427315722054581390369874137986418006751781644347525350415851974997642620437983310942769036627544087619891327119782422572561744836796918835592950900559337130869893805573423027634989552629475347887775688926004102701073915757599574729336589576642307432405731872633659048632958594433288578889483632387423978330776547324775303957552073906100433290852710184961973658933504896500722806609621328551546131358524697866723996446482473621528751740441892901598732280294691957308065878693002996879455010552482240448367330078205833947909722694925401088658254087116296121868182181742704108976143002669228512299721735195463165414443608750426925198360868671409900799249887103951337869040439930802430060064477785338629493260689687993501302876765414294945067108953876558006845526767053656400622463657860253236991111241642246828261499856515719585045538969126336933861418310911346315985383577116530456471674897140064400507087630050573276973889604615908312455325162981498725059664639138363915387892901522358591238076259894263705678778613743760743944605825838058684222711142613977381782297343566087889828228165173056100725732241809896409124125650886720358176364078347297770598313177145890972831575363652781279018662271742248675353496896521385592228476533218461032659123942196792719083537396622934503895192748234557576005390467075782957929878317993458465568657090765498771847833817433877068143453929625448131081939663494427227067215140084495302478263861180991904036342608091729504368457526427375147078972630573987174869113475542410086716809557240813397430678971478593835524909158433090929869935784740486282247746945932486513079865189933033679534722241919392477833375347559340786418711279114811899211861120564793293282436042988049084663841889574363493327135601520955414712946195997574346112208904504336033409546927830368421999201018001281450365339642906265790273043778691261219977594335676009715003899202869029371199260289012405625071110020714592044173561117332418989530622066068334061827365057261885045285655074350096875337243834796650598608824942924294982290292103953308901593113325380317634256080665391944783952854844102481711312830432915735325704528953907185879150171547987840344081706905327185463500371833977879349670376091435449325673162784075837767852468304827214159199687517332656978239425942228646351929873819872931816911243281640074808143493018212218218019690930420687398603531765970463789698768559074954048782661164008571508884102893208253229403650568682991699619245944730246336993458311931246106967662811065494859846512154054506034652787155948609780875706768012663374650537054996246352720001024614888697033846155848123831035612447377744713779887071705348168852473304348068908964430454724899934672829285918836380168317267057446601164755334241413661416028081752648254026829692025444404199573658469171572023105246208753834202149969241122345458333723448778398417835849932155512283695494294180205747826023438691591038176057192425776438035141808021908105466818300492783269254099588143890322684427955621168950572384483218321823791346459171387758215540529020059971056457967834187990388066955658393467783413245420205222443244929780601782253909266384057850291378893063173246618432000203282906373444981157400679656796551047748100325306198740350729873761712411979483769066471750715396981015331307309323001996177412500439809535828632112099574474743632234308816432981379188609329518298776857944808331392483070875733100133815113489700239249638026276443658947738278795968856527719567364738753662369390449032981156833026125317602342316505580980055182424263750558792631773771969573070994005442100599165164503173655057494193512565059945391522279395235994214771899340515321680117589551310974568044633097551658963600210458060544327882308913354209241336803415761752944367174407396172109665876560157527499854816145837238267068669929162498217606087619864976516799261998028016904132438201558161599417721998206455636598632508206152468630663985173595446582489320570968930704158681342139044477592925551279584453222055009103151611869445582595288091323635818299116298560602563768245215169325242077336129124234833750524860075006860401813162641981372787358030858042051116773594724891294009044038853470215337476358476707518729118873726630452171411532674852934374687567117948428930369649215123544710163918418731525676875997521779158368176405050595637112329513628907187435437604557769498236409773157515818113152232975483198791455523800112848207565799299163474187447008971482839851538258101291532464865928688311255351786596262080712490051124722648765397414173819452655326797596283452250535837410535943924772438106072377202103034406390078598348227637479420305185290533196496668687117749413494657270185208094840959942686744954882456007835266578709054222467969429818549925361103556705493559565100017655958764007748618007388681367161631195973692747410245542788528313689297940360806707666797216900456624027441462745020546401679782172842252308314512956070122403859951906280227045291245544900710918080054572664312956697719888881020639440781895345287812114002556039684369095370467343129682312759849547886730211490201468245042834661480846576034777182978222391571311667949989529322796656610863231000224337862434973976568879414176627985626645172775844164834321058758065151671715054540511602541236746322049988674739856041513073584612454999180471110953052354203848648305950156185375112629635994348298025240490249929416170680205236300700411160465701611263297038471868797308041165370900456092738265123796040220815010897865955667403382862014856205742521694849914950971597635045978730875815380930876760768925214802806513648952561237550999687996362527801716312580751380291767035937669169721802681871401405085910116881504971641726608767082445295292416869174711591273606147784454062061756574982757607098246100378287256820900424891540700949620693273515650596740935757230339288243854907860487603871486012863957508031931822427147277856782200557602540091574884140392926365970236360861798002522350232048891394139306667098468651539642133494004623096289244123930576659977473007759968116962039861219074899076116951933480107432369270647100605009991090053082204266363340600285522109552715126700308541861712213802347690490664729472395832864174647442459647974930783111719242187615532570668934765852221609137631713335375540351754755475881467813884102765441986721982997780345684780257962928902886720890892744130030166115776781363398413865262433517238989191118774553771871757875552042576266993686228198267315766204406620138638977223731908062706735303887892750774890133396055077207008184373706662361491752284049814630445148372575410484869350251288295329189197944516503261541934304412892125535826186288785659076238758922659965833140047310899703794312964209726347382053849634010655598851503117308754347329465620745721667918593935040570894919751053129237713537812189170820815528897655669664703920322809570989379866769855944870854058991112827057844794830851634193816467106890955675417088585965048864725728530688173269523112226113744765085307080167706576024729443472191919804432625961033873520889565191493979059768207964495136686177252586753625755184660203758731891847921876572815962987724889961739738665585267047979387763188570988352344076185586009691599886176308939632675047083638942328992200518545930956409443586551405294142176060729872209315612073526425096245656568183188703961907486231766080598413374146313120959876398298995480906250497602419303848502523566262763187883408458204230722383235656717650235519594849554857915238469928592933837553976363938787582225004076076717378577947695869247030781086876312171078605019293150185074298468295158393900356740303205184263322545379028388479896974872946683296397693862358040465115188331076478427010776462131638336065960936775462463394545064512157411628883100395438038022312788308050472363532519404739396342830682764368502940430853194673599186010377255224711948999042121065525954879026736871597495035633860447989135418076535579268660115253858500017807699260151233963353154805568735864347371694198414672130650827570262243262203252211847381333772974911229114201988795613876386967052582060121523114550023678527082298444698758570661653151661911614499657370422865327500337874599515946090291574426370740499852553826765475095627632830923405028871830700407562306566241839354447451323756770215722099668632053562968115521695433638620244811266124939597784976492670618841196141477838280840265897811977642689813496112282829907976771039622726358557679624563592883714615949975296235329982812732591653719637744951407241687660666993937842173732628817444541551704379132592426446220485737532070405446004266191695085127613281562296689630892046312763942726428612059424656975742459324598237211219723610378637156150156587613895643466668472819672109772153165507770123109333700613032304729710945892655516025394667535507274031911658101146786707532508513515377956693976022993312001221800027907568206428472065457803344242705124868086789914466276271920994204732841541097472422124068731595813711715140698119544351352093782825846138938328105396564322744303540016513913885993216504299127703051263201039261010550230042888939117630346660354661636416679183710926919542418528940953177776319574142322946277749231933008875068511602173947978970437848038566782091746608168468266014771611537410106620566715417443449330723622844150265030734587551698799783567268632527547032054071259364421119529268666226801962319280371200821985064196389500563511436951321022531837490620007662707130378203821158772939769288760398364972147164730311949739056553150098016771261737063260352637996561663181613377599897251902627617528379643242276082281378491744695801977294851460788404365028309998480331991929202936889657583022401071369482203427033429316922333729430465061210131110550117725385817815164279371469963278382662340457404190774044196802740829893121042938616649766115093043856780028876150938301162976425807964948951094380627876907075494512159721581502056853198041732242688130394371481924160653745061126325375092172089028104637175710458774224697919012901798945366137188103752594676173517978795328892935204585445536487427005499215242554018417658984614656288488607084111900402372592195421354232396345612602782085933942357812128929781050286088956442487814115749640023708357505418371784538257478666351306633841016531078718862722137900186213627081602137829431080316070518767813285820543342073641807317251435878523450113939048874432125950442830121794753062385503792780049663788992838345598850577936751424469036683242845536295157939893626158560963450784227621995228148752457574608152284783313990673749554753210350688096359421982891246397574309606827013272163410150632682287105525428994285837907381697430323476142362478361836766867106907933833248453554254362518884167304487162843863479367950078567993692528532317099285566622630663952216044190471694400690015937987155962541597343642021732327080933959808216507263797557289931526235698161912985967689112500557104402692252623073483207207910081774402993307846320004518555536197445463214223518977086564553123624139191617475646399169095411903267593231249574406171998862156896795516863423463541779280331389752460911089043227766009779212484678571423552389562357825623017879062759802923962991054221460187680898807095908284797128824605757320477493887234835449041296677515313991697286565779051617741962915252691689056191866558069847091253933976265832229965312862959120461536752071225438066880178566546056478951001745030610039288579090120241592789440922442901420047890770137029175263483410391468042303629881864115881518372474842838320623283240905307424737136161696272672591661014409582363248835517029920127061039726551320612938954607022192495243291540053690177511189284920160539234075845682051970690371200364933423218933930726579364748788642297858649066561666914554789810474656922808752439217448588705739734096014586288202022440158671067331285451321226981817494124342760077503893932210950124518564388544319338909606554072297046994014170087851948703408672566772421723409616174857475956374441703789975603866208427807316324490279876259962935541833922773749767458143102096928585737077906575026995405523860219241662718428354034881103625933470768217097715582582055877190992121936006328180008205471364671070421123093036440413481649823943294555178741233897375163598475830174359501435943104448628151576577749061676476893389553192408648731334930327502888618232378758201048209295522300698840635466993279106592279247563387969435393355220430168365422106177120071847597659126382604175909144357026845346807410613726923945574596219813497801212146895042047578259529659257151270664012567465490600332193184361768082834800456204263967049657772990849649753136758568944956222879542425764791776325833492858185223550303563557726478799819369139278695897748556420863120484121596723197253570003230325364304631790604907099796566395239091413514104617514515270452420137351569564916243107514900852025237241248460275869595596443871451945118084446716124983773521410499116291208811959183833438269816251250900534067956401676798092650889085411151608234684161277758496813701375914542406476956641520642174400493791230396707540731679888203939641845056092549829375370491749878730714775663811183661862930039826355746221188709355123796242825260240980049254165522447221651553970569271808184279685119121673849826117117493985642048301846403803390176646468219343323443817417043407535666094956956681841729352946848724338920297516281616084071695265205560045995734710503476009437645892527543254360627002795085666285711940148795830407079191041419865668944094331563904440910321945633328342283305776605483775620957796398309931527270394537863305157379748267470271522975933924810423028847883970046244730063516078765725865835889866967487606657336299738628315763739836378879245075588105501091839860852581077542563981818665949058653237801066208803841523446411482070898987011213251385639040644517927191507701206731256584102015139208883405751306971940106139601427115862960824811656587886080076493033351014914788905621068684180142039821723341517096250967197026106822940085753969979531497043874177537549971682089178991112762222644635576868950889373397363911966785532569768171229179960431900984393094431040760192795021508381869907449849512860221787480706178060408665060194603197483815998055875468141614300984935438763922054225720207147824928425332214285520799549274606484121590202294270653484503784691687825544198116344782878005718427320641259898636783830001645432030186309585299787154951357065897712989913828654442171231538818360699325648077037377761377931186340501064897529182569393961328494340279876101339454225190408562987912225671516228770168619093073563515548051296731769114822779003076236145706329025977168090708960892544477501331389358715847305188348817467233464776831234833530041587024966005103435342932079638635399837193886824927264871830287782699359012123154993358903723772007526883524166879030230221189224103439914429341672360103924325679188770934358368268106883736803112587251123373016487333152318334725362273238347466469218083514382069731887149502412879000572153028913132345502736161408277444521885336389016592035617704563798510693720703564658143497981202345122310681346458648104617328025590734648447474739888972906823428914923898437856305798342165225092813748048705651501321840948267401155690425808014826377361888769309642268570540712884260237713194833219512535602247559300860555602088453663584265440305227585543192917147595463808815331814094613429372024431771854392323320598312291741768131686819694907558925724021837160237453684413912808506061327061481911305454495390800364259178229004844219736026999038827259101462881008459330836100525122761079562252241364649540307939678484690182430094699229347915923231015281647913571209396153769412187556028633095061555829770228482207931048064344601921643063365903678460822345851478100439498804932529000239810701777375227951277818934101935520419003679092043126904164113769166909874075678161651276028626590875698549173541401875973668325579242931438561564331113833459222340430606147738217318937457569962377372466408151555151336601909996227542366017201218568420117252006054032041750498111256796867624621636486095483604459722329080405537666488626778815872604973136936266718737143007204349301390691417316309108971204088308494801375391524815901267050039237899702683628181651921590165888042171136797941912005308546130137555694689733316974001544688677732902634178521199593280169115258681039606398884518858786712942077250938363630485661871128538167294196929437881044501389918174304503258534924955351412027252066169614871086758058073057366293242622250090166954232944617597758559443981871230582296027610090124254016139144527661144379292665778261608990037244268868349442306674179059050798589379237406004034804543867847095145422186868912718385874643885296311232064453046865466174827116137936055570388237052101606531791111102730533922429833924172043315064350585327715513115160284915773229544172948706966162517675173661520677560396432444096344190634933124387864837931237997839282744054129666601465372324195403320188315773639152427764807654668532874945488156509711181704981937275518932989472478187497625994495786259261439945322717316976558883298373327627468306405343567740096005920155803719489721188861953799658700432791469503578906536087815229925485445285871156565377744674194169623512047838729782134867912587839568191902108089184011446373656266359795877006207707839889105591343808473276290723197105168797424682184751552903058249357885918755169220962012915761972284043660083517762702420228683479587985706991239019640357547516634925733049979646777973766046476008724748689539403104850559731952074594801794035601007776825813463581735815828803893612882236481046831829926106147184428368763625915118891432171281783615449208805740743501718355448181919940511067344882304125755631959055971776289937608194185903151438289242746205476750918311001267415266144768677219485518827251241955252928617678156357394345701761485797977823763461662081961053416679462509474674304076662497913730579000317973124053577254707324236568722069713232970346225708214439938010736158059004231896700333047562655780507869283981849082406759810632807982119784317798392883975531152979622848663227686984036041757107466880532463754388479785590238666834635835019706026105883488210899812989101786951136905713968073437466998273143953847626417923031193441663356500831235812117339871264370815951496470154095877381506143867748206956553378925777284254207888597549237675392114165599074123774992021357241133232488945958066258982468280721083827994423317654879979158829605131398243715952763405103425805003314118783765501965994869962533385033783621568035728725051016003797919357504381124271545537570523475791679762191604845276749590957166071971405217270681369594150999930991064542189590901447948380958904142796437435310941610479885033283543847411498952386935020555539587540205393773825779804028684737417784594664704383291698824419391802112463237822378458147057871935465675986038005148327282712016383032490515623806757341258856478776844514079733273540797588212627141552718156300051538311346326917339806003228005629355170733396443309317176136555176286421940718503535226390154765826662530414990729431680422556804553197409903018935428929842363515675023517176825671969675404334844467526784060985814156116555251683967777835580721815778034763170953222354648410039901406757131749173778254479863303245272745424175956719747847014500514345881974146316593657804781280824320518775455133996584984989206714035535022501960301596287499713371530571379380032449313711564726655214984517158224904950840414064729117826723619608826620249282519823644483025079503708591040802467685851245048917699088941901637105061243717767439884363818100125930922258272281355826026711864652242551917509875787053124891333433667667334839635732221579730991917793529990393894646803757251840137205282357852598757024963365051560895744449389163314207306403439846970384934223511776548718713191789569361758853762721759067898128774822834690350609831029363799208582442951154738421704648385525383113197332654261515292620056242085994846855137909165887460398068493594912230230561528476703300797623488513746522220770194045461702413376358546309699539286658374213730818830564855979743732819801189942392673533751085967378188523835325565039374858452723251702751063341399226067943638776745075863142918206461154213305085639468462695857551782556114734096544216515239739398931610744693834161160928532254898745008141201680683405596176942396486124282816387350704967173086456228465856316192457632914042392739784011886693987528971050411606160219467713336151779273334698380373182810002131355990268532927582872563381138386435611477078908841856041077219385818909214488910075580185189397084194617950699022334329928198476803868464707599264822639257497079028039656714746476239788932507812835771600130272912701718818644960190594089129493066286744732072832725588021374305339999734887631436582441034162281815318473513104609798345214382723881784235046395715765893790344629538186324842488487592983818260816317729612377983575545135879967214911870150839785290472549998151753542066090776392356638896515341001882383081041476652364072112099275116731812715723521084192490250159705210179879029053990566454420578525721658385325482928025969228984857434146241592144191645652766760162979453729919072143559410980107834077127455324900921381174435740387857840612356227454105028395396198787755403651741998724622755766055063279200445715174434179617645960061494026614544018935284216768945545329689715433646377501830773697058884731150940882372920069438753677337083720990576823600632152818310648146858151025880097347042191238405316794014700630059218862613334539943023421310783428277667621458528550482333873712901028194472160432497134754279813279959371171622239766244151666928402213845175599566298124478572247020351633578811556185968681186938077618779367808024284222625090424464906561096815982744613412457766238589276916348581754846276060976078308353818896669828510274875310999386194328754598939152006061778604294305505220014066754911115758811712100358789587892687722043964539828283686263552690434892536227608765345024159227932240436292562060936371821121876382080588338138394732123587222789332417065479907394472420810034523324479723847844510285451962795663901649725803792791848136377894336384836310364500904036999016030911624755971857749947509234701695942863078737508714359536224950735749638559727063201972452026312528295191681043699023142574361288420450221505409293221252376883900189187522259811689046711715928757340195006671853785061257393738539921213283617812341307723865052845872525329624293603255974680864863714255653079488034474760498038135460609576658604889654573709247638490371702500448488783585586566899422342446182874430705563755364010655466256734293693762339260532569872064800065902366170234641709765592258026205017663746129346028627715138545563488103854331323179727766273184684500533040854241702988544114433307041998070223397862399527382429956399406987945791830059066259735951121942882199202412811145149488698355732876211085985437801344783032281369879951108396037933752632794971371988897084880420424048426800599075746123498295390997489163308900674398997358830755470810769741377178776214949852233337424378323514560901026019233864201121041821967491531987622016626894819299876684869565787496636605942080673134878179056649952110895205049115854629356872878792979414047800312001229781951665016393194819566037382165694795514849144313276729082405892403518861841827139247271324142538230133679793324437984335620497586983088139039603637108881158307614839783414816354008261915598319295795798757983771202530977147900500961535304932878881002527265128976155513405576353956900905866271353334758552140106629805178834752266296111280442253080071965559920003992465166069871643547929304166705148434553865966757716535455221894268502584020369559723965125770126846564378141448529037700518780456101924879194960428107151122979963535485889158781354182878431373526358592998513340756658823870732034307157770400148531320585817902807443646132478069668547799112244717928958397016866200528585091251450894131280889228488616847051708659143937700628156314007546060655576989044802198024967448137756886680797237723977340557605095393765806085802862366725044923302524306130804402188580381692613833796506135251509481636222829708481163534855931270985140746118144261816381310534195580839723291124267990634206598115179085600325301299886118579561565426328978660558540606982737170019038234252215653228462119205212239036857632344605290138833272043196243862760911618694750066621291689172249626963438653052860377520156537866969112883612681577793912129032051718093649340174857875695941227812454718921500878950711334380884567545697324539032677646101841332956552111504321539550248613194063529844337005010337958307839097228535472724429109671295247541424390449841378775838884914243878777970612718861959368061366919933255856147028400250274717489147925101630949510198688053532612680528287718170332916965550167727721938880206396714804573361511263194617278718519571380920210898752962982100686867549654482197507675354880863910883334396614395153855373345295888702321339186713083460474762898408386657319576440235787821513342495164381612401141156921405060329426155150688610325062293939532533466550876479171926181556286254290896994104564351187202838799074282877742838455242271288611903333511001425714729225811360946663150689290173715292962202892989553085150810950995975525358897300287689053524320286500229251676152356756031209074921973636817527845465521095848002381365742537858406954962572690873294588022098806677817930214573185152565067264071623677446871471007536796680053152714228358446950113714533940085441926655825188122920214874743877346536950292751075077994463542305094166084520219109414371854161234284534635474548343077596928460304141734250021793080958467201611224676116539716390146257045052562376788776571307375938312064241472993246389983340425364132805112364817835553138515275190870805522582027481465733412949306069527712679770245247335997674278866191375386600521142924513200059252505445214399047592234532321785270722082493107909730730924861294446895018255991664483970780971984712433521237942226551808572063384693353464200500009318982256076492240428838933068672572512834823013249176499265303841007945607976730551247101971401579086626333313160176219774004636877201114406276286179381247252806891061159553589484028427891674901711718287679680617210102707936018046033674429263537233755558248961323899949574914867833233583836174734362433441134675750814114051131900811911886751936600611426986677113977618711166195595287154729268793962920763391235532695853487107570642687000581665342827544923187119746501938012428861852080214051329475636041926218553715467140813688102087537081777954539155072862316163360593093860484129419412076359438157620073122292750924398780143782101260187860783910899453267969160846322693394818217810484252401858605210974059581823948922525205983057031532624788340000752221938263228909333513830828901788095897921012118679835372446408819828007748148427533670200559619152834157338843476283529492921882196633200597031835516781282215558179483436567637751948817015686206768622577934274132064939725277487450095825148272240910992124430917506038257899022710003711169099005183284502262967697817459429988640534156340801901114540833008286494446101752201525721820102773376013853168529704746066426879545285280495271884048691304043133470749981607766493989931587401566461241907953435382719233259121845998079843045886200999052491295507804410562517556491590546606180993217697308291447024280977994833774023012518208404766819407391649487354051083376134922794098733480275601267439873948033497367785596722315902651470349283744144858536169540642672340002713867599928534976890857459531207083855937785398563719174413470822583045794795830979865384177454631829472110777300607690165667633188742985494787894585272128977753156145280396104758599377663066294593673056181687558730250857262543876594712160552623806720535282825192519823625633338994485925698677548073271256090396983642389087412266162337610208043059982965578286494636196544085799274384068728483310257090256706976538422818523868954734709388203605008615005242925257872832697385627275277179346724524664443579671790836280273861800990198378273670630631567626695995259852090442506553451181373484771379481412320224418947875752582698551947931710533528923085078518565846555967959120155653933865980936085370169530671846281404802871384357994657542393285137953321805789256184133237977880441587056603267536701200233062762215482789126352049251610048314570931472065970547945561145192426574588988427191705193180152378385985033308110390378013446111476852880136263719093342039886068671030938384638760905785080627089334929901147724354865551928966301021828791533866924216480763452982188020748617564928303868870036554930503172391586256347126435225873962892444240696993775157704575616858435792152362382545842856711853366029531294884302417376631749236993581653180346896773335976960499008489558803298733285678210077786442580374027173945311118647009160319105896040435381120684442917564095919159848006566777275605676931507017942984335373676112264616780510030030255265560039423956896985579250289377726858225190919084536923404191013627339130753957006077570066440998326610597106782892215005306138873870679800261378622724033182594441579190076197277932913755082221981128392152127080742322169505420838167689797528488450351756323042368151563385024760290323255516227551608477364649508882660962917049332937609048147055634481416333306059375099297100541646391021434625904585351785976790752282457197897898899704352670465693923136690146350688453191030247103750435561663137749043673654640140355098923331691704766243861695496364335154288667357738627578611381368607539598556794371888874482966936159802762877603905423021139589607043880294984737518266706488701469017181320586514907392815552376341342369968972869862300129378175728790100818302552524396976891678444705138988963410186762090683988171570702011506459592056888477760566143417636089919812176490492542298012696619367584678199095978043781994552171253056800553099729110992001585494070330986042124685096030460992148893153871658400335053072529008713579073293723581277038555570564374969164108835192980313056755293371583601747801986355710751023818869660003618836914726205375006726498763475426064496723654791546613892985776493167584378633335032038395832093662898735474021342073832839746322818545817188186046551686764452614255852762979280770181076842309738167820723057650243384496165726922436806104592923380725131525811354173232007263659647380338449483413071210353025274727126620744971254494520537993319935163907732794851304384522919362524825666741477160247068623923244492578987667276415056426335248298457492186740023564671124521275573975743868031068475332444861464361511563053700544494433449351260991795217691394156783043071500935648882056209497908906178689418685063558848202207982553701756126387028192334333611567588438690864110917858008987500487988280473905509461095900036262452033170953593048213869154831447108625768292333215574884748990011224914806644644175228704495342267747752143188024541978387616768245264412805447475929235002513645484573429534711464906875670781655065310393579294521617753416627520761166480108373777125975446194408829824860170896627099994314198254728507633735713319823169722702344218929684034452111203659879081028632907347439257098386098790025924845396137860347674851256053019314644896567346220034963017230400611008812082995593295632256939919094539477820403707248540628611082908358259212788633417062309756902850869679151098928720753028127881277515992261114927677085883828970887597866911967031565333197803567592850080655779903211393551829952029947853268199092875228319365968600222625956924910034581503608399691908122125673749920472191153572967149812603559232855224144382903343640015507616923398158792317796042061288749240845080337286039137880788197411989539492829110753574626295940546335680008554998251547130167700431684406061433888561076112723863136668195117458282184566683184769401301980088396518193822917909775231663167505051918570932117291918633754719376631313055897221820089221808724848740419180121736373881519338835320134656902482667292701007325333244165354019166399734471233275600841343318636786274355265277508213099945962793255749922341553563255115320679517422892406821277479748922349771421223650862735299747548734183427458537827453868273028520253668423463988080821965168060771037023447295764538094037127473980372547102704244051122726459034356269507664950840955904801892660574833043714250460953735656604995725474266303938850706775539945351622773531431406817590575960885135445659793143294633989046861843601310995856030769973777608973564798201766070803825122104697523482298197425856738211866798616117366811376596706067627189720040211407450059343038729533289705074492686008707791231353712753587161553901095049955982109520343842018624973768679474515159693331413008384127129569737686187299079340134416471603657451317625942289328129653226491232219576210461999364473694085886458285387020251523155888789399431612726689436132770534803540202134316418820478625629934978982987585295228245246233346451640896377083753715150903330021719215830115575412256095590227467656433553963396668994037290824068717340773253351464623393049625659610252166920830607070088465754008118103495550988722699204658057466482250594968491984405544831421206621622496604090359932178213744835150105330124203419015629003847204646821831931798115808146349591152047021487532549022934533779535531604115205567659821256474888705157293335263280917319474022844963300483439167676374389093298537196045072264859257089726168789368013602096782398963669425476213418819979484064238535733151710765330426256104146576012937769800797793963028860915495546840513342324611240902849881652788247523830648374768733349929761849345831598263229684422595178225007251030438568546992221224913309456361518479381709558153886537852913732476829716046426014686554102740780577395073896743625255407190995906544184518279985362341173594512424551816444563215469375363004216342029294692852648222751804648314456532321064422797800911400258690860795208918871167918146440314142852538867891731491897157017339644657742228342290375101767645914590017085442082318224861998819051272245058865166093060353487692611934360470401334609144974400147509662427540435160312443090216484829007958240505030142532000032863870868054757656773068764069922029470068795682004771456398590504607454663295517244240430746257322327785675370277560512310563629769984840915473249905514446776956739148623679693366763472684062172117299473048349704734829303683815254686733762978266350882453697202528482131600866484110873006733960230662624425844257121385221249788832894080235143531765848683692202875264490167013808960601272084882955549286934914668526372848144972883693741311867709482330159096492803681594393423662189690796843298787195596582500465703035554665604214404658550128941405715540648299105791749195126012819538518518386639713788696687952338323638766741508008163655865565015004332476364596595153223568896958248487903158835089216676549963705576507736793550946241282850154925228740580888240986779012151984601254891251085818306921916667502875247650002715972863636857303485416551423754453799902222850111537635963050045551271286125907216999951706421609306732871034037814408702106337715548084557288088870124406326442647474850305010519035277647049257529770540345521080023577730488846136411661463715657863978491153337546215845464753461557439915575461277547427799285150940544283240933171274273179087277727700862616025008843489549324896121650075396861074473022004497853379024442915151026599352387755712045801336272201015821879343857485376688007820430551664960799289542065187773604575524960471357947109509964443593851009891447487519387616663436182024927059149910663569718986851316769657870987415969588786075048113819941631329285355688048700625090273299913487299467767401061005135655917646407323874291941555607319256019210757003828368350856614047628392844878582236190642591069771091147705101509340543970559270973300233551163756202692943763028247047037624340767726580232078200030927436932714326795477880352906331807695813907018916768855630795285569075021804252772238431894598318419830272202002956174697559621717556058614059275329191916285771132396707939455565858832183732007355528187654459829224799861374248226810195741702996253631813623790913753317946423877565276187771065197117884829932735325854681526864572644474812786484125754718489709475958457293346587246804694734600109295641180025830657235958250720870714996827773463486106750349313317740569113025332144250933465793984381962965407735466642876566078718535537727746139619874528802669570823806692550241378836376998121366123867916612955869743654654011511749804847346092779927467679852034366758816066140237456391023927436481251002024871334153964814663611716017635173295944605900814252545331404319794930055314016631526133041097331417600564258638370623919530812134009330223199813931236945683820142691916203395915477199645360893312729947894498544523144104649364672517716205510710208696529554068701894079667871187405802176050523122570236704947371155785521880319394665083531847124261134805645042702024029979460000217743413976234948379564537732220737772766441422404240569371356651060139664791030464760582827769248738420220342162285670351066936345092038639346148082700334606134126164873661830829749274330182467168946083116689024849107537023539328591254876768847812470667053394688623233673211486806741055415091163017607000063230192884772228139901581671476610734767868038860196489564515701176487056286459998830140413071423234092821781656545603558605473710516529390303028629727141443385366230630897122385998440397560160715664833056768441641548266299241607297074310320611726226930207743286803120955516004388856173336749531214495955262890553638305308767106845345520133007652066585005405919383845421772749842310905125805460598538517761200566278612080948968710884882505767346727771682808015323725571429197444624447841139206801770056922578323042164508421769310155083841452692079823195237708305150003845142557246110930270289679160093819001957263527512865980882517769683593394876670304614289300955136007384925428171443202714986403571599855956302278678430016209903118669151805129078631494139835499234767782734917946392013340848742619019203126681269708263762479749823805364337646899813867409164023717423414800742931220603438989286927465737842834725804469131248803827952084841907471697726316298070229525393651846340817700630602145958288345680718135415360107284655919294727082441263304858455648349093450769123929798002454256182514385079898916282036709262474958638429018971526883486016890714426762149908099290633784024116850621116210712330124343546766945043240410128873299890603448214161929334825443963161551177865295716354700878774090435400233167671185475894800359405312171879220899076363975675526379956546396567070423680190497534834772525918127900507727063707055830893742981675132791197902659272796226222829139028146157448904320445656817097764957473696252354560618719057257165704625792518572560171224363919273480757865820217085855897204684774189039377270884682025206549350221246061406288363755059398770916705308553734177433576625642820522046497342529196412191731681042243139748075210273361707869691507134077997132364071255188522184796274282419187444546214823735596762344044253271221269527655560139437045589977501378788445714071590140130285654747599421167371776390952752309992743575344433854222305222236009307533389822008207610592975532570191234194271189152493886581715808550219117502668172335473070142699640619302992691281050795532287695285283522897103912654649563653696155351169217186700655456106713035398956592868010722472975151472678207943226258506035862302075305667692110223646541735204998443226889328432313641840806184142728372498459757298338834477226249753107425557120303709510542770701065018316361353347304398591497032023652826474002158907863945333156900407999145786432787362567465803458108220182473963973824804079574692676763644283026755037540949556951137905105590408545120182732879922003731684417741686234258518127996594501336154253974699356922567509247634704301822837856600597555084428145664505281226473256745039911950178002393590278225062431118320487671303763639901863059176322928968067052465234264447121391082023304286143340786903420193748465662526315332042768499233782362001467257968570331910875857741890772587889197579819213807756810440275577254732121954030950830279872435051515080619108136129160075009452279857892957639662481290288570017908015928811281755182213951810496859150911848621701782685227996938584481268165050348056974674709679188090429162531800980308110217194962376166068307380099397565311792481906342169417350611633045637372467546163387340286770536077256553866469780470976048914771265381843675178230879302105035396372481441102100706204435955975300845318610063558018528032309736170114524733715760344103450709691832783283191375708594861395054200686458883672477168585020605878466212884825020169322939608523458238366464871603438277088449256570682225509063019563227827207268712355665285515739527100820355787425875584745271080592877904064574838039005713309360762051104208158030107497343938709782502711957522710596473398545669103748793262893243320192157446132396765391596595911900191429182863032270907797388285411382080740919198066781887140239202493878420116317666817232088857290300099039031023178483110148923275009640694215697671324526732646760984526327310847344166128958926736989747230587317652486287753687874436584518594566226124745091278465129087311267732773666190252845581977662186293181254172241829781016257359709052936555624095312895493500355989793485909404560988616181799489235720860253960792431408668382130788754297964997405655781515343237723852187984607132270181473206995117700788193279399842577921903385858563137081144505347418664565743723774907918844350567666541129176570512711291607221737764147846365394669302281213122163640787458651867372494598358409088605580858190598798459099820353155807997830581648764070159603306439798034645723152021198897395468455942563590869621584158734901472291562767993551510345405871649505403480727124239456633497320089505333784313060103633749887742685853004186084083729897009892842144321104292270793317486572778571008189103243662488650383350260020149026554078760396369779268109540249515229934330215368497049627228644244333781690568610122398487156177840039139042983438010658055344084226404037157360774726459911869949691646216326374540485297716292917242934131544288489998422513780901780106140445215754620176937745415194013177370797864333972871516769279071595894529309626583445999620121145449810182142800240470222975804187983866275094224334900013913962359615717977519336228450326344842322254557366907990988033016861504522241292725674209535037296752935535186508020519542145562300442625132978758629427683693891220341743703343503301881189466741369695482579773157873338607780100332539029112174052695122874527325569076044161088653190376593169285358529088142456039204214745584981348729384219053696837453889754353969616576683770729658947273780646258095896283043734193297461871053656353683171176763290247115454779539526913291748082531794756593213692676837198438460876146305337696108725172108905501872747980298951614539684918638704501338596767376501886301175627091583920532714065178173567136625435654372186095120628613829294374479889951875939197018003199421733169327417736403604478838337970622627574965107469406679038328877233200758417407635657465618505318613074882006326375771809854095658164226715732101404612848787545636345761847760377410825047628297834812765523458488139397356381331324483810121978571614874236903167662727009411480387733910616234493279806307422753385176834142871847233353113042967363178676021932423629537309699702903233123141400410938157424785537943790138024319329036996628447638658714369316060670532062316748053732946778295701328830026907717842537558062108990167196088561196455971022238714026773337261231331650002529993170290500787358404110000284413186015607108398815888775898840848475249956093502194669116683863431381714451461087886383075442508719206107396190892432228657445281721901122310659144235476119730497280606441042776048241146636392921393955424278769298322060472038405414642327560391758764448021381770555373671148709509739244721592764361297953676585345699230567775550251327999578217930057757058440749675628566254456095375517025223219577691599926188894590634645087191516535623183589873468088223052419337159959988208731356797054245187809437153920212681310056598759783736034646658939994142102020971346411396341709019528133552172908396438064515440556895467638176624830156900986972934919680911647913301265017929234915726621491319282345697139690195665741265992675451611409274006685474414460875436793437573092671215294043044720810074819632287485060024685548330453071350422510031504703547150190721014790139339818588650105530851479007323082230331073743035760245223463685317092296798586302776307591499365425591445549215096335356858816214636666999498813667539611807627295804233715087092602101110699865413416805099308947683614750798165826591280843238823161697664600740544214305660775272917496055773907792184779007972312209697180138524500045121704127587770113914612860755910151787072678488108305378748396969154072419447295686098800442587391057555499156078482849911513395887415410263767385723303852411940430706280653765827462562524564156930566578319896862128275718989604359956034019741731515386941199742707131516540912196782042195392340292517551101594665817479890330563853894764928401302390818882646174329430918897987120475895904514521715515363701646348114022128700686905649577697775679051989712093630198953396395922945693342372404280734618369627277394505959808986366134452580133709064338998676611249387803096593539344284130880161566215927883583613759940783016105396302079003715558497367096150585576690659964608560866044138874242432010557677718785880347840079139502830473660085305813903804193003599536895289915534604506060791116336451269831582786179680621923489122969195208339384303607613409770743569731702786086728611811823257017989729307633519505991995893597388779128637346941673901470949990481157057601997350583411780127379069833064740223243016302933362997887581102314586612520804641616555086047143730326847892114301635568851258121667096538517720768359260983364967149264406914269391464174812968711024652223184072260736109267212270472054119398902059400844057127903035591577545676452861928971202301249534678932895866957699388959843334278510337793204332927211767400393713290232038436467614327811826660071371132869900446779526788711405144112298468847583983836890039473427948961951827469108887675456405648414361098026894820773580384668470161078731543085312191367495609493505191211126748081021606060030423691217077992467016067348944353123136786051597837179262983430286415790146387599592992521300108552340555869327228482263124644033160765118630509922461055559159255575381727201637896080647106363469945446626892727334369053888069813021270200788647910684048478208255782284268414852173692599668688650768477862780724867781706052246785881839158769322645000325350072607524405179204855422870633477458570998449075968717697942750186251510343792714942834823643635785571855108632981315071856878095873663429306777438517173772142658758947426632470130775259848830691686297508916004651570501534359095779488172393193986249227361575724713656188791453699912113292254765106933720624147013417458329734687556014796782295049416252358941872519045180513343470399171029450802709696525055051776340121707558627188200435120180817915504706688498544713923827615988357081913965292899509955807157841355729579364279254413906900134064961041018384974461907636726884833830609157837056945331540181698379310906609726593520192862769818921645886045062702806360382539309803273194937121785329223313688482070485951231705415313966231438367124202871582321613667331612795862623956100666218141434078046589911917006445285881907325350314764535514061077012484905767751393962834605659207874943649882702129660579991198415456075154846866033007939204215019559497565969935097742380015299065268615938817445727682993188464229418872296493442673022398124883556391220998132111784210879455500120127567001499728682505457017627745847379560774800528606260600239098011883419202245241578305054589053649369715131678903638513909896480936471503421444361636817792726825224583233246942104006566259651714367332971436166178138454354946659677374721358620357862406380479008451480605579751668433421748844092791721905308389127982380383214960610677961221285198348743948467504939159534593089359090958459899177640774381469491082722884525656858009843810407969709919653062048746336523541528368089999783657372527468720540685891156732783836231378539680987988568035894398609281358302287816197455311205295797601687448051778369903953245511315861912631008002248603687242668984853928444990668638916462144133254149413950653242647701298874511012163402701588785844223162762324939004467007902664185020782560583277964213197396936864199682536832770546081581157642864859279494570262631206071343648051424353773723696125501814107585196240127502277421208833435163267205064911007183123059099871862099222557575284581197500107420065311229577803543243041790934633250778122423809809169210834525744676309549589614522744675932390864740686758922696748073560837057394598169566558975284330502794867985224575586196420533758983163436152964347788935375633180931537769114812639145153349534357291921846851060714349061051884536350831082259259609445562917081216495102847844488134451261511231788445553509664244740772125703813451924364829235669323186605613216952247457425867520185222579423781889352433702033346743755860748813572166531342932418884943844694665995463949911814602413067066620265565582297429858811774311938384600374561058762645426453317249888364226513702519961631600247181128530497686201295745050316669800545604650393014695771522392087854313590996751004645943258725772688124384786098208923667085252021559254704642582097345569038526762194996439363921459188412790187735745803131447967178397797972948314680785789150606753722665227018674571637642239426370131250255694173104761119085410182173684459688900480193933078256126369555232978193833321492207735860475128593725058796133527294068516528813828164338551753790629589963596179728554879574732949776081073757167067120560119275620627271865933266686028532526477052405292039945257981779177981407337269926686579861278763990672336103972405251778263778320145368113577315397929515588493098875134228670492451434893821114300117908910027368813807759520907015400940874845927892481449088284127574227754134192461573994394341810787339960882067017182467550058541755895427763358256203772128762045093951874624577252811737037880701889017486969532010172895027872230832240275869913169138027822635389043389896272007126514336597540468379792718066430338086650631914549016891608728801287645103236193556210311266190990363825033201842048119072515068919762559681395604876758065866025335578851192393558811305608786468371759391605819571558602178264944422438916080665517658150686580563146846795622003776888541649106990368148141529155509753288238327754113814447325075652399501999929991871726551658807470342054931435773890555140148765103736351611828133572067216283216544564309857780487263717773988865599462731437378392788955176012559230120358949725743751893960787595136414883811340021448814581850170725755653951496945744779509497125101528051501328658404915401908833438420414821134292237556125400335758271965523894176089634598005666605119684860259963075222081000269514118219582154653620748492476060716162100758799437211443242697199483237383961982067567237513564047967991659615414716778020203171658984232915626160826446819349448589286822708146197790513466425101916469754353941794781410905767215710144655731033437126601983341866879584933185362342988557150213107919085485581634989080333729801346771827986883021405190970015752920773305898982679143099165899545551112438822599909104013698767718694400342197510606448354419247009755046242878733505156125920746809224224235594685361326697448371692019221801466896421191610818821305694769175635564797136719645979171891292683000960359729111582911412222414735237735795827952664200707831617689875507074960363546420452781479705467747417745615165764898864803485852807810472014541870402103662856559557113988565407230374893955135822591043572220311739269261604524151949329862375024327128567359063232502808261872846307657324489922603527043816169642789247480579819267576499116651307818887586265042836272907743350977093284380660828595612253656351959936743623646997906316601447086555862358715443186871174553651375813204551736706395095835721766640484143529507859789402451475396432363255458899696761277424716143021563839824767016998928133242466560414180864164638991480422477614343426649942152718797880760736945333270194497014215951693182782645085246300455121966818676327300821518207426604681546050676683469978874494660559486894499733283142428329540659379956000218568513942607405539879427228098388489246257008347123181225000848412150682462662541114724764559508760021646942069487459340980414824518888763858467955017690880442738347290861245099881582261071623150721539756302023018505334172891434752210531244943782596022448994945770405064328817380334532929881217815868203853190760015201872331411993547714716368846284029001033069618037813398086626512288584685949891689298664930182261893627483974394857265942100678283190527147311874313223540885445775557036968838246450497528688710817606476819470805098276650463435652772570129190653935605687036083842674910795595074202779888491941214600378778719504163839154511103066237077120311083556780499068899553720679247300173582894152469904236710096855186115223946512151424925857424893181360885986957460785249978785950207974801405300905609319234557650212606986012708190279664858905781727988553677541106412389394634321338066477470466484025295424519323828330352686579781911782860466702036668650894219314883099465769174743814572422068504907860675415308398454799428473158923672462075955609861551430034367536977551500306836721981756398172074822461370865080233544112598337922398675576940438094508485252254899400146442174637366393312178196063222427308799608596866215222394260075531142637923733422486676873142890217140371734139170016538812745514942544156236013936209555637376741529089739865030816703060489663551706343557714370919827421883107048789896455803133859056102071841594854811847806802220223085690858667511273775040551979543276709857919394539482593229735251085700865989615725185736854926444816764827624301202465077372634583447457341052603131649216014316152340268029967627864655977204708629976670951526816645749586105560656219268162875037392880333708781869399971498349184200090800850597520597601648702663961673758041644959990650710321180494811150517562258190960129690024616150461272275009509883701228362327766472899768366626063433171603251329405312398010064205821849453193843789917323893384542981200119554837080839570465946057910093637051584836716509818483621734114788209306407834083707517101607494343237135917555161480133967996584488244675479543465846764486875163688988990755190868045503795332333162035820394620879907785115465837669411682340595698244667900711833078933419630844921652867920614456320190630042915743604774111712700159946905400273312137989915861819327963477974604081749877038541599059126935260733955887376312085043795890204287447587107084829340761645632046406130815127365765761381764528625481147316859406914476830383220921190088794180895002379228942099129944067345091115850400180934460925048612219703190878696879651261837470486203398447154518888611135206770611258154231888266163622091726498437805778921353504190853217995165858595301526819126123279081064374242405655629929875557992346720743131532933185749174342221242878928926303982947216815110845073852809129661721203436054412168498077616597133085262826964532113913490567893645187147701400723307101870620420802651445746616436575987853508337747775871292178647302383712373416991608391291146052252083418725698853831516382429705492823259704078202112539867164784769985706923778407095543468962799578822898699274878234659024729650861985311616023531608507677315538229929815360274142810774579927033169993596461901240921730316860547017060328779086142380689818145055445081017523398072462236357684037313061861531944448934904262763083124462223129417144477451823099357325898182954373938583237000461030661105754115148509968244050487504433214505844088172679463327276011689544277605350820862203945770609652821115979722732770298361054193029154460804944611941239440291799640752851461850701823755483189793197905932664816287868827219802919959084513412741547293629387599018976347336812158196990265868269207174234501370150377356730361630374643537508163589610379017001000429032874764008603743364005723403793629896469335067326545048754912012650353179871329559754583074463804470316038691231007467993085034488388456142241232408137452450634849278110957251231535789975317262100663629698981356447396735800665653715975001555449989468627959099026250658382720746516228474573078352275731816859311680004353684030565058524127737884323802898195624126147387797319118594541307687975426651184192285155996399060472018259956685855384641661436445689245651093543335594638349411959173187229286463436650100293159001776956486542131803735954291799224726579324891838317542223481118258175323202662932218178551738388345828289779116748387152938822931056511665161760288337949947995331178973969785995359202826173746887308354381925768969149187624102225957627996718339169478313069647381434298528140932794425387309800269773905147336118130160898388314854110964076360023655513670017065232753784984412128640171897571227158540540533909698053438583119521696832908936179311761206223591277659636806305384349239457650473058500643670353961985687465763538521588171381395622772106009373397589310477912460871638987669186984994101145413830622862010774752569959400081103255193229581283227012560044420557074020228434276399527542354036117453337039627400048678790077957211381190523161650935373400726785339505754665250775201362401824844138743245172355969295085986566575043251644375290344882244713504620897766830916907569388994774756795056895641984680329421864652843470539843608255532648343472828484594258665572520609129422284063962630495026035987960679136178650004448321006939508622303492120410479639537597167128968177168137082416561245689562137915451299051000234006593295144229438682526488758268004041029442458021397693285347659197223265848699689376807565778556795523598672984460552244979299381905443068964594841848244866384420607495779304372149221433965417176511380447360120787707075062190417758863287176763303670807645850514333885184836254420878655127650435179740734447276980578805230756597634957029374592513922058336038674417739568844890314433733516448928078036189027166535798045489262758366115884491023025333232231175427745068861277806648800853412711025380705977772909019999862704360292047926315831901257543043327857350906164957494493995318598227922610029101273571930905715159235896959796998863985364694456160969483136506981677747832059651629153131070982855329701346126229452275051103747614204567319319172561614660772862685340427710357305736472174407133970364969235199246765440718086742083585748184724816822314973944114316487626576093318796096163008936145052069576853678991285384268213733248583020808169971709419404860283022832530838957945535860211086538223153541591344289077884082519327772754055876489373410682974614589205909846924620213377796708247569486065570968158432763076552725086849792544643845491472639875724261359443574169242545015055684831749017835007219204808092309677148244891490105073141027268663000714889984437391188819739217823017250636105005633684421043968371350760471658729359820588727941295993254570558081592204818850440763463330722328604930684321467451543878807721575388133043804065212618251485797869697631146402298672055588914188631322812990472695845581345383935921062051789735971850748257348768852987024015582366080608543573232944004318000753112014023450092572689315903017641901365034691341716198831032553117605326094995679972615717248581129944214385170953921169211219972739987479620976708187233285227956100463629968876175501742226765776663229577699460596645772599662383926323056993634559192621822535119809155975547645986202498743995621941534919625340275355421974302699767425350405545606818370350972341649840897384121257198219743796302200035593223494872891947345292066131773475787936831628829414718827180645580537007893516251548379833301372875997435800281936485375714981861750762374426203658730388606002588788825685804930543363694743782735010706171195742900211764466229603856985458358037623652997076543919407935677879339785730347481504265980560776628358117658105845968745024195028434419422361904595512948435496288405392128166236284779445953316301056761843241831885889509091739138746979060803908111577934269049305030688057261991150186755281892386166500959508634149742352674933787723838042495365348205834379956231285763541100291948852399041636371115693683983893396921460514510500808016248913709202321919262806938047950016324732262826719320696123727989938007484486525092045426717677399548239025804359830206201702229566560826725118091153196929411486587589414025109651518706404548728309253581833757949538882730093931103924532328654730005054629400973275418060158301084369321921722464292865909909431231862515289150396120645418682005239646978083401407359114530758713314190845734975121994447062026543582662782150198567906083098910175404429760243436595211913763150079660389546824513868380612060312744257298427839018313245643111222320332726370100188714501726298335315446385266912639862747831560253612147876829372436576736444912101572102346515381865879372913153510895031425052652895973329314868938779559357617907564120656975432128875888297924734061479519674824311199289006834171583345118468967358768167774400053219117210070113558285789706881266027053916155133912472318381786471578804999879233752724219001254441289223679796026298503196734070118555496542276167781807385197439569565806429864164874545647275986011361124271519784623742900268215951793587078102441433469704530405463248011311491945788662011590126845449144773828391174163646498782483573389245229980190756296063343889488078428932166955396797094814723941444325811914504530278284573764058984280808222468785498643806589323784557867462050362097527054020451242120315298417301085493637953548998039792535349360626760770746062784051427464714866079735171914695344987458298840718221200474760573707939453365634668947679223478665253093318333128003913627161197223349593122380568152311903383133457679114137198188659295194719112017368391136641745104433890861794138690633552250266995659120359290686634786512275414597956381371522596094373297458114329389747776931859129808732340391788242408528532763114667567707307415647714492167145830357930107658200833496237798990766518765781373971115056276553366494632346314135204964715399659211455678222828141593252279218366409186948082198547621617994566683492303465979174256597064285641792733363147675414438437596346325460064627168630617951183996249100889830117544940751833313172314680350047819335045939590891105096535817694482162918633620367025320685817183269480671005379520978023587624637278827552611377388281986959025645766801545105438596312458768405562979610379538558965895770027616383441966629546332000255358208547215958013353826314146127945170586031502094783896596921831708245353948189006899711554570063320982006698576547357853779293940673962198451755214685313840840423627822376998370786734312741140369683144073302450472061964359994913608766092463515055817062396107063234323492449228277361638147484782843520471122112929615353143253609162330513585195476899049912044583389417936512480483226262662644273970585094284278807894870713738813291776539593667147631939311254074208612846241670484521368717590701735336116147146741619359385167505457368719096168831503410971682585758759300804442421358096693764947743152826887800262619306811355506982253629901122841956214295476654887143276788442717476999052720526381775881653226021993212484619856818807038855302991044964419426823947848381279313942742634293824377662225550480603032621902709941611200888034691048372343488160997643409706299363682758467914664377330692627396710703938823035904120750930784851771774184037080105203429564158288979095995388527597352030027108254265087251242369994989515174551510606733254450627836120313224441981839258370436650880112566603780973955179233109369831534367461345206038508001870292492301334644022066991799454845123570900621563135925831468535890133336864910375503801443525865900025299267985159177858969155538617248703096130675368847980475841436763393803970792321004690658224183242305943386295060006461139786255600310840782107075991447958684263226056713103997064719524588433783042715957956504357133637038962262613989634056595777438518311217230550802375099404115050134434203367363281313472829879542480955047392007001720422299918151582818836087048972043264692273688481948646904163278621686175229324055208901296861793208233701211610747418903979639694255206439514684559632497643248445345137029021511766379754092310383673932412117161862509787349431086474274682340812122171947705321253352137827509251874886123786654120248017378087568810029016697192917963172674038782976237742312537992849849360271025032577741412745496266676745625997005360649015067512704364358169890023561833443711496302949857987124473314527880195880560314739531322039610067223597910821444300277537269647121808375908934908227359180761805221781047086945277129297726288676890173457344194485368817693786051013841629935871057128903550790164516044157949038894176573040343061838263223013328151220433344052796241904344800508324866638723039657688078000839844747051443948070670355643303725890242707122616486753573092063399020658091157277860602919052049508007374692922186336833055260494170601059966127862656446670826962165081365255734463155770383504361907421774974482363780666026408153647275966735441739044402900374129103506357574380192009234176442673618685247671423400975724533610595592603167335159986024498359534377253208985648763549750671004400923318874746385705820405901197509195895122678346491116616953053458163832958518345059050605057522854057056808842297988030810931689511042551201391715213958863635263643204130070468102342130430960054198617817506062196186530550131142961598584270748921400230888875772193140492899761863781531799616014056282930533182623160193372264425156746213141530256829908667961553767268079101511936123023835234173399812169460611457283397412295756608930978116282156817478980560171679109301991425216106136760547936185186363041704969455988849493198052255932091985793178614113585786694203878806696570328597029080361651013728133122191292798291493452663683393927868838409995284653765115687506394778284973620685784014538401558913767169383093118373880105823639132289159449355711299734385442263942869475309465421716789931992268264898917815327870944605487361564861180562551667081987086925392789932125625673154114692996341440201923907622647013880336000939221226739585787418103517580521997576377881104105888184360992777067410154025153902434254750770897259452021919335557282751398693838135205099895883694245512635206763650271831012882425152703308722815553958973690025508190879808183163647292860367186996486582590066776319453266068185948572372632002210029382259048745251718052069634412450217974122717297109452914028181908630707924884813740162448203067007975629038839974486460811153983115953317247079854936184982707068326362927458505660705858378739140959944548097160886562055141268961946649653586094434604895904672260906683042575393162548509833835477188164722243649129962161061069957226289920545912828721345594761091155739665057768600691927916726052708320470591992962277923352486037464301088066780448874613126579899969781335108982110755575044719008578989444801753009988151798330967226042298330077095539765901025151696798354912530430815992792854419986670672940211080916046221722098893208365494599773830433735934807794932369772743432609370068493443779478919573756637950310448801617322626699315238701331047296155338679347134424695108889199797173345260081874092709816731926049170940470989165545157580064991721169081986173620328161298835534966152490211358498190219282403461780336210446129035115201952709158295628607292123959228546676521773806727593008883171641783849586845119610056515765197300951412996715814790646402222686213524299059138361453008055097157071660732926905480392238776523588913331123655196330927940526168736447478400134919056917616161282458356898597595710953350671116110509044538828072139997313416319397801288183448227237932828497310343698378753580745480302388597109912716782627682888381761957148764818593434162376263406680981982923768016438905876834516778647293628421434669318906686467324748486980968025296727847347590782301755762676583564916783011375876630222295996805960488752717057471964861527695735112810983822207087478403454428062286004345798274638996768177157463983125613734649418035832399432903184481621179141512379987346102302014212444823150467651567137922227734330852987921447638704791864744464157041032997201682875443795896799723235858572769912838334107011858778590405162343333250386471180299343112411403641901125599234348204742351965684808395102048771363369274800289700592772937979020307324533503050594999830582480360342057561218373492068214258260660984683714451232858185787122956468147181483784545080679280332175731625344844226647653461691459667724879875765503253030956439044609965027808886721779087613710041663806383506212361078295031694652461074222050425377769868002078528627210580666492549581963020749590239738624474598467134033420393687547051878390839365979711831316755226411175293135697844246506249075132770676604423538616965519665328861385752223519954430187252473333539903988493685945791963278086418751776809641675781152276340073130962991397951971908572893434491519921524048322790434868063118800804504725503516881264092851067356344678931193948567631666635099068101304861940403849122874929272327303758665815875578938180571819370215553246414861119891073812937102729656358726827189303170038359580002874503504589530395734428601664032584550331029565376969955656716123978162464839571856471056676540292992697315873778668519087608239359505236640251477566629976616928767380051759376636592520463326757648883449460027876301458740013684582325179897660589441273376454071677417504316484408879657546373796459252921316051562583524736490693017726990021563248054455956288487246345941385093200665342556799711690154326175298639614018967204065893352757810817908950722149224520906634328598714109238151078044722412560145299520569620028188841303071019291996759110360287127376242095106632831069294703227593188175822864638764627095934378651138047127017717633927698555114434822694610288453848903810293881696189854654577123557605426698036093610999266244644059713237837294410165483085144886035359523473897869355025308381761371598095249151800567187494495114117330391526782593340642038883629447855712467740584201960210441833000153238889195184226886909373732470242882516021486343276076283898062096903571760318034421653164749455173977699745661239951097289712063847763602276061319956435029449430445168678974720232758295439722106809809082231671925469283186089567089562174272034528103134991645471242982532646106575886891118833390667392066515163311967136239613289190410659319417540009067495817089713262021304466096282736543926808678362620059684774619378641285893232529518842570948471809003423948197975119993352073078378812774774070848716735832007309430704656890882037270560371246561445192088035677154308678763171678928410149640880552132592951551940399746955444129442195403336041725369356568967026590443528550535527146562522671641864868407290699956211118448207159071704137995206228967789189607589626158162788788121302917766901272326606766549351039219421517028325694587271948805222281093613723957357710478124154572669595426010428583555055315959003368863813413873559277619757318729039117365575849048277499527059027445313179628625276819222796401663524094078730563810608906277691235636470479279377049220854326986047883115665492110588701714586937353211956949685218357063775580777007482182274516528463074739570295169807012772913262538121986298817688361614665205625451564918645493611984599650718995977965389352252296038627489835556800468042694958896060112093052688550830371337634776545236067593547284122869790369131983576372976467298504869817230886145949793700916620234456296509103620343410469475206076378742075295024322937920670712558068073052905858269852047758254788987118292281069874665585097715655696627562525939379031255662581989798488872202543601380539739565206955600262410579046702825154611596809731051744915029550625898334990498464218120437194682558549563263250673378146156218699189710410148986936949405698346917285521088908565719506543300776839324202249284852744078183730107069678138398311446936301367370161130541756893957987571667408385761949271036935445107918137685307671074797774259442997032394955085726686831494571571256119901896491379715504996540038649636052146385039321223752757028265297199038804523980464131179285871711249593727473728607716770512446797265418298678070019117466925484840922043912563281775870891092683812753086880574252693573365465125875052122905176377635908230164339630067173019278043380816060411782800251885036274108632258780700640358027504216220668885371263440692456352408787538726016989215669112729641388532548616389279231116422764609003684748332632603211063603050561934748812324202934378471247505188885106294032152933430441446294905822299909899605553973219709609711445276934629817018560059907759543331782973972123321026530366113647077503399727572630002012692875994696643254196681366438320552520108089035552651966268153958052296940872524059673154920953335655185348072391052565219728794137077699085557706849521278712217944086598524384799430463777917838502914657469506794507781925330360791143031674256008609778974431114063354526748143047325700497279518664240145994898854356477584040620745575614110929558273175877546857157360068641588379302191650443444707407791217125829914942354598673991154489892793522352318806960169868733009331112232490796951745697338472100911883880681253885307139761036546008002656850055809953090679214016599476768183821785616485859543627633450818524276356601570981601595825982318621966656971438910481530372608532145412272529525542473386149885575842232919847174659066891108467854908248894781684833212563940781029067666392478020322353941500005965200815758327027670565452069069029519478649301286093556120228778105027417562580403773920338759290861977089816248940047927260214875408402265912881556672800264707318540358897418991917045445070742962880878251950435428037878457290437335941969737775429407607314655379366572993523837267748502083627172868368712174612140683105899252789352400485369789634729718890920419055673683357142607632259213402763029218374959569620060508598789500734093009995911111968949529184543357038549721437274155257724871540524729555264114703587452781226587302278019906912297829479478152452525027191642843178016074361872102813626695566375217118397715788860204450606228774383767059400180782582384842569301408209917180403687636009665599364097431647516328317623768040149244416057583106659629313465183839234793327306899540308333817148320363919865231495586381480997605245032993997540405820784487136296178970341254274269826845831914653406590407703367394111302209283259256407312058920855427999023113889817559038059019043485002267743834165847245978807321645295296642441410136374500965383444545113357782673107914485862038887784741955353311909061269468022335305773592851138898998557113018686481291529104236311453740822312090983610630777918653665030757105100572976478707083282978059234632123992368004343371882055705248391666604993554045362630728318581071954213071713828517530294457455486400107565688406645901575081668049682437534414708593027926948449220969858388014574306965458892726479621159212647217028288946383352193163013571424524873510487346279882846993200596167931128647943000135742170104184769373363644541914114714087024183520064925581261102551423992859813694535224432847098049282292918908294820364939083302313718257246349914517737061456372486843763953555637456063227264379085015516605262263982957858020542646893789890218880718706924975004860273871744423377829262263346857974278023189006930166576762733274717103534587974338708277510621601742413823018630296318250363946927146444106484104171158782793020184485649752609121769811196784771258509699210255606345138761629010982412917034191856159987094547332734158772894969251690384903647669298701803156378698015185645197465186691558170894590804864394744983717551780867035352142792574068251156746586556265947830911248372461175355996197609207791975334427299568424494929375349525798031742714933770793090339725074798640350557923966862175296681429512871055752957021196988376693354438220966214117828133870993967307798769367208044363862996631860506425988525964526179405636306929239828571897548229597438009350174663832274654595624797217412419975693111078250793607214926749505158067920172986226882844406248998579576741629011187054182637139495086222725175371504356559089390284734954751908204548930839858162013416666913302076404136738898423744934888691353556015643430803870133685630801721098437335504163052452327893518354811918137019335339711581557667814067166168302090844405057684144232044535340360988359844276844735656109973353888242300594369769367970569963943592904096721790131733523409968064690333845958060264202114663716744856250155723491185079812479099660976150800833623004897184014774598632764110581349462532464288560277500877312859265940703147967370787420960389777357492100464892716706562740856026426062376496875375986895685669643249189432232449642808666237987673834566390283788682984125148522816915711031807399342588414956522284252118043640845760783480302055386057363545815168875283519484870395377428531766371997512146265126122910073004030572556397608479472669109922282501375154759682745441376329782236622654578192982301783016033699305000720716122937590714746254905663085318008682104272213721671017027429829329256049570591321595469233763403377337653303326038985165463943976267257111448121945799118970627803387407392315353265101390666678740221222960125062319645954704707721184399530999228684125092927844396508354683121255671570187789795434298251218579957818633428887408151680860461825814750269756902560895680455635183998512682799166598804545597701972332641966244661525060719956377705652106801709177968440304297048486945309286164485667932925510419949165700231484300055669840099880196723533746119764551065657174994797909499772351373204117918001602160315060822604306222953255972672461776350493613442242891315143305850824586849676791392467284309505545341091076205264097009215858713784445783839080109629846830328603515390117155213232240809253347194802150614294945586810351699132440070641445799531298463092328095033553934314266482991397133375048273548471927863486914142410471271044417248631410291022208196882292097104681742502183242310501089364885409315399116983496373261079120455874120384383852098306806651938770943431445022401779020137456111524405867237450599521366953146661727741042227999432039940929782889087448797317383861271792358010704212505815116986190373665003632939370530259220297034725177962487955764830304958981461985818171471692572602083719597421799179055054055182836814423887166851840701904805790974700226067358281368624995750922212216262409989048977021690257858110900847540020505413204247370123071026726886450201505164491479905999767495866494000531825390359961431115858585873230933027553282950096990717592652590210529198245649766971393488191672457554068178318483430293169779317611032150462644283531272361350077700218585425697254612470417467146547559622362588500537485750126491707811227063177600357641906251279829593487700745695221299368221725648722146076544776906094204165278720700765963077801165600348239605058126936196510840067031384099636991741724750513087448982326227188711581577354222498966173462504883288577014545875678633665445199436304820006818217474585565018087599689918216569181282508113216482445886258926093784635299716889484797562680770434561566451927695267511628145341282531279590539920502838763311219415126726128028685308321429260268587840094239911813547969463287111777895378876693351785878448600880438493852493940609635681016017456330957238698015182594964910540151262035320833742864211721122114040793090988455291935005344491099886009515702492372884289873271790940368842947240234706706267033415274417026779803970760310761380215042086705418371192299001530626263791598699247308775967883593345380563242035050397702126911404779965943925239091432413084915664697142380942644690882928851153064846199752444448677448662722528362557757907366522093237963722585891057750016694374843782340870168864182385253567580403880617791770184721257150027068802946298894017799756777042291290244511614241413271628293430712977376620217286492055602962346571905954329067666747963514500126436818274314691324802635901976391301606546610604692996605916210917338828888231164435191981826250169866410782211972231652216663153429184611654659018623762247880182514547353014777443236224445373287571956921767915110506628440610222128296112090189367083634238916714416726108030883363538814772394500028864453220139509948141145006226625169488832435054866815294026127311356549122666820844941129092143502867655647394806564517188748342374207227042513314311810336238507158525987371539215304692682630032197677069679085422270916814460454878065293190605017963621982568963705336537396422250165833826393999458895203590864240638775203951315134220738668035102690859639063332234263422450856992191274937664426428804967368206872164130995902599710827765109754672530841879191719755400492783163035453171973590003115699163546080814686489954268910429918334316970298700461180638332270813577972291795045998284026355601707288888242768699558852152337526176091834642994612575987152066690077756067450474328474723294880812830604953677182001002054249138930078887087028999418913784068853783736625380211153927307577039889392703899128271276799453754160806882453233967249055140429366511861222287203384926211753345870581195698259676176168182519644610279431930709669344131523188241539702610007990612785830153982965300174562876895684966257091381916559302246839608604422178669410435440513798507202854771571862498558487730064356415190787006389016773625092196240006356493385317443669400106635197192390096022280480860633082703254142062732918817602204243907491344850343631253608219929064089108626476975624511217752013526975343210912196499112157752777728377769189836179730190036286886243264369947736550370621320904233846061877890006994819975226462670171725459374249085241162117878033045879405661819274046188676535650198349490018104375271099144164732445721882238516478537144764220185921917551813274248898312383430302575108684646467585428489333845176696808434900852614520760034354102665627518628002205887592415460571055381887330711481171972418091097571269633237939861280671827045767858877313704442634235030432389946490728178488855441224312295241932734071697517201385112788023905204314813638990760850037306439074622719629737343823216449570237570835613968117942340702135745249101936271666905902169290861137964420080119671465281675676315635338235497766046632098906437926073999246851135108555707558365382194313620365344872873970492357796813814073574293052451707127903617499519545888793192394759035492296120116190781424470629798922081266400080734464476983685256958798104582502419761442009417619836909977369525857953111517843285098593925429360348584774683251231639011120829647270699725228011868154009851740483875777618784659273829437621037555017874930987876006116892438018974645935570227033214616788765286117596978114133527107517017498171839433034232834993268123438516796709791861206325827892200160589630564767736677510411439130638136827058112193109491187380676494207303698311965318959696665242114035047439049214821728666084612851605159446113140753982219213939061462630103450954208347761078653602665021289808455938862967031895741878398424936045298226893928107922014268671824247745175289185175773193483702929123182735093755682981630597149642502136915575411982726531824026236569188930857551308309708662746194882722025535228963632841062674367705479899792314661728976455006090086186102708724707006367625362346911586277935393589350424992358967829814282499742458753960729905733204183808591467731003529863200692895018563149761569845043765731151633290957049530524987899015244101579338024748329993604230302082666671649086075567483136492595812025918623085488569793179653456334110977308558494520379539521728005855707403252583110836039830564896811193119752718472994283546974432679658365085025581274017873669907502685162769700871563412380816952735673521984018300742331016506118512880009442983997028346427709036557580371075432859376242538596541518980959172871787625417423993038496371252727553789431750256796756311167601002678085363355246201902428531633240981492443867728088467005910950416201816469081097151787356664626517588870002579400235072736307239769417141636235972697816089520581749450936488025656751715205119248898132419168696459496042903074013139491800713931095348773465280673487920783485714280682833223870451109841760288707823430150688467396184565353490126947088467429870323532940787798867432079127235795933967718562853514895564602347021707211693268206629375097616020010803151633691012486538634501921428389733744297150729753901697219820669865217702096742054748604756454199998761522319949904969367232628577933400320954712694077568939681245678969325297293924270493197435934003351700602857645640763670367800019104552080788109254529001982493343207008615840379799646221370507825098475716921783324739535775487876407263012855384037315892384502369576629080614177856084671952254417593952400549338438930106876024925146566089391616803481783216470573342564583377670960605736519753996718644432361761549498747842441023513455006398036161998315200488624033882774095740427128329991313232667220971839857393967640801400095705357405315094337841717396201680840125525810171699950558672994231869940848176727858876433228348551020238795936020646419903346733384216200088142116174990774675205864707308600837528452926183294416852896992271784279448149024429766289849688652862347937591686061634643784243344015936650762207673870118588249597755214537735183291567124589756152726519001901946282382908190584527891471214977995767333304455771342157662930885585323397767961269480929860106666012467161004062410223309077429382341103315402976641014377826169438810678906307129438523985106217107532007738691640976057222765899612175362434953256050403326955106684535097361837776546447168881032157386701557881529593602667503096094704847741578950821202830435100130846982862420978061431217867910732958965301878703306001120608010527200705623379779472300951843208602573113742845952140617014848223083028645303910873968109921700115192368013809736506072816074259032261039132764711187162605738082142064635115646226736821763160588902582115612452338610330425578451567669505996038307570661008229236000684838778616665802276150855574340059651003873440058899177310718136305573470173052105021477450429913580285267599990038344786988925595535766863309471789049403445479625747046817754018484156318839554545206200145376326139983684360932802052653871514731386175938074027926541557446852807025224457529454451391900481111263115418017839452971558907075489554558671100991102267587436706740240416129856705327041335673972065012212671217886109694023969426494452945175504840084931126428558027643492424086609895056347407416017317280302887486741563743550669045619846101118322734194857065535936346286953027784944773512958440335115245521491171836277312897731731333142495017631261312160887233730230443237135754017214089581342747825396854286013633356146656577205001040514620289521157176875796276547198787680890209040509601941566431821568472828356402965669632173126109787501292679265587926707130960489764846345818054936396760154097544323215329584490141835054662006370186420088967626436073985221672340328461497953554206752254825275590992476179360795890731554084180391951248579900164284776064247208464654243835336867702725824692313534919954647411299570047417246244406098548219639645832865500455838540793939860329658705749338706227240031347197841793593535450234700027113478589010433829275499227598868403597699901303140564826108842055346108760962734948355153019576684854245535216235860200821759020586563998823744984809268833687357485975759447809997628548406905856572100750779877635706782475806246454315333415980801690974178215685276556261737772573573046588798027780780951248173503296226495150231208045396631381767059198835483792143214656713754612669031248815946172609901893334315248001756838679632595838382532509967847826477289848498581409948827519043152543825626118221969337859590274129730172478708876416073204757244820724929756029932333905133106903844722554990722817398258707986171206634695147095875665179265393328088130561102986859492151742495062935920625712809243741519248967863828919269272176908443248674739909759886497920243470377236767572165361096511784357541245604572645756120298996735135090795667855388069256638318236434222101513529533162607658047398354005002427823451423327755842380709885603955371952922035638725316037158704057157281407894979237708249862759746441420793386024678345745833130978319488212338303139703386021864130019994215400738864586088143821153053732528645072738002098962292332152654512441503635467050221256535205117236403881453401314621033069290844695979288843597372993225998759561653970721741998900575831173580661792120958671853341547652289277921668840355257233621141139912165380726388706689329606229265800446429355882677558046609554149151092722060229946424732094394290839367736102641225678825216308416436904144770382880645132669229545715667045570528327116238066547311402057612119092335597630173811632990611616326964101517920153370079113837754663863468677852607768135459535927877364440353624538880256131331539304389073687837979883715091432016605224430627909019255090454685693859886434175098505341437626818858091445793153008078018208490577366288165006691651124241559433453238329536710866060972288217048841360891598699332008458190770618773081651935553486060750089997733513399048992419006727222338754008516484111405322195610216175011209600101742755799154833637618641656713873804110136055692721329577278487777777613192230294627247314701496922329439671908455164219023891615950065903275181626959320664757717568257953924768306577978817239425420379540695783777286413919276699291241770530392800285044640317000599774823652908374884069013969945242177037230048955769336344729878237748335269903063466331572437787538627169764911091419664022752780166260298968484303557728215498860773872058920700646300654834846655552395522241504961769168219456062351166115953466673942760014243075133548219254557432339545130211076896052760240825458502036884003379056890622567328327960002226253989464319457686120730420044913408707801978580535658629225552531833500116042571107874867633024076920573377133557900788268178675863422441825799837854718735266256293966314402540982876299898062080311045041418924944136665490254782343374048620891141386535960711539964510429085795767199806137392207277937568558674305098779585299830994186161570801139159379548835654399597721422420665281931185349706828028372364731570862281314433901707923122380107483039007376925910368524729762422750544887496836502977474445241346426168998909073427199866188782270373123679764840804112687969506032944755145143683724152003890000806695077091427470379265497778431899981494620476301885540448638630663787803385687354050797319374765968438444834296896977851710236282904272576551123961306247968365077725042012386079094046111345661511711995521741096056288604875233149014685259353841908819609854749427397756670119063996789180167705690181237568359105659931580216416482625812906414659503953222699470546624871431485761970861516811533994318444734915461769396634521568856753602996626196887631228088536432121203113163004460032317637068872449071137205570753780593741517386169513470599548918062500475060108493828226573194328919602577385265836756773409118358526249483579706973708790485732876263681200803829951028903124187917736574932083587096514120161222291328213680412729412878083410399155625974764360877573305731196707543819797766854106129665599731436600112115338708409919059918152223857241661377080828375244293930755448428558210560244250968879344673997113025800591098395718799657526171081947285188677636962106747884583222475389867748780779478628891192562573467969120125479348079595518904332325827178714122667582797847481026726417660431043649831293726537268146479275476861751967264680095307453796965059155976924116115761306065209989062117443154765651328904062120306271393955686428147479843982091537278332719461109704086957673241278400511730823735166771160623779769323629456101952096881132309003088784538400321000595883753372808791000961385611689750943839613273148705211308207092707807395578133045011293107423565870391061409229447353716809010003615001632748293121517075961544951228069040197034218226454354290680319510195846512259019287946607414799085546619186809385086765286144920573598433751524990326223247842103461739213994248755713475078873537591217454985560635004187077924627321504878552036382067491592151141515062270698576815349020190384075615362913448453610356281682800683436518807744986552087158146223175266750511469538947777586001786840071307889088444417171550236698604732404298611125834114337634404021415081162564489840060036749809440209779118243411804004812824653689700224093481787596982999789768858452592659002829491768044645049023374083076476503653789837045341172593673476330831409999284586847705363926140879014844644081715404717922734300510892847155875058961856306851018722110601860503701982726989952195938581962771741881940662023197025915562346924824292494801328646858454492478980683077674556510484997006758973106332022276686579244162582749472556630581334545825586236533465175608020435858290601938827048262023651989290045453687213781675875214140018951235441139747436544409750860446302570425383022128200293160179030851750728968802725800265772405213332444553666762270936054046633749601265381381012153157051964093145756197052881289540017124375625442935871539804185678026664840838023552342253001916937685837285759085838802640686209373047763944349082382733781232806968929078333624069663744884483852530125336850187796074251200056271190612094123506605842375448174547555753848479555760158568561527861462791097844246564015206315307149601423582011816823478787897108589109939310660803038386212614868896081723927836518995939111022943417502948259527923899339013362205072464812036228844065330157679325482779447792713822485239669468022477388031573069925379753585964580765080039588659801936852347603411211844268984396274963633798686395797160729823628286427455818346711615102506040577852649953191375320939730984258182139512988100267825954923711063312632890593755077449274010236933652833954124697360579458613747204170413175041414445960496235087541162042759556383914002970864645906373754713561247654028867787425169023991858948015576495468760377861925911572931724323994502029425023702529396899548203358684217665564435172124101649680861205663577621807729085842996139906426439168909142256008496343321197215809218379830807661390972188086184817696793652325236137778750423901146197839919689161787763979675223702882758480192296216834808119584193010940172213126784737724150126175950520174260451877223694411854989446260121946666969232937140514699079038449273944771522080515167595618133495378442794277629502167917514115563705993598196484980751381256938841345902115623104074668514095475620447381652401458158885354433904321374858863276256094627849921102489160602589511944646489895681783830767034609611355602064401149343667770006196582612441868769193018485185919595141754962877942903601580914350866189040843876553298091604868387363694705327888525733274017039942761623587191223105859359882584436069454801383296993940370557878720706868891223489400461695219035987499572939646550589315852216316392057082340303036325806949542745697174073535786041154438865825018897201534693844495846309078212592715898182819716525091765027474926891408480472879080103404852636767111576855227382268071317402111014710626200432779432500102555927004469288296940414362201548348965682559381360921523758381661681051259157176869345090849916303834988756400290013984389912833851798657444330981007993664148829772947871280020478822417394224870971051983201690336918889357104363281248596303762740061965944685586395286799333153930595619904730178949310902255117277587266523044375157669618573162615972712522411599622101229580257864293143090325631687020654614327134338115930195776921029701116470331237105140531672292234795592854229637158394547168703213699926824578119100232378706905725465538162288432703993765020631677999657320675638971911234607126390466942980280323724957521595969894226959490690244286406995658857401106285275090167855473692038343167276950896120537266327341136977645746431407812917509646963333935947680216104667731782804735466141407452109592318941101782916168985205563582830497880563422610392066299571415978499769865145808673486454573160860678585228901263453689301917651355180810157585696423963744446506454732968040703858680351770405179043453561248273630863082471739321882929917321665244594016705286277955009714408220788428392683781404352613361001447865236042806076328774573173672422164108318620747581199451596384550512339046563711338208193448804905954458319424668821260972882703681532717728933028158752364060766895588137245371593828866413514736938032523912393216804807681794901881329096755041213046842160257798075535096154220875135205547316365816926146923776216773254993631682869650837002081527956048893141961942523996725135596227892389611572802318223387502325514052309258227538650685886370221694614810426012329994668233973764591768947995370767431708969271154948051832932776487814013124371798705334828903998107078172904717403966080707539534688291678927602991939203096965309673075591231377114208982017070242569404739424665350218246467938738540819199309681621341784844068267700208174042544238498003923821659339718279035551133364234164385807815627136895532276444467391285791614946571233814766682470203489232438795278127540551186381760865596984218741242437826359051595960177706166945261437325741217237747648856528172100972343114868962016712759179630965396917516112879379980083815508152678915428208093404832794101654247167772924946667957013473900061675051309870513524516164663798209009413603497966573588267613022471733644844630965173586327255875911080816757709152729102916843442329647689815800963416985259347528307708523973123538036927245272414157091570229443636200450558777014199712996059942938890082305346329726012815796596435258593780765964256913082323247243299858148947929112029471790180955153626790188343229423523939237337128809405379425899030589640912305859059635436203564242856982350465312786474105111892834600274756604083497436395954055779045680131323193850129093414107307642193311805335126236515936844086097450982042210258534651565640609252593462312108568709407082197481074845639332453109364966767102231246642902218474790494084138958619392251251661976308744903670589624971980428577513035380450074309334022261287232065788151831534807817382146489006153678353121263119162857321759276057353699967364572125436904487992930877207274982727202480293944942870920803251163969461443601140163702512646234136540415385398342251218991859907819896467549713922299720992604639902115014816006736449922413484040044183714550660151981380499647922583841399669992587589099898793072114957454588020028893555093088378922441795416188821315512848132808164778313040691714946951537780190571485830761129755988968499814018331014522848203315867267364504010253813997613373908213516558978492357622573615002149396074443005371666981239196073191942972960089150200101925980352212217184764043706786547229786767792045417119659263083108241873440055636771478206387825531970608307834181728744114060680491188106433993457769483485398819213113635597693654945693512278589375513581645531645831966343978621416968595643325269644977580835288234732918299101044553099037679527129081045224027530012142781130426799262076445365900990254012576685349846555932142977685009030977777778048617760731519623465238209341084432990937887071613692812259021912218659176146017310760420861050424940041343232371960016984608620830837987518674844639157885406126408379631719317606817936807496274836956946776533812761000663173700025812329456536027254377470966380934862089331953965819733050493534799158334593864192355673735154802284800681045159435769929560631807451905220522908808580887001534123138963928059221105932815340790407403316585330563815678368882374865838698077951236521800285335242165215207733780469032360559759307588835310661959190711946826942077459317500060863464564286984764393586186860659632995024641614818097165988723466826331850320359248925829119361101855098777092761765345775501381403065974066065082573196629370678593132884517058838807833316529324345300739553093743676467084149632668975634617282684456722600856818982191727789399370731632417684299521175357992289114059905225505172721032776738458033883806492269608442810542698163975219278922193503232727031683291240231360050490922915567261104715420758985641084239952555988039944642170536341909208949818674123891827160907448334744355930390933527077048600657049516688884809933220304988458859802502362519462717703044874242972228294749074536878796897567381445679463597131268045123807420789935746445914705411270872882185270753454096682696798378719382728456828155874407258753540969337409698324131312039928845581655495502243174798584989465320948028837633187663509057621101472057145700049738429642162573618904694599472623682222250728028883264549579406964750146470039195631741420465246154930030830008222738603496877257594122270784238561822950188880710639361057587543941674659091063739760429623547245534098195103279060741928946087015980137285863053495450119455340317672759694999136024308030272323822053353859481447876452734913152262180670140430810423509089585482051716370878731959400920240765104506985539827607279830459830375473142130984083550831187160227510135860601254201153200829841926846701458415452283641915791376260825147104301843375984155503206245774744599532811171071068683321143220343014300289298526846512990168899815474615998218521704911309645304080747865304482644884344903040372135054698676151313799224256599193952764769772836758196825514764723927354246516424170397488239303986201528662010088480355405279318056850489053622116404389002325068583464704074520858723161263311875360201677792865098392679791401574988669898896878622529625084443115971733691047319027911600106344157226081399489554125529543646727528467570255049878977370620595486591270463757850781310002135797613602594755202516222783794836858146697561212296630745974768910141196756120192885957724063183321797298080476812985999837273848956766263590021688977544271205484729058933635873570954077013196258316223683507546774389866819921651430117465286036559423152881507225047504494075361954440375482156587101014558866800317247407784600086740732869970732316938159108728426912788834279829317480677808704635297473958406200794030526323978383680673068258966106212911267882273895828521521623410114630508716357995220716461940210222043180802658812084973139372797241038839287346615405442724433146137882593548402456885781578769801623647712516229979200784672870220333365201340097104899086757419577201066188954042292694570575643636344537167784424606558832698586506178467599622135870537517814173454175480345890153598136422066970676715230328433906296532421171753829896801430053476355291461908336849788854216375004255075829092463785430562379630114106844745429677606055788327310325860171530322703030586900600028505714470667633307828689104860089951509939916462787769321912866249521869736559787855270646043570860853865789221190770530799896262212759466794448624139251438196209468584271723054278925677296158290777355310012999699716667735181405072255653887905940326835942496939714070620007830866408791147625497588262621745186411503863890288322019945885545189496624347962742704574298646176260013823626466019795780332370323854316329437754274955055767136060944961278799939209460080007798031352494502404274045025286997149078319093748034018481318263214237621830901120657603946267324416135022490175783748407116112449624553059893569913957710816245085842911493771995118899768736706864197560163604171171603036481541339734493844651363878734594918672095961552676295964791995713220455263879922761022347077766597057506697519190238693556232632680759108456307939356959222274242575715066489086030726253642561849917245364468186380412261459779998528037795925684446378305631692451545957454108779866148458395587739377718352987977680360798366935126565676907182253196442879268620275938298455894753991453033655942260962870457152197254248878453963107529496493430332433694916418401980606306215325160278980217856990697643158654418567512703869582820550367548613953532370855012871819885943962113287036690909715523229373562251215973741795591251511222834075401123644397511991376562878241601288016509247566023775761795242528197510951836796560646150188709299904557192743769911381025257270685035429220065908436258021946742074031617364450513440286219635778076546244033520576894779183266418253206099782397231758095818030103761248272913754234105012064061290466736330223945674392800159291741875432626831571738944411722171849343228569762693609585214303350589199602420982509089007288122216869933441297439082831005512058754159050867289296735799289607582616508886066666763656142121070229245350028806258626806340587750699570917592282013005590134804203520644835207118223936603958016218869978892203164071968519764630464351451362438022724274093715942571356266462436426404879499610407107294965302444635465547354121453341738981750191706137117784928378557946890950200329584715961526830702922913231437419037266255858959062285282043990641295654453507133171640801645387448006080553733493485678808189838908040003956351013297246819870382995192410622851669448896769638100574163110237401323811244028056967845314300168056354608193989517312868891276080015033254566992964390633310719054820701228346229129767945977342596627185182609013540041572665155650740393303456931203958380505088621429228174395719643213752400325310126162074657433176433925122877602024043049598582089865586657536207899191190668655863030390489723284173699893933510502948565140778173161172836377750129263549339646544062336174946558658008732090460981860840936013746424039056290869379278666623369772755587851719636308789387115462867587615689583105081225514613106457060467432207843720220134957888657115486250594611974174305107873820265815263977180779201065185521608391137725530900717313677459015949749996348507965638345177940018502001481302885342542300375523393134946530540588435680700203311594729833626977270000432368370882563712706565759020874796680128744361989293462050814936963436147449868702315430419040670125015410511355284172152310592127609038912165206526777300409848317555991937364301803809758267860629518446085952047514005534180407282979062717581338187817555932447997600600212276388423500092787597182158233647654707936671564378930632588096941010943548850336866745936726006431285526782535389676511015859009514203322943727917032034046223896685337127606361662568599094843227431742606763275580824432861747981937157511734423001269694949018940397559736525394846505807367389200688789295823672281597722663581874713670096754323778360137321091403797948186979788597684081687102903640336908788028801693420916203456514030224519951766499966890200165554051450048688030043976151808397025310383186609005875934200207869160066167124462243471813437814668117675432788954486252268850999745210052916473439923019473858931698440495079146986148599273663946397323545254675296463243021787557027676848124086454898055276335110591537219032112805766278130278445874064992972077779877154457692594903415497299376511369512128816323559699569517158282554464003177015230084144957893088138243494229133679048228748498792296020849216721164480195293554044095485845014387507539990407079544473432382664210820925805664932102144903101863527653439291873097101408381992010032036848521372358615199465152096037314487370925602926606179904852869957359000978264534118347081173596324959012974293798878083475534643161739164189130230933274357258265258730794621525377061459629237311001125721437028667912344342554547449559856935646666062066732910167904021473324961728361312692614152335839767077775849646376702854593193795795570369133355196717002261029761758198057785454317669805571148541514306641289787253150510535636056210626145369274013455778433694577552702180022780549976636435176349366011497317496481058827002372610394660208926166444210088553972081492652108761970991503524047329546700470784684750654841253504577098590823525077794695497511293828015051956756983545649148222166330859323662269342255511729676284109690898128536145128178738830394572215922271397114007981635257600488227323383361715438104433378858067584294826965205517131952578182549455576465037822647026852558119988698236718814317002366350456837487625826916670797717038651426934408752238984043054728608719471352040475869258212416606955387608462893091303693715874513668666115543489391127151961404897719007098397154744146264614364141938730299874494074605750002744870560980034692943828648856507045472423232455576783703298588851262508850711923697768130698469285274716727155253083756822348987949013041836869797560894131574711135914761644817019675338439667392508843715714984769869264571228085904254864861069559721824074749710795829278349528596852544591576105640819286447784226662647944753508727087588760950794771848617177300967053151891851300479121679209749427759958221314845676079351181586161780441209611365492190467907871775105181308751859002546082488633021168712993257399980675989122322894421382535598116987159745242557605075373638091992679470252023019225120267151527794329251462042328476287998540633724366067678853042556638235590193755594042759285104849368221166950451745792329228988514896689733848646489919566061069733792293264504962014485016925964055000475988196309845452704912695820341930108536415129913548643065707549806886985536177577381427872773299787312883294378148706740502074358707612763162399004438546670596281704102331555115477437111495317221462250209110252041026417088456315882115864529365546376596512651108280499709834744289280450329324111902999284939552851431099227573370676977189302284576662626858374916405335164421470992113421584652751343575992956389377370580111673220601810132141526936823387928279558760487499795999982617445091831689632632654705882979938900609526221105531489190618476005332186411147546079627637964296894177870640128069540257848935204002960487534872799966749692711245458131264423096013400105674305878505334388756775097714486141592183934746346262565209195214734663203367575048650421770137042335352658964904559461733298361287187453968881351901111213999739806585468209176852055200172734990574126955051537087475537588786675453058084200241960339448024549860393579884955813940649441096455924846339044355602747129078197315425596565880399134704648954138309742919464406315885569727667598415082172266703705290967033005394317148339484989328019284363870638364620626127994568040247139632828656042213940374217226620913678707654981101577128286847202759403555854779743009717926545130780572698158091318248381180733269421910064475499275935692449313401813857096097271374581661573937314410220882226069188496698982518187966204768301041374036975242026166136062505998070349265107085317650992810258821919538152391369535397987814872646197414058928471753869349533082520967009123988921347734371976844634991393639061034205870077647227323767608243230716681407930932351613152748075358386654405579564757738585757501033453151569787115082624349260671061189523975689609014112431426399598614278279757407038115711838755745682391548194827348578605373543350928283894991634771203124224642084011169764523655298999641392173601553129487360857553568179711645332142030011291055934240935192733375628003527674497209153895907808070780949202284139853554035241350004627671241856716684132752476289450688883380299245833868226226663787060766039772872108075164158001538544220616517310975524869150194067892639166037876774550133594279348127999380956183633086933684185756315047468786103679221830311717251485658106939997268025171745781801722717565284014040951895541551777048733795940383501277122024407711621929709119630310503893257905102719222420263489971251685151473526512497302667737423797430708254139658427076650411914289509974925688216102387064441614002552418189347103865107850548394037549523674625868928685946912582133694973299703219235543618601772678693418452140440291267306359543970789906953486168578152426920293442290181906063971163798715822742445605580597461622038118477850333194178253257215608039790631461768305132564714045101746549877753071913202700479070230709378580918031527078443182117711455948062942995126197103254662349128257920648700308099713398686804843425883266745243169107548706929795980242708934588597456480186545085622793674273439808083263281611886600771429289104087812487840734320015572887960111396689522359242065809942198416283765370031487228911976284594604871434558494671250830703398464013354337338004162708901705509197356727475436899396139821808665116586689573381864605924130849401075862798559690320641422371551941469828459660904092869364025392826643204709733481584041476182589260085262154099046921469984979919134083354848619938928069597544439454211313484601848327393228710904321620545529753919225006317639782755494221855390046974044075584636810967963422228790775045780156771559193075403236276296656367832640702626514500103084780884457243441223258899928995762609236171573806073362182362264915030012193490478258965272029483238439512570827956230857170219343168983011522175229788381110107236006566075713168696300927724474872715296805314968953483044955110268972840817620117281188840726843561926769489550383165081523781661201878819590380880453276455298868954214812514209832040757178217396127314850199003375041935876697567128366227217922746952652944696796065673615753448288968637934605825049147366649865290520104933040706223305166807581263433843681404068394594966414204532666986714843961241967889311351377644849490101185618448190226159887721124303068414906189757902470400966334075169093523278735742281696792635689626628490807921337284552114832388125723394734046148954321520382448925014572164580244318574713056644285252028201131232202382897668364471290781086927099160094052633499000512088428497611535524251283144965665158453107575564220224021748913367717616591206642115369786019116515029241777200936769266118534905689380347150096778360179709707888778099113986160699436347488010274332017688965639797281006402003102125814030715261454236846052538864088115140870161525063932100932981489846535456375556526631887486639486410257248311110967051822916165120945965802987370953884397960576945232605371742831227629705674452603797471288782552898125458908231550129338352523334151961686992302633705608053142134297930493653949316774898820286441529506753273633186697033773567992909064736969627711356555053547274181425085226216245932897842760215818765996062262707648704705148002102813226573812487911832773020796653418588281205471453131467908549851099298961650962751206007899520028651030522851361439674465389012871660831867035378624925663697791870762477638494478872330891993035556281165675010291426802426018418787568443615433960913784645256886416512280464756868979089406489933377451312337134592621551028263800595856243611224620343780084230435085831214216306996501552035261535577849647457980092949206484972268957743867505895588489526497861266718005117183583456726693412284655707484973130552029790655756295088979560062094958325819076841580309511553806325714066493948996319090156655798331950579953505111408891136891503031668509907813143715630474993314051026428386782393142602326627435568323277965016078569692033301603041085943860049148331888001800429210001553984685947845198651812920026436959523123634512001805569636517890504539355477981675277799172154393461290006788598584416802759667670883322297690078456281256766050744418444069171168823826149673433753187138045139215949905676256817694009831066770163113553899300157486651454361609349608885569732425637540620790764152052703860084868433812154197963053108739160253116623743659462513581621678169231016782469598759170202422243484947593116655753794544591180162839869389868334815002446180641164047660464074450663810195646441023711148619178834281517962343474616561200049929596745336907657360408159473970964876309752743620766344253471903681135403200405092535240428264982633756254127977465601061606934266813872624861218167949384416433063535585682673702103493613803228030482169407183213220030644231795201131855729684626189378283045750365828125752289831279691691851860995728028441855786202145398986356422449431645941856493648936282818424063031862454315842064577355646122574884648022261568177000312946803577087888914791114293800871953236049342787115509649051645873311519806891393223743918239937640119259561946236788771709542343273657919218120804773613209470269958527172356897429759581045964966156603383522944293892146646730136261223092615292541620888812656542501082534297212436450188682597185452702047975495474202516887588339816996507435702733372815591799890582109674007280061647806735184040513076530314969296991374100652808291558287690643642685201311491552340744111112711577667382716612365048609205640680788137202111937848586736057114596234935847747937889562177853465195366156534128319257406295195019029466182179742928425268563501045919234034800085481322599755959941777829530537096583132170623024894709754665269627368794159909656250860256014765985275474436256493934671177965448332423809778932682747008477185965458945931207768814097182444584515057890531281554889096602139530956083613687075364433782995522279707711763880759725120848710129238585277952368694948699129763620009471220635826402952767879373860085617558186380792800806893802292050971651646886204944463474261178842593560143136798184491266048398085850091279724502732141090801909274975698442767671248156642312739904809650924403003081202426651564440753958147106204804231350814555789322695053282693342490331810271148117258059957872331109525596466836286587407544981169139188610198372940214954753726324656170703020775855105663180432963800886042929770989830371566024617192646688355536927161739661136143485676317724080965553648907445818513377068629204568699871794510300063922223078402690417887586978455413986030849090962441257180320773306026844051430878076114466112407512661037871731153663610384269943525465699974931382261815541881895626744296931396347649514019752642430427475578086935421357996235760728200196192346159957884742847174302975471560052519119347381772432786767636365717844117916700194561697829572970247009759986268702037739805185436464145131663564552484254448685862757879998301800758598313595219349451309280553627501158968285837067366709889066504043710349411335817915461777491657830965016417858101832481152645214958489806617840097852988007876023825954087605700722291317088318855705633786538422483621355686524638636278636354873019366763032827247146642796467015245943857135192608699571781268445714767883446611385428233754525142019751098670025593213711054668118702147369447312782520246685449162647781599841526955624314236833014229947805539266426073442895533397671976117136349709428492128333662063640839289432125751862755601255525605078643539396457503098095039725070232144967186631865737698294711847769673943740004623402442670827405589400599329588277100786111755144117256506330453162154570497096623114320845726394078586309708632074913344228276845123033309587224713716496451384739807048114104402267701227848982342178435849303815226502694457876443277752686096262397168777031177846056579997197984442953206824784482769703547168116526061490711661640702622436682442744805135454494308017644387851407720981001610746593606315195014054759777952140927120270310733303868792158444011286775408756335719410490475213068391632276359060351597773602399955167725164675094303030419928839761544856974748263744542688112367525350357334709604130416088394262202653886901499069564239991408027224272020396638688488065710734359772685943837751704288320007482891512675408870742031035192221586986081217594068429670948303539078880849229051717159687181219089648240468308860583013510047032716841156482461010931622358212887160449874778254683778008161949878884570909465464171917362167845903220375817627600971826365089270398561745981410158300853129549709126284483044737847921286553163256585053507925259444360414242415566958834318672174038758325031428277098649712803092484025607677826409328387069404475998954525668234466179364550510058114594277912594932817584865579335355955112435398813145762484624358632084261737428148432253901120835466785033755998422122443489459517307990070346360675574655339614180744620193113967536216744142556510235920573059275462576097207845343564819548431665103582181921774520473052984229564603688786361752891075300313005256225045049847762778972650004456699897022061723948967861538343006642470140974363815855094969913712366315626754354873681247442464285471358447000725017672602362349882630278575857833927269428924233982020019330140409364662407559603027232748168978360884042879797205518656601445130007708540650075792295072425675548030982375797517894410764778153495312090937673283657362862944834406869499781294996043661645250539083300096589794911361336839693151972915296901186746259859964049405516909435925166687549281616855037558614559246600484663652330875126534530712781191025460724486364999245296325291231907156121473745695632062854966152465803662224933171875915798548864830051369880998230442608444499183897640509188265498365975881115652958278745628685611881930749968683897996034213738475140210548295803328374201876331603264256784481944072800180688562843325975983526796946412026285104305613254670619953242547067409148259898501631988417406772015900711567861096648200251953711620458129615668085408317265678878523561209098172897424676532918360909811153159736426623661979073037447558651881311951431821704635067188520601287983644407230476510556025844091551822092312374509428264756283052796564985582480973755483071946040338258744462887542148548692730037810489023166520091148934761289111273726675730321744953785955605885197245161572783089764625861799957762734784675307741848075802311903193883096678712152849658209850904393179812802171081422350861096203207022335798287258933579584322569091046313396815851579945904781121903006323385690422008802356219189836704156657986718381210725693450366492640257889769295420718383593367819133225707818481000696406303479898656328601472353193313211755357125804331164222321842643374461156712063462277051957069630851204484687577178334656678014675834048228855287814331206518443632609708259004100525889164117077452953736244006342767252324201179640904505794668261761339919307946451457818460416146171204750616607288872528641869455333184845070028440879863495497254591033157513256241623669553960731375130383655645867052058584672154065273518349767843889875085247072973358225306320687228853904176246366920088753399709743800981381323595325173591271456309192967709795773179036548518874559093271081505647689056963064628120380388062200776242953069489900692623559426860629950399918712412629659468321593493870957741336740387308563036226195053986453531445642859467397917737616621195685190263766318069287480636050345933611627927038904900186631531766210631792730162521312367795117886076815413490626187536125602292658160523155253715192987946031157373962768813684528884932190606745276538644651092054093882174991036101340829876929482601382078054148149027230904326149602088820331393771847542103703664250610184903022614751150648840908508859563801717417340352096986264968278732982778996011044419800605179948018837969636258106033667333409508306673369594848413724306296941950961845041556844995403622687245886492869285055829872065354657847592429359205736053989852037269302340889251470129014309482433801711304606262079295535599706529036250023188916114609416790480456721311461383622707514698240514362169003911253963866062978323311747785172673311715411693443822525211679132494463367543967706583934787083295444880734046557779559146301829938461780098882695457219508539909565954587037978091792845178062504406818873444377954891974888740373073407820834593543173488001953165134426309282552294128771664729031214931909723602508449991616321890531439784956424115666566639616846700568270475738891883182936173975038139072487827042303897721496505235473988708855100950128611918260973920214923951636026999281935694798672184690592305797367011606164025761565277646231213170121240314684592739026325787087625568560556986057009073847990616694461159607768465002101593477446837543438562224572662962524979832378592383881233004199904130520922750353306964801814841212971591596104589066626588309017173707920687837996608420902113512245953224880039471313966386654519462373660910361912762530779809759915364609677075129466144686034914711278248422782453921692708508729181678279082003357425314849465070940573019724016458791137010557317635237590559549816895527579532820548355147228340180062196234717901664077694244783248325677251036151628328660505829760079032656030658362568812551070588525545914070679555796273650600613569494767476250934381699352242568223350626138868475896581892771629655431081184452551143768178115578390183119726305010229607227716769319986660200111522202925066046727696008397193298159447948297222551700761227181972633600443782146589893010025215428166236583756591727372133122223487348361306130157501371342444171201706205242775559991254087614158671131761383231147322306695391852039517024310892960927843746793694008154259479097809597853164553754367571706145103488891879119872292927531353702608517904719867342511905311998947196220130754368444621366616685658870339859418097451176931494234113490742023199080347371400656369204137550275759780598715603799248406370727488353900439192650685358210499396116700995200021011224496851534840282658894365765700988499256991098576240325565137739128780044774175813292841759493685494714457456696759539763006628160897913536807999863577027171333978871001758059613994019453694392955037508623075302524369880362283450681277159513665520042803263394076345470995237446588633137814656315481712751068444116806602693977712783189676135416454032994880940033100280059945085043977414163892460503927475233477854813815872918553303485687464698536409185432099923454090478435428982979145071598523559682702791431062137085387270888764290641318050801799414921754071273706637168222817577829226745866163722714184727196571290692817206102676143045216256131662301629463463755598892243034204623206301578429326797878221244585292626365592662838667813484393248948711637044110261008450418185558052248105426775584792889879274312742990970467305993541630743235881041933892408009205111711730513459963117203710318555742292520796336666807881673788375291665095159783870953482269853801730234200073169819030694562071973703565226771189438013555038055264574485358513706468456032376686766877891472318064380713959917597094258121786186078786535682738915976188416921032262191871113946969337799564824938006448570307615851937656859512196736694638010868672187296257020792264968220590206846375346701623219471246540563074414449942962045802807845330648214030129912714107465131682833686598474185930938728122990933812619309986815984649095112648573047308486098340495548585684406787764045546042513667611898948899431155772337832567478004776030405756125979102652491579298966566937809792534833611071706061758312574633980491081898585266710951058470512961993075357978598537870333359243417456761226958199606362437208637917115267575900978422797629551818550176827818976594468876285397985873005650837598604926221042306900708567041283102165544104382075435012506424158692592261373772487626012430299341461632170123568849989257317416114770184357909490072211070933710823422128442886558688903292144671043010240647893188035704066835966102266603975102027376230199189990492554293932848375863417307520545304847953675044054634584098777911294290042283251925210703996502364331303899356692083017219942983933268773582157329739379231732265685867118023354024744600270645062387114143167024265497709839307981280298976956503287500524742601518762736968249549113248544440125396471186083060109292806939524794226645667251128452109996221444404774981774859215950079277026758167129933773271541607343946310539475735808133542541331729515849961358040007653371753391157428731541872282818142563114155425894958338747500223534635670858160736646644236744284545711738925650276052999692568185723629657796170084930893944835782149759002184213848485811950017804569194110204525969139069329523051355989835295967688486829067176804414395673207858285421940685449964642803292768521981107425341584154433869678416147971380110957843422567132736445503138121950318842950211157910660086159342637605558539998732654681399816181453231319536660632143856486206123728165779125032305793630034236469385277235596975538620429083997114114270090670056234992034320940842416175683787470581525712419599383925812823093102970443179966270803440757057986039142125862482924608571591779177290748176246802578246017815454770318445342041372118490394309119174215138961991897760550820177971000647940150398666173564003289576486829848741965334878517622247969630503308525391000028231602015101312328987080248168838610576843431681369112387333065048446816941473968891244567556688762636920890076622077609994587014132457636335029570100644285655553694266335525022828380534787288300694816087697805484606201239074137643075570289275693334197766070890227427926509794791923001613001578450939685101285963004446430269309307694153650672219928401485583082545893419177409862836448268696919475129382515326899677403246175946510998076112987164745989393971181566839990081597015895581437887071561152512415768060321471920186738687938453372774967301683814083424064521941930835110837578626269515412804805889149337776065109875365942858563435157261163178359079067968315938244307484817990575516016797525019708753826234383829010554281763464880646779102201596200762414524420897649186828687945878115399403992878349589672395892775976580023868415188813674428013497245760143154520201026175526760470527213759046222245335705601175278782792895661092154451529079798682777758313164639160880559101055787996555439123940547467478977872638816252951823771755853839010610119199929070584998717668386623275633756702458847671598084578409106570227658513655962766924617336871398685921199469223566777963128323765683167204782149566230580120650234092575852842892157857907313618080543601264658224747679740277557044050526645354045972680877314367839329489180526647653253931153147660742051019315588079923446914066588289563827489892057096965351734507035420503417661363496546196401664199632640363542576335203598966074061755973729536686965158244622214178106497024030612545207027708340294096619034516862004207429896942289879404317235496511593318592588942150253837025290615888230032191183127066004560043244018246085702793694982866962426227985135318551093793845478801727668113142326883084017712546702899390516412551515009065808820113690716858658735323679026799275942875768242536678050331380064152437025932235509092161740953295928830584384406272751725670322044267385332297562295747982891022275791210263076509622743153496685786569910904892693730887612269294495513483515122906276071773615158656748830830897207862133654774426913301407147390310005191883715842897928311471443280753271648715909817996928383390263277094942305842063879606977213533309728705914222150630474992102810429492795193585753220136236931806507681370590897036351979693987837970248654671951496647307098503343476449460350433343096660706605459869771086934515223995072105964930931944940900700000706598086945901641407084257729014271349564336690900107242720262068098538344176769910896764529440282227829656870914959147230479890898071221980477498093141197350301081652282369943846444882141258617780013121089982377449499804689494886918701596742879275867876437031418344520876722787078024012441058160262057974572486002894499831055368103117856515724223257350945434435594559839341045337099691519534661172745663202611513078087710900282357534016847905072730104788561669793180423733795690210942263782493951085602443450329496184262003930959330739365297006281215445054421622798176128045338486151355735033720943437411155884877975822939598266904984943533486592712590790592082148488534198552738109641923122952012535869460852943612703036037241833587452557515533290415101250060438509072187756676816904177567408411130461236397194091597646590097239705763285637323650587873150001719082082777269283049673008617342052638279315179674789706488296217689049456083738739697311326098057725527988589667717517176760602915702762816175486950906371318589378357699143761475887284428820599029642216041792102013656329553154144049150959857978235667093637265953984276204706889670521854443556159742912941024750931394616398952482397398712648491228727209545175791305991451550675304540610226129290875378868636086137116363851379982489121782181867766293043747876683319545417388767307585181254062824238872449311838810565195482901249680306580321576813509748155579556708723928524595662370333104182814196941518479990852972549769392712450161874985700108674096051760131401893023739851154450378849648118531230283435159977109218780913955381461681450680554387968251795863350967894465950724385617081799004687286969655209657881499477268223402328497949100769749324080861741220731838836943868080836030171231722957396599377445932311067786595397930681170666533189012807385065846373564708039311036301568123248606860702023505344891653383388346296389547922910382208879544364533394525126118794044505558737208338195542250786907008910795599130115123212076127721407325358976774217899981788933253140976744024463044515075290653866159976154935232856920200606152091317050714940632987189385727963890067669476205300304484470083943384995035873892101589550950459380900198245444943158977824974862752014442100263440202959247333661967874658862631798607658693316502171950895460475516238883282252278783427086813550042395311232903971435656236268531732541181611321578110164332424032692352554711225758182040184266425524776077434543084821504926305411821815041793811671936971989659507234880804561155554802958286976982784325190127846913555760085559876766322232596041897590335423631879022686264182438861993141039822394364102735150490381877690584373073598967110031585842130111000747213209798233325480509405013633484310719622842190852487718554635767402235572928217457038019578124895421964094600789170525203793442366542850284150342599028682399281025158567763969732654768102468331196276193820568677362105457121588893776744294694112964333477921517641701236048898997328842510483314848538666523876746839546825639127422814565935782680364178564624352876475308281588574907679606038318166277737109515561169281660440829194727599870955208965892488519876152969481144946609291011672800969604037048561937341191329524099621739750366843907021062909022730423124797434271598065171388675562194973464536918335159987420443859181016612223333322248151905106152946173445234750831286244837369552394280781221875856685354120233920491670222252165062151946079313388923722679275521271308942605727029978412103227492344061860216595089503611306409188386267451797653474909044268969052495538426876604020647357849327788876618050981707048677824324824990470829199300874456187150304933051650775029237379971026080520655821492526266945184474567035719230329012863789893064113433567903279583856481216903972462792351366380626340016110944959530181307865183037299135532365911657778276962307601553245636405220719135905579555865000530107978099189081555017160015701228583931939817890210481246285646614752177568663684419533424729540547025372433480795587571031584951101193158144848139382036954513292496271836375835067827293066377663192690391655409730626144825846165526622889999650331828742742230696867049679893494936878336606384035113023392823996596618578989350606773904579695868212627242754385466372874625072722555262351014004174431430767945408626412139310649179311851072971994666760277762844631724975990479797407947570755473877162338401552263135922584772040970880018178347716193785894346333991220758423083065155099279216079495421953094249277233067267920304789417299802180878751859231100164355936887562731150218299427409482210785541203028373104699504493186836194229407710422899140536406677435877830953505219477859352484258760225647516565420876531348387698202989021058103174620058922790610276752280992892121001079856565789546190270155943313171287403334100292436797239496775317992596160094830447559612801315564554883003912114460550198167758436902877953963518054118761650856033390016512548201663105424988433649767250458333645863745164641347728485616896108890480933348254203626532460094274005522336138404051766246185484309542785570670999496160724327908150118618666803758711991245280964648769653512966575574019256891887252514850321088763791615431632490267073050370037393707116439721789377594777271730798627629202225911538096237202390513732189252581335376356628140689607694314184463058211068176738169956586665581561183487975975385588139865702154696035263717674268716456538551638389381117119531907462830373354180318103778858029762121549565401346959829439769038422987603493373077593070748025890550707686325881498423322726134399058892111139221143600735265283799754578965018503049324744557731567271469210367052325841244769508322055698691551147989871625468738684201151725479916046508176996598302661827193620469958110988216589971400899014615105100546183525044678727878239268730269105632718373748803694251250920987996347703906533850362663811422762280883946156521926552168839965634958700363019322661982324860188175362101213542955740367758481397111534211330439376245575055026912815467261367778058133694645277392483210546793902038702010514552877180478859787814399828583082271046934142602418819240204185482590053090701633843748669663782155374175396383072638545343547113554009645815591755612187608020634487566095090422030418254100493064358270191221200726977092793159482593690238617536970206739696429887957423679735395456706545647133608299610208816131985079020650615575353032819620546328124200782746448539993643590260581458762913980470300782862835233818667252138514751785583925169800944550774495249466395381540998221916845130026905472919886200575289004223577957874719108888485498713511387294954809912171499500918752816949648441720717824055590371738635589854889466049686385963680176954559763072489481516630800289948724961659400506414864802320179670306719345824405209602359646559495676585905579346885147624344627478321845364396516838379163845072238076795738521417337871235514098784904954513447889444774014541899923866741627404229322412205080428373016731164949846311265855926659157415286708792688063031187244138929603958457209203611775562803661443584939961566173450179073146330050260524771687761474863053047999454998902683748376819009798610844566873719146391864510880783573312167243681908409465565248947868878033267757498605653307324993994135955755879602877278366251074120104445785915158414118762213326211564492491028561705859338894564445590447911549447438589102381809982030294126609638605170344584732444801321264171191776931058334419782774620689097819946150556168949723312118559754880177948180375568374376629654997158534970691463787197017046198401914054909029024158983957568345444008475430889275010959445266005463772867329835992614656532275846280163267248309637999548872847489320214154353292231600522271362101364281614546361448809615941251126224126212222068753645890632939273235238786031169087428189515889496109155127483717435019768551624581987606916228969745509837209984048673832852510896206153726198962839916831519477159424033016615156383390712336440317585329408389270661230207515436626356764700111572146824292346738405545450790684400064142157949342572059880660143240471735464446836078968849473708053254698750623407624817392069048409980468975495340131202448961896753841240174342969626024899106262651264190409265916536372093202534810379483386816980066344432372501234468497358595076618619124293687137303620054856441820374582500555385003709488769407408742113640067365947095502710025361080961560608094196186008347804580318762863754665100893616620366510572888808072385883458183561143785688798317708291530164029870379373753680762602196294383680978088598063444576315220099182478073029973938779601614307805706395660640349413936465797835617616577479881248154057870363763461516977364717291995437772542615426200127906305097446868298816249933012092582628863591685860042121980292966764289895643970177370920628284111813166101609126789559074180844840040530037645223914882610987941568979013680392179889807590577888580349199975244506802655694628666878004147151083845508603107605959062667629226830405406813216827882465528100473721228511918647384792638034932495966442829316877835068369979101137448976013753049121349040316037371144853118710801620222068099006272682065170150164318275335100282298899482889856317641252350823442785792579077888491303130666866371803046640183150817284632913861868002474497508380165933308643997947577091268965111814234935801622034507435712163685135940180807200621408471863786919829792289165068410519784428790167426369380585890700939376618346977029063843657119982927590629118972551667783114305529834159623671010601246474929833769086625169072478700079821412748092307041867576644021537480060632826667045807504871532817995208067844804471887117583091156486517133174131935853112145249771549197875158297530114099524783003823703135961589244641605175979299274889123893677153733397017925268140898279400400717138767845125251187187803349147924872770602560953426490146919624656730382905988080077091594796210375845424122076733872340145202063609925395218214072509105948432851635069445043770757258004481790406394538601832063708991896121203163026483163734122030478917475733395612620096348994061084059720965815705272642428679079050543142304938538716080079509916004242598799282572982731615229669000458958524401172340586346707719498607014622173446076573377755036012152574405362901507006158967203402090202193886439854901032249500381505806168997784762576610461860595044822703610371074127661337235676836629828182639589222945581911872553164965562339908978545571047310036927318104799459890853654309267975173102281394087239749447081859253250043642382601391287308187310522411649207988735324601693610620730916433585932247518757281364793856461654227937123098781928972408097437068138852941570018806501292513755474657705175305243911240605708312231930953771775916717285098817917714784082520278135679728961308404301826161469559018634316294068713450414565537885554143314181621331452250599527361131546147555248884162517891183819050371673186186330115983964905906559261654095085888529834719085965183251937704588569413554013800776461060550244720660910192832822851317496761030663879335936480422483227740050568262383357667229418872300559091347022994780235971791745657945003351774994228448482997076384966715263478221399858992677812465333162608477423849353199110220301243194763003217359795075192548946085456760282376174112073298805363844134279427122894435598404377573232081053405418793174646463846711145287012712688662911438917493102854626469882107787850277953522629045305850970230753186696573958240571001506729432037748521926737752115247866085387479262393903981042141504121438493361070895370668701848968713093322320266089747398357207439927241944139256638711032046929112238737420596113658519881942344947222753231873064280771205716871132121316561564305314160238593468760534632049846503864037147198952523920934483448064534353331649014538875538542544129510642804522349717634358042407687270890164252487946857681307400197733161962212384117978602312634969070256243258989896440553962710542248672182760022329958426394350533721671135441286926289395576652775413133150470134560206880244169593659468575138592689564167893595525853830475098456227863958520904489740102916644433229410905476232358721343337892467913087878798572673060038349306268115532796758281269704186519110718924123889751885610496264700240617340066062501949779917129737448647673827807825818127725756978529990403691641886278231597516653352878533587850996200190494740351904881928512021211963419028266447897631973742963538657946380007086704903677542268040278625068969275394699727297564141472282191518587155098577224585692450591140228272808906531313461193858981073661387122452995670890171135602566999835401700827051058206193486808189752441637117683869080073609135519533726720371373607933163820085050131526352158439172391933298412879955998575666159218566025021711805215526005921395676610209712785829850752331037055349766232737087344839594807504680888375284556799220633714748622899094364469685897231984576263667913940287166939937487245230200186344671959052636705048377933856685097391507942280832375136424319832272801048048581001187785234563185069989914074592060001015678221179615983716270827458859855707489183028859296757930266781149764446490582315477388503957662283524520504807534221705324437088914688121810875078194942371035683665689447349639780071539915405382480019175245092320325090030606997213038352258872541227291522308704492179805601144763478600033115282180265468315589764881607063909119417304403641915427064418190275668075152254636587377092472479167490110306703695845594898749814041915105329214065405164499648528673908864939985211654362062634599329738110203423789599546030876330217334725042825824455201543265796944721276419909734670108389529603668354921276021604034347839002579428872325608508592245038838264618775384753205040293752672556327562773006766638690321778305463606111634245779378079304007347567200612890812474896255851822912624384668601895400661419785589298186305721338224042242138901716893626111818176253907500280647782922274692177158101893558003515589504553857309308183543773853544936448126847287880272412224037184140303991840990042346725861654078343235594812571650208158286801011769790785346212650705281794160494205909278325889259436236469191219931486224771461862324893345720222089824102767744849330663326595623897220018774034054656147180374295261944981381194930599821531266535150415577560414663202559511826468004389068367483709449268998894851385421884956902230953690517360699826855223653262709647520718301349618345057722389474776219609298670089725745925197724655924925771167572452530641574752801155692610118181242405693967895958414323380762948493282938356878710025780206256086517155424442075214796942535967715306303071358047279586648242727305837722238963054136865357256401126532322353312074979139470394014756734149785984697025481565003587285158350700972370610258681325564746146183353516360597179656986673804907576161097059806867418038738541777736931384387212850876461298941523699356632337374466604171127136821256878748583009110721297021870761574600673287880178886884441727281009133650374390109146199314016775838473197617521859114896761513455298349803669269397913520226079778802191582221344502944032060462410822916220312290865703043665913641796825658780799107460890083294229239462189255414956289660520995438073658790410830139131025017700250967048161187713181215814293104478955038844808772673850566890154503085716333823642464471147936665494489534125452817847048504658826753544559999834532060981335779287731110023310234920503242798479430526601846326655863087876960125518647325169716550733862995709857670035828691030585806596779301887826416641180810796133798454420634805389150640203213020344749541469506556547422812569041590509375125657633653687298949231462149638157194034582028218715546108713771109458461957854171984353581762123835066074222740747676705053653340540355779956253540223544946278072092576853252705759203343841079629028226233405159258432228584843072925640020757704614054347380541271605434354416675235814137021008470487439817263628862104923807917149647145883802887769124436705992445579068164152358838650991730909339413759545198817249966178801997347384688461711491130339555162296367520543138884851688181436431980883998470133738377631676969521591972306006386438796809039192354001374592806453865193383455693374969698678349194457148337884257388173483782013663594661260512839206615131486600975803309059738983011015382353001517175653090210512859666542745140240120682109357929119356756112718777643439000206066153088422864669433733574953254909175869939649910003615394814248643167005108237337121601476261188311190411444659211666530318360997122321073537636092852119837481433617439287195283759671667473018954016433735689957804261045189319320272067159598124143157018528644007266296258662557384457055699788984060299335228023324145160032541257172420982485733577576034999201659066816458226166840178780058795711524934042304053211210585900723630358806447976001144899688231416231452562830890473903984188088528924444204037233670545868202278272683004790709584626659640951726255239699464020427355678287199319846415545016210384425976408852473162359168644926148679028225650605798448244763077428654629906577414920414191844220538263827140884427166041016265302572029422303687440054995842337632865037479411995989466075381063401936371408043870410736632374869169311592391687702705058735806338309966900512544353355418212050215747598750617831393417138769554816292062698327446244076256520910842420561559565828300428044881996103960240707638148345347812072023604544601341415437226456371801613371422802095888756681767493939718794513179220707588493707878696150420486203266539186661884580465741927786326040770840596331123448012360041717459214058708236486283122979170081450863577927044963443940787367295121662489455154067558449840376472524241923569465885602401409480145564036109828766936170844134192109361918872672294989856714143128847881150201668447185816701976198808800155428230941351120320372702427106228491127997407105987652322812130580545995442357584213533174479365942172558787443042650188520902107676483822318443600350292069321282518295624568179504053444539776294875341424440676175715336856780594182065193022740588472087762542073482991284667292035662555781377867735540810404119035959404486664118775906714572078204618555490411207373338665393613840021069285467976045711104680121205780949960260822663217401310970467114679610490714257533014500580678829717740227471168229071383373263346121909880223453515787662407447442975496418991951167188386975493677160569861559276314160948918408385157519939643423789550770588054653448520337230564964222204589027517437417206427315025769079722251137301915119943267855467594960424051791440535763434261339543491439895685146302218224756947230556107182425494714020251212910272033368444703881036028931720968682793100902823315387906261894002204025874483386076260678494943026193914625802580196614090277396695710965822787587516904863324488303039635731341119932263105657084241513660425719312952530073603084236788991424599216243519000928134663308463360550852608558378854476531497016607417948854714593003339797574157273839842572955339819033025966619635535310625771977560578997986080673000273958128249459690124673228643513192443207447732012688603109355679503092783473241204111312129545705900771370549319123695668075763185877993795416496891035670462534831230436104183224497087464177234727333846279133448707038999382117519367584353809349197658896723856276063661606502469207348392981511107999640992006766616399452533937829437611216847679998745721378694224047938104857334912836771948820633908883726018499213144292825781499151241922457309143546013242832707701417163570862782167532585434870354164630498786892146708463849696035221820107494794628058730678820791119550584590105786880372119455967401042423207895495467568035800883934600737070692512155956720065361958576233749637322379420758682629056330269712545635680257932616391325929008646944515762765217302670956866398830622908833852323224942688199291764282776226525418902367875427403180334241694992981546188723396108171611786886512589063667649569697610004708733771617405176796230125329809611640782576076635751645193429229979648955107209968137767577156145981634155488533694803348425019805418174484865108415399723185577125368168601457790393077356647825143916482502388692426945767778936426784146592964744363659345281789739924018070085548839606034001167038465864524771219215884984777540227846386989425264527887505698346199584462998058166815626685376162264536095425968292537201089178602944038991547602322630670188388525083821482382327466031665780878800968540906139993218036203746968796008000488498427086209745169242716409344628728724165151163334420695968181455241648831481638478275475146453961803052887727641842045643662214914968341996599281206795152989400412025192911015323203865248365695399958090371848016288424527896024366653813458667052891903647791519852220896454190473361675920369023493047429644925836736494913350985208018072916203249979640588346667055250421135259358862306639947349256083593452832370964502577502701478762954481489137761035948669665700699572447562506007622218532732560659203890141393852385749430734633349783033956705779081289453488637851744815163806378847598198404683309656746439691909972403269505720758348215060951323956818148404637403621943708651441402455662713911307855487894200727492218128887942523073579701064281848181879982741860517067363437073192325608345797722236892258466389424853167704579828319999004439270655771824642028583008687424081826749682718168226386287218978502089516793009678066326805976972938718890085609680907082432800603794231299547245601547196208772386911560175603760443820906734615359285996046651310530151968207382510235753253797149807787508616938357213097064162343380571242701828383609078707506972773781004190033866627722021403767511166276368473313516825633393797069566747389938523560351528896962983889066884109293763659791417117075820721525957530170761032298155908020053583573896222025213097651714393233548977477886883916722403718240570149888733353002640040933899057673481582330758146897168835284065924261221374700795506480778378062308867146715935081279191837241029731167558355864851682246512435305754231281002194937926929855083298912265634609448064172729513248221866964406191813161192357657585775477945624818087067642363867889634671809917499686235221341553727088682897355282003231620341148373695117558501892470512825192561718525617507392247819502904095464983590921273980174960486214944170326297633687964649138237829059670326010938698617643398875906672241778104072853809127106495708921566407559168739691047880098989490439146353717677235304485345975759936180355489863026978023835188359902377825078934295491124747987063632047995656468144401226990415311778817633160633236581056139188214120315111430643860621973935775483338268265908582849570002986909270788995576301637004059788497116647693719722480092238012579867948866813061022349373036348826899673054608853721431423782280754304289194139614587052480794820440619887421529414267841672049888193657323979555304420312963704901844744913581629218197077334070365237055113422807281076119831835596446299067349233880127421880839430844658704975723126447150111308779234254955046744836082797593124607529734886929836236175473105554746778857590327773508864796760067623173950819048072860211283995910887976929627743654127854425359252241614268675493429034412834169577313685928614812258075916950148771115320811444264207341000763480987324579288129393482855240597968796222972166634936136242342309126561610025959246838069258514770697721124842002464498894594601426527296358602348700186925264177964844035471401706223658987578019936055005204025281987744995984181984875004456628986883138462447882530727229547290315175136986195864874704671203293025596960287005965225702229097506793348237411175734036368047465885619781947769025922105541501951775693110871743013539382814891051518373392366913078744501819318117979524243887839270086785933583003153925663718132723568162608095106907002588980985692892358430295853993454288296883266371600090595649258466581562634230649253648107900730915072943475519949116253522127296917422687236635730329749227549595602593931089555080497139599517849491053413257891223962657025312797315250931715544508733393505461265615291572551956506130596501972717175016466645394895559060219362659199462854287962960184852992222102553310950155187698341815673338029436408804218868509405362387766007339487974827494938297599600986355155568903623921335883093320583142597982755048123755240958047178249543012735298631343094161267548677531804934445499358833240231335792405028721809451913474097985049747274954640805296880168218497275014163799739599753512842891073665569271828432164168760119624241487067545424466178937080193255263821818200758841438816948202785014831249873447256874356097479207671757179759628395649474165902931945292597309908472173374817629769981767313168507824745534382777117562817935226389109827938838489799312612654083958272248868679124118603345020584978113340647288042229762433227099271261897687897900627827917315588528717257449332261550197299947293854823435666380366262718825560895672803993711988953992705875608221887217289526162636093636657243135849711958597702693712471078636759376700116857360538173166472137052063091142718474710855958598447980493080358560195240989616562735174869431049942688485926616943835014262180228576164437531359873896947683704443725192764656935642422672416273444944899799123650324048742869497000641903619508518347636409258560348089536382759280316153900909500759112155394094171737661368619847945932710050987142966347137490604593627947675497141551273697231064809263258214834555792588954480441383574548643638598725076134950743569952686858828391764917005242047185654589981475024944328602594553372102178845186568613792603243416996317549321487537375855618193670897819202405028891279232694244984705822221010270419499156622380581606376556300005418826338491673525913848750722356805101758853640469000802754117726846660053833465075095289450564928742744797134787231788567974583850298055189735043382272860647604425783541012878677798284184828768844499515296987380938866430724989794658556120654886833589479366730308911428977225396889478212161269319323812720588984169489066686589087341397792929946287674351539957398713416395791013870345870966403478453919749158208182229989200249758483046410579931719909641689927717465603131522369488558008376645243776325521346563672055105009396087135721108141414918589717164055374370005901134584835286224811258987075721055596954024058654017078627994450401983462533767171202307255455937392563089434122719711013988414617667765171132405252531222332705340121901688646814322303894376691607453971478442502640733869121594583325375832844975516620838774087563390282316073348352423574329325205010047667825961237304151538571196678388154707125325592236651713533903907844696107521479815795093063388080453405973012869869088456564960720877169235400235255245440782850583398127567502959007679061820635040363456194163971180594065850532598581644500575413648955565816903880663320923975256811612793347204152108453700310541435722990428802502284171997330297454978851379264409582414215096330530016233111500225658661555324537030867827287757134285567119710549593318129233747300203839199179166542565570812024817316734772463971709027536155210504500512248312185940133402164684408124904054064678715994960777988404314251300818655134902459623211721357695136253938865531346945408546778813705148217089060646785423632350724114442631538244479489107889336266475766882273762480989758119446251046478482589106838935940501889819750506100192796898774415135222479912668040728784238232076548278172756966886384875524909623013797533696300729620970398951502501106244519260161190564838867018098245351280991925690061434708733856625819482181035409835450104678381886947928911543219975333468287760893730625781485790844739599381969842366306442775617610230498953112432087744183147692717628326845670402004653816411624337827112986701886795761034679147413483008555698603686407821449025660680225251541090639688175635393610406148227180438955509074997351975721133984331313713915715733904563417916584033574674300919006496684577011694751738423675678631785633729144293596574919594712717512748338605553723717842108743961104898151517549444228487923779842955258286035801984956253416483061427307167068306566772842343037521662937390894972776153369096685361178056598569343885248621396616616557499034223538416467596999664455575373173384878240256497575247530254050060792266799270554134259137230412201806437658963255142557530498534103306456895899841738771539384844169594780661162116207311959484228789991883067253850361162685061056839764248968510003187247582516800992786679192168432229961778328354468797379474202562223400693645914622336184264261804700712425034344434907493439821710865365485334536208718465333120232899411946844833201541200750581240852228318490949258488042954104148523817521060972857725496984646758125873400353100770073245075835216465815644375171869516624399017346083266777746837129710413627030232937810635631474158514851220136395708141946406490742811416431162871429984892417466561869231694863092371972018303786107918451337001500681400386204986165172521435891619811245903369894391390522462675608500195429854352107548950423296691238636780713258855904255839361855388045815897693494145703400122115423896149813377034907066566816417664741505671122928259093033986489388884787591061060459130615758050846186217493443265251932427943369488112637806950830393260152174512556958312264995503948730228316149567436186398226385641104874878502848326938917575704004802443485418600070132010497747199281827015551836408261047031138683844902103353201865051400982264808524672224404103217540525589408413907615899882399319142098374346061639054154457782947411571690577599480465050136720458257000158062067123562257847901709307190688606241465712711024495763665851217149318647371777571872623845815380203967874971066765275057504229701245330599157983940916242976942731061815999835278502264720705311362094841829289568915619505476112191040222463533263898516977883503297441192149483891228337147293969249257775379591484232849230778573074825673004521816580571547356320041051905297843897693003777446479297547013409149731377396690365602329640855619538593955139793310717168761028076150309271292808858075518169971159608779210430720557388688519522551765640175007972152341431604873703057299650362383953145080398816907952735040547139208034567051675628672866003115665196715090587775189823879410545179263920479423443771563805714146491847109117105064276345172701275881176713298949541271897876184679403283588642596256555839115435030784433042682679896787331384908829902762511400626753448438408753824821233819328390447583361387659231307653320091778768862633397695267165918279383639588101918744436250053555685143819996575473464833214620256965466812701339751419111142576537036040251100507511429035269444211309429724920661819072782325218924007576005881488000613057385896688339522611609534658442591973399148851074245768136169834434215502749734886143774385014243590202094567079447676003602883734890999046651905129834395183534261122627774571323467925072782702996606737542980498921929546349058853538929815300213262536847411326606135634556823400809161920038332882860187165636803975219416396615393155758846312251544980136702219524302173303214412363931757607563284181731552801656644465752005978035059461665810799841119796563335837703749681417956019814197192163932999392312277984622039983214659597906265008007373145309879967274316110015367842590005850243644031710046634124741724420103133408093230472120734175407865852634308592023611920983494488173865959145797716539514677522530126857093604659673495916830495832843176691773070307836715158285533632918926757354892662531017436046059581353476044234090574884764534524356027079858492694947970258986350935273581634502270019544111681830638584759835740308000326106038197030863526019718534110478540010466765876366904695948840916327246215043821963745349667587559799808756952890138066505820380047416895795367204420813914321768554281631123458401126288220269103037887816108760873115746176400522885105501460409133145644610626097076701684979487240110970405869514040705610037621860321588434200247117423411424299259586575132883497847283273364026672415586736432253697938955709269323142425373591801819097761165580707945760929033757845427053543952481552026265741316453737914650790322059768502104903669983952098392510039576625805836921849014829736195652428685657985985121197292668605289051047567082606332887234365314933383084894732436991008178154773772701072689551583500908391864817375593224012205569265405330871811658652073121866357595933553534585336613863445134274823715183184875275158490727818495070041873366734404066855255921994021930912561480529826759137100288803757843166546882308329696804805981844768120873345879396303302224024513964930929508284667225620026057410349174278543390535994104988257161611033749158637043196004391452474448141819555191660444286125857219145603881602326592534817099982831855844006903853157177927508399642491231963178626840116838394082756379585626089376556049776851336404982039264513405969536480890017037100987361008204100754958114784101332683854753298422521136865193837847247378464500657168712057788747625062935914992103593550533902503349987473678682889182075526178992223796045986200820984116100508407827843918594585146550303414150428097917744438519971951803288209194961558776064405755025139201494630599713538244716976125532421657174100701197539689949431606614205393520781066953641033123714973457934571355636289718255414847419544077825257610155278642321731502471379839870468789430877840809567905713990007136417806198674879426329423224018687822091550327886267172479088784945180740225514611779531458835477307368835373743758124506210996106862434447106950890779987059899037783095189214223319845672731494169103249362630382835157700208121301313618662813446975359039935460340858729061720350266025910910403791713554831950328535035587290647316951414369972695080653145482912952411822690709635695797346811173627944736423197464085846459369741727179693697856340015094440196264236762258010462536122828609549845968572919145135508012620079861642739554164807475810523469541110869262052620679655659945929250029307499210837899658717253238512840168085878559210768304092807001209012170353439563651282665994893918703690554402307059630487500903276919785805731522280427156788852174783673100026370156276372617516960519869370061223215190067748123496788667745430463473800961548653122851460323281402548836406870001347800403842724744865061229708179729048661636637795958231718383206052679298336036279613334309224372166231720507286053407651295691107884545757519727470561392957724446112182253231366943734541997879215019743964684823826753965417072475116019777158118751071392512639536031778427702244077262381418630435133164764959795074413627651953637255382298977017760439902315421873511447313108188641931493544958766439042731239822337767176713878041702746089209204795826452554468578304748403265499566898681395444634470728976526742797896345766214346359855073273318741282524944344920817853904976753628086251526361855702637272186619972658534819427467085914593879654524242842223260408087241645681553572118750118556577129493161363590919964532222023382834294313596123793193874920595073999327216538677718616176269590175739288876551294006034349570448499073047912050285764617923815458132390936093660469158184702182976378151100381335811937255503231570553499186157413937260061558530091345707295895401224093037752522997905218484762835296255377902940507347553333860018321296753981600719554845097629053305337251510901469487875981123387692368628360750229547325695048712576171454279167988653928465614127362676898667543707668112861268761976648820920589387030409203149869625909899011120269105529620767075910431955752549599644734685409790667904746800566155961927062771530488878235645052262906651195904033787604206268166621670572030503671810498655127298955983402550712145605504498328344142415635837269373411567335542895017271988197561762259807309609758491455707136614591512855628850162239686726873853176146716022354528987350092358761178045525025709607728643764929252396302545957399369696701587181314566967670185024901842273777300583611564630922839823016281916796031621185718413374152399502756139173784014997182646283907587922574525013857715994975587383589390200585680170233804223144173170274799015029597716519790791918870236803815715217345386502305877788223331844883484185358532069570235381652244679892315336335731799908267675442248993186019617351148719219177357713552201836310161760794250487143063936602162374757091586318043334619434377697445401501615242256995872741756970178593030955966285898113122137775270750763719812569175540483627080398558583048017954021142036958218355494251293454921334725991961126251430395452203839143758844132956126279563915325342645400110959752404615537194999810812300433193472539561583054029625625012638996395900673982915379753632414146352267047656830480253054432138356268467039587032233013118403645630160619279612609177670398049335732233922152107797126309613330290214986216935780102096286302299158238824795424631340393168123712065106756948674443231964609763400467728243511784978002496815400002745363993717663314562571123750164972502748776546606538126522353352571341625433214747148029132272839776956081362696191218452241738002195000233212375423399019450614941331357536156258858878016794448895837014325901579884118283916798511175961951974734109218025467736882041499874676895475758565878257878106360631934402126385625024451383331949893497239177592003618376306572933774100604158305521692234287738496369663363345133728209476080502497791882099572419757554616065014626510504717708533176099899968422393731708249430332970856878225893289260877228730503477956967872887497304579863672304750397101245968104354531220782762626553514551398010905076294290259457499002941950919420294708281869618533040237183256072031169417504433125311429791757626146150279127335097412516155359665406607091978087153340430453428059968873362798878663964816660546480958388366545334083978692801795886332839114915713476576340284964081108438876282883356710347825251495309311407606137894538840009802933892608415855756736004128604330337829189782307045054292102707647490108958206680858491403821669903486404369985853232967348136873855623237858446817621809772306759704859319402354338951710975122791131762972214153271451501775616291329809423262521943960905649101454083936229815855510006703704063366618745244854251934728948789231716114524942938466259517009727136277504255693192152773515172359895796591833648126156098058284716360686726672019936869002008091064096251530945059489124941373040041264804460348434089350245886971281177245499101661938748001721854387072101350152438053681675491060768106851243915435627023437534793662858445747786683435776223645610538001874802616481441417561770080475247566746317436596297048366724898120977485329050165220229537093988860880456128215052344374813835478238005589290003463688463816851039811879820203621088740534906794991891248722307746176090308193968287350806896443065655148744624247408650954980436630091365895744169765148680535126476742005247366078563657613836928318052850149436267663905922795912734256203005995506046656564796336822807680829905112362816186778868762371747822494202845061226009109423010964930621862691123038388602305046885391888754268738434102998597661016875730980115408104069030626086623412296114479096043163734569638279144964690143895380701289003833222650799796152616560750324076819007770747789850035010896252760977493701660596655811128842016434822046975936336349828969673739956494218083330611782269100611121400894800097353514181775573983981560424975748401349955405077762532947192534171894457891952813752861926679177208934326943885817413856335351617487270424279917361911075255884761376624582456174003660590757172565310843330336793512968760641946863094143228755785532677557589114850698897827104603252311966734595902484091791241080987407551374915567119404477729033460947688210605323618991155072952723807677113061893948339573898769838932155632194756000980202651293000813347015127397655376143036491461962957095621031255310554594002161820673176053621729573221880734941234561986818353006867294973059473181304502338038727942788042724027378834493521347866060842961833278486963865017709739187401237736980499249708278342181121466577715874416481524744987661896217783434264885574096831402994753035831051451669335559051926950100051158530901429313714634087398612964727701091243746622242472511745968115744576791110983887759385799765816734970969864774600374896356831375293588275331967144067701226105024185077186197097627870602534685774324693617906360696260637791520549507208889680845779596952898527228808038584208871885383892939142436499489170755911899330397398028168894894380833599794654849329365506307584741063753710788647335423567252666415883876453473450455132739679239919475100265012973073868449603321878860043047955406973996824273934148388027242113939208574795388377054116097233662503940916353718511609004978884140692631293405046433582626796452344777466024552458138112215629789769949120242665919703924012348274382626748480353204550560176853708509522923118424530387885448009930053866972759630917698312129613038125443376513051643822947806239343197184737306561597224273058160536218323836268047345513900828606455805168398965075111750783877586234350094756881094366997791225696974842920112973180288396026130089733960293224020324534750495455366382776564076688763386873450990276795184839814028607772980405255071600791043563558910599444963519037833724147887397971291990782762558787601202830782881872227799294755251237246787366219093986656959649050020500519982486276954874785107594152910310331022963105276081943487217320872386420912627328502039585834163494584809593368997124278971869128733003646693757581259334536747532045125390081317080958874785760939130541235807356297611970595626609458555691141146277491747755858305636184988586346958077436565643260106774030266831325517912871764318823674142464346451417184838716837984756156247536497161275171789706203483105342906536596172224429438420152526112585478243793809160641739973633293289334615071513305594935246405288114555318133497257174972508517852565492516643283011519096825767062062992915088305716653329478457603998141726864564279802186433600028030363669681359740558163145022041162529296545227603395472459548978163970985198569832782744858370573321808141399951127754423879524159554638212666045168992194185657026304211567719073265739965163166250594724582751186038157446357200119542794184323477670480994058160455857838430951885190978934068284657261457144312242472408480306310393867023712981735459410674913276881275799027883539095670213711527555558997603680601162419702077290726465012169909602700308784951216819209239181881996053069187244133612991213217371252304989822505077704834735606567250732660798861427864190361047849780021878607958377348499405966805849703928701746741746330093550745196419701964255676168338866283831226590463438546647268662106668079106718688658505920655541496582154245601216860762422894371607477672824434357011903655331307952725015991612126826180284985138327669676374677654653583432400258767924458020278262938182955447069259200915437294237316726578103984180810005141239837893854574517734314885815054446020659543051348599010542863541751320057516113754629965584857293427405039358313664862289089440378309570700213840574430269858215821792980531381874433832793190841066734559386393564803252715727267037981768313497591973430661440586729531824507637593352546786203711439755279844443203665579376848186455836721472769480073243394804492298736402928318600604098587020839885322303185182161725403996978233724964526620234247610020236868712757610551681420106965023330580954828293697586894076287574592218609190293036076609568382549831549255033263239419249073068499777242857558485464063774104191817519635728498797320020931552528879108482090482078860101011032456560690872281011419122093528829833188761643457520805559480057777846753736996167148380750458427974867689659076197604493019990478476525701171601581241737149627757674957286083655124266940428534635241216280559123044998301912616290703223576044973770578695501825366506066297696337204132485971494580015728046399351172677332048592440650833022803291368994698598611204962014033136584924910835338159502079014930454278396543673538297350862044388634056958874742460155937899466650375017468368462202140091167450954042886368929391593691267398563059324736225449438828131733001607032762898130551427020678735493785508874975977905047192833345392368568518089070771179572853701470425400765861980214117269695091346507649501641229472033372181841894992356982395102499121831391297428025740680336921135743949818656747857772770481112325810082566674752701801147085620190468317160361420153634732141199319377393110075356358636968136843855777667672895660555255737526837743653487941907424084472839756768819829179727016944703544219735221887991176375344895302838997180577489391602587066568415732908931411990324587969257539201326443460886439679976182444215342520396120045612270807134264168524220426384269118701096786568213269184728859093220875177754873800206613723809221312089906743908472142040210913034195038263250907896223498370498047632472688023966387630627225946577214767381737515676874147452663116364214475958926532193104443172923385686785542379693148515180569267675834296073687214664687157000733696501995765510596938482553978997781732095127930823345338416572298678873394183583607900316355361279771180389506045777698852065441786327477747776224428731306393468090226375900580702426544843312944069864254842948168691739889761766002623645222522755213590711477104759382795861518999519914257710021634938714114812822693153660530611118618166558605840764261475284824467522318614470907160990239688729073410802039785813863236040979627622837776801654154150109046156063410533283200985047087272163900176755325308897008666014669339971919697679361556921210523076550626775104750389654238008373834962601477008159427102161360347016867172495477826128314207152311256678931066886164676542148701114839790980294512630194731789683460048072565832973565661716906046351619230072674149215683357176629090552369897999468808666460030332730301508096150304041462991172511333897308611020275911709006480033751257290000831109170862342659384579402948065748029121650407925497180757584540728879372389884698662568345014064476792908167326506751627314590039735673303605724792095454495582236366996129399035708324241848784956795730527917104594744574128556169911993743022397045482408197022810751551577652780427844518144577154668629363218460909768708788000936420214912290275937908091966243638794862663793680056309900469700182853897731884048664717480970650972445864779359596653711665920836385324723109830718539781767484188385564340899711252384348862826603803445949968523269298087545090658294706373218299583713954729685663968373231005668305629856696884502459428843489928394366534104737610232950894629121552196667025977834964028491718246019591046924699181358409929403139262365337421820188088574082915789129767510985779010191179018367446789683341735725211524626728367585217151178559006233586936151663683398148125147567356081417474620077426970527800258748689675265965695195809677259352623663908366566171621770879921343105542824476712956417052900849333960634871795899698889798395153589077308999333546409037789234157736050788449110522914705137056523165202753977803128387669027840380893338678189384786076622616210373506431772789551332598334463505263695541271751585659927065413522977739463099591174961837095518588590910507723346749156568377104546389028956108934905318724028503523263259393890395731829581367839996557138317176156649200760109184462614647461883988978064905308433018314353453351582469060010844914372268540604209254633129187954118263813680309675745979415097872724773910373094906425429958827751470697111328212852107248703960659838647197675697873421486727874038264730116385102596307658431094908196873616833590078077004696102236564129333085687969494758588383288764492256006641007743683712563726938857945755596914827136387424825427070359556475588365789475200077315681304601591774296572477541233174811333881498040148217744623701123584994464837887570518083326237059142411637236359472028478586768503773317591715809599585835745479254810042102721150369811568649325229174221477809069929700401033598783026888387403270263763819208896653581155149131819103864538801897695609032868615451035350589452642822792294757563459482143534961107980804445315837023640933445545497795406888860653612696563597782433062189163377007324938725517343221452772896153512158677612425317714177210386428510341513717444493116611780425493624313296631277727956780069728345803551898727735910245733840636082559937056565873827759251148754674038708044408868251311795309528007712422231452116259318649454699421192005044935397436656603848712663873996818474380193947001866204289192220295021930822566073951957996536083812413002358603075262083938863620525672274398942490187726644958288515699409606785095938082055341349998493549686077989045914509021353898110488785369435535258817550588881767800435238955500578859689133855238708693850304797397366333753342562231886293105210975374173113276887478797601550921507662265206559566320455727804049039055146900432734892945548975207358485213635521307361719153627278979931786249345163499066298216683864713350621588107531214034240271275761777523834118842364578328040797603895247271314042181160073320080393463753087772885940621225832617888231908017347011902945774560781787429566538098152914410991025821813745197442372328177485935806170207335824232448535247646374955288094790546930739532300398054679585905430151491428416070917393276982283177277811873452462815013585918582687961841908461647401889903314201533658612280004144243990275945113045328492540749870382842291014479648320594973764077014563526938371178920121372850569459536466305701448383462405247173545492994688138553001777439274916044071884804514067017190039020736543276668488237257202672753192095396305867863519338477025714064746374007144251794563839478649918454657211863047857565244504411054835797600404266716589028304027029483641225487577535941178032100145916822516971723483171849271387133084250968854681142250591943642342234390512597150121832704575925659328563066336096837429860492212333893354116924143613341422028089913985208299444358113335193992701886873757854191806794579591268902072643097972337144307220995988278315907298866466283594336289931529483414124925864564266719892193778499691208631981943078094429768399400090441228326700938071885511039702009533397185556633747630894082520131375237741919734046194848047257725124316605700488259449565781475834688525911412778499631374016236181449633158113727872391084997358921707617118248959985885394927376855666484762132420080431146535588872289121459073675888285857880628404101345243157320250646295619600852466464976094109835461770980672462370053212360835829648350968806592781452424673686745503421911731548618524097331451751437207637452488728230517625120690416760150397741573599785985714339743884381871514929811451815217670902586545896984001538216321132251946695335664838010475921719836162945288308661235144857012793409123421009355953123186135048582741536011479303558058411481443914974817492221695721677840000148750573923758329423267088392063562508937692696220145874485852290028818056771052623180695871359123025449111326895083561138408696852569552664242717186053998720377052389500692569181364053334342892149072192386420397445368967002499763495802874010124382502735670985935888365713156154990724383807223189387884980795476205073470601287900089600502184896662996405160422102574339778406758324339342719154379233981072182834781818659211522640137118500442750915403717992836482618065454429079265083659661469376282737708297144713596194258083159417725325678634814711031768729634794661515868654166714876353099153801283676160647695063243083626300082381437915074461256288928698716586298596507964647440358905553728087698905223188207914314093768891719270685786710061406459521571681134689901319001472896466344346371814543934578183491299950557320521731892935257727193778787501471276524029910114110828685030702352105540486767509674829656184869220012798281816802785094238316008521398829662590622317915321386353993315510681954408867045244628040994928882726295323159900620271308137453068167003716308284077052448867249536545785530329235295602103667651786070773105545083486307304589936796559988484484048442078368698034078800907576840728365108817592196228568286099007165420102352580945360371147684479907462580131414501333777580105201795328187933923692010100789680502587653903721872242877523922720950858244263866153101603938233691297056751456259221420250691713552194813111159470449133687945133781802807196010552247346395448298414303908834362466911473412333421661982375655511294534717929290583440880735978327063596199004255851065012161804343539119180005847801080853561070017773024952516066749647286789767007367166148440732055256617451748737697163538983660255555231492637113437207925274811076224726298581129130842288137232015454124168292544279441546391322124258306748541280968510371530270133535817940002554240389468794264827894009382263407287213857748719242399717683233832621960237951075131819875281481123357336750863348930932371535274937136812528110356908344417270079132589480453302708864195287101004060792153466166719000248913631081862548076524680154485582622880605652831893763659943703931834914292927668856606198835742895357431225943599001761662422407182945625453717771911567740022707858516949850923070588996666472848359326130326336420351964032846613392032956036876231923296930397642644000348350530998439842549579298701439542629820649387810778036182004363155500864217106823681422485060087133286935118610520757310257839290962180214779113039074780725375932238127895688538590694309844031297989870787709500576643931461409048957699404996595215207248897676907569870904592788632396354240461647943702403246787740757757650676769932165620665374999628912763213472241039144626281242142853928937380083979456609780761872518271530924139867104237951575894597144439044241040503686654082706850734014263243380024415783633301082380548897186659371761955001429476308149240156646756213723484299838564702140210304477195111867157370046397435046161854640615855376424377005679389577765076390004429718584727429882660270604202939373116342821497270978838474422680214333953266177248850887937723661490915919698239527881512136819724346924552428823026933802250150608103229926879171552504606861028101185825617900278384495738342896049565429890660373451285747118982839857848635995444550197516264430907301589812998925990111831938958920480512096591765095630026067022237885776433457011207433162509248224665051919899548980655980510889130243911302716016910586085619526350958935070017515339940266599221943320116749310329574991034688861531108744902403492796151783539063886698845155560636854673279431066085333308042523183252126118417191714648885648294888526082248876696249822571406846099573014051685267357765835292242425668428246101442046606432107128003045750841126584139083637969676286276872689268723663899609419483772234114068328190430583341305918393520408367413415236942888588613817415513530222818315586342745343498486383488551598814235306848792262040445006995432974906540374808903736208101567764382483521759886310658668474605520911287490118529101646147923891340232448412530666273174359183066560236193705163143255418493361988300593483809534609547463168661919708781596933018311339768080281480365420454582820916788629059715255192042073281022426714767708056702307494154688442323432803289838484423566373206389565201164113947628797128660997169155238486752064091979543295992611723986561745398283330709535311710063856675463715979038418805513601811511794800118165122121151005469228521870005450166379272540468216218183143556066760923972965822373536570838043209892395095183394266759831240299013449685183995988444616558017238449436178900167490621462335402627363909551853563602330730019213376348401340803205954580249566149133064985641866862909589830468252617370924297752079995361518687077388828131362624273074791476065207043187224088983436506961113147260866851078736485689725676530555347277882203961691932794375588886003781952496460856604665059416288834659696956399618461483120365018690348869037817643333050210747464475036143784528977230224619975188118441813970856556216951696372759532440146846072877641868531501614083274080198318455115176580606454286623178026302673047091421474299306166187882612243494710888088975901030051511047521699340459595178757881349507754276352205083792995291427635060583951949271008276424507250289330880147901409362101315552002105676512496623597868200657284038763486924513048895841159620775401523712667769355648047081734547754035509770910522448173522754779714636259747209483918228069873221294467848056832717845433266272779648827101867601828298948004012637050916838789848288347761170312180464724457831973323958863725047445909623364525235323589927750675225608862411771915896828046014428778494184801375236428855946080324248505992748379044404596953423709601419358444935683200622140543829412598603828153970269787087539428298910892501157596084879987694330576765800269451011310182115130231147154860622119516536380920307065036633064755906376096088758152181176848819115187732546523808897111304325053065809382456460131261241004180264081156385717205353851508836012442787551673449443608986629400170917997129742034510422905265348127597310391908746024920810647150080190119809949820024176428915284267848689157367331012366059230851275481932226481901206112960318786464300333349833115449197287254989159684895405545438784097592137943031337270942739218414566568347850572426474994444221429646084473194021561021077987461188586352976701193770263254362652444904716455293882175124952684886939870159034167372166079085853342912283236936617914277896405770939375979828006061906846181008722265136907301288067429877926254271910122171755403122643734232332120987843767908986991602128799967683982690957433455031832090537530844782776067951609526809772704778010206446004498678795685403494317292423183495050145176573449493558682261962045885778827774949679738307019229897555033930415194545048043168412735113573166963253713686833962348514366963566020431474433490270847279166649738212159666648186955385962573870549637360954288331349675725152590766889020658571218209505565037534205810557720128453560747901266503061034163879342201924252215724748724817487244872139865047054567581864818645064643126863821541444836007630367980630814267832456319138824343241742526553358743614179910535820381657429316839787814775282461904097516430789652951945721528281158178854851782663177633482195337622823955876721280820577991741546577494252804292423230096841499544730964573820920657236567445474321587831153964378942377461342975718473781729777214117561640517388170472368831684759100309451476949709066707410204499035114120347650532762330712095151855597186255447446213522409411957431551121918446807104489218936071110638602433913829362268899710068505498819537352454359113160253260473009330923321783915192867002607164473997327717191574316176890016772163473009357313761927925036199925826688713045969354199914362601234268503131313226517753350080180864014225191829047257940155099794392288939203261781140500390241674982230715965087592401005383867980082325555363263666186334978748286285811599653296114260305433576750464239048378706806840020235927744017873446586040516539987649503872943107086816561686531517668547417783952081111165234924701197063512030050538789735702467477608882669810249264653960505506168532575519600633785558450255536395523885208081279342316307140051555577702458382566941055179399997950255311880398128085339338012943916472843314368414469077368583431012775960511762487439721935570555492737408808777769865024256596746711026436899688072831929886612762981064327975700149728065138662700836181035142106311525279992113914083824394974106198107996076719504106580576788625102163671632987003082254129230269264964476661368531279073163666010087149422817127229774113278920966041725587208495023715427456613325501239004455756377158682167330931440696061958169283321292852829290692279328082397708375120692769951655082457043911532075304483485594786830166237542142489043090491348431608878867403973862629128894354577160827744392432646663729087164355613381192344352865828875541201906237644688498787023097903702444569233340294476612723266855985651107718006441574047291949435134323554004120481255004276476853583515034831981926512990844042853586172762211841210798335412517060438707269097462759396656497358639885619627235316888488371718981420986331730316262397844255423524443650719033524054589110019950349119937124288755050228354836311814284289684766776360937453731962996744137206958052059408776082308548333885498271523595837655943496541429667880966695413465559477002295313332150061678008856147080429985303655900276142934403086497065824569516422460019734802028982665562167098898291844804473139236023831875673692930846677243286555625590643236310783828742119603101150852107607428205871959655269151969837413087904443959245289457732797546646142919867806721238744747044982052841389145484982929500273311146507518202239115532136215863405224855129534484188222854477294725968096056540917042044283760205647319732039650145184328805302272846271140848662008287600243914454564163578158991237246824772046267204105008670741104422420520750380302558526741605364823617021179926973684797512439254968062822551270977481949400764479114949014851901513578196003498145379632432171778939258350993490916281827474366828936894094715291934764291271631448379477493823818962020236190791430700552439185816883230026447204485401811362783315439727479875560565048123524745181445250212900025320886063761301211419279889763781599589988340674597024688750021083668028743347594562985492325559985694312346492300672672696389423228069447450977142087892298221435912852073112786526508374252399239764897314606752942192685722085698845435740308871670021889329272295892017844662014438764175812344343423357986553852900725894369794960295694683301086854824879556737503360904510756071654200378993067629152791608544610003339703412139602474353930699943529337166588685717955033430494751615370075069280087669531569098583039735388461563908998508225585096260964605220855587995994075025603233157717893082636129178139498977083184393281511517318732011985464848234494420015158191295710439448296883202870295839915569340019612414573984980540896996237108428551414636308555729003404237699150619730872248621263526498301867544513177031002119557997043791691691172510638094419539023378089295742797988184242968739040925392148299699388743669473937288352764181893794658076325932795353596694587909636100200131674955091959327636805152273577196488980648450991592337459597664071852137604825436839739105535155503451617673943951764095421579630749914137854910373629449631019965019432321558975489643295051171157425262906650007130331224600278564882863082597576579610342087393803632485534463010015961195787412633787019551370952765880733679217929850933190577283171196685518605869525954384576491130460969900767356633293213432849727072610153463556081901800101089749157521441740011771198471139954737571571322437778899117499806060901170692661082578745459604985206714751848773924108599192531535581095857336041163112260327469222243074560813099434437401648036853676053655242654257682273075988793862355501323083953159218128721971166013717389572901737681292302239063640377632314064213844687415839014123333770647796049530298997464086689342566078449565747875330635162841256448174171232045965208880617039942862009102702687824843656359462701193657954191055806859106583683445548502757792030932699378856091578422083300369860272260002879388820446939153533389367853006237235207637055189739117995610058036336248907219777628418823532249945818527686130658570884802555438705048544530005410880205065194306785123049722788875885412124431203701072990705865550309770990236714214537844103782064379941618045562388153152725798255536619599886061336680519233309005356501654521216859156253887393289119691174693055066390623007303298414932815110129753931090300446135573819390232227913726867635036990033831509420426856440656595793933763772446178063371478964449739930710228173025986184714997133422509318609357499105867715731599083192127937257972155580763092044004094735162331945428813580250747935735290582418811509421626874694900549261582431372267973104273634401317187650264409806285935562373688972270001946539504940179070782596931160849880223528258094316070784057103867402388669898391396518218553317024752910642956246396037428453978420880449305871647208372499792110731323012200356050495983013387481502701226472274700469890607800422753576437233308842541500464921690108892480932999589607298992148897750956719888346699549505470374362437145510568041903752425291262869858258042639907689350612218931800826849432686268597493140335752031530957547444407227520643449809117342784119566152071454726980306228015216355694888049557229335878168655163106231139032419541706977547321596147782674823665683624520615411536656349241182929688603145189107929219948605412943408225485086896635607820870629857567711578058805774787798346022187878826242905464663703488185233180196114039840099866676086273589302934232386496861498549102877451815337754806836675039555446878603028417742149552871085375289019612665703130504773760713018420743681420763268118200365888328505468991570108110652053256647757694652921428637977820824635707608204692896758098308314690406591470377754633040700220460206459108000964537635945556573898551872327440350001893921424040596717780843194161839219689889105888217841879324063457305374538941461186623493117497199660984361158545930422889132663302732138185948516778136747569352234225961653931473425692363705572608962610817630107520731686386225477863020576395362042042815320976254337003934268611171297989215828714360932190144619103212707519543152514109801914038128673726717017544255829804477580463378722277224548341446966710752047177294049919774000661395742690342126659708811857040215354463493859608526428040163437083802570492258382063374443678821168837137874930262822093639895475942797597625086741750252107694992796182005108143733730916588942860619775493037790452261324185383251297043205001079483190008604191965226536321848090544308279351647562735634211489508190952564643422642761699347519446043611527689252262365469334815424431842719975986090737652542038162614697018218916141793230081094460624525770993200612058862487529704901777080744656685048460330339340144260853943856347184222359583963290383265957484559880113662191271736727469742898304823953021461048762021862522474919257613541033283376238760466297420991189055477386936216270289981705817228097293606310027695718950644245316212490022955928868927027741957816922064348697913286719284080209397181841054114650782286435295593958633506174299582428026370894712690099563455110366653838291199104215821047468312194217945304136349584046097517114186005082459489272816308543737170784249408559904219517405322215557095787678198703369535090026354166295635606016329958404544490563768022339262128980669560885652610730454732334063341882803045337832154629229567179899572702031645697722354788847564606451553803444220731054361081920961950803386710346046538441511956648341891219152153517722597173892066986593572731632103808704797575976576384539801292568312455626424820922555464303441077826315443342270630376286709492170644019283803036051068877676218329661368004640091137262947149642146147233859811880985045992436113100537712459923151412826471486883895694458613569046126206518013204328371309989087638008678749173042030199138897439394280451177497756771953439034250258735870089027295324069092070164400015277579237391833402023435222986127106184939630887151100357521827497362205302854371158197884805402353014806216105350500546441086112169439941554446339995477234413325507993047645795634909792104018693826375873418603706417285383027143725706033161495014989267265495978757062566695683001210937544149353876835956634451568195034341805992902730212953420440582855849101262940982472509603401716718845555969312344996716873901937136560860429305471057577714523952765981910039015294505224194644706689692226298518417848043202121834285531935575447553038180801369422621040490511340182058951009805531301859605565563061631691606816933677482488358560312433758663421617101574358771968902680935325510614444458596489397608985687627131773316281407035855894853679337647103579317478532680802225034020616692591037684573619516676333070969202976991249054011498472506529948000103778139251206286093778694882803434409205741850502727384529013870419719960570673267554372902566440725983470387303638578171258520639875680874947725799889807610394241512650046580931989442925120418325122918185990299237673490284637916183075099370693741695031456577489073972121114414542451379845976383569115028542455214734637620852237945588738414424491176252675347408900087358240837285554046497597666362459775284167515117498108580771708886777372984332552512912598557911002117865532248941103663093396876407874268995455620398171115028333883047628916866793573392792535483937321958025083996690627921009769359833276338312939590225705629623976181492775113233309918331439469857170336607714087430660060252960298970998841469387632829378051372888289989496644095953920714718353292004449669488473895836784804187265241145287620167121559993750973209390981739829683279794156516770172296127183242764598199725923726755217213301887757903829459956872934754924815568094561269401083379001266970596403568625230296040568186599196204909497908626969706505069796382593105450579849077707672798823619101836452503539177996026290116345897275041952054863330392207654718633416129399556198781626890392832075918371926809791064296683310096378594238568412319155171711037899502813193077593082522180641780063438752778470930876846364021644755972085151153962650460734513003309140948663654543928995088109326152800315361741189411556033157041301853776729173432511708828321354108569928513223555712939436952516028609085699820231440564561339473352073981599984932273299130353502868664596409011608342819729077394489236578028318208313637883616422920009993167374231489902317485681932325023834672319878810354457318351566478466279414787747639137377808797853592883265009545764606501451691362369513415982018080077271933768189927622291070410330077298937732613407564694784887720772980534943403639024281196929289076969784693112371418124702186628425297963926353067886759762232829761155096306884429213038096267869178739946117651873512408759656478610867409194109221740301661323541750298341842892852625500673760871919181688792595110790895183181905585749002708977742451605845543909856265891266092671973352747034054814742530009892526966813531228080235039874995382681585725432866204522522529091470767334929384730684302197521612848537246419383797507772651514664441861330705386973072892512499270016786175556822342202634940851012102776386888153285630988094831460432966700796103061007046992219086730698357123128361394513629685349767197693827253439757277136326948272132649106185181747286868136728189020763529781532242627151765578202725787044960514434044695514310027321233847928237444382701515937387029703464357404683412593768684301969399558565950084137248072064921137552731965754293171162230208395733289903825463108107229867139237849885847947136862038896145775110345231493600586736929376646967756762979313287365573477457177411254903907744695266999860480693677873012427645081994751958724200332743403610255854287610317843305736827416625938964573049145032034527686080906943360868790849038083939149240720062846008846694903525766089527867208605883108889012047952514644601765562052700101736309983010320546810908142819873969744873929646881949541290389601143678913075718707801060189247348136320620835316547913735553582515589121068864151067368871610179699707525948183254035329286911598844422336558050902637799555764888611146150427695848949119483678463385740954406000872998265729424291535209717807033838423499111326253949171206278939143915554875171658566350159901100170764386053960331379315452036983856756081331813143804766835545574693109325580054927700611997738486319258295836096032706521093101450337519263575979067270697072350239750173371508909134901975804672800269131177496906488905495583703478776321314043569780253550530119445545253432691541401048662012840007509516060557726569209127105394399184454785962571162767792801441508127137987711065244700619862349845459161515941458797595334905212252779366262221199170200598703438638593164766791971751132577405255430357100679507415910805674538052451692320890283330121472952148752499772224321681004494428840144348150865016003964959375970987924685616357347806970498333264443102328839701217317410083213502128766165616054585696723914401391163927684851792781873318440937596674453172068419779173944451508156306642927068927835064817224712972578248713646612730086766467316759326944697591427943894476290183722656583511205253295200464434816819046758652420022201731098579956397161128473662691843131473905388902806322648670158679750465886650448527396675511442034872070158637375536511559177857518541979981908424639451861164458277946345012537285438236288610901720128087925679893988428860769267129472209123943763490037431659045855052038438954194056372899724570245859616338968994035947631547514061766556228300842416217948222454702523927321160304075419633814221882323730395068326743420135336937200272955981341262420485414170081854137924583000289534987627093586340684512352791838519775548563932325403696056097184647843445497086300244888876139891313845364843602955377489772730802958136259448732922248772881117129027311700412956008442130303023919368319607740944132065478497371273142442194356217619697727425399914908753512280124928079166640910506546807710316773976002359374413549365318519616419056065068186245496794989227974597932346793423947797332881506267030778140730374057345243005072520046428604829516469506135886756347131379361597212037035879892524275562776745241742968674212697159497131779032961377001094373445913243748652031310549754510520906996914130628123407569803159745168725528129454813834529583250006874668898782853378140792534967424803645021362699873279282334746100970255378518682320330550289517533094677754765612627035418241978928503965310268984623995670750959173265554797875346755280438729414492875583811120900055894132484916741147678494951986578032101369838943416724690319650944012129423826280340497682731404443003418601922474500399957478737157086221356164715786585283338789965531392403634717494222918569323827261704560584005394683175283962356824794479226823798256950275156423437983520346887408159599976345789413322156206877223021037320362598744565243053882221854639275671341374275016661049794726564357524119360793752795806209705895038380009315377762748684023494184265082493290170009552903030945540381514692195328320475730337394280442836488903812589649157822115886552284823516593128004294761540939141282385240004152888624193137755680767665997650141598429212282823052022808129776216786575245655285006173471400760871316567931106915866102799143213960785635512594058673707080077172277758701684855999145117227738935859258518769784083664225326004234133624295395379218708079354160930987890534440336655301801750889126256440821663787110135435834610400616317637813915652285474914270866512646202893103459919273889944078906394227602706033946700784867356055048280163920189916312851249123307561260533571796041785143640266008316848430029603482721763899659507942184828864142678739601112524076552960542084932198678207228768342831514703995365286050736046673607574956084752346793764400412382652611200113330341075740231657520122096069870776466280883907679321635662969357265474126116333330682672153231744514988863926578475616205684543943096302265142945732113996687572061048987508626834099783014057113914295267468354886614004804470824722995289309387490743598941149792194788753847277435144786833766131363950315876637248017378096552157001828103214329627114364581324363295904046310445332619534604836227408210342445772022755626166214695637625258014226469277363593419659970377947889439393292760191271167173235729204000203778899017907043998468944390365953398111496141013592581379141236139199692656425247813907041175354411003830947040656370598848306263638939158082192233233703551446837899234679711973943649928370674556741256989894515710578921718624186665506305188330625808069283282163138718503735919917265286867293504116760766933991762417432874341359981381635736171715690878605790107990300835831634437280260576691548915208300063842696069501011310486681883794221248003594931188790575517498428353221803298518817968674014609626247925038501861943992981134082390497618212926919609565499885561002914327388433115333759607451767062663205055878851067695507984535723755174038245628043949759694146198323761726279109947121500933122713912915475853969400165882623800769740936678717752616350023411973819291934298490894105829839443935234309940455689917995696494720684014604610472388059829970358263526011327922970548094935732751592902865284843800543034348253622182681703614327124407345752322240847354799877612488650921231533690715429414113735835647397299033646347058163142467321712089079330601647765335313292466891615490822218180936296649922889952842535454307397452957635184767779303388924737051183269136165295527215100635592043008384148079354487080288917813007104274039970986494086830240227946100143648472123584423894517778182679271283835111384107093747682317232910701781957226190290008035807019640304663939306437959803751093798260134008743253066686527555386406935474941155397993681683472355676074567844276976557444292463376146426708676273147374212632163932644676537902918590035887427925660236814094208878203358905837301597449186844235687789153402110640051941836081611248696496285618029252446559198963574727417380073710479409691746480029265401029754518667324453756435300531914018868091790581841050017658450611807645470467991858976951993040564081398437273037614717692731737282895604600192517732611588234368022358823429500132851124002352111397663413362959207061018842089270732812695952395963038080633360204105876986917472878985612423698826968214092969164567350058701092046931610338268658200333700199262190698758981403577772671179466242927723515365829809104009324113019002659786371214605495638459680705348725421008412075653375524186026416260219001161961287596789851398551252549909573670577437060455874299493652486748907325707149049079962253749063636232869041152410374920234527115053672949036170457602571703715504370067187479728484569474343867413788045283654740416137244972650597832444985728519018975013573278801321305157617868963437916677165648898814123248386124540680092791017036731669021708413363503147103057233155345665248109157772063193536153594635655978924000174993473558911393569169057505980604660197271125282819145401462144972812014874810327104902206735006820766625040305786630857889536943192417041857694233389387990143895674917282981310747559396703519343264929651906806149420311422074252805531526743445532426591289685733039852242323989461694207138036701075569127350912399746058728640079693981508133414557371228931256272401974076675551632121750421188522612143101554764114034254059112313472506030315244379734277437219608849317194513030030935380086175601680027409336993847738791640306467161266899713729062863688134204037121689992526196339976347351193976500849546540085477905983879540704358039403247722890652944007250647885025449301605828783531419286259329812951489364775189713408135085058616642112458562618673198937081252423789033557491666863096057118735571777160279693339960477400521775141016961906319848755633659281822207284311835650078056933366864574412624037779241729280070986625409644316116148317542332999087973989470752305612966366347287162143945322556816764008304301139245080479551816691536201368341409654347945367286054333427525697078581027218182238557805701297878957619318008465116416000814428629043711918331388376273629642459480121573162138246938886800028867123738136471546966746173035730327239097703628896852263289596771050491269667529507677654556290247601815535456226351043247557403549742500594443607573313032306321214948873985062411326236695071887075510727743951721246045487295631758662042252869382388793883178125862752923925824605183155728835390056774466657127913417828160735580157813929985558081596601431506989096565343262628625708849741564863879368516289631568953971124958568755246533803018402575280231911652895543699776982372377724933437424954361415165716613098360014948811530901385775255189497649071880638872778202308730100014124938235053403257727869591427478473269939540017032868646608714783167720690765089906293759570277649133059009735171334130862915391188188841164178541427186928867119023332770763763250304006597369396751094778628844739467428448999776197699849508280719733169588493136624231668163865198182879346446232571440440901185802994152367393164847261594019988117698950305686644628734059123953648484533042177814114357299245118338269300044804150773505503153755072644204568955015660123893178329630158048578495101787047618624870284900598285825835631609129695057086240193655815138919993492459092808090901796290935393546260980363253655725694874191734251486182687414728736100653890831731851077518367567971432754237606565493562781770084156943486884473150563755307307187835686970953748224796634155375714703375413967212303587090681010094045741723466831078809694636159462817463469448855623972266683884608198674333307227458543746884541949006313295845743022521137026934138933802895584561532734895377203077510806742208950073240082673328550734374837653606426168981741572602367426669476232873401049138195157623972293831131461387250140698607922278643132421693637384859202874193690461341904945190438667058608789401106749256192392530583791886178157328887133533584366436163212040279268831239290405356843452102429505843586055149734103364285792358205264911032903875149256064491222382513670614484838884545014575330786998132770125891658018612433801162847539308265913131366703572544911147135094673009085947299753859385141650223621256134375886452292900793256325062902013947438210120869652315182066572325878952982090842361576753173430095271221240504231586466824343888709014489288532651716469518180979981721533504861564193794774267327696916345821900988309111702812821902307862903579389035621508332970347194558033852022190184093322494508871165278598727403589187399297001622247824280484742777609134138411136958750660580753440545706207164077750809690812776465963877422339919690250684381787039953624026320575408798643009564743853442451602064113705489129236777497677221666232191631434671388953939888405199363646745026616640981441587942639846349675021748009295764524629472797919573047524577626542230431051044110845695055855422024643722892618209995527118528469335134618051207938069568227102181292810476942772207250517622785099681653792668188427924202074485356147300514167303756099219141155127087982224921279794191171746915143840954597224063736305795111875287338550682085244876089256751058974379478181503899608509150154294443250773851167151741457125189724771510873820202972544838599929501494404417790573397300315450426252308684189165350816498778129309052658875085979752285150206300723812725680338694571155896247792771608861229687121531922220205502862044605504448557530543836631826804961136225750397883180520132562928498098474686207629166946938938038792751184814315264755389581744043380476390209811808556878124754985754782939425447943472662876824207752344264269581117135321741229620357355618068211177545442422374477976732525212317610663567471352813175818246896571404985683803038366151853984846027799100638733344803943333770948645533079654521055640315140995982383754794715892997828614781397653610821675361599051956696992900166641735041870097617425106198166961396908773876285001653672941593160684561111587133954561768164503550874042114039428730864102829143456892011725495221028507859588579319833304788559743437116452867512745624602459119245184381798481905477874885430640896922527627457391989487324747224533116065707429499801991731218526284505246455067744188407527575853173792812500629689370704538677199646877244612022405031949282718752279088926494658175174692533002059188375904219480289391360364790790682481435117574601834831582066386365002527703959512424246947599128379419967996409219766635256340498085572368588996209169603770674352095417327205927566834938867773352902877571258843403781658303289603465640911283222014113091493101101748898641535979943724901536153707077888023708575655410802457843336933831830159009163667040561349416397914953555689901951068572267938340700698314755577823668686753683034546151248894224894932385491689133218841195359401616376257060941683734006346868183055754783181832453209043358875550881287794246540557239186391230256234123119194152921331531813783717377532258107635205524890876127755714495270010196648452480240886214564586278404953675368834646858706575559801707245224245787450117194463103547568068776659614854162783714369926308741259962747849709562493211113583052221198677378116164002962892618773304883878668624796816302119878242910130005557738791228933467195356085031524021907854426824483897286363348805069128668637342064404686430727801505357238830364650434070310030696980615059713198771595274091066205649245056830865193671696553556684912382712118928454244781482075348276806767428764335836231711870198431411443832245877604736594334833557554855297356260335329773866842800626437046338741632937456876623743805590271822506972526332283832999620073957340309380008743462906571665378553395616001442943335902229116985719263375870258570002612484892320085894363289467174033602287741616894575087505499284091763784960355919338218093471859155415490989169220021415059541862575783050818649128061596412385129443860806598594318996724104511438294311405784512429970061433069092575749314155217019605229524582006282604605878021782920912165729336317772528054678699976616839679410312553217314851998108556863579873799711427925866985000263212805777102007935963939341284621426983081074958542851206815849159867920396043727783036191968958764059133091094670114301166376435126369351810772419580367147594743017046806166445151689027153131065142306846793070720987459150960563583272844247437981042044791805333685628798048650135081837970903826038576563490935934871526194882882958993214818593703192594036508540268110403707405440479329378747093544471514870555516849622215626679188130297577465758451311333401160442881620290415497630419187839206924793656678539696776125545663088399798376027589220577040574110368206201823406070659914492147357135435052400514333827930608964916707712164047915876422330407584896057261322961105056141669857663041793699842172618399476315359797410150412092383257973941318968190604650087420750959889139364432126749836891026713762736000461000424800395802098675562142723548444536250481660629694917733108292511118785399960847807260392823392305614005452752759069285538618636754017587004925661463065398867550721363773097827769127337317092687887269493798644465090974708146047063856061932127493597640057729930704388407204925612712566739684049040223872879513756498438519122823105715545040829454507954821674049517419670169577949042458789284841307759683577764714051312151871668666201483724479936325874591278552422368625886414827296068592725415479355844948856105527648941538347784224152972152638757180258321739934458026029436021891129742531305615173776683297735341475860551377812317713501003414669669633289793585803001556959732060888914598993666952869568117541225437924216955405660203451764391568053334858106485992485676456921541259783115826720976328158704322187952020077067224323610198551261091321904485408937499349039671340695138446067480944225812865378421837426133181376437578338180755182509881077443590433135946079296559451512743810117889883972395824362848307226969128804972748966301167505595692786039838984312746461005929911159702176065845890135084244039904820331292616985007690057506325740819703686926306776290806740381976807128284688406500970841661246139002768157791285945772823587117405649381021555263449181533507797702348001007443101841225615255801933334761350286804934566958626964798626547603949815617470762847231127888617032321397880925834947298125178909864900378948753697052649788364547317006460759633436308521638300873906568195913223615401778324806812961507684264882547602158051892182978207682852021509474551639873855083716173017588177453462644385653295902887540588806227342011624561795958364501654555347673575391936187926320831444034909251753539989572012421015042775500780126719281359243724834283505977287712362485156008787829979486078469471313247117844018159890805489162142936651415874629676266820517275222774979348496519001921556506426725085605448859775198012024617346895182831652970243806245584305728188948794713091661445960451160263832442787070555798186203085243823119945767703263739493174354536878699184631521472008611648701037500194372687217320393696685691027813260050796485872108301357747001432530520990304953834010415650890318339163956134574607813473619509807015082879362775247836501693349521508574137391752763112141553429153144617175165042962107349241398379453107327615838030502073379980450378242823533946398438410588158770706023727201899001028991754376406707513175205072623637992739255532810533582080566245485649279681720945141528716961730899352102546112536274570426204925496228792855471326244614550694016857727422363069470101240606384680893011988955143665548368382510681910547282287445008077832672312255460057978119298735921830344551585392035663426761950953679471875218409588877104723152091468169535716774595222508626297780671851035853906264213669189286117151515007398801941446773638477836208636388419587383058973724164224228910524022277598945289462588456964562365959407272914294102629490796232122597754313528309485281284227487781451194232251128179745464117746168591486788194408715313121528977002573816694773505059505138275897714683161894152689156053458034747392735064932772230568141542943231255798410879958181478512310987372703010281522865170363591779519846140038092503977004011603709377696101101082940937555332961085804478425172057349472922335998717702222240703918112260351588894344577014917173106215061496169396938118996949698443128982858042999945753399895429369229627857669040569591247864066170969610174097365813263417550992007106321671508845983064523875737388607896550588857100474422927451749440805711377030269524395540508807213686314892492063531190129300096275920087458748744002528194875251903694847572150137981806317592289555296888673667516884400000459519597081499940317726734152626878521467805457789193734984933422614948134843320112181635110757103333723806375600988305041324609902945844741157519817848707584300601490624348085652152321108099263793627737939121857765859925935354025759879392836279041836824442354187311209049252386434113504015284257919564612776474462258246443674388162008897413646482501589679301140461534528836427211006231890005823928244584069491544816107936010948443093259914753824769206641199612544177153929410812846340065145265769427788680155746222701482936864004070571234431639424089656622323959780891803272210934889972422390462863473351109394183142464712076679154114611007280812751598051899452219244723814297396748078066931426569332775253806573464311299510661546985719512880239048945620571818196920490960299941090798114954230192558864772078477888086739644317277023463112660759064196047319845767689510529727089150850139396497022224645098828832888975881283781823309168880770559224324695600037854714527437169060840841319707896098008311135656480285767072250493873727801835828301788634685147929087497972619888660611328280661220767894754888432438506072861137136600383084250051979002452861473782662937822260885777070114902459724465596283111005262447046869259728650202482089715841595498728509437164269966473639505095605748224478879068719317770193529196300606187289632137911606726485614016195564688876797530004924724890150578107755564320398782746372396147799750167208939825778868324133190499843254402926253528865997142685345498382112976479897757760528265220237888552139103761162321578636766736971970673702450213862617083691264799473562612191195149717779158783232889450276163176660468002070715810709751978462513145536083294753330324885505787830980075016685175433006509739123277400793335337015019427662521687101074479398341847950161061498152956712365443456791712955845589634890258057322337310947136239947063138137977241435707570319086073578261745078759609607396911194989402718823136004352952333270025972826637000133826119387807723477959087262985927547502866225999631836562699432277984633991574691690591809759171363901094927961390650893065633576704110653979391111069509100971038601142628462206465594508642231044898755749550919234475891282749456052091374537618210422826304567231429777456422173216653363678837345974900745344612006862298763803327960904326139256217551745678548678985578482562883478185666862136640330523981068923525724309589708258391754776734947395991400743990603900046626894177191869604314213567628559466929894786044368823356145169637531235588331830087465018491677609727077510558961668865318147343951959903682370962968338048436474742165478403676930625809246079311902296437540309310207696064126946924568060404196535901691230327888242701449951363157942542891993871368069769719879654221363410697554488009754581830617029149530280178115743717364574771728450982605675304321764347068726773811662227168992529547683218492735148012441686763876180626184757380967181291787438341404144561001216198482664684632059543518798527835652884226472720635132371821271404092795930175900973584259109102842702564754419980094240763447249798754794474350161410359720523152114357817467292800079582112525231527444251432452353669081976439968623195830902534811899160224087967333500913610469876611379636373489702964756124186423399157164370593906018310133570370560101405503496416605296159001939498309153762857952921887288839886825899820633937254840800554619148181639149358494528975188501300266477464091672171589964148192994954668006169968605027406517902182089114003597226124927900860046865953254851766484470140660371088035775556734831253906741427747979677170502965644690206966131058562651780229416088256615024743853146733112970288783570445490213798004609701389497925404618489507024061342861271642962292196402383532579994932180971962180462616943790668220596167344371432208559785357626323366594243701139809011646362030180355618361175410925395247849040880083672861462660093344002306538632105738497981445697047005633929937721454172008027775972556625972419805808670323605155875250673766986776821122136974397393353376763591281824032330072149621149150161102739155947527353294891039733626506365387547711593463163658255263035830593049807013670451960141229417743173718456510286186643557200654374993291685445366139897890005199584845070409311438103099093282331103876648749599091003950926210380653602493720251993865197247356437752289025908764196520331710693877615174412877391948628993711025479617437215334442662237660967543991303954732018203857009654934588990890846070544745294192856157111171598266525604024470236734432634706204844212867655693904308360193150770795111040030094802201880150542928197916540791367694175667291175366298557591731345923558638927587209242278495178326425834245748389313589607709032095500348009970765491040162171012797248411400108005263404185551946535854779602189155392539448134251385280384450512990778413271174548657348176382831620869309934955275835870469939590344233131937809637104619341576216629293291146620055919464271537732193166093132149698587267701738164679844118656853519248659637703118812366545523693193481372624563690477756714788467184056218241091915044527997260112492692742129592344137936272763487955797474645466207222784658346915809421358688472447619145528835997511690759136334532746954610582230164989626672161099371569852418368231679196563034003227993830254429137713993848271917313412261023391758985536546701017128909246728766808424681405784556266699074870608953997272728403654530352091041283730693377587691468903072522195917543850199394231743041249245330699243705829914262635922684427474434602648664573975272670785654541044906928350767622343189919666110551760198949175471327130899676527111530545141727046250769658118266342399040906252407385715827892440632206725209506668852778219001030768472155303168209490397022816191402997684986644535233515670022683544881114968727732350607911474473397905840959074675692932242085049314051770402242661652478901589434728623610861225947293660115281409449481367012380880728408149647260719892181143939580478331115702289018755703451299826641184526739267189991702680715555116409830115334090788504365642820067888526407042984368930632307602600058404994438061132769243184293549231356088110923019538360671095459252206169310312253397560786941066445186230838626438636348586826754125918617874643763657373034771315343983117419329504273637383615699081156879136769740723024467832685158363483154531629941287044142163420590622331264144331899327705677257906641498499891857531606233393162700290750790096456319899217840025449450522061192825710947107611782944202411405853971995146614814509126422853222299956258164557795841024968784638003124907560350124486744175090713858981762849279904732675521411692790715925866832068922975795159956717070702494079510330626953802110221022529804358843169904656431321191457267843963158983049731349324269449807064604542695067540743754547136906882464555966513988751528062210196614861799182151138061153046436395865223795160258670589750476022978531600776116930896660235868305067641139994083724261993504859220331415435111554289786102032184878291025367355811461480859655087071437429601353593121331193765465189633507779217170759545016494923739854007577701659585080400166220819687187357687307319364327155705631702278441792369191399597101970283932065003343954220289285335654395559423704427555384154066638474548756074832425402412478855848904764169442337080656677850446678917466008973777259274397495314609895228350958219392624109567258040145507690755796508023986278515613822916448332965342371615212717416466535037059725939308706326473997229232083763202699663767098239033332799782175757826853437943874097920991170633004554121910748846886155625279771124024294078562724437687450153829211749757005838582755425958405313942416890339681738692311856681031763832516973153659578312766476421867473867387895434729896461488130794875274947359359249909959988648458916158482840799915281875018912905214892222462914431924892102669144486972647082911830761606870757247953202826132734136105643573872675302873682347761272048493118348113363326076540860821405427582141187051008213888530295114298976280235346378834929211536601998194460368351422757493198907802301838141731347564981435042558441055786878283940079710236994891242819494727376114736882722716406574961247692130754936649654003783450785746865085896937583723432457325446601902583452646561167968766344168437565253368412983104906413806368138464806080580444620080719007797621085909324589467807086879949967041055006463296374644507426684538362627962080440165210957222627390335121643100330841874363618927398805432468520096696861357292029796818798571065724806320677621085442221331269034317086967689926982800771280050312251636445321342675761347538688299121407770037171046065598698908230464267582238438583560108468315961683457441828397930873688255881183647773334173912490277911916315698498361998479004396570563556723697875080903463391988702346739419479710163761617984440620463060247755693548937257573277059103096631417465021056842815085990539824524800446482729783479385488499849555940417959763831442116905340017448282634340115435831529305651298067458483162230987487705522803978905784427871598127730506436529151869039753832618432082267740577502211298018248482617835945437171424338287965308803138195819525033631688539797935938464810941539188910855482502870748407349544465161498055550835194635543810536452640821410615171627920424725745184516086656197522476956354178167698788880883021645934457933922362068524898432882983302842401112452151435049625729940821672530377223599438387607988048129028049667189581357738394877142402729851432012658232172332056983649855170376041715006097594853417461635915196209703423131509750617786496363859772441681290864479694936515964838233621192844227842347945363499302508907606096120356374237346076851912338315945025480076429479557830792473435271427948638008625480104986136335913330429841625679918660883073613594075577090920457275054838459927459909585136868685086519158656013040969362700070505602497087736943727933085541075928062292732747513854000689840001872344417775441484922502971938133793189994839744256600876989841783212286872423935074368351013303511454388020328642480246557586552325996144617389106928860700845345748916013640353360890303789666569574388448746048282106818564222419462820817984916061994482333100518827602056074853024083543554546882832073307972568125293827095110080779912434203333110181417316442319011019694335100419668503584846071631681588763586865024238015245719611759134917062732440424928030874710906579041150770917972258367891638365099586886700635835615787515003997704874492550211059210230918079134620040839558325836272526627620519126172246441773948494372045624084550502220026922211870721321638820301378738208862016831333922141965391354256949499162197378618442968013639958335499387640519776476867772118786102074766653674370675489782943148124196181948158105221222734067907854358722004157867419646885964033182320967277232681865907070620652284661592181205259403735074761779812782207110492432804568189555981351096834423261164376942261984682694615848514956294680998153664633088131966610984524148812694577039449393534952770858244930989107596919970796017076603985751674448791172467563316634352784693471144108679572374880413330309624575238927925765769116094759566383593774040851044559235866435567367333711228022949490032386878959132036920842685875037446353648793597703831813610291653743969091233517639542002486087512933222119634473469251055764152338223706406741431524311837883545185961058841778428904485723860989706148559883364278578940682400756854925356674561479776787214061251283953518851861062727648305836328962855075210547581244581895787713637697108520299521157905577196717767450754220796134857255206442104419816831206165311500137360633011893389811794905127129987776539271238619271097512587017595096887735447338867883553329775921314403535228170896489591126350971162228029807497182699364757565164206499680099454148653427912148307742488089419414573662482618663809089570946450073613942202841279923852936263429684101297659401276353610523566940600787760576246760681704972279738116707419716101200761927309776109860160798543373492011934614179879351901891309356930612680169402446993526212366912627366943366815301420331789602272863084809201415181547505067753501999552437310018258397968803368215019732606364217920065740023008214945445422340622002436442206875503762392350414350340750443999247123454990825252895545066667008244472188866374014347519452130794583905569826472084470071734576807833537168244332100524735379092272515613994822940815535968980712447259749557022498468579804100338653233705812883469958673023196476468995486143700997334989755257664145736104769470200127310249493199458530014641708239867031122714237245357612158639155365243595606155770397864851568897554780810926849474820015327311642573286090428389027869223585809624865843807800267537821644802044314046233355070517530961427215087509006389273519580598299865576800336544407589037193498848196286220023735109332470127763793036605867659843956301007528372488798759298294847143827691752823801090880221727669163830158561378482794084174835609192977765927041808239994371881687341432509734968603360576643605990548774656256659376520781245586362508242144263041581751954959691293553661296257268896443816271825011831291126230797862032871589732005959987435155295417090074675903868196931471031882862190799405973869241182359819054181601907702632512463254334002921005485408858091766504060354013486876352433509068593096414737162977957297270258362611853180658979770215783355062964319510836222041947652408689962250523142700592393120762063572850945197875079337270919111652638271150625159940302215034830313292672936958871046567495530607833639510892275191435409731530044756612979658810538221648835840115650392110111381186626820661392508335382248129888571240890823076623747769122266849158129168757469033461002839381704797714016812876622176507216591238967078036915627272168157319928142340408480913721031228635148705402779257736254490793335241852238133621864600920496846241554265209315111305723886040660720403133496240688954058025803838154971128961487406458855756265488866128855408397728458479852282729505583690035509408646629294299738130705905355287367432764710261777783159138676826009763424983489815760698538095369596676131099350145396650020798101354235146004920022736873458495880368130768428288294820095386333908142918783448670387539966159186256107672113081563739818433138219030708698371249049532462400101984049950208208174557726269969697727277582784038255140058648362133069898497222912259914225079382008922930842852740257895966515056709546873393886602632146037951594411737454634262442569726200065737933680847597714064230987570079569783412254903949662524950931353612045698577969848507177339091743933599209134659236398007653685605065175442172848142329243082121115240752608192483313353487076993330155517469288279019000882562681613516690785316209719188587674173528151353817134674569195700242369325630694488882908205394549999623131292703270680885401106850873983333623236833064523620112943740773120500931004680576939625295654723109362951117548012975993142914072438382953677260455743335333498836094503121777741912187367830393402693846987803473978994082917410549632579306737518341509710910480893167698016685184306460459133090442536368168404627126825482868189497523275545611028885539995621063309553596412546623095371795701038227644203798950253622683116805247513954717571278804193367609015039147516537092346937239868748597160182546733124671922501382740630734537210428917557825156358508602137416450612662423807469275872197774185023465436384950683420007580349147133727368505888944084096848160660094939657682921825309358011765824891148190395392926003849974154822703167854767384199323061207820420777524154116493217603078082418592561786905601108365657778599602864776597981686681348384548574302796146729629192157889920595809741648320361293485189483551325347213172034293145861028747428390304015659627098569112422220649876479852135328817908254864259554186211687124291097256991417820094892063088456807402156223139381790751443128362730852219810014967312890488079359278986378936334326521835564123092151217735085539892072690657055910192093395257894760805216512932808388668621874563379276273640826296425399257350596177274377915952777484435163017296743005444153500745895375939987123337737595793349359423038219139752991503261907447015494087459650467409087882089742536843532897892114394307812681786727039694604577995531298340059527321448072139763667427151807420113371074379316839951633005568297088720611200452558087837987471161207207654196613940843519068178160118150143158232818666795199779722360503226356959235906308288924659266149100338349779463989401273028014361940970398620334665782550321945043724191345673750074395262073454835670931397512408782154598033644933855903171606435026565644285144679522183149179759587189795872476917360870187881170150990671555644066952457871923886975399929199781272138958242628068604966055210233667105402099321930573544312422817556149491731182558292856105812404227094211716371947763072959153675051786874378585253906283255793760208770480962038088332522836220252589042943169819902271265530709176898306977573489879568097186054061289473673440467255616121329702473551896353156724188117899476303141475472100794170672436257861453508933048004632148333437411893503562148402458581203195659145568061472719861734359240545704001389501729672569971044733319096172594528948016665472142959403652348291756217883123245485433259839320503731051646644965207176404820082605577382968844320119844371563162741260217824109202804834837644847272335543059678492571568284809248083356418997723476248869878331917491317572670020874350823937595210321335337399820311604789373190337073263884181412739325143361780062225479645774119901929078966435810251933282464395516310935201480309892267723283189973915234026349302688207342732410803103065556102405227896595890702199392651989180829743515592249270124600336495065578255218701498444384441312950718763077752757927460978568871034848436138048921571615801020135311657606871095712750310569455321942701600966909893341814342026908864993331955282690912159097127956495917004945159835115638180139792199358277131181785229257986370239529712730320354392112212706852977586212048441567523919800837878963359467452723899897146205488581456608124333359091440785341065340647343123000759676299633846851576315865423633912623332469089460120447809657735826464153055935013247438346975830411835700758500059607613413244748751264582488933225222687208181444864934544927547947328001337696783448677463120798792570056875870137465928810408039435128165002333804054014184542568847978199822419802551544786189151224305592405798339567023932039322559210914187450069122375602587209149644114430189249166795661765800820664088864990720098368474099778977163581782054293106434881866304946265353205719248860344268074930253945032104040163767941847575976908506325307689089606294477216620043518814141097090589480334566991615165105842211174320844548623123436214633466156258963907540360279492211025244260821771672949700406649438688230016644548074761942537593627514565918824734758531529577814756144399953287078274451409410474306001248767387594206252632826172395904390051635064553467013576912783715281202498515337209692520090058921333799291801897220441215763361843546228696908902670291194335098962823347564854634390042128307767608217636358235919787560778492244028809429695360236556279085018026241646319197152370415693463933944665520948591775193021346472453122082972082283182090188787689525667672003380878824770227041883270629100853758181687573559683541955519072707518681035889221450993098157239994594735749429123919247481753926186515779801289158041848730961217761727256877375860546327132566597294506115041819673452994404949472142571874414076613023735692276623599360909573131717224006806619052810357270967989468070978726397248227055355343328840222581038185482076049623001829189882959285591090860868843766800489104764136438215230664284373691994462693242292949991238152617140952429664043432563782443587428747656172507602660498384195909708502294839821075223047386867564340817663576028118404603458973382237917391317460590095053662520693322417264389957022531017683048108509659659746462237817657328314879293888519879883801546067573373574447439203944805134190496317920905462237193286935875077379034300158221926261307292320690332514441105965586421733751307954642720526833026993614122204017029676520182539464050652521497561890455728876443309295741506525088979372337298004042456912703899607250973538095153086367097668338201355778197719297523918028833236712454205893191334638702355625296191584286369117054259110785254993020802109085878440899780391469981450632388212517713312328243777661704592412080521481481608559735073977626572365866566953609083601345080525292663109083325830913728017350037372619987279407614479216620147385437378309141888856271484765551377182923993267316452795755488572691180893528867966720188084624991754800904004033909039814232455799833824395665875061628457265262512501923921793906524219254466092894718716211341878849706669884114666848543698765438121699400198315501162281718453674490443578096342765503112186154324843058850630189514358393729828319601653424935487710302672388158997789118266600164870682566813411471889871026389170037386127475666496501612884199359497239153830467683073679732116122560641729315287636441811998352526790568782493887111607757660750676379523201739258520784525031708190893804623785828607308844315791534398895809994548851782537854104590057449676598933841848416786783862366301992656805076572921690975682577417578295249949461505409209448636124374325398249648731645284297347458869557876025012349103427536014096758729153886813573000475963314356553596264936459848687386723427766926644706249176513763485356840780836227726238555130540488669212783357552125207490571473626680726692845734498018845288246410263180882133379866009457973884506773685425369724507158347818314434093092762134417922786160685381009225967005003429736996562021365911065964071254167653933059749586335193533847978339662407711020432420803745603836978176272252497556249823072625791143201108154567132169018164841302596883015615548418053662775606490345429106115834225541941061448403438658612877415538463183512003410357922873287913112855780840707981335693674473302795343826361742337246739329968650565381383550661839789797947004965835021674517473599807327762701726958760860313228602143574346317000251440420932867711859274066622618681687243371661283495959154305311552997564420645641920580794864043190539077738014514728077592444299008416210020914133429854370511930350858277160218099067516712956576570457314832049042264830231025954867191714268087081109891205436694151957300415982228441283975532285431340994917255544900405054667131294045278948622793795197298852980554088914377044203951763146946550156402349406235325068493650896581479377293483071605263410988490339290487782704946578969213702409082238608537764996039772301302475945497482447774009239295472747480715879188554850910740681314450275898835356095277686375642458100964394642308492148965978365585049211098352969709729157173361051646458793780575912724832244451511546561385895560734926670593562475115495160444255742808901184511798037057078771969351675577219975519138169321039197345081133916802547177838889764389878414649550479775766885673200083794458066815094413281720285344690823434899316894386064877555922341703608351707301826061451937252236582102802792409008552731323751624418879125236795613051529006340264519901229393178201850950676081839085554994799530958684035750293316766538375216827507631648165460550301818168706052053124201271967047112105391658564493925474161506115551775173463269994406013229302502387289188505893431986370915341677857996781615327934103872109794854773556338611395216314012542853501131310260994591991937061033212379441544720505822123468109614623246212363563536729290842792042206765862438763954208420688663180211212361227400441240568924689393021833732376344910234814847298731343622458273378477815050047054342648892406955703245528936902238278867997702937351017488486065544286625352430148876331758454462098240171878962466072289792689870056377136498435755351445017119395821334724069961698181631619473276302500883168148058641514714786006885937677098379839338029701761135025446715004996774275684978563413189860845101570059502163746171614354095742264927513897012255797599438041085690975301394246321733773070153208174339946258313788136192324639383825517237966162258472996153186315602171918222838068908890675472807767765070333205318858687877283635099285479400363028635612461166130590759862483278360096330640671765965208471123878430111328525935248024932393123362073795810040083563190060274203391895246559981374434809644792764592601474471259606553260616042443900884546060344230778589054777809985803098734437331653317373259945572755232258631051835204921020585625771214412390250343108901228211263874116240505411123512568710230527111516788829543362101132146322909127360505834963942442141403741693222343094695423084231647846426621226166835241268855788354756155880030444424580051723273405237327616846762227653904559919704949545561106708245268428457887383387445737891579766784707019058357690603911978125177978401633641198395929328475821147923893789108673184313124537627175060087862622089382191661012095596512574880849505638047610477552244730600660141820377379703108626962504683819712671597724819450415332936133097740233525357573238752987832586154731432172133450624102004753596042556623302189468549806651383980405215119914600448897997584526123528390375233858254827949568547112584274882597912375764691382639324356731470968352003052030147968843686575373082301563591103072719182842431280300973712024100779299316525137037527670258819241048097784068232022058451200832499275125189342260984284786374895017048476890213274669887033075110460641713609478050106152855716664192963597214234914183069434794942160961049090375998271318779303945046399508276034645152109201568826592209758950331431882735735840315241927484109860846354752928787636811962257677745888797646852694823402686313018298044683060998615370003492232911414080172631295095186367976621006910919451942122048058208583019140652939314612514702035021866126159938144764575428975510148382204271387462775366867405813606239423188620695222477464681122846718360658313175139953122553493914538652066613908676957085649320116183024882586122442391332895861984845977008380741151982279703122929891137103191240225636342240370272145077909618513265298957877384426602092313429532620824875582935318169487756722192952679352454372060084027288404161433858341567426581575350467291632057588507813994806299840756162583737238962167692098568506446200461828220723329121706053051291604400704843369642403205069065312534623881250875344592929592937780008378742900757985462554341124394436546736612527499682770037976926276991453974615571226495360264195342594960519965037212649362662722385874865761211464325955184091503349497661845343994530450084395241574134214013184276106362520184004013991549606198084903192585163166076847192169127884579037423532698626311133229393912676878481256060764529484119070227125671858957494692541150309536592670774802433024573413255022486186602330514852737636036636823573783524410902684412411931669693553169601159437401046004747049959118126658776716927447183614374394544084879638856509949697821721658173094778751752367635482731691323888059366516845669444317997465853565458628804983570847756855953308788667001165484637832779146370971614628335347248447290150386355933856264842212580540863882312266914529628288224154712724380321686967849471224559444455375346601831337487186819928777462823663621288910560444989625341335416717843343746966374157527689979647025906583909394444533928678633984564475815115241704484337936830246730759065898250753339334697776216407058701346696471846056216950635897442587698771213357086882311770033392609053559350857408594460595233302544413129323958468026054983869206545504034839284006911221054867015431026142825002334912148544019936661942703550988863557970984745887184804575526855366765799752542147578918217994643338267406815702735609000415085130752923763380946139150746881567465038480752937543236341114350465713799616864654507346332362236487330874734569734073933436474539169784418166635152748553429235100635273097489184604423724747065743149167081343857987131317890083834446250522903657755236925795454902321621452825960894767294382477954929808810283891724028459661407499634984745322083930729513131664284344293155061196397530502556426283422650096862311682221357718761070642320453757137832478286834277677404971298327457708847231025756891404925116828354508531402675065766307706756145640827214429651000682128502817601567751219874212963233634709736011485101324947851697025299124764411351612865581454461295132684947262665553761118665227720732880462141128161850490938486704438582910569304679213701636698971749942899848317948456317584440306309759434218466493609608168472724033738405016730870671201438908980211305553069173467851239927234816483272843793550556171917406597138924661161466844851834693729566897233498891047123859304536771685963483080968240170264286715690740085221803668968673954186091976254005343310797640993072755093386436274475671229023785929667776254792860395040617379882189836873170694775484458048399622079278801377722306383893220409678999485945776276381843078460680114192077351423895166208914802111421680763853590683421651528420080351694067595769219346116194621210026358956489034957153910004801885873784458217135942888908856420985283211486335104564916995507603526429190336937267018098213110216901807351232190916461087361775501203941647520927467457676354862250065497329383919279837015550678451291598501514826984677812730718374668351619949615700195255928110211812438797730945040192059873102372900219523331654337068766572183463162684901719864797320537116756390548390890871472829307658689007482699999380313820028261297502792768866178279910056591129233492838271603083078054342773254556883646326153906535725159514793439381802694970918696238565354822633793180706993808507992670515267527450932063991542369408226184593110257429536827872009135704697204009910066910177266288450496323964766351308738742453109558356378454624489485699239318080584355684233970686086049556645192377829687739243610819366861939249721688563715296896168439634777574202108890075141692937481118346788949993234038695595076156469120134868759659156042589322641466006129797104551333224004358149303173824648187119959073757721230797207342972839474085928334981571175782139546624492731389769898979174739690424966166036012249476293531636029056755722456490239266210672214226291864110286278112851951164968730100303889009027417635818384614551876421948950983294229062142122380649275001378460086726978373747176491714697323492698385680063766302433699711682968731350271428843670631688084337831961112199967309198357955338712172123872837999187723618597820078516871060659981503652119863618853729069334363100179153355904868571192130020231249956529033404377257043611545090615373356243392098436712258429856651851910705477250831463921795885576352898887629581804716429903984120625496184959584544087611461668515405279537634240127995046165114206124262230834261554815374531335847683178455564881342995211891579540964809075245486124219181298050307593764595838151881672513912243270563482813469383325918477072708302609190697032228237757280915248203652249287797984447174568969350232654729817811523625919838613695457469750604538402108273625944987355399713481496669672729427955185292180724700308714216633001720507736413550929830576084391499976208040617341910348188447660520939296528257724311285248816325938170947539893809609521243102175982046028753557735022771661756547393235026948354869159961912372792296056542350562226611072298848152123921344023241724823120303795013604128188648743305022292834366311598976503485892285600683403684507835296380303867724989241360501876227020105799094421393952812902806456940203026688187335609978992719330966402790331858237054846924789310842296739330366152997351860334149374157653456395931021319382200405037555476237390387910111527674888671423258668625958533149451937665094106269504605882703139656301977924689221018441707058482462918673618358749761807423685212905938144700853183718039844487670624630004910479571396550389268664697699609573731930033727018447275685129006910851845970025561966403302798009675335275827590646302436023443518791818563525745746940160849089193677055335075707865569191799119368377436143156899035035064018946617607955981228531507657605936632907939781180410025638627768714119692061902163686351081220496597963240189927538432595570787119124773192152665724746985858014955263163041015293466325586990925057539430028546328920600479297778827911922603101154101341517840799717768321567268131899747640166482011984170661170932334750415925234946164660983008656397198067566195124749009504662697431695839642865427342017616830423913014875562982459172210549191313831338585244931887989788368128031316837313034418895616022899990287264751063241886578088470227107870943398019783291683177668096401508785176121542949737350539038245221806145765886281770188444060752272076283456933849579935317270228797220744182353374187371106333571054864517851696413435707448355566100621572494797900281727465038250594130942677598347880307574719171605589096708637648195738762344447732814468869756943615496772939026229211753389731407465289804560513868682489823154280039874871458180335111597914872715838498646027407229852739537303568500271560529960066893438898242908771241706248542001599856591100675597188210660933201689503149977329606623261263822347363710603090489599531980833409726594782068306554227672592637605210134141123391627856102451454495453207086950694259266142429804924872796910618878368344348616959643896894651060226540861059460377781451584927483933271121217989971165495960986293014020248213104744069052330524242684397664381834593892511805737350016547106598714256184513876313548000850203163086228087068004049987183196488953611442775964788861925775460143063504318606761382879672224069874308341052885626987000692365980250331808657889481676530116021383848723839130578246841273019055873570418742378545567083049776511047619069177228091108601830543668254647782722415961392308704797675351107913478834317142410850796567789459659838962890847418780648683265521647819789956423684642095251314593784430607215049755058526923445790213844007370305346212080908207010079972426884684775992721691503408394379470434511638035523864029108181237236014859907277851982470815884213940847547634268618727459321698694286779531717073883377614445804364838342903993408037743700671711856860503654227764863445424915604165830508561916904575256869279372524603238854624420779181769987919327498711654296439466475601196441871634445008465992343684159336240663600811648596350176933104103118113934456178408307191885140220724493460228443522992564534270988495019780565562208422961625682752914708427330933514010987376670892433466297209636853604048058915343932074553606821848913167253192797340722071027476586038627567095412380282369922459977977553741007927866593596356318501434622006038154965298352628736843818490215683670600249974906948490868075055874152021358492966430299250511392098603283744946331388375659690857949379160405191356988255615052425047063433341857604246148191875883019193625830217992135879097831003685064314736016032163273644463047051692099840674063731781258214472700995943770521962850572768366318372927944094387237581771375666748251120873006573335916742994502494630860104027369879474370219545942420644885091777791658978554348144186354523823360802515251115154513725253406295208655679986113363558575931589535193924115381492625051170030542552463527562820300810604118443694821034436055757168136464281741012956413198533327589879943669466931066927248399057550688845665565670674079600839749409071715037898338763713392919211104093955766548669097747739173639599585531065742465089074475822001323553329319489280503692322427491293099340250589028707239999477527452131550503717374928575615709427327586044854640073205323254869810249915668864360307054115598022658315387681929041586645701488340848934347322687214466652776466659275383844753963845676912794641132466173781362873514946188388744335185955010141169222459532195551401145278433961481935511599836091344673163195284223029886272275014424871440620391005134277592379094990173467607994948271812392914545992805176833411569666632673175927331468506638064321833883837607126368255264840740823925720382917796546154302717446043425828580207029541982281564911824345663796661508589030895543067756618313850618151207768264083551838803753923080865760164325434635033361224467434195439085109923675816826454135775882208572706198716453399257736044536364452049736474197533522338207088263296327640022866276262486964808220574986844001581300215061904133058993147768189574990657568891564739771452567298789360435908937509774674233727615567103205836151922107982277356676661209449611564993061240840136374086252908450450206368635803818713369524731385108843031376755666410949603191883426947615159903143770134586845299564891638056681602298459630189458807136080544353595128021784045867243408880546470159183843840087817942510800028870374015800546657003179534704071960839131428873662953451881605565455847232285320530899056988257240614936905559714680881329146732514059531100346307062692981664773842794855740948276414607787183800778744634316730734594607283174962958623499411778695142395308831473471228983856039153479359863036628909226473983627877618225576818737594664277450825002292564822683968207132090098172041139156447916594412972648867816002157561971721818310837318666078796186355859139852576440336666890189431030243427000933158336840938481131328875884967295751471818018819680795398093043571588272817271137000072901374741896809554817870566433639379087085280364374540128267281802097129328521895402017390725955941639716001858537476600108134480071917876950820484328482287064494907739202951801769219774356612142695469151488814306730782718178681528520027808290571816158450369372574093814455278002357302917581705012592274690109339465283112867340918554358019836165172031389984159436026074034193454926236259110137622869894318466172042313750794911879981079815734732196197795745511632260181988352761413542076269531948361622045583163629883748171213932564122832210217628810027374073359450973491873805881384476892364908451115328660793281296407565203062167684582251234915966503016613579072900660753801795303611621862830603237331084613955199142790718831742077682658556418803547466449254383250498766689073400438174905430195630576497549363404305782934425387039708788769885879383922566089875947665171778917765550568038788611732942364798571452511480844801816605327713423938214886125825263680284997727176572632589525092382691033808774852057900988468299274768212989294092288263454085282177553970986210353859548919180541472595067400105899531878968703666086290367363339495023604460550490130425303764700901893947268629672194618629510188571168651709036538929167254043387256533738148822730371785068183718417283683994402679787702776200927716704281077137558668636114670388470955012674364984741701515554440615434447466783736877049269196854681951045143027667652074598380409486071135040920330167798837929232578831133351198711897910249732764731055817095193276364192136531831189229794960464165706392569840869687823752284099574423743044191529000093870597759702234997073170489717063954971915533416438328695041425786637224534003887335725786933966977489171375955136338566119353862935861994754110477395004292073080342166025961703010380969239151364892682666005697257144716877577502389242611364428471218934415658366896782073240719846215691585564697996413948833620052587357404031921744201990887185949317129338065388237836509969852062992797103676965929020786375870854662597916434906348275332483964092590834220637968716213325356712461894953255172278953375919561263806569951554239208295079495285438284022432452350454515470290184039085493897222535493116564340729848950412854723380616846290140985060668868278498521358298520594647994715684824481298963765831571691594721175962649577396063412586365778066287130150454998146073305643168994772476725685117497283752201723627380632437737971629532030597532492888963787044627634296304815952769010660492616818714302247435077486882142722240290486069009404593245970262712312502012713766093406086036751403060737881992021387980267680734454218884912620587886130442872246519983355928059540640670529414976770691519604155746772815885754643569635408921841478762891780833729871172259149103716773446135563997042084285687343239862979643758672129730343310340802691905242126051380266421360746542928018810878537963647115122114400896054158643696666695745540296839036246538332731656289335933888152006896829308615591308411469348103379574895543517731364606518221180306004548881580884453568941648772912344279360710441373094103214742144147063503457802448765510679887804516949448468579397408565847905079938163712153075639618488712494514030895374847348465407223150545854573920329840582332561329768998428380453784375709017521068801705802367696351323751902662363218262448207331213097971710805606050460670295016167200673609570227656743228850167147241471706332645601607385075174426945308038438575442339993907114953607847864015556864766860556096122821903152806972322395153843117350851561287898143597246329902857133239498203495737668532542019276986838611149109948066960818883207256483882420297010930752587994900605880805359969677006190970233345374089272498998707468385181304360840396867484277259908529736984960197790054001020655931239384265577941176263339455974837166310209149034703589995273872974119781680473202717246478948695694724420305277506924999283640143299783772533755562278219800879340631976149780661578553286902407089205515009288538112317223500230320079740673532902767315634516201689366862214422772332979156184187912092173058347298952646919726018306461789949576356984972118906113582937614599548906320439600382015686356337629893130850117532810375920068377882212312056508980542027434734889104902944991128130069071292858606846996073849727850341297085028147956810737053608606915671364100301989313953386519309486553686596081891886097293306868082602242230205727905648046040858939954271628590532795565865402157498454674089695040974609575719543800371809595669591750600766375894963897238633973952281869329168073633483744207094654286588510940161857841604267347601319026760163019751907235673688861721947617719304094233642368321060594027446405601656961357415410631176059826228731368546885892957436932648429021312097663905841573303698515307580826832544358706937223409219471180795595270384897804152189842382583880140821504568500016533617858293040377961008517960280245946081478155657270018607501848518506050092401178486911895993180657151431920309896078716864011538523139480367470945305519098920440782678759431206682938850892607283820935606804331983832692625375196046406094318310744197964152478685552244984796323738353164190150207495316262381696910934612255666269189927952176747910529665497757081947356879891572868876316934811724483472321773690675971499576128959560481922253730282617178072966445212248899942276078475293254765576671344681024167481291743732312488357889117034528594698784091280755940615477346286075045037045677648338364006764682175604620245709260606858493534409804632531918776462804482012867160650998087781560842064044154989130065295989611195608532902294916923796773774997658046299773273931939342502744401982344178297196308382143449758039509098900626764913889576845786959887994962052989086679560327636489724860537719227381103471040031358885589323045764403524962431541138824640384707126434820792557221894199643473346004074006359535697967917133668830063979758139906949056301226657184924270441297160475720980961147700204773775244160208897018191856631866376926010775177870801241991203712665699967377767433597737207520458352177301057416281163219822144717370393522271793499951212661124160056360126005724077311340568156855983479534103744861731436672027999555064730635468476166127032517891891097737994176729935280226760645872269620902852589985380904518619450317444728063529419690886389971271462352345663700666411016232162015026633929550601969186733728493176008835315150343586239237395553322515247332643912845695533719429281537759900298621304528666604443170792236829723926916831976019028834015370858624155170940566856020222995403118692819533712837744945615673354254784942020341220128331317811267386235389797104839072549545548905984754646575614199950815261109270019921411847393620101502321298703269247209214178938862265731334722649875527193742060864576484934123151215525208597613533790273685909193322985993909876162231607839796528499045399214446243436577030644446368613519392030262187226618586265545205343432390783091467051526226188833827380627395078879908023099014507063601470131824627096436851076589529769156488237712515601253454382676813722489541776661234049877746004897867459455554048485920429914785425016680895452066035626181958242416381474886341165382348120049667844636601508055995569473343784225162512690955295279731294889077305501155890899992083426181411549871337265888758568595321330393582508037876860675226557469946429160752876746605417661016080147853305106700687367032127311157555807067881020440535859472181608985690988005601734909631214606145996947686204941277580808915733211697680383372686926086011923915350982093759405649447868384287666813565225472361892293385543793168976719615332138554231274712608625568870585685498880871810025258867074109553763654466333724613238787216368174366674113841197000704511860782602851710826270844810846031936949279854994565353525247954656712180442197981248361167924254955366512174627778581794582559977256000251076286518540709632165418877690732723855253618510173006429998334850368748314406920834840905070172939546576587965521346955116974904581021461302983154205488878170827261407833607267349570430276993277031407253426147598452449088907567349481616515529270612045347739918718047464803372934165235591091567190368419546937800611889870619278780742590357656503697390187415927014928904681421106107838891776314291886287627693813215452979158235144197979841595811604746338181608898020404218742949616832986825548849330000596729885637252884451842884809687906354866069048058654691274882827476861254508660495166208342940604889643666970333263354538165814433371607391821670019991762931387416700138879913763310495176060878620265961018985489025292094293520386136086508159548553018911851225631233912402135362446095299849440457797265650458184233570336563223252456541447742775298506735848215718307660336900361079606579389917844841757002854603993450691798118506275504652980740086309236860768405700620721819787906862117187119335309472182450579272803575680996992060020063834851572968718575866785596790604557201568608427772101330104591183154616807323190960085379662043779052119245530478409444651273825010555913008914028497766103939088287824985599523901403956166085271791814998502809499947645929776721832400197307330143516528430318716879756231129241984236998571113823949078408444020418152027688010409388336628500838298714723499097061850964344801675492258703911191273506251007065709508444230238721281424144248051089707745562504909753757335022214300533016784745777864418497457613855580205136127749840865221130564713248568090548822262160303675517651717896523889169146046571905908947540560775354236985335498960397390310621025700756222332201589731691639394892016518947686468335505931624171513328090069167258660120302226063830042549195840164944650201535433320364429203169387056557872568654607204979407073192653231337051068714382850250831858823406388985510891466578509520515644414863863959795653642758623943382954375106196865670074734235701682786420442404349553812098683937610094089881063897906148523513640225979937757718149121642731071820191142326145225690300057954217338744753414085605497759910332740614041475460370178115699803698570373213652085594110973963672596468764341034149865248337985454539755153776137130932472891461997349185331974074240220129795631078137965985307247097746733299467366185086705057521354802567257593763044099658137309230985086325003374859758696301281517419069851662303151507544664354342024910017895675101957502931762946301760692267246481213621490310798674762528482613793242578461822879666093911309382246114533200565396304961343253423133579852789178676177414299114894514806951008952979304278803169567718166583477963543022479641020145936652953747164394837260249739497546308294377489129293143196482187086629126941677424093638634996373225237479050827158102051930859692531614647070816102860855584278574713802462348339698114014705805035225734400722285449663481124659786294483481305862783913047785574746458102348166677528739014487854969893714077018425949436626432714522255545924773786664632164561207624096228314743191683874647207862777757102562342783853483840910311715207156512307907242250179226174702826970910050606497350655162370370616887639666382338369202715392760015463253018494982061785797384732456388966322739114075621147069449765421870446915573881595079700419006682800903153247813481998560712620844155123001761160255089487775740554747450606480807807420602652111387451048577528498940397133472230296636453714453858757502749329227230805223485958998964211052783981833636063165931997884139850323283538714808016804023489122268233217363550506375906982820416529021141542437405858859143364010747344762611230350421418481084359246809031795845667356054236759893081013023448265635292040325764303751334176236651175412653708241679890020511709758800294653145438595210771954426301729322014957909191545714915366266606039437511273411884219340791749570872756930924919747376624544486145998859329732204624975517769464391730173739256231480789551247219770884205941862927311433931873171640039306516298231269914414409068416503790204623212344203501241586710860334100596647370303911570664167791593852023934863243610847590101596793204246988452772664820138519527511751132325854468381365142075582860649659944907120747438210406478737874939639372756532564745113033856042372122307830455666307530828806380757878728010669452364903363308351148758539677307118169014434581294074629106532431373364662205071423828741015767053179671253712046895851440845624490958855491076211082685336882447319241799508117199640074532497865969633273045894223311972308095393877307120183587668443983287811563359234692120639427866158734298441506837425415943281847794647310993093836549612161426549104773913797448291015224798216468484045815563647937120174522869515726642625913127639124404542325613367843789550889903056388389306963209654763198501407627618035137684493592901168491398457329054834663572446879034223339417555210508876935662893188030359565743870493288255963984053314214773287401101583688264307300872170052605209958732027798476732263013605920970750412824359923334755950045592861441158746970867624648430468964364746692016027267331290536528860728481484033157855527029665154812090993763118913346693609340620858996139655629618653621336109668321440441566856788419847063081620096406359047021640419029381072316460408234754746218311442716318285201917034700950570096041079779924411554487846843936810395845843619007803168751519921517409026019303886456740199636162446394664533646077730362804029291503317402150143882190767441818699497305866327348532591411716291071378299992530501690308906712431323904099087976627145003073015767561953186550349946404021697892435024694171742002539896464870520557884810051161137746237458086057978665466888569227576995265901188323456962321406946223324668032561393511829738573125197985043659016359342468153655830863356336239062469014301388000273728306621760350810419782571726222983852580449263108010079276451882735650947475979807802945206532237841181787872837062612556315737645641861543741402378491376430361513967343963202206098601418840906572508962262221778026949270002181213439984455050171857742166264765019311395958514238055856400199860968050904154558343217479652546596627677163732371086422046008362362313290966262898316601891039526469163093558108521023672866370118882351941269386296462082339472065859006256874650822577544781755951805740012133458869473277220773756598287701354933282469335241707736026594368982543580604646257782824912833357813018523678367260198363215763348783989765523155471943811988747448473421265047217527184492903747739393087674257364294119328048993958646968755943579000658733061665976841904859899186475927051276229033901683554489355048526835670741629586053575002419796229975269498796942328689347688105046051055885118644820476576617303775219410587890820240910337798895004855267914046376627170040590349329270485619284487852765480909125258400879709994965462367859090914435912812664156957383192645927283866118838710126632083486821609502962636376868457135379120874513424235677131659465076562100758593942860861664725576332313597695746938576510138465473411421566101973720421877429968698090020832077719348330226488173098753889087045131753715678225767001159259401663977639682541046209245108388800385745654552441835885631435416215665150717279602294734595978874461939839657764213399923449981947368832312766879923157532294404181657221668868191024712219610972251747499675662813500922839796547204495754377331436885967762011390070158726699473687989163004041205327216141864538398870025654504289984387289564122520124666018225941547486292495103551979279701705772295520307037299708642067971919981755962546828959885752429930710527729180831894690267684875784105830876097000391676733694039243946869710421841413349197060392596232812726882242149746177110815771871031283984524971770891020352832580838551302231306218791413949722455832540312062156154562776716538657413596489634959658763878633211810715936314168736887941567841078697789342327009759079145007984348065694961177857845016925593989834933167984248527402809851393601700433119822941739569016792993090694010475191847295633776273472786583832030575719188930645685560659151520093177173100364786937333328882787728554820823788615843166181731761736206084706065526503580402575635529862451077050093199945997642674595525385747355593773541933184347406801093592369151763385611453713074913319412216505581781344794772647739345245834117607173058618476393612920131456586314597982241714978651561156518201162202228896344988197028779985259442881596868667170475192065703357234083430636585504668065807776510963937283150167838042864177566741028571941276912926938763956454104859270277351680827291503876277911337981296540916724192677630848415566147784925855729445925180584208063559241041139191177458068839574773132303050879037228793871674790560745153597344692072995007928514332002379182406520193859380998219131336468657430966259577283816922640579290056377652253133498426243368678303407575156845863604673827627056767661721421247755207980941565702014985342203407411112158566405689185449872431888533758919702824226174865293562105195428007007696608465936985404518894079208917426260516916330092139412168738314862916344300192690975620773067655315301776415954635025956535627484342166074586393857832423986770667330247496374236647445743568596883557799128351543485316926030203636542387464561027289717132857296105153977573338089421021640927751536487352392836973192704041306327816989833478341465650675442290237655800224247826270850923752853579981543467254589650464325528451856295856993355586530324846057048465334491872949622371473206302566397934998263183790021086429748117937930354753146534402632972575435942431720999171584416346484932690210766386054154978669742586101140807068350435439891815271700826042378946874746347065652052337980523896129671706899041287103460036860443759025410596333591958622700316431112743404583535263524822245115989680398896408339084755462904908836072955303677635487521312871583929333708722187939241194221368889776592192754841423300157582576709621531743753581872211202042351658775604004363955696906258093374749167028465100145758610781375908882926589653999448137863343222228037725725861885935839453964101575283554494289642145255689194404381026829821401223909699167432806802090491440652428261500501668387591561659840903309979477229606985137860366600176098987400663217358657991570988116049777611909369470630906479926734352798847626659451055761049659611380664471797954157992678925723805005931549882345030839944156087360053711736810334026372910734519085799587339338330736032007279542697387017582548167986386647471802187683716389607413890132961117629810521951885309421237538675366007084822112449689392653815992598048606225089367814219437052874358542488154279546912668194610056087219086327337781025425528089869637950970466262410880158705419317577146389358184413059829675106591338577543059807518021907367893855516638383731380906512080289106252307287760574842327923431859961021083739221363548801474845854723527704821477029682822353826647856758052377320492666373599497701959681799363798824052984846400095807596608527015353059723723683628556141384915734154408401358263281090898374756313840595340623476912198523414916617612447424465527751933869680689078667571610044058504835571013417506994297462871077769141275582521541696511741748059239200910909506345892645559799102273714768186123267967560623122488720441034456820744740129192325038592475529863783704901721294938894414592142517792413259328999050153763980636216293939187615798924348951645902023293304212934015791437184588218098815387229244119572311802213258865366906417270909651213064317601498242070220754614246180314664094720309890451922480686594135859131393713467744823930638407446705548681759375581112838668775260175583046862585874151106183533082803560827101815022650805304485284156139667050516866100678863216885722339884959790954402052006185611465108576450719996662234269285122121075483326547657494471113322154099260609842390305471243269807181964931157648108797757882283840511422697711480742007917390070530737369740725497712400931232761692131137383331169843714069400097435036392442440680883039228380944019340666786640463992834913659574810208427618970105472404364567912082685654787082822080803443849515692718776439580434074197591929282172696060264221105076432807677701871657243779024358227216205405714108707099029341995369928602752640916680867725739988719557054377039585663938247625574998550450955110435785983184687634803237193609397438054464669598243141993689879198825645685547564076126415426858666464589211670846528578164204546133214494356344341492557129088016738731366396539854212344756814936310396435785174757772446246004567895434598063571688186917556990881865696562136931098456804975419398193547395788106252386449854165094686551119467582012846265709413407356938608543586537135174884608213834854740322431506320615694517504327731628230652929371106719679921848771799156233008623227014221481338559866856442364640309937416391010911329099577676961223652358395381532718415510202240705925085057762869521298325160188773558900858531302694937111162799076654474997266674832393946932543211101259839932796826590327887759168641515146584542761974583201610294635360230996561653338166835371655351989321213269844418937923641648438932102268241312402856884810215896714043185228214735817761984285763793143700676365321048241378819071141029257741968363466658723114554044270376157316151100614960343613130672492975914487719730330667741571108578472366230369965205727929910354982133659992364084658766249625536949247511601416844611882200843651462389864947835546438403671907076432373276035994849775475687281375211281577224255604710512075567685697740131729391938449570447676875349708895276129500966428097103290577553722108333463785128268005490380072990484499474307931245859156191523906515369397672038451029256243429963954174094912874762736071570393399399528055605870949417253173671590397002254762201767346297714442999403967255575999738459640804658928461778692116474042635806172510153990741276209081634681212910658067218129966839973186353605075263041985604840181387002971288269193814972218751746013835801662956667970141270068387187819040416428620250638312528726080164149360223962632632790406964010364712419762786907323080173464800962217623560991327110572695054927150485564556531758175606747386434940459138124027655699894644264845603857452261176224787795303285961358520894849623651915090633718231620248781765178734118130052252920342565788685787668725455763275131202220768042848101726079788304730534708250501924168800781189636097342480596153985733256409509169407855517858306942099100677887206039581497388788516221219272510425376421404761985312344683627459909796519307862463031902958888415567300060416312876716929176712044019588186682293795436729958687540037490738358150599267825431107419221600559648254594634050952644199671081755770608041079581123001955576541489349156081223547216804663428844262615682094475302085187642286136763766275678365664119936118814225513611478407558843630236110570571135068469938053211936089373057336272677302167332530618963780823926830998093752415693513769016770842446422320723858680591314953208952344958352821844742228729559756338518768056678050443904418607244148620775854691333456525567676752272362545282672807264991549049496306892884750118709160225258120932932970176645276496614619031904429001943517746369564382158365470133964465521634450825480274640568077516252395287069202967555109242698429960545475503636906195803183881296227291338961491117258408367015106136627668055048083898562029245361615560711601974981496881181473063446499900862545450133819429500731570612964500062969688419935740419747881757535822672478784724209294004984365804837881908218398399353388334761869057821792820763725810169602348365400528318109932076367851556163861953975224074749457491743169697506288816356064118036952728285657116390835499751326868689677080293314979219833566468259006817755578586676878310581649094051619855153246029817730994307517703592564470486875508387794800466154996700344594289264603465867080812392457777540537276667338166217836338747534308171009583226345384221657161727030638063182023214738665785315088465199530678586876135818702996579047991711415017857048972360129216531292793261817387621582808134086525541083273836438163740176398005696033770539269295442012716232019965579805504315264383247445985895005114148782712846771615011275784817743758218675721408463876390276277626903362365628152367376654947048607802345511889452738610703580235842894882355691111898399408721022672472881078769997719537525133755328768621012365684330270596712674800680739237087571913767950596994781861059749974825803179889541711526243927587188594843570143996658801770174929278330819991077663017791962142713975299433117867850042611263407396953858847933058891853211908165540913462941952684965427437135090675092630260522950134516969113229967877806952066859913266996622972175015932919010662162886972222295568080149168726083788389791897733878354911419821767221078795833463481689324932085121220324089254174080050736547235381568760130465209691263447886785793121200577414463278576583958925303835887369787216758515934580393248354382560355005851845551205570859130145731712177706576906957387025061248849059510522992482451270660212353667103683005059477588566132694084079943618244079491307231545720518322856610281320055332229785540193532788158821011777791346766923578407172730886579129871172568101675044192850431628132522408047447984066835634277257418310978698689080341313688952100092270579655976579556159213076392048911065581956367561516961115505344720360781508550286789206275069276022936520698262038808414903829695752420295206500881105261806947299621310431460485191795204299759797400925953274087474995064027825336817465610640247857099489514007114857014233834470877339836071550770991665845562520244041400547542252284403065973660119828688810781417837047497135121516365418090520021408284852474588810735347864253074074123557672517086627696356270183004290377414473592523834233047567104626077372953983117946552130415849268706994007040701353313779243017668385206663324929218819978764294528807748412396661626387498336501433842798916748119706577535996324815472003774215288929740684025714733859307950356657936662759809414616838616272714667032556056720148630010281065468196917484512728308355622674218849923979242944620733982773642701951831713691879528443359888589579776074622127208265159449222732927451717989569186340939664007271182175174698262381152012634078657221876300545287864013907715281785953962027468120773218943050501249973202008563911382223274883129613013874588983416659988910754121438561372705972471696583096783243882755100113169104541629674744679495170977422457876564206668192420232024103873562153286740923010038938270442322753583724796894841624543566787580527465731235463018809125510831170874482753577061884730293155946737125123102410135856414452719327839425885690672847071606540559831544296030198597115341232215538587863437040490601293983045192861653269467901447812511567458564566483651316966522693615596800392067975261374667735243026670629373498568118235085182811518429222671888657803897712648209661690386506144672854193824421110525845914117256181845092361054778900964884177735800408602895561578189865927612582089292988018213694112828992720749278887449657637966817024076578353316913932761894798157527587106073209586289030815910235535186397280740504583756403520714365975128038812494281521069289792184215995644499075586479457977684814024377773484405147485222321299301258593708587761527113355262003266049835194994773573287228177550133353149043316263530629431268945339150794262137368447964247860697116932585455618303379306702345298113533379738798539368878840028549364209907079452446659099632583301530694386714321181855334723742624424867907046804192451075183670093759098340140489533040010072894973226349980413471899922021069132017120508456927235654490052784198242513848393063819852359911798890013905706644131978455245023585051969442564135762939403301861442691225778377572085082361166106491538071480746903170628976602676920142372637792829248879418760448901019294386969021083762895849830839902350046704084470319196926283369782357994389239740525863506407329317365187774145266588769906903203343043204762111014529865324588169422580007698279192920926320486391253715936985364168471325604694538523085498957165565883813922445757194429867713047019644342387211349593126419771823429456187569569654667243308324854660015369377910226858682472021394829971207927795682706694996086754749789960623600053969190600181506642406546534656641456909479109958983188582080882162865038180315435998441887216083443158841324543601893284233288523033976739558429613459165112161118480356705753989362949928930788447981647375253284681960323792939293215107505293411016379243831784300022785571057126667360988721337157139361703640158336653161309924281314731970383357919079486117079783133893332399760412768068532310367988784588639389113826591377627009441549166577713307606451583129761104265358967026459423690718594293256747230471306306838189850159003549827440075055864806888681669285797665311219606571493262795307422320864071245926433582306649299138996178187146830780332308780733806598255410029745740087934966940738690086679899963984360223645455673731678811461831601793017649719960743134098767858551358555233842871575082085922527193485522086526597040772561958145483192718610488792281087595741604493745076224613264119396036481101047611749404883148292321647299260724940203275016215120399932346238996247242284256907033020122776851163245162234078480290254668995354107541290780268948671756760827812061180771735458207605763433343844972931002209129264067630645608077818192805392181188463581433311118670742133770265093881640685529536071890776163025029529944357880482734852658416719546626987895165791899310916184713176908625072513582508856741129226340960785181911156217786681442445817954691987960454667863479860475014869243227393053477237843716942574420232744801198229018160669566618654982048998562223008162785233274403687969718044775794410750199756107581626727516780168651780874420997542569919733629937413218869176961959695833052080226389171581756121569687209109329302297015987346591220883639219762468502491805386630209943811086859927784410976138339034711545636814346874342830892129352757354164343875801430683365305581790181220612251548289205936960425218110614059886806468401078430613361826981994570118060067002545613786114139376972139660604667209632929783994367706437851942203110782160758398403830083375393338819120650100581280911636457966385586015524349869558187911386470159670012703945185152982126370287550068155706152682244455605227203893391719724035327181340872412647124819065014345521519576214660784730128620119348490662519482016287806644996333648349835438857408374823949287381493501870101364700713103351602631712640289448864619810672066260753188683301532753672908012102892853285243801070993205720702179087330227001041012982547582135535408598041286260774782657445361598074044494036228516386613875957657341522614369236945745004262167266858220105397502068695248783302578009035429312154284556836135876560937784043393349724701760020762316322722984772122045582721233851829251748454963806247556996235096220150441358191094611991789594783782976062019216297060794085221849454793542253295576457911092030851243309066230204252799561276868206034928628373815739454472376187222420702177959044562755163983752833112562765864669390123573948950411321416027462307598122605283514957659694496739814023394133325857715639260520685216033289058394015434238164993287276867510302904476839981475012621477486999594595920066319402116308883278839648001286785173699995297536941747904059436733636826997208864396711025225907840783631329050202981923277617893486709762796978248399228317835686126243464065008700813395090222570107724953486283583993141719865888156051042014868389830537408909151863636110865710003947387496956175332865138314213317398555806061026328652618722700040784168838633022383627055363691143427320806611774086547781873884420493234561935865667606429545241568894643582261405292309641068490537780891917408933679417533156070400837107510178473262584493008994973684330189227560863194211721114205220108334892088638414404230107461404660201373446692323721342273918234603634979355253419837113384028645452797481522530820536384317131784719602400340807663765049392862060631111526993512824306740333600591097836385716655066427236755532869775236977449450295788428420710263674469190518360391052759825190091940214574141457892221480229070013267662577903790772803463402054360941189554163591475052245374615757516251805335048481127262945957693642319494443536238968284617350683072680146531074221929623102966382782744332900242052218109090838116550338732723339485915116721269146704571207674389525338613051163649461449774004019779993666415058140481735688306787872827409489309932738932443687025362169902808331511655373601328739025260098456805586899800532001171354439124651613993751944767887369877846811820940066243010011131622928521530417957239907173528607222288287966274189442686845765982044790724452818461389932659894600881620041824246089553870248666597258603852474344945630942828910781447269793235450792663807181436370108483397809491573988008581957085771167070969108302029760638072474852907698984135597383768525823865317279692934465163717443890387910648288446010207970886208532680876816969302313593998441789881248263983053528849785785042125593108489410633811120211004862092440184380081677887124992316045736533498182508648799008247752086285089753954535041075545234219700879768605792999874321199263115378591491505185110018001175158407338664754704756621283564935112048198976191777649182880972750955681108648621119869661464915633466581589881510685855329807942121604074831237295685900487207979772232650879976844656564268366351073473844868141857924767254418002296778880609302564169083375945333327082996499385758458782035644631074162474168640159586987066748431718702428357263918397930538333720648568332776747480549566247834010761619211541939482279066169906599978630020411709820585256131167631153057128004443364669059488049680225441501872433592328034080691546256254075549991280898292606094153585416856716335136556903699456971975922166932006059110680649938978747587169176426381315303607182411022628478908529473152055929253083677184780779976689900582223530297540355048789380979958079740501459994032362558494687085452598192434566347817327609579575011249217300230998514611315533711205975629968678667803725957794807706750515636371903180128724117344384989037330455052168616199728798213635949183706265087489015617105468524363369338260230322947145848353388382415800036509151832205193036047567530695370182902139972880319551042660333479130044927522098884304007110428260804752648299342172646950751234212968186692757064792484101413806327088773282455439801437755879225099794074354119107525313075905918387292151030962306427247221069612202884884418869953611546981648564526773099042769761077145324717946294032997319904527874455211333003766860349552782799750495443000183882932231190869181785165321777166808123276956210138941879512589951192858500156880887898856635059738649451376654201617690462104160522855673037113405991759629325799818310217408827530152307965840837726458410810919492017928632398855156810919220916215961502717692643385424963790018527018605605019768814662647692941235993157253848204729995236734157856124018992643214202946781680767541601177869444433247242044210792528847195984477522314082973851483492924394756480411334547995749443324056802127178843634460893581422253901682863345570507865043612325232532711161597313938236830133603831774485373474644463730934026758359605112650573825072386421778537618363559108692101074554339036642865425615039813785015901979148702744220912244992438501212233274740433108070785999876060981701860041141920244434919748581762865483555934207907126658285272315005550353650021234900058078784610538624164761185296885324253426453959708674599577767553960907728357867569139959890661085883637170699797590475018944355764657488675780667208436636275638081332084171843969901489124655019196952557601186397740546399430419371584875298955151945934289070040737425118823315292877923266586731191667228660006885166900251052350575522556387216231225656204193268838524656547576261670640265930072930318725443752231739866907098808895823167406898662271803106907681207967388519106581861559921639038503075761677266936256283252590585966320897763327091506919423139991033487702206434145665053768225672657531733502522547416668093399007091614930840357714260226153403621199768228472315194073496367032193565834193943855777995850984281439264922123155828368703647311471788903200526948296527780370457648536839877557155280074951482491603576101557996844405210018969786668742214423441414128682001475755996595227724904956168535713573448441466090012437778027234857637593701488814968283242051148745573099980811727346006317612061059111126636694303017725613829503208714055518418852817011946845726387091529036733870900148343830838101937504997915243090731981439317732848402759568486397903726117172547464829144862773360259439920131959869939703092939527315557647737036052112733732045792415148143595379938055044592348385730051456412020001123140309353595630602293574566253443136518153395029979463500277105554276214303096519890560328138272951498907027648169177814784557057710682673000799110954022663089709904773854112146116757789339691351907143002654095653632568460321025560065616765496330542833348061806771853575090772299760077455387739958971020394543346541676369461230290308322108436233102004000145657217019513521508382742520482600866735473376683099223444000222081787425062817830985731799242637608465987020785041294585787472262285858852585342741877365720407784218365612780242400297757041449115287783452733046235096584535119266824073435923812050406319606205498091446531241448737121526554688916457737297880284091106801666036875060220594766827824505718064430839138966357636266109623256459937908980385491422288701207463513550689851417397834517148310148035033203889738206854899103249627178696762979590424948579781617155974555348823631375610624689069095914629852784031640658264569041799913996842611798211593391495361394189196289228373286211030170256036595405988631252719625862936386311244922219113378598208915254194730179783660110318723119130861070272457760378562561522403486114465341716540749005832997740023691728258423635894271462627099984670805008695471346373185873128593275786332934287188981910484170727055622452834324985498362411984435992092228374841941691470789486520685064124146362206148859491367217998354970820969845432030274169843834710100765413263231277630777832702987703348339240473431832961511254291513094850304950178928490434618777094246683202421849316853607261288174341912270167770189962266490903344737611713124761606396515884001823519801442672157006282182513587353746066883869309685737953416547187151194661980381924404367725286312202580523961114059426696154685391627420611998684018107961669351423016279563427249202873174413841633452599194822185761732507615554760527199433329782160878926858178385926016931051980903187785887264244095119597685899618751618016316469236776633147300691841162541875867806256305206284684407394262068658061123137610722458421596360615873956526550633859838988280859760749884398254960365448787152507702195508187410378267012156084047916597183591201887529360881049842335406890790641758788413968332568160003661219806492253880767949452664055963168081665447649506227937875222375100271949895328202423806680238363569682587160796956241933775466002770638810194223735025276144587022475756323586610715119470869629952284380696422671309427862030122258574853591623958708499575856644214990683184626985393074734870571303495131874727774285057168247891467870206014689963633209280163504042199869509298132151735204048743699574914035686776308253680201604170706941595848481166679459611225600379191489019753051428618646672479782822695600626327429881040121546096328113076820241531241266486380598255309822292655420404178347502268484932318154526255523703158982633794684935833425907093038944634586746869899902932866034457641837507016018934675132227007906172903080454012634091946219894416269006503755983629338139206336660918795972502015850129301708279530157861266044815070622512529854431987898089050986665476381200714388342470508631704413842137440305645234798783543114557553500053081741179375131854932140787093533345770409470028468789118951649941375206634886055547930557305451708762779007134249861281804950073634618569604084141301877446181865372066030081624366824992292172417684583577326464930898135768083001113131989940534938368891885897413181361112628995600924011945586653086444854205665394948004688558693941849178510281469371537194696542667538726825968719512501686394153882000669158818240423744284845200191082926355693101752641106558394839356721620455606333003558789160441058467085835840810866555740234468217470559528873424844131446890405716258731969497768244126619213394238556768258223599326399341433952529711329312628348977888525111706282319547586782678611813089652653103491533404078516242684765091327547434054145149184348811993872407904148387954550405916646396225832268582663493317155260875686687378675326428390506940566436328152720393270902740028497474434606479902567447093072632931673080535808390778279416477131244775124825501977974948110811960135127008959304259655480178532094722767381261832597897385478059887696448809657915193267671554623741580434768532383501773837524047601117032015589956577701125098327592123249736516321444892260361287459754532932494236490476390386770229180091458171405813958494821221005171393780498715206273697036231470834615873018746343707453650722733498796998371877753879309091308488890955799522478980011234410224817042393553045834162657027492667675853310930884509362549622096433677029603349595492882042774223014581691732407708029702248384407809370517739695968133827635643167899678180653119819094637149681930483034080740091654194484419096697093197827756847833875988230165261217785344831195481828549069237787419771482503985929394962005306498083913986937113823904650484313644941483459159125619056518591597767529700999385991967041111956341815349535466952549871470289695929919790270014428068952792494175058039071817108326387577986122900784706389928460939692429277978052634508347710063698942582804126674813588436763868764981726733197602680727768006044155207541512820827350727324130561998062736359773441560386405654079538680378805850664514699990337592030941889328197991874222873541303324926386234273998668746298280593811520267511709850429538673311312844407952772362919960840612990132800699630402471101921786987371387119593917106677616574155125178428507960766135812565334232814131451283668013399663608012743656372202489296001481799993910592609331165767284174507572349546299975290618497482915032779394928364352542722027487533675263611262763702299392356183713978028979680094070927187045526176977010567613517251549302457999991902479393229415195047642280807657416632961448855362700704434312737764031628255198758062169780649605541675378188327321230795564861094958077740275840649921966906529226590957271295879572113736006637911374937205888249570117844019573050577152954377108174697560740951422917066201483626775134372228695031993187156633128438211568146245283469623208532130189707221052746339992792509549450380602125440627160676847996404474323559393759105527013140110252339799899134530884316855797622363511554972678735299620980413749793701115796999637742245171270048005444754143659480772652980918001552233987345390205914808062222563843222535472266388308779739388853489858811781399524478091169966965522522414368803335295585717085044876588124673698654119899240442870325058221385458565688343233199404818140192655991161200342938345652785191913644731138379338381441128880627819687490629258892719449551437448416295965456847471233790949931525811385254403740390152536541312977977493500233586545709973237051435039417971729165108054368304523136807914475897725667887595486918271813578253063089201653849950420324023490848136597004447333600303615572498011980528857005054891899531225169458035704181618100175704872124171584438222101510782725971674784671157401947643188423486345199606369844582024561781339744232377281308868851294279068641539646033679979043296349561077249482256546344317081709420647880225172450756064987054930017487390627669534497653831689559167233608746107114364134330553062983696637839331923173427330929617681746468850950508598296413525330485899602003635629211146113785905331934039778088495447602194870573411626335361667612811114816851261358448726625102924705045451619136684781168339427451655591142955307705837848590851879491776640615969651253036794681303387584124844723964216860258212339627722994773906351517309842147104087187373613132384227585138355902463921475636066671910907108309194751857266257930823982777957676060641884627123114942016079318899402224111099492917872478233962448265187584139484469873687906545514725920125730993164390493681440187661775701046601484152896530117612362819545502243465201577942037444535597337601505002447523930298292590773711707684279518692996591092769760980211335428016246957161966756913252374604883678205723821137374926003243978392830956990932009244520152446561422083504604601068233718253556643880869870329289106808898545024645331618140195922556125059091755478550466288699034560129753946221447931256632605528310737403605194394792220994450214746226058191786659587730321612977912427239674209188262125427853136150034015661046182550491731488270601633590014284062105631899762039341040141985725950924762253577214119476452116963277762153026043637172563114330293142254407957286781237957152809516711757270779262443417191760082182735512035788720623261016801208851779703504221683996576080258672418252111284000411018742665321396537601850170431324206467040775687925042201547822193448690806622911060418822245126626336093392475517561306948938990639261548056881531259726872428684813213468482619845547709308512718865813770079000405917079947556509975531305716283357225095919251870923900818197522161764660190835582305907144708313191030984085935593572099921084399471668705781869198217626666323427663162655153672447013669693031759820570491704673608359580323776483692834241813946595174702477470156629390256528115027908321955165398055561930489506555649651295997027407848989021266789303644095748651668333913722559085469476521984461080035195813236806842556589172357831612036040282799266216773054985771932760698355963402712493071560300132709467167183104913484462097392630990462216147776501675996371433838810172780263170057868595625693019741127378962133501546226760096933593480620823027048734896862674198660885280582343000452140230444197905056395158688591318773797930961161679068467606097265800898495876102250944982517969040573676375546669519872352669609730375426953841815199032564627308168806569079355317136268383385293430176882308868891766898885282493059262596624799323449663490770912855298676801901828700517860832711432096441177275991077976954544998450286833587785395561197714942151624695084413179920692539027206015451468662236988256806375110565090516941110988355423921348750976709434911545708128587142321472693922835654208241277170231042917860863002607213080706017482830288340186075037463641878146997700084331555166022377439728002592515405088547627637089510759371551888307925403971685597842096226355825007173670825525695510157249053518716808149466966074094190974439491643425601484061451217074173065853387677292972979888916885512183347653324723122357032885705087066152136922473226163040494299135464230346335526322024532423295796158764704970241271092353780993316049050238099698417273123672936241628846883469493170872828209446244846371121720380167995579830973163634434775537062260330703743209410036905541983512418439555401186035386558118396476031420860707455620565380889144844213375628789934992642399069488162127345800939431058416466480339949458175798227416657125730466306876213374969657203165268554303349580942344209336485445014499062306525380338988006759604775424270474834437350374674825364760093838564093462227380528907607020672024972928826379977902291160016913513232428058959418879923886161852787924895304671809562038042164850320025858952007145378419877077801941935637293323274930740422791792869283463779615131412502467831473224460339524660611942075654750523283904446372631608659604642489513439528037464718464763898672298207169055748460157048903991081475159261791103860296076160244421276311361433327640629270725241022568398122398315033697952947761876338894767004528441725629888974484920789026788419297966672786266712521732193152227761814155214578893473251310011335665668241115839636196194220776949864379436927751935791049207618363686581963063643678165585246908983955597566729420676792400914776107732364516599083073323453413578771656504308915751768890914673591775608720545087522298794903914757729708712800367677648913933321108637293990808312696953726450950401486919435343532319979867860983922115656437399585797267605058878930779731834993184833306924262296050159809901426924909708953958747813241157340343286452312132120925498416795390121354453830811595240944193433475955603548149534581785475798101761027300126516607642718636738006193059878019255559672684606611905003535341239401976767774353967752849680267035715805653259955900964817135600610502886588204620137336052517812617594143735520839989151051055656552818537039161347690314317344002508246094675344360394556410947810375223622397202679729163900245769705314070251643286853220744280244431903116365733378092579018179004335924273355337684653929405364373331370582487511618014101729840366535159269874185601738853809670185828106775407358379475327862346910181239923764854105166244206268982895560129868378849269339046070410161881339838466775330790590915924867063311328673045265445059211644371283731284798987906568393605673995112671291081869436684935121099584604092513233647090309811723489791185837071168797743377213005471819719570500174386303902711231540105590504106223301855453730300670245657459473196089427519316982308901642599547454152598058663446623093371779374440533217020961659942701962173829004841649403500563006157368747402564440891521789096711627771473745485412361597155082662110699458250951205135772049340789439477608834416154656404110532381971906139604350816129015398353517933749985369245194374358596726322070897601465511712058373637812075410210138329773557442701522629501987712001714301668806314118957660448112895081692215032602551862273931011361222751595270417866193887618206404724213304155770654359298388858693200484512206501479767921962006021432223380254066743413166834809245806109100707486316865140681113947895490286514179956442914102074039525800090819453958114115487357143352775594016037420530710053614668102822813509170807757009773423594617204069018435299190395756039080494494327666876638351138068447337988731846019094710696816581083975267905307262915649373838894035049935177617500376943592729748660971643131954104994233910581211676772522273209248720036105649260226524011460335238883705737651000493496503342025769032644306133083612451864691857230061578522548501943826218523113793252443352470371620567671823622793987409468065007432629115544097278769380694760448200858771588882105029482837979724546078643402931819489577843678835334143605407092506070548636303652915255347492305441916786861292525105439144035945160907065284769946937570325065763106661479854254570523460215080950152340629925663101365395127424153104678880895622838334843607966370846307441386251983773532114136714535175492258166222408494920874292780431298780244856096019175106655690401418348380276139609229139647469111946142885074750141975316332676457628217829945514069430981358633818386741576143358038203617551908372616266080884463291005721915574875295355567101205423241461282870334027015205311517661935691346664623821372641776883982934872220495148299341904829439419039871412427146244161369097638653359103727546550651257892563583948848732655774429017195151727156229476315979341692552955142397194197434395547764219597552764364986608893641723282042664996414680826621573697582249594006444267859447677011769302834625901947445927201787878748946185295055252124526859514850062301846042311262133689368994726034186110797206271038416660418318437486863376423812665646590837176167552058157355924058107043837600330132788177597217832531679143384367202695233907214594841310470997559964132149518737044735418947352961020073742316597412900475781935310511238794995126905926635316434914128645251189619303958639240439667835085767751087600048859774378350381073661164709003051906040521177479336003424090142355697143288556337116866711645852749946712481921840391490353202428737209822650692573080904537813048504781271937030476612791709714462771475082523619477433387659540149054856563734563351615451750388716913626208323631746828257947047157606800634868719258019010096535383320701012338658941312556834211968904506632768255491535701582982577357000885400245466296967966085484106142566968963787763317286515460309307354263134615483904227696224820039823899401206803672903435301891746616072116987519231672359330125780591926886312161025637240123071188756806572086757917254828814935380738012103448210789230003060722665061586174833579783298634942975901994154743509760874632265801464321372657864283681098913808180637195654879149876725924782553571560925142604147781961928910761015002690496499199887814884839784128316261976856048633942563247482672620462880350466131058522024363842654899346242044814289129448167319958056975401465701766785699446663677649614812438299272558669270272075846741717701702696543377010622867072171020522084067437425103045085378693927196079824729497999646479298302766687072874568668617549407020429182222557618490100915176105770754887846577087759206296461721017084964251122746712890966292056947679672914405952839578264664704673737149715824404243489398675948241830331400884589074528343186040751188294301431927182806621655923493732769428821941973710980089763292817921098240846813060488213856461947748769912235645972742258469296499394075124788016998839577960998863143527316115495664043869913889840016270048332756415011240248610514379196934343400897780711705656483286483812047950595478968646371774259028393260602695794915226919556773049951388794724536428505803682958570962319724970487206154919316308515816496315052621387072811876963560045227902475582170560841695904277731894415591807568134000044114262941358215780137731167776722492782824742879998550125638704384204202929197190395454451128161885663329904403920723302612212131251789328682765744581091550400921699877077469588958226302516029079878442859282918032318487352640637159462240858130111608907915931522165016553832616086993037928292321343269936369560229959440439692078072038324433757194005739682808652783459323258194305384283005495808173110469094529144238766209157904008785058694008531702159395213243448637562258887121652662007163125775650069142040581612582807628327853009793531501172432508024654160146613607949343175703009383870377257383872444265237217679802377346828246779947157825082082827553092580799174007833335008789962832598115368356853023758036329961001321910057401675751603531971341471259247797498120091231496713280331818380019301542723244702241888852547789965172014080444241435629040509562699061782725597772666460540413669174294244018764437304431293755288640445374089782101621164082142206750820863102622001975331709979021210798795554735031459178645007446366457593694440477802905660521037322597846465668181376950770940892315200835507512039082935333270000553556225108104908276967090175822473271339178286498544600157424382879856575580952575481661097787901094918758024375125993301050559956349350846049358191922960712657607096704860370632215070421701893741187738704947133028616386832655534739749824748651415019463557579334705244873175725998236983866759848274029753638306314200807826000565501865516514438383503617879494456517737317504123594215045538992690355787768638753067740625585724949476377210941942028640150675804922018883570261752280970075375572108902741796361025543664717771351042879726532032282901338035872741407330462492445745247812385587998619423746162885205809296280223211513432445552009529769408572964459694255955167577809667473638054290485823295941513496634634174540978311998274503396528997482507548350401465091324027007202629352170417065955381486981200351806965477921282449544455103504846731747059134534243050824195062275055030804210221273422208427058770886446331199256339645052257648660927315630554985589591554295751721898051791421158042666052202190851912551574142481641513224286361012448490897652910970449626304482791009018212968733496440484684061165059793371175991340973526758213505660577417422060322672641434516767303154585756939833225897648929410991734083360899547362939103034856536089863684230757617764350598514984035707185302873860481116357701899123278539493301076274979720727126402710305465074889418085559782819725669675822967688956323948165389496277686867455115696227030426838951722055767675953185386546980984184917254062512168804625542336313786594657726764790370311730708989882324895596401868778158443406985103526216492584239238029808771624070873737156837433332230370882509363975596820491420680444032279552537982257277079970317534723447154934722176314163925290292976921251034269917576759256668083465931643003412341928960956976561325849348276480803561002752006571193266473716412793216940321451364598668645462016955206893987570657536655100612743745111809091973926256118761826462829065739760188593843639291905436257342548065355236463719727928869355981815651191942543713059205508909385882289256320431975130072248245061383698084697936031170813928703886901787252480693404518904464628273512374509091402399084711965992554438478327451444685581603602750562075000560279350068478660701425186943152102476134563765789036372291679303276281583021700045176658348073059341845659043678387021159229250512715238267056456056458544116519299906277353862886643483149560334260211063614635693123997033293551962209269404947532027189921979472684635513096288919974677745584067852791038255824742393276242612419847164676641346565680717383057833844770406592109659823131425483998173510782105927264466384092878424239822712932699298986314653051041788226650442625285489486270401855175512809334602744492507921100672159862706328795054227220248749161107956482885193875938788712672824650868257588457374457587472413798994165889798474121066495199648319174266392979637298893615580512253449738793037778071703323658554239981531376080901970617290267352863239470254725840431820034754279261958629635515707942022726960430403240622467409914895340894691685675092193856955312613626136081150374906805818417327937760440799290328324875483758101153327845780743047904045299470083581918420785916524039743643720065557820091757389549616404780771390158607368366500765972734038916894382446835024142102006319738466935136329230958047352450121589490501239295939569883522573650555325652877785383946593851888286745163736294888533697810199197300177273125653205920861796507820009428347236492067727623922920036128789504907528648532923190181869566783275001177415495999286778492688102117939402681005281752508598672391535001471093810247962711560767665578818094819063876970064516198690729900088520125423192865079664169804272442755000119691759991778695826184040677800685886789951306957142744416200581126804120666771469233535111933974958639432083365612545418506417684876086197906159430507627212042938711842259270614656618555357777648744883571794439191114129519171944677968174261852041135877376879399922701089302053091748991360979511628687013389255195014322045501434700261217161380952725287957935672637739703780306289280825470441460434290637096132532758921001927608693916472002978669622111686391367290420827173828387147910215373943311609362022955257770633557358258510785498194400765146692113017964647221627486812031768457450180409315334631842164456566705294675488707976412609712384661670618648711636042319017734749306596698743986811888206380755516555725963672961424165925729641607676486240155482630718946179029956843493651355845383431020218455906796047222926386223701647091043446067891272336038037702539977649673975539458647025946196394871728006280639132910952241385346528470919770809889933997277629397715411174674971249909440128392795796466058794028365000181632998563376804764279456295874637113920923639562740350271971813096417077619937360387037568186735209199588396568367773093975589887560913209956103391804409125828531774076845478893412153508252875485160551851136720044936325494750274029789556315379359743466958107466536797059368152871138416314265545397658071233077420230296189714013054235060419658999249012099588664262279529261824494896020598352567258774732779518162266017711412688316481630413943695218002950707693682864060579795599216536586435702378871848058433206789767483532713848285318876785293205537418285280312185850908405268449925416719342086575097043924959046562918002035466629467522736179212890041619723852954275834855848625973618937171352544382973484270383230172664301604692650632525859265050483386338667790290618248401173117620272654869728461821818189158734895933680289010050598684901360586974161322435296169353721734050020459979778591727064887196947395778897709563099051543717223244515033462943149811924969400664766912850436517776808290513277605694014355189569729008431858266752718516903829945876121096247762941485572783384332150910447057798586219892488706002620866109702952928367166639757428646724840289084679115935410512127541521061327966436421897443315369398667214674971569009182835562601177442501868115611465748552128228260771003936208666769239436064217476216524068954585716424944890739755401249961785787854173520463322846719039515216236006927269238907292391217084446003686321093975354401430864210358616974876203633902764995125474078845933740969377131055774129804438318207510142312946762210703768266350989291866128870492372512455001139864537157950015343568699899426626285430166586642372921626069908879516079284430201172374254162917551291675418910339409948851646675985513976362426384783111968884975748336221535146591706185938342136224534733876725315957731007497689383534139225229774522083670181411887520860889262100028687194827356088987978515702094514496612992437668540438542675636224724362369000180150283805105987055902402289014758130624147079213999925120387301625424976746681411560147891302207353733399775830135722406018705984997437110437041251209263293271281779798078636265924003550670590598942006898468728461442587366011954232121101742342917092788362016361449927712303275868573300860792219155630401529633765291327900344978593656158019231357564422651678638903964846046670269248808336896691559320839571512564536722930549831180015449289151089425086497670118060284819618308300088978521408345680343487902616946865498138359779743662286331063307092970239267853687717230954502486368707777209769681129919587525976395504977826405830238478867236034192694274767846611289201913393491042044438977758788321118764658514385876923708575354574496764581624540600266689467248999410763271453898079381509414568801989425685039998545756696073252736798483591115640861440317843756856650942678129421247042400510816312094790796087648069286239137421843754414440892634629890993301774296071873378011588715900053536637817828631786507132231064561628870873960475321876036007655050072139399044700554766018628055151559455269506251817370505084812577456378444488631858988920828650119079911176199355593386178993109893058685232079149564188567569754274409132529810850972440761090905260402352892394584625182018808599217685433559202643303183728289437353502711017837844356271470411085824742755016514966792684564833196590123396021711385107117330269147343172708590228644081348248525754783036811043813481051129781902920113988351015000519543571628671159800701019203884729713537975963048826637643225370481016682578633058829273802288154898596359964873627139927546287715054256011390606270219676206320893256194419357971539513938666318318619239754920135371819560924379844977479348722495353230023760156040857816730355312689366515259632222693321667134976314560642340726299614719680007361368574871741020367108516155490696235367331676822453742712712622080846786413475362031024229245555897321811687670409771568970753240495414477280367562141047732686994448735280260333249623251258023858868701854956310634320011026962105959522599532056700307971603300371712177533096681503627890057581593043416315698091529284963567990670706991047122908273616807697667414159310364246430812558200441043286325899865133776538939998193734910245175339781970132142765036692958060395798591581654101646248556257123131000741820217579355036950325506043574347534451207421932579388453114121535291385214195258576534393868123462366651982905353031926338147942012774302755198869432102190892184834333988721257911473709750311247780760456684990586725645801098755972616010496854485190607870717199782592838328442518867842591235353742230290090500379020285448829753285611896573568463403695106451499187501188657728622859003097646327349933256362515085396009079552803323224034132320800484116967631800197935433175801995852306655136956117886458832343425281335150251661666578329074770318859880452421451729325746800702045128585751490588241664480794157509037852655929131530471087406174473265955831966995633358434710877928010833938720863668120199731172762121367078039337562791093792498492102802724174409231274034160656958325356836529031226499456928294856224965091198444791968194581500719039861028709629946159307165430498349544988841599061797629577034934428149302566699809001762253708863449851229959295845296207990069241065284705999425520501459502348915167547275807041208505855522040368738905787656647678295553875377676419408761804405762376128470820137653699038797561658049129364587652697078559660710682721706974881765597411767255651736577103089586626032449421817748314806326724282404749097485017790712089885973833514207579965650861424281273459477956638492666970575759164939288815488825341964795781611202300716013728258110131305325919100236050151607833242339645799805595488723027647281220106627702734156156788365719255558201902078728589946227262125573254349829375591625300921010240692626989206307043613996303060781224519326704601814143311885338383598324917380559070486991585422701769211877703668429783733677558091209148814245718298385669162609972864601546678536468104632447189796512763080741676680759893666406597750211338375533448026555299204193402598684482451401667231912414951145427607688375664536292361061882662819693683374626219946436500184320451781561079356595224623971132604803425680972936827208833157290857798802044446989212500803301306378372285446682339635219354778683253499195432110634144951887535734544541530920224124781583474131516816413312335017246405848775319775580672236076194257149184369552799698362079415255265252963931055110849654310489879432108051372267496451229075757843856067934516541812722941324684034771589440574205159799768055157218677568252114582093542837929544732953404390701621250620969779523318381775893784820674837480107825352175169796642459767375450125122980545242031602810916115601444349973799236889112686954872590134953858537264974936345061515102696456611634420810535938026759763105070137436067335376428335658976556843407990812512665777673501719821771515037678199984412095798422332609603470516255786634775381963854339192862805026565390354726052144262531394832654506584898468008585400393573977575936955217686887684668181434081135550817387618977009531986756006087569331533506271759093195252316402109595930495985925879471662949569036739639994114436370893272235404552184946114184885862673856848305825254586213192890808810867944687212429918130878446930008743968407292374038231047731915061953545297289327677000067206137352259164492712571393568169773836023437010633868487918829169232807579827887680249457929373560534914390661156438047138460579944381980991847455496074861623556894396344082424791372054502035846886886295857588302696695208469568945414869129625373610530243796128811424054120000635297979006036833416455275721787048706919545572105490353121612437337621229808422131398188090881297958226259208779160268139389285050270693448724311223923654734092477212855361151561431418343158323257434981375108589623259659809874488950696223733013130487546801536068992393447198914874631521991043752337156427714735823117544268990966462249272486312155123449773337823257004225034208384649128278774596873119624361076416874119926753817467854928420342013606192647917032711961740416757716957093806497725479438425031551931857211006586216949601819603717446420359948129698236056797230376632648361943641929483170841821979606020491593582853314590068201953477071884242586152345707364776649123011363740138895443469579720517008997915311061569021217832729370414887575276897205243565136268851457130858012668513863094916326112369438163109399700511801768887631179556190764415479313037808385688964573081047291601571329169859382561200796997806674078860305459659294508009284614208749038810021447697428845494919240915918121237756034080742438100114600760789483431564056064010342854270419176355449657000972633365786346617147945816405899937827840427098069442893441618586247099747137415164258557181084540950335057184068081264827277800539182157085214378785787549637290625734764442667822799911947199559434833414430594081151132977362780878515337882528739268907919045727347993680637772981270902151672455029190206848443668287108520480158921410815596386486556153212111973324524004500093391646693684708489046108403214081791698846993360617531020940336860757876709658147280945645964293620487629500662376127861315471751618127200743394683072860965436952793084200380620973598165634987497553316774749627756154310397706126476454799008175546275313421047435153756944710230956303849926411621825241392162542269834158819949950058571401935857076025605683453583280740904082362493639380979848594274350439098176045970286094985158625873982325012033912531288476419268967076616331285785381587220383526534603949876534235210972729899843961281386701766983536133862756360316052037139104100354254413667702099852946270932254116752011413143634135671785191058296719352706682372993416420290693866276359406293827827436609785213213730401796876562570303656690651464613360993242518312786687438250880146680614617840808765879357490807990006719232944855074902281839634118214305063295344188391940572643304278292761991453088314403170624402926341085745472519101526174701524889809059276810840784357141012170518910242305887197546671253720184448790495320781838407254182272768321250152974431537416037771198458329060431627629386383824654580558889151824286074331118188549524488593567235996219878772817895747860185719031591148719677105001712493844025327916332921735561294019128515760946409938134245380910115913429226079854000166067891268658546488941465478884008714226998974298998566162527553734336767004483967944466025482154259806507037726939119568890345577658662523580317558001316951015521207058943788930857221593699798478648633933429755753844021394317054546000757461487197937802791807195324776503452412850960258299954401351233863953251012042940167517502887268026389213049313480403816040435811551334039457626185779441696749012688491375343765589994319551610696777837549204591821896498081803481949539130145708979118055816275008977474884788730711282209181867491418064367166025418092510814538461468530319297065110164001227744579680489094696303841698139996209609101208874378678335355576524173250769836263130537676410987509024954817299418601763546418305186735181374576730772076840789605706456126466275126056026984494238089831714277183709709199434175412543790543989414908731905328005342045306947217533903770209477899284410486506018126293344997392001495816230039191199674940827997587076054899146939079531404026923101291247881041639226092572475057342022589894782176756130269915927140737426157595554131921116158182815981181021203236498885874061869736019658744543682426166784111282544341836424122921505450436536701519785124323355920948919838151169576087955610528950637508302144190066669036147997575246088105919059274316580362761644916160889951046625111398618667534374749840467340328089733578859286840041296157908005722746236423698776099845854548788480825253581606306271369810968554955256404510644974618610106225471890669817171469796894644960700167994015800402290685399929883197324481308705639214302421206056922104749442586082540061634818665297493373331910663469663257465071490515814712953234552540851240165707310992473553775329758311153265218657711773005386537626387608498222012141679802072836239508157422583603908209797995716166037296073487138658303891565141389910199742670548528610120124253528230923066595549935612817404841227178882660589559849158740396986818298357049945641045469136611242510651723419868001364608226972267916201456446379231098263300348018098372740935970723145363973041564164207984846702716263484023936372727269507156141036320250437980868090762088662948484762050266775612499294801683161151146461523779968460642498057495409825223031903118220820227629831791557553188440989440232453351202926841881289245480993985086668546590167675835302610771937748920953222178300689911300030700236011248240836407114902835984596042974821017120719667043627001380333770423010656999605815790039668645890978913502646194572618945066610027846461704987180074811298976584747285127469304004637562220367323320690883459189556258210273531082023747666594287029477987468170061845889813089820800048363713361163901358030511910168856947095893100351621946293442804208932402393165241558047217473474587674385496069667632047045100122270321014141507606842877923251433413932566706771617980781535082580709647810427724340163392868182762867821065310035093716790643716773983929136763560754277688463557241544137027499148079308653639020487651140841431852639831024520636601418366611931024456284308819811374216102509922259192002437202683042235958556659179955579487431099369619661524271894087055321578303337402257283918140807951389778883673817319720057906511356399190870188778843502777336721729906626140218562103426925758650677127069480651543452700628049339980494858623820896861166525787737669166865504918712375135915230666946875707348836317679301517740735876429146825606622019347582090556664688632500268498565026306574943967172308350935094695281926511364653582633409644703883099401573794621479878932056957186600300360538382948385222524618748918271070040449317993197393304733000213206731044122040000460597105520457068828630533087183019367029966985665050831794021713781260744308573365662117811243451330538315922894144664204591001937420983108342147024528142550023676719127381737890324653857805193428593945297611905030032729160196181951841728634899768978384127279769487080301466116134531018207871244479896106453200056181731766648741034836325121851101257204556825813964499614529760761638454905768035060417389532457136201112657661256729975826199483924894513419629635242865995202293831210659030972146734199911829364091264155868973340234042170515141684802015825597086696156867624121334128468951520175793763009264591862045971109662863091532036037544257375655476817339555213553421063306050514007436148706132070582142092976201991659007858104802154293148608368733142487141968995922607797534712938183739222933778837296569056416270075955325340919909082415425308806062592051737215719326629145023301258876898665272653090978621904673795275804320794862197678337477767863224862088928891334102173396704672944816138887703075732958348661884315457619233181233942495321114002819688972527075119448408625823082393059633191979073833684828073306063095756356278548254916353754495513624606326929296934001472803259988293520443574204539928457998940592148537604440588378089689238433177140238018170198455008072260624677150989306454144678206166727350286481773656282333363864065919603924095219689816069371851485279966767333911069166987828178437199373057707244733126048819611858909472931954837667001696967299940775444848501942963041362367896327328925661521760405726375378996472304733638000469365582234822035109216202938655080504719303922416163878274909559809623065732984687445218756262456602404982022896119856719189982936427628865906083350693904312580230949439092388721585975955593773909193671836274569398021838210811239651582603803610341553410735353316845929063738484833105986618054268799044774969009355820483117639774725935546756436256116272369160131984153704332746426085298908432084593878091752108857543413537422716529489981325196864434308026711495500745318939276794465839778204861474878969598959930053717831289715684512501520365572827336721514073284268382757168067347034123169115669510886704221136422046561754443526830039680302086156340497382390025116267662869175277055258361563023961267456738415975980170189458516662493450115927369009550249009039165364834569653085073216800928921340571009925270435580303839536175937836925845321175182417922920004020586074902447764127200408446332044045335007319515001941542077464606745086584601263716929980202967343127892969394791667345054602481595776567410565966805359186251209100905663143413061351880916663989892625461848921255482369386926694943445141908621217936890575233734874882096445916487788178771240282864635587250035558160420423522460224032357922446620546992155363001449678673569936351213413487432553961333543051790884788809242430939917111000569718526340719870178540592006735134587668282311134591882916454868665618519629347015842741266371230141902293238927867595716080321663133242486121517188085246560934410604460759408982277018292353453520644134813575233102984397839183916761354867717918407559042438766916392347095564275562204057958151623860567166629429806071728259471590589296819176880008951514164689217295127459746596603679332493887836290111052819563439181341412019655134898239324346166327461561854392963946021159317189465360432786533232082970646583318486594390923160113548144382756620503428667061848800360963389768189903749554006481164470443379561340259188317191469510822806604996360631890218978301734679079917139882183289915074335194357904106808654913903586861523285618426909644344850104797418981425890918301775909812564584680887010925142276139203528231361638399572529191345650417001055778331581339052057330902831379736931829666180182946075009596768006327512058586857976662188922562092593498869317388423948676524374359084155986125911744468813111060115773649698164391570512762181620782950375529843931714204074610142778106134752248090016438850516191957756619068350886721020321185969458350563152259887404229655218050967806857718983192737217872959292893126389140484383872377990785371670817173752094373572577391342023650659540303792184583692181318581226120863142042894685208348804431305989179949779771749899253593440617352248034622657507593838360718259771150886792774585081021065074226104213656675558252736454876992329798192905530279775609459976383560215841067585930220825344432666274650516004733949582210857839768362642382497478748728065609930634984782514981269830255660642861108133363912207835029095350194560060096081908474068068280233370925628309659494596779030681038710131655921439810497099719680853660486521916204745260224202755610554598797557858517040506312564732094871467262136213258755582956544782696315887372956356843945402270020578231121833149586942263892211768515815110693568017911351905270308589299752606679978789501588160527799353945391252962366509157277461802163388340845997653114325727010258169115087512463450916359378116020473792446788540431783014770788164871586569244675379703918365384039764602279493491703030465917943678473243465156235032028439140759631461489733352778528538437660878048312351361576345004401254453943555714410393362554558418573493974468997637037862614206529382164112226309785749074426955618225600458788460883163509462221447771380528132959175280034772839145314965616794927554176309861129626009692095804426043057597635382871483504188938389237609727398374889788270444053361572265483245349531552541206605508744461363110063230300895662906745966018678930251857747176547259908179380205249837157795781147327512654980345416376163902289943923902121827016203546800034986516267238844829905280862132506015620664507374479510650348675368997210709815348683547483134344752892972379365163833178526296210082437557654875028151219437487452107681928374071763838951250329296884298711455004395823921248446334912906437504887250019332727627310169524884193614720090696086691933355379274989239772191547289677634532662358208371871177401411544933554226493697155747571917071394915605851051370529405484830145745243787827227435240376731727111337898495661764816135327032198111935490767672302078945492024669603676497340977205197094456759949983859686765248509620433788578442765557691471105231886495232517733715883367185997644101136693034772637209883891532477487350275540719778650346655215417775451115424913061636231603599782426938234890303590503938942491775612604583580247077833689989807253167445141457096737635035868263413476389820956945350984717932110007606370890094203437743271657829518786678964655802147245068192131676805608586343819652624504035991344678645846147775798732466264841259465509822576884928869890955906337528351965582230274170923824389869238055948863120042174895144242006624730917990222431417406200348917142695501114026666671293180564044498585661719623993488350456320518962120737547385977771125616755904451069927050921453810141799381859847750825261380893406973233861969050814472206947683137358055733794007924982585543900748488449904677603844319893465517268104932244230751925677612867403512710361850397853283241525676464222939812055403237070756363269574161410570483517236368366369578690827935082124857072997344143548966124598752140336278469922306028990449236307775261382325769119780331324741548846158119626755693733846071562319080063552349122404234757106878069595623633902565909365884798089715703324137228760256993277293092598635881415351288830434885246440581637144166001139224470767926704691262975179579660723410427967937075522887084657062128032091138744637927518479348467002787041730638496230396863104545059737282718538805505466468661752203958327934238755334738621186000834275649017499002060907716594481682062606080970967324829910748117955902162492331888584948844833412549146874461043321227044809850944378743896141546427661579346408074368840364185394623283072876625716707797725151789388830043263288243203700801892180395034697653187460824313046526678191927332100587122213021084660096621341824531426767834015807415188572835050171976451299683202929081253248571057328916390428170597165129455721210517425220339130027128081375872152224898816044889261801042994327856292922013513916701259415712403040405566100626641859563776851319536369200513009137908791064210105651661976825272184878653060444784700388210674145989803528857306673002518342694665632883326120591213207120953386540058777681040798652207973264992928124441908748961099462532061539908125157887118606120165614498512093913811404575686482013119259452941784466426526256974908631389154156584400552287186997805606149966142314419173103264220412427837533126120761059635651419992577195248726009550482824459361672987922126594733138189347080875896864790296565300340743023616949850187781001385704275688302044197358537375514663546705245037795460705931245728138911680095299047790704321050764653652953976928361738928613303067330898275319988003288171556388408057024105730385140603722057275919899267917794578260645734574493903879083166831460082211528617142499520697354034009986676702853705087169875166361233348076175925387092428740228581986245815929140012082051978357690266194848230329252011421453984557903691368098361511371747413165372073126428986701073312151974083257066324098596712792941776162160397577267756369135160445752031976550679575075581571657951348712661660069651587225805821610553541404889629009468752553689660740817613243408798459964679346579976637139271288928215978084158757335914539393437813208664000150389316531352513906520131226757187980278807167785815630988650520958547522508753148450325396793254001151787944891226447751185069976689161177916051315085250421525545182536493534464039280446535438958102087026746365373423217679652997865980818461503153546957417040857100642345987229422739839895842155633574095690437660956079750795754630404310957376820437343058510125186234588149829968587936051707069265190065199835253726719890701127223605037733214956787819140208513890654565774704788661273844497492475384226564273858346956385957615343911122858177748015325199830703106517386667883446440074838039762642524941606402498576882187156849797638370631561930013222941875418236890480091706566085377708722914487513197984153083174584368931041987646465024105992082964111690929476390363360739559824459792505276480752156878736754456652655428202125328378563628195363391310174759900280178559611343994379424768007055585155597487217528981563688561490098836131518661794005724751003739526643137478650483454871142125778885685106167461937455980760511260562274082792762354765068853752919145384429224554872117242847854920971365519816966232503441824058868777300342434381662225595190728671836481524647083127502653516232400025590463432790822599324391719785261956962330898010929838710641880382415536079759122470005421447922028062177757525332091788494757945720888207771732702107634151920602309988103600846053537479157086255249577896212423941136322578460344424085956287614786563906836683612694288805123784417538243793416133894724482127307233874565083593938914232139564639784714207295415463769877828083143920561567486320464777234176854323742100198807730613904189890798036348982409465892265884982792947982475831864365509049950545424183542986464210240711144207037322815998730472803529633535769296379756893887925401536845409664821394183093841432102989145961221252237588994485008049792021852165241248222147175715472436578050144509765132513168660286449801733787484216200617655364333883112259400846245163677137461385014719482700111649431716523084102991150789010233779524785521037544133548660107204819557808709499588027740998416859019066915021469932077741984496641265391725340287652215523494267134000949553582421201334104632785827216099081097043411970962936316273260426737634662057173690718652085342726580546086746274407155971667254454463548306455583418163589495586364068105018504632732606088047451770992407525229405178050462279722227616198346586903989099953450429241257316552813617113946115264235672757615818680285621089333920125768295491195355877486622296517232615287947245964698402614184647848679308977624843935244317838952361090929737697298727068372683089687899379914255352570140306574859764338029408401298264826014777386622944075960995972285207191464587696184015160814969230495050654961166689788490662891216932744492223505718538284180861697356292455108703303515782993503710666546381203331455207478453411426502846464126044341015039326120687974264370249591460503235434311851422850666205568182379159766676794639890395798885728570852930033379046934950651783334752817234730243765871913022990245873911413551038123935009533086444587834874468187764070051583887727718498254846891383452955293605224671353797442336457228639524442113644153083681375397299367279205396042349820829025317835105737257073570180308873925184226783196324709486088170354614556334356842282158005603396393890792851466602111453198604043453191779974988962722235519248786242148096022236975055153746456198204077048466983959088406576174833912134652984428327744977864666073928439653050823822569682356213789647396856737021664692494093610397541654220804385050412495453308334162067731757335397326403307086850426701089908972259775877788020936367426351369660745609436383211630060012130675643889398144055572046768153893418311242659181544498440230122191900854677570356742070509696721882973278167940523157276655012174301345609669694507817534596421935007515240064491855577014483125063076849126665664833331767789157024524572981251619335385203004518322666111473987786071097573073451396354445872757649617485055383981920820139132081552401327235832880149477380120880368436318469628653994454121208804163471404653164497678026577731212569800146579952792350055933915878654626647178998555514367392630261700602037149505689248800147926552674984000869056739247833050130358447451081880037201925854346192671513539561720659992579665130014300465522175722428371236384569800125455123216292722931442173274101427793796783720829047664684285231874758890780977637670513482495635130423982682211600139384449639276373778850491553809458676409239528712641729216999369983479892039705640789832966465253518067107375008328760190208702171589648778084433627176162141541496331978037979041656407122114549568207203956888159659765111967053048062001221431797541194619786703180149652053767732469575303918992230684452855956673496881650096259041825342872388648057047662308172080615244303759776100126523581179062516962540447628103157022849598105143688505143075882977572747570218261504607906660052410662036660465452750204901736205494670604303568280319493974926244155844817986510981692524720548750817684601438819720103556279542044043961272803019872891474219293866671651791538720265147921643817127239479487193938130026942286000868844318317560219224860852487525206900861231998907704165016035955458241278379826771235135673519592184622580684366440986003467947741273369711262915005742734599925057389061681204308944496503654462970077430215563336626317007584379086450535450633240757073346275866978263713659096985557187260295221612250828798244527828855816104967197868168463390819845023869578525153808956136582290068946190941101697435024245428102861169628484135306625755303489932895135227828365084493720047137142839093428672525306045362572701277549331421759565703028690982986773365240725743024701944546719155724216261380998256389818773930901390609262961195194033778268030727808949267640378834259698619587382996910171488366246030291407787429781586446421714799594524106124223725021146638639216720902561541033501348868586744343321097676439545853175075012712461261920648851437994540071442252317078457764463756021330910450404606441269469798797026476842217941709669356994008182509227514134162059973548113876993632649137098635925680172064527797050635287481488861711466325954149710330420645046658079180698052264384240518268950506321946422825640221022819559497029081558507258793322220462185806404372213694044371731986679227613816451257799266238366315458665361190369808932251645471134696404396371575051597432399687853652930809246539846064823584500738794594468093595797379344121894509505304852008141570910141273684954187277118470522162063503636034646407444942536510097995717782633610430850408777516230588327903484808458621550038608540048075233663613851126259081929630855176067691551518112708148365743917402724089819575822765728446369015309407309443841329651316993986285527676429316024664188158755621174283365401095447493703016194489070946701912948151416264538603779156737681414409766364991938214009817449949931652162238089991539553213309117455599831561338205993419725444074521726153402329918821439607268956916904592576026044668428360515351436569868228587173832927253201080369350158045982222660608334987543237613760660836145060684810243540813261497573528572378608203109726287647078489825204547010584895716516753715207950376618924663429100402095482684509978641651034452382212969317477942070071701132757965791905321070934471781744175285371156069307305734493125523150885559477926368036858062514359660914374103151645088602502560681606866904443549083135626948267830800274817024152958436032835379743979128250944403225127445280392037376379087528012198285640989133356849402280706314919248977066061216961734713993945760616680362446249310834617163511687205250449265859349101796555852916993615238913885148437582600991889667556518390578352916638746450884533631185004025645294963510698710515131474910031921734235767533636991646312403134158332666535389806997238262652063313121329683478557633175666040905597495582780093962914634593903351553201864916955106444854138982750088529647910696248554360153337333423248805768245047187964144146919329355239535416514767927876966042682351367885531365126640338013848107938669240918328111578881784369430855651519720656636230459780630392141198732293992701096733296384734168350837250323002018251133467600922657587592163776071857863689742107367818300564918341945573206419685101386471765986227142597333178826700631646241332041369729881105060632493055725342083026854238486968839576364544603180132805377270319306603298414601488362197781520276910902974220939426445870890930086410402987490793642323448596990383068047131837383511809047870131397805550611452675534749163020858776452877290480718965742853377384920697302937023465967909036090512850115359617446588163737809638499570183465833408902880742416388693371051416734627260652689352912040771501984757847259173532422298644847917871867211550798751097147244481273353240813459045836854351021187922474873247878915660210574985704322375429634333163401616621045705279073507877806498566826667887691686061316210342177967499084015314568020814733172698957649122609928814285178582764814310447378739434446320813418858536358800823404427456005478663555264199972952528377256963344089296184674475566672523774557691665972576745618410343262879916845449078654886177722723302343101763391838038890785268909463372013888202342088795174675647744645814632110801368842248876501353225694472411626689654015417395378420907750443071670283240111952100196715436163232108148291978087837165233693389832145458281566818193072467119418025469872556036436607975878212929895810320667644823370452490619160520083665303269994947920005591151470703041117610020309926990262094641535545931463658563986136486933368978563115220709865162712559637999716978405616801906190701124792204988280397082347547859118898800163050091574849834584122637011301062388257844467715932685761531324668287868523916120930129595718567272129493590543937131356952527564604578324870266585795680377925073631997072982135818329098587361318889551613196708041202590018035867304466957813063181339492010585144078272937604538628415722394114614066184716309345209102576818379442692331845911130364774225392308352352776842501810967012059916346075128930369355971370307630326606105173374511347965518994560143786677457007873240344245623301075889752112980418789945720716726104937380178369172091083225242603482202666629433605907560909704018082289005378959032815906940416534404606716002694196371504676311118339188446386383923542040246151317203260840954722255048419778403259503578601066902143153020561482135060675352889150746750191925263782326176941048527404162629978306928759273180332891553664047263330208231465956738370386153908650426189217538114796656137545402033463242633989907334320471847644572880923031749253508694130979436121920043598707632204747526581223657883487916006658450122478446635604714566681037416954037326691958957818979652917650345570774413125035730105305844731734362392344485125098371240761132575502390303056147272108155063280404041516463248917853608809529128146573019306838557316144989177981932225098176757149361754244729816841430562886918508025704462163353197011771152887038819766067720007236610240725951429793981285100083202768809982574309262669952466983906182874751205588969705206918506969627690101282404043168998803167145391325850741609860262599312181247596683251953655421302049192358813151639732053718628161160573259004728559884337078469630983126111588362409584912166033804553605962471007476359014695973398722849273460058695932801198878443992984416512706228906111451630228147063304324400346177611383372719199542587840866250242020183192268350010158374188484870403637406180294356942941336537201283313720375696411196401335625940569212010089529707207942403499079350209666872449669263493226198537722337327659718795399183267814650166706568861744990175084481820820047944801923595925302683707818076830419414310907807944643375711992633627343179477994632596719491835624840187580759166915487034741660472262395274184823895100664232418021065817259528429976203100867025878633975267165317332067551910985323070393195960678138440505025565071510674713573883518026309166164773244207592458912558595725727695105968740584595502390921805217157050243379964160673151572279654447533556131015809405439631427066615004644007513830065019634314963067888923536805826003976026124501661338859637546068379351529414103878160703037400694818072156879130922677429586552444526200590138084416856643770266679865987447990470962075603824788834826377632929596513507798640517952915175721437195500133784736690000116253376483461017007974263468222809633872874480610653863103959458881978733016822824430888125689133661055974010406770434785221562952168341187867985593230028982017206034652577451815214163019484384583548506440630945786525146428384011061996923587252409127164980702924398871643780197877483506925402249074008554751342136471039616942210675173742280670791135753583652285079072335072006586202382445063103197960975966088555377229597178990502816546593913001325520307200979668045964419478980016250380003889330103426915178253884031080213761200547377842990388220417371997086481174623091943609349418405821635953553085715206118919642147159628746677960413138127949091670914129152779008782217631333686520952319682747075421784046788172208876243127895975578328210220533243231993918538372620443468629707216040622760395145374272224214263854834844257533478080876224931913571793997172984526160201517948872967665157571562021502292683622691974250165215094957175798831520959737405680264575363871031698300316128830031519180110285997339165284407076663754241922743663708493780833673968613736560722364545811120582800993787505689136050296273887858093589328492136375839479945632881806398442201872393491280340549737996043323720721533183636970465685453602083524392098954862203641777313995586970022699049641040079500350191244885117500587627083052314682781764696267858018076996260646580086107087851929246095989913300758155529481464311853474845611269492249703783874345212719053260114302662493191173364421886665595058631106261376872591729875182874545609269832250513713104997492594677628486656487575608119620549781993271129264199945757789671020248173091898244608542005895483861017474189545027395989666742489255873858608247249379040283890491790016177892969186167608411340322109203124458823497314903430896719699412536090953877609204815470746206171611210247816283720408230939602599422905825694936878112439696875497186271719242220033827579663101423330987135192362862087748802579040335517033564236926503925738895667197874548930720182972664262016466866453628282499627549932076149352922566480284992209152346072639637922954093083413759587202059981853812112840789002316540674059949505671223129997729150427806071057968054692400945524346521714638374861249406568247337488968307546605585378452704815348947524951927522889248265719408319774965164056302088909817657073327107710674456896119670390893554436926985864644628600084472855810304573868637547335613662817509643523348241209883458304784691358038696022806501050077416657622133763433994157259878902320190880347552035559188684591990123178246690006374055161227296769942378517569184369481956254151260448361154054359971580407290060901623385276189694031361659864981210401526824634197445246368854016516603700961648749190033971047280510984993002552220909493652344102886488187507853040212931273647236939740227673111378427417240911450404497601827329321504157461126794256160715167284587591663775362568218166520424447100560110833962554256255305185215845889209619731740214574343079998311907450024211569341683278854142809611758821718780164016771978715607481258133386107908212386991454672881935651101391496170381871980383158753895845859001040472078606183157426516938547027601202965197010220427771965328351322443859761332245826551748553740045524174340093322119031388317730356825397610940487503057907284074138374512035059484972248748993578494652191570119920765944711388427304453166785973272290734999695571740539296535459345114927944986935941910398432904606829673428619564688455883791252903710435259518723740877649760613153536462220073090706028260787376604706019620799401818008840970714799294379172368221088277911836881331485817419876592244439069560033186374229114263408464653374787785630005180656297480314026584182111181050984546282982314763117163867261961457785173955112378124823221546721516983152844540780258667648157185807283514809728978539585310440995762631914391604128600021094714264585662218995966782123615210139692280962031079940146095226966117863552351864275425122327966530273050644827597222627701320831458307714695043047035949929560613575399107003489618891986926083623285486580518274499466833494966162531907137120763881028242561551168462630738335623074985289074448580704365388535288193674103012965526165618672487422883080344406768304307967564900540213730867270988295516271212221603086015048684592746338465969071990106662884043877307108446201586678067383852715919790283708363817640943514462070960308154352899949821246564291843322116104114088724909104338610827658597549224157075089952133128879577846490517962630102786247544152053778212170478812935328190701647234865077775905648963250673203827201766220535669270724724533320501281091038375029144183617031094015670931424714401051391536864528951451029801586406250393447880579772172455691302018476012349202509960883544428869656973347613840179435354799920268650242088016710656625775190982834578607364347948344660461146050892788959593530549010946228423688987251403519826491918161238293372327411136489361979252084727593056185713295569778420533951245215118808270096071598494874358659517472976644232016099356557545430085166261139343124266011037731644194151862068045311494799367195565109155212587631094944021131665375426223580955489688551106140629039759323523455756037203316675067308399422449152481058446739363533638942058830834827626040324757617977635630459379986905531393826059431828867545997385800580822373437777334708627133937944841843508447194110892554787794424022416018080146694319809391209092258849636827931416174443041717875903586446936650643407349993013744793686232482166267154300929622381364648545583167911064990964340695657621986401734072377110812190275076318794890441252953186172909713619105683278680005329948075747772110940040322266540092123680373932803155806945318506393733234723454349073786859730806000484805268991657133779361091299353730330467324444777729060445662930412962180568559260451031398313400290237493547205655975056025526198672270794136003715960378707602533465876279705041695765846149742883481675896791634764892017258834872264897358339788066143446439949334024435335168922991584513424879870283336943564668301178878928490632924369635956559367643366759646568598264701099598980214918904883928430841306510334124059072927186785341435389837218076077183338574635634620337662764261760438338581543194882491109505792865718269191515795376340134980236799545663932340335457778592119440963810678060668309576435494563276823298595742307519371595083937854628121480433756509161388747219635487002579890096587614336519214268446006822819155240613562929339365846493678010419309274538603863098588334103949122274803236852821917622766976643333074478265106886039372813789117055191332339133937519654558156004498952611644014111321686461526790341168369233305550137616751575184568155931181882496769658455895390329404515039035093784696128491966565782416281537980950274411465689479584999433675974935640228040509247155818832271841953521879824410531686543214753715923985903811281015116324587501644958361410237248250505960115905632525543850639894477174789639545130898097869911881503788996420624248740042749936436087240376322487697792979993098153540299880595101215804377417348852181353009002592065915227679356898223782824449917031065434958560654050042073254988576862187895558008245051759920800925136951753819854196321417776465287861002070925855590644598237504633490379136230442070022180804182437998639889040932647688556872586919188747774889769371289456064493800001177450197656568791182744255973521356245594008821081776437254827083500182523800284091483640925562221374619705651148236768404799653965155607387044535929678127059741122915044559111611550981485196504718689920933598231051040873078194590640362754426564623849924556958923370500613828889074076603769916941292482598808748266406445369881495777167819425477004740381954679626433172338149252741273421925945920997968405382473483184844406801704997173579999167351661878535843751223576078107245555054337759710195445836791553379224360434230762682050495672194216381508609122611212370305514072104637791034087011030009355070708018552594099662940779117121770469571590344890382726325087940193605112475678258861955196104573824149296236407294679617029319916351570229509857801216878765918449114460107985237529452569829493399063172250988721786701860974492877073559584282528302216283429800811666999443886898900729882059517794793907643012480392088782268158188244489837763065662000836600961265343006116510090967007314687353591870504961135871739887157512620033664026705821002229277670658112127109401239970907573923558387513168993655246500842837928105434362769141926810873187890852854925765926881260711728516311212546355904241368296706663953010165048436618173533765700460715042611429095177085712126298576764435224267913141610403849887649669938412175770138280790206662716967509674084655014572274235148424484768885670358109845747182791661511054024140511543152039605752345187397104586199177738885376301873958605383663593703253274431478894289705706535281160077346758620652809368777243595924597133877412882482107747209725970222545564507765621865279228954145142407198119239278218731272535905769202144235007775750691109424457512594695765776923806201617184938472475462917909124661979418607927260638950173804429614874193223573913554215387939949789772187726610782616276874374347389784169760561391386244248021482044461510144698822754049105757020569982355188106737064286226745754211273321659500677336749308415610693900907300031950620665448356079517962748152513535669681183583089322173647623048516485299763681363407543883948331505885122970455077804682898387226897416966468065648084419801685886632000001856879328812713191118548309300449688663309644240456163876052175032316247416148362273007188087908276704504526524792555388339654294805694643983066694079520033492207032723583716546692021756443699484084875085518517260767557474447997560699534562437387090388621613858590278814296040210402847775025728057427846547731914492727241128119286920856407193707558938657527393249031044114817510880273718768818265248007820996979278989671367460273921712374240710277963642661203834350181580645348521402800560129007884242899010460865277837829892002010634606959967873636259902422105537338444554459506580501081119271171911074002056251979400367482885243106469375324830735466061224316166902494892928066952536889774016655613677963603727666693576914607912805633603293391711341819155486952317958634559338794705831171417588627302423589016868702475910362601419230512334800805144721250497537869683987757469856965197955514528512089565155340459371224937892739976586514892383316095896772181301798624560320206351152820991948508530449666612402217866570360533455828288020858645336733899773494605560005665007410063819359926967529228360634798817907352840015757793913512101845495335012803513816363733527982180367657170200210765217248012922697304173242655632616748076186730170275051988526290540087348382479466014724094543936308469512975734225784424250649688484348132984550743553519481053561408509398566157232316928075557086513091384955031877133959492570562019611505592121439535177747059188221401816545187125825998520936517533753164076435058848694662951316613510394957876753465221701109361170944229142917725200898171229773968877672451773090462967979279298797374390332709776619063765459530936088267215338987454571912988058904214089824221645793808616411610142612199101615398426058963360334152889974754854767146784952228729625098413059387042874811446293257773732788055322852287037532750368184740587693484988188454369622542678314377142199764046609593555214403339753757614531102194427487470424730625511869454969521205732923093662779146551856324869036450722344150474149715167274922794003847573914848920366985592468644809097747364175177262877087793799816185504501100867671000674513814801480207966120628856454977722373549831233189610625355618967839070658979688631865740964902612609643962348769376920554359727282159558194935293340701240770735337915460407245944774092776289384046218144306322248644390179416665688693817546032079356964937486907871587642091486365175458982251601818136313646465655508584294289635469959493586474959199866005158302864015463509610859755089865988299737262104287501367629961619339130472086452085203820412920512340420513338974139228603631792479432374785914750064837836719872986542877468946178358452759649461914411083179383615437099057412472320890003855664022188496211235797171119298072238416281413355888294662095960838864765716241126283711281559656217999312043579917351923280185038762292688973573228268320202555272704976560752460891214844379433541910575210246871585408799345487112239167254244150397616425281925218884546311298646435573021020968345382114137038294362456024208079390694724868060014164203341620684008136464142969125146115866186490413694732861523919957250173256984234982882645304962705272538613489292324059975317791889885243460328839775501659024922304628346604954155602380979364515077818794958578826261863276411841335532821096419510052862873932722736599036131944076191949786073125377409643945230780786776755711605288826421958057584438523719038761187572312575416424550392136030154686385792057258684777487490102281445710207708831528130962948047598186158403784140578394857147251947206410783305145559461949627296248241625951766102648675557536998712242659535470455693838566746878691001439839849250962692071912132870372404543940696495709331436977755568533868573418186529440205438139825375895178952308844394375462652800988972123007955475071370656761777535983332566819165305212225313861319428540981773768159146786583542579452762863595980863838350592489431725507094157504558186285597772731394811965796431248319850790531882574037823138483803428834606353145169431446125387767327796360158785972206085275388064153055475484011390558167029877750284702977217431112369811597955999653890373923674800430253211826102162009892128013707319810413772416830051994029089182366873024985752116210524167187133826315036371543485995586822927216382829656661181774847446853643356421638062917814820146066304462084437247361564209681425981095046621650412335387654957585036246232322843867417267285623362976558781748231014078729986304349831659034057957447236764886299252422293453871419554497389748993906835024879803136688705031786238955486649786384370297931132641288200117569097867836355948070646852148072464941383872189119197943614717431367264808368792201828570869331642754625547063317124487667843705921903168091438825505105936075057523720442724431206069736572561063508278400738514811233936735667658891792461411111224019300124654726243613949809541583627709348321786057831690584898440974172058942277663148689773032175209851245006044699416397844183988064889949508552931217402667762522541060060106104685591927855813622203066618977266924454070059540877413110842871011480201252632242671178497052484941695913025947778368135585280196682988062853603140269757406014875230700183676429623705278451524620472481999595114102244939002132136122245659698450100249548516609000770549697790776251489098932102531165135487772301390912393635106262778697610031178272174701067159692726079171065147675449860705950575599340344487575851737164438034215280915598947469630552836194187524121987642028360421788030664623736502518139681388372064627112211871436959412107341259729818048723174058462445762781670412623267800398593294261802896120687509530828586556178146061041283112231520222226235413040427375052868545564846298569650707302760975396520215711772364942951325094666105739852267224538733577186235046459101150260910448807566977875870539033251337612727447881208681626913029818304414926687570102716008801382735958944409623783401788901363708718625280345495371050099477966345322088490287162821362563680219641779338901258324405503867522414533903026132810307527541663357880103313043348456855678334002057898353714232045399294977055412025496743388850882115540635602316531506809391521708050491846064145299548195212024285274722715937700724822139513902490758250713568460740799084257238480821764990020524092912500898343005367647958496833930196350797752737796493239456708865590728607947568113374229247116226596336002111535460236986157875128775206747540219800169436104910723299405054870208765682391395867466209864454630627128874014718478750097126187214967330784220783449981550999871294735160559390187055146547142090967158095614454341399465208278756346613209870410830443091823408268726755341439453279290075120795228401477345925508586645690317227240203876603280621332922097537042830608058113025058199199352225795042318798979879567580098604003856693895074083897272796423486145704515744145433845869609070317902022684379190408163631397131519745340569019333612965407393281926527396705555240802547977745596511497192488174104656396621530825762511111732911608949942214076137481752377665099273756510572539011451503631364800468854079399143045495306281930834430888164443978008726118260965357146304426542255924094342183868254505522327307205532042078316842286077405078233051188513718650698815928841036387616722261045348772605816127967789473939092438961981487292613796271787275386622936020824858715238045803312715090354189255204546537457459048096178374516074681759749202669016308876803186436955080000568328349171160357289213328157744832508966985433516343094050296761477229034704499084438263051505909797472820631836348799990518020385774199419590818046819501350757023958515452924739317753159116290917994466588060867319124337803641468125102300049657166136370363973747517690774931355672310777199952912268233096982759148451061022216805788932267240999253461316070652405791175367361277655369278324638796527563048220728077430019661463451742722737332243506888348613582637171772153210361408238815166199282063234945485732445869741969464435012078286451211808063981771283580674952377005345885204614979808807462584300554045606521081337870137889726456142203192331798923939937201703080960753936978855461326622288453825645028304240225550990824063770158022273138133419382942444672055385491486218628466073382171729244579155672952419225595619185971093060892570578859528427438724968812200232686895065009090642701845584253147798473129789140071354470131599942419878429352237149570080441851246126337543465473591469811663953382097716879659161850233164687805655091126219369668079049066770235379984270483390978088716356858545290661171248107958650513144928643188769032922814363435998173618239988231459122587011775233331900719059644754683006629989869805962583087825940992468850254517959633732449324841842646585814168858372016139578467115265603991458196763779296236404550787975615420437217063414752277464219198178933622017020123244959361722078686638023549454746995245887679392957975146040647345867252345175258462687546345675140935441367564907701011800352363507028810753983236331315266064933588958271462649071647225136584050604388598742594715110819679100330513143044186179662889797579258033688870041828411430490345950746555013249364578880984937533863124754505103350094294066525010030577666634693606736557727371989587770582634822789319924117344841518898575771898918715857238833384728398444430588516316099917383091185729363742449255230757304604627687719029457703097125458366098572425689543762273442315007693438844799626306916951858074753776157194060527120082275534421740292874931019858565812977249673846524161462305747646664651460948054557707456938808650950153982895403055843896035544238736454213244314548838674471500717247430513460376848784642095077201871326028304763146646231353557220810208817441623251815730845630346538692935982601430094274572674247147872626777383724347634899046354963478834449743300890528769545912061824015351705701292706848995897590290377523656285628343613187660940311974593013001356177227558908500053047502350314866197363731144987716469651208291916962003342109133924776256680093332799692043893315075517666671923014582244018538524673768175649666770645291969221192984812057157827576441819435287565836765753656125724576332880690656466258062038369818319153657600926065433110413178788192119046358033492059327672736113935927699473065778904926990228641578981772393650905545089876532428687719243805708220691955345352322251171901754350043194343089099228053821981587418125952192902330329257434262565456198719308671538514387085545620181490811350043053284265768081047077536665148334637887400566348357596219938213458556481333426044315607175214628709117400917280483821353903526971499552243680523649289451661221666794212993612371867189925235020952227283007753793933151383181038580230433995956571631261895134767051555052875715240536667241621104421343153036145912577026649005513177024173133268591761131226069418341722878251865951061548368738513629259696918667639665784682664192708050104167727094719927235458433716706836439283606749782655165552383832501055982298498632038618073719691358937791662594485142363248353889785054178475349464028998591347428135816127246407883441715662902915373360877134814326846009913248995458680968655325948878732325950181151302628573114226647986080344653637034266996202274240706217934255120942852019313039069410840383570039134041151960353546741812907163320915142891530185148244973442734094383753247758471765810239097631167288238989771843997266059995484130276061890080759859613988950889642582730850773046159817729289292287597225970208946764051410178223339424497693617501848381142279221537937780434488204311659709676293124914798634181327704115450024103878868441727870660862622231020877087253144749568961860104736351738268198267219395716589900928823445086609676158040544369855940362007486224034833319044795945233352820019003564350664679102059239109635503626585251645851686784690861818869665515041361662498598824214245332534016534874086826119472319893397286541277926014544928341968589590672176140409187504656618021933122944383100019287142689326622435903121651101805949276568125246620266743360410691899194878603847175085341888112271433073455548641982907644890997044803186844038708660365720617127814880028271023653430566548508539601652084502703360619437415394027769873849463533019261426893410186010618395184106610394291371107849310460895343700355937591377002525024928360247297468895585387913068186380107272289393043588101134316870826394750393081131936040859745283657533062862565167328751432871888649240134909735075726430024148647438694055364144775146409204827721542992998690025629150632954854282218763400990801206665308967601672597029570021011373786347681379604411326648261750984838912865211006780373213020328501106773901209143360290395602569299781528896155307052776601792047611435278148320208062868168521216453929864453275296310406766719511698339747662658571679487475069849991074321757669337547717947874201354281589116504625934242439867936426603484412440635403355163092110988713254260755564815387905910924545531476671566415380904725421896224674414759131174553654476763632361211170531123080989545396375995984839311342239364216937309533594934298000091606407978710794267121342564508060509991508716700559830990864425157473578121916531795919603598598094533099490243696418009893001037061279635521107102308558241974455745080447118072329730639509542568405163442787255004481748216929224527246336172381312006810646347973156430063708262208502085047140835169238377026084503877562033893295658081380986654310540273355429906497091244165442998682372324523300644254454393459585115003412456700127485740422854740512897060226118157046897209196808600189711198286430290539437148075999681306625412304952830567013652412800716085312820820012252966112341133038184152662037672975637589914316071338375547691054230840035520980401554241248016365500486022523807856472681641478964052335800091183074638709687102555626510379056644059573546102475387483752377219781054493149304245415937888054658310276523440901317946549940604630281407945797049274966492900480123850470484401624412974829896757814013307370529655573590386701005252317583753693450672034793945502461687861222006561418044655113375374427592644138089661925575569390340553405250199043866207823229132672979798992926170919725746938940855872723135786578590667644289046246848624961599684069489507828090177534198387657653930254717505348028720271866320867794072142274888958281400192996814825753955961169165153206870215326560420034242424183752012653900281515004216125276692114306868818975608530775375435386745987020124533255374810842502530386538062582792757914144127632205203260675390258549712334678994708709330342863358596164277936981197256707070846631384694414321926930359734194538241649572103033840768615099170303654937916892661490454174184633603531337567913243930421318963779136036247438960591820034511975481373735536402411818098033026783538636417990280066568490243372215203427098244227587795817945813840647422390941428924656824338689916285591269265704937902513367423138439968381812800123022929118907303574851931303262994374457673061348256235044697537203106812371370041332452964499863716357524695077503883541116311882889112158951728831046097892706099794910257778537385298935307382112578514255175721890042369466121026594125453566673013853103208389851963500124909551388025972742655747779330889572808753287975181897371786104864385805831070670787642593920423714144650132381006086623050440560289507946950052668596255073622726233997932080638564024234237459435418393596387511468542746071187443055480448794238958149784930695498790028067482701581755949278441163730265503012501605371277851705296699539207343351758315126393057330650473283421914179246407077109625548769165302615593608001249691539490999599149145881167638475160135080758632390842580600744951980475693570545311724292222905116482505703652054828645543185925553615201631875512591733181294097750374173646716846080598628507773282535795316511226764372307798531393929608198874299587545394187771787937343491507763811975742700819346366900055128751670745910890565815845651647041046471978565104091835291223041351867168038156307347513382141827625273451291919129713054580466190876022292472965784471729227757290086615454087512221388975716781024697548654502702660414620040563433209029783603394762160261007588488043945777207219173057005189140826209627124245867636248003146611384474202159560952801937211253590966985595470082304228708040772898566501152656657011727344943438425679911030777525363913400190333263520949958792351331245296198755927770286173721539128960300822739395549503321453223957936773668882713394955587298504367990454640591482497392153338827906962198523455354160974606049313102389496019048119458964716502247137106116287215764913583444935469766003852177974063737156775726411695445709531804027810196158177455913252109915969584900799414913401135034458938609124011529497749785659373228813740499007624404791034051187938823410346499392891087144466361942458343828150283585428558313157632640606139483915899881150486005228094348787336185627429141740526252101373999226285864050055739390715952989279351397432196018248343307502608307131607787984665063562432632877190799395850657198758748436242831291403146155443422774440292694533505556715418469884863297028981268982158254937629555818247997630285649313685805017580935121444541739374050075891538005461003627925241959798840320196151473188702964270003863534089684829283675699537071839773861290250489330243786948876632483907631834753493981972482425789403263089501567285060971252647526679759049193485566411336106939348981211027083713409536766962732286218665256718903242621879579316513133065551775061717974417781101612739611130633586012988533275067450949728323250119040859639276168843466655065291858571492631423012831795107345985164397442700501343969931446631804757889962200354759465031518301688051728846894342548896867659072071513364185777941729309537238338877341212852771503805212980660280317241123656173409879426638729185716494138081501714499824349812002541081417925330553423059188807123183948372907342272980625695826851895820032279276793004248523970497785559466803346991360755870261505179182715339118670137006799076611841433708353152672416430989509752984766051104157662132004598488991586720273807434571966013581640300791899417067741739447288475588342314539383902451554019536138987155269895919025326462549769496363239706700126965238644235072460723260490083728991314724844981805838853371470863472613454929711225585607654888917587488120105944828695172024671935027580149647350466546313147625681685011313231770227605191364674362363394247133622846725946102425462706712503752292868196569729882429545589930272977227064350164325069653293473056015055267475812715231661266553449203814047941830945032809260858588324116037037051929127770596657369564773674267801978907624390047459749763261373783498947397795599975839731289485668107667240618963649655440807690921608651736823928159683201393504908103585177183502125110931419530008169146789793089799984316364185237825451708226006532485242813368872442937232884602127757862149268352212537198065024748556540482238684848136381070251584967661009477304987748728701270655299421440814841058297507975680837484561345046833375732847806094473500016611596559137357099557301148485072450665573197226158853864204967085464590551107542402382978490887727505763352816477396752107145991998956524210508367229688608105820175150162606961664297769044115537983804438219035930868673528288597713019570127981314980716518052681745626486140152885373913532499791201958723199943065086159248356067433910164000605225957622512451628987388523899796256718783384439659333307199204727176337853590647925749258110186941331465808670344924474735021316946880943357435496473726385290553277040430502190963645874563234618441869661842259735366374033937928374956997921344111461254273477972201344376687248738750125277150771438306144740555696494394957546704956985280500950254787235314093456411623358037746910263741967387035107349734301998669450850098943829855582931823642117462043548019031909873675504339970122641220684376949755586669520487567056864357621414485552816035169020585954611852672324691059687392443937507176082294195233761939505760993905033242430319216263641359762210573065074470315005428662607940753901876807910587959286950491662086268694493740742703660828253923127188505833021588519813814372476108490149504603126402053936364988048889262505120336849482559588137145198419965352682136053029011046581740487419001325124238708103180216728349847046781430490823633958904452449061151954743949111484151765490097493777046814805664808161007212027028802223791768060563390094804965023765860735846412081039542766301955232988449622545194475545547436640451770455960663907519583720309070922327617871374502181439260296643350330130410993865870069604425718204616628509516660548366222579789126086278144565833766431132299740759200289238980781395523437937541137406134627351718204899590737366351699196445374845874538509148170482008435538145522928313381575281700016349863387130250245328054703058030849610372583300682847000261554602518837219532840446108903904321413501452560842433487543397141720601554302968045906158172310602677363978264132249603660339143394596697984340855502799094862782162609703082277902782575991387051986764685397588499556916006327656521106157626559463653411930372257108550066041360042013288119642575367202685691222876024805502729206864637139098514027592298664826441761094953986210657114185689584847019320021271072966178970596465430758869732792093996441653118061998011886342776307127832619926966551157060497164834273569302885900537473497788618294280519119682024451936838557522535430903987289114941036491908370690687455713006554232650906271531954785687555975718159102544519248632598493494297660315925956755668524957151767303946776156553651528149439619950892222012310543699812135732162921355792932530273398628360933854778272333094582760568836547753192816886401539514255008706742501984085568239658657716191551127896025500390984886311828055930770323797419557372052808782520427183458295905862101958460270410056233559920200364231093319591831359887197319251041387708778179838776021560061161288388471290844253318400604892559544243612959397077366108240508948102569318183146728409997169379580045640402234765494283644453972302100621932464530940519368137988541145499678222415915408439779558514572639853140703252806200452370322683836437618618518262703026740424084495119220748052948585786865240113290386184455604849337203267930093128267715798231104762163447770941040688662462130343825354230492666129632288534489500110806359856821031062806088207843500051401979459623699874814473757857923476090492654693504055810279065771934056017548203488327259588125051430437720193120564187466176685957228612348447632248355647369687462995989811157265650163420306051025230192208102148148406118356181630485646679686105971949193836734420016886726227979359639251306553478536379680038723655580820835242153469260906874850519422443799180240698095882494035151752364204209866790488810946638751307274529883438481631756937258382968384317330365839434219972625305045058972750204561533975389035060995596436289234259465254845707662194549276828579533411897743883519747031524465118856710719175226893731712744960257566003261180396265112179284158494538233066348063992529853933977312654055008081481622488353793853071205804289385952143348538981791599071256098105447900477894690934801186828272953199279292085170278236096964838497119529940971161525941799062019311208318732068083887678427470833548668023966261291418138045152238280269894613274553555719442354767213669977721378078902743365446507347438584130416926188076838764684601906772840969825969573406808697069550669035006888884432268859589466103949191077823815801705594399447227397225761510022653564865736278606842659964832551718732652065510554143501544928311407670660484964831651085562756836653281172216293544044613583497598610012673113642202382176852574078271278852531470704098622232414483647221456184678635441486462337609101853953683967883800566272788651161869138734285848686761220606972114136040100102249671783186029338079625168346231651779623152363730749075348958665207711727794910486787431060909282282905251669432290770611379232742105737878809494467388689784104252388341287883941047589549216265806813765351021206558220633137030117851786782764303978302210398204697522466604099369125434678774616204273932780137701095172297343871770645949125196354843070021208386697440363623286324116125643321867032702624146913367980567708863619506595397927485024698499653354123229327262093011122432191034953349056745958058928287440292015474034452039220343572592147398805221084164091340952024675099758437121037331432370441381647881900788505245290508506812729736619476044083710263600969833664094123040096831948463615788514189038648767300805140054468492398022406307156401819607692996010368524246961522320154598983019652183811736068334069360355105518021659833751243912742996102807234374689558005324254922090503414209657751026241052764287908378389787618024446858557840262486802529150165432241497663566449491865044712072019949681037382147298375960058399023631412603993000723025959001455795180840477951404672410538206302156304607126061333221378290579963157088344572196427412750657369374205978054538611343556204768494639322344326632620226070871099786093636925321367235570344761343852882113593491238524964518085859738476801979978753839860339499453842261767481932491155051953979921359591865053022931267708804900294107777273320211418749886655598675996603475054404009949455313397459424312774267420810689642337862144198979263792845398107724500004312674683064907251359941772185027279857168321463011077837132438499976483809830095910461779894926702781192529892837099334679859314669728451244602707271977023689271406727936900941157026695144910501687438530010842202074702474361714883066571919932373802839480225867717138305265801443420552808175785097185850879066199075848058939536334887401902470818092154551796365788942898517638350163379980875147583660094001287152091480861520240649976400756803404098417760172150256558218892155750947391129900528917777523579575312323477401587460364955952839615680572956139850134694383891968213900939306882106773030024243451279152125100158023627077744549309545812028101557624192811034196453151923092391086192608351698728449059038260672198955167391718922511396578679581167595868026202547433883937377071658447327883716593367801257789249278463786189552087536216640695944218851142230717725911970305729572045875028893208313821787127922005393904636327647245764982853344606766247723507145897320124326791152835926891687825277552245772218077567182931468350566532101747671914517534703436679087147763280910726608369453276355725675780284204513617403679215223715025021632692815911597667521908716699454930199875977817880303876949669715827374871245485176720235335892379262935057003806036377913280307751349121148486520925374421555084201992791719729568076635524705200174626802587803126804342341797723890495942282832088172449485704730159529992227106344705847296970279237044949473215614354587676153697528906321192528470632469883276806533149170445944852184131887292350581454562723193437952530739519652731716457627011244797701063774197404330359136155686916970480236379981116171983218041811210617863032483348459834092561121371857841342031942220136826379243134636842340528598304592326034521190938895258180381841923665458677267425737282270613531551160794472458391025270135153863630755813557666626055670169883945763621357389945948360130822199073143842501038154649016215886073420961542204308745751786884508750837414781659952384832183518866885539229295937381324785053335139297446940385262537102566579497726131934665256730318175088016097366988754857938477204336831333916502802602585916054127187611185118222208939095040519862055602059164511159393213273955453396529791171656871290399143483861956718153908820189288420115435854491430796440327013057285621469179585807564046840676061426197361279072333730980320237163029154567775206980836906109822443829394514073699688717398737191508415129662064588362765579211029951898100050712979380430618372215792022913498875038004885077140747902393859454146610626921689785476151887149901854307652274660018046140091175386142261805626666595715364538540468748378035240194125560933327636948000035779335807737970200194987324467730857037646202326856128368627760594055553947404419287949275512127821457231121198946176862843590003490307770031382577493789847069513599451790986796854631680250797013744374458114571468164058492966447727380546132664979183474050688499748549178406888009964737926004731282612789188419434050030401464677259864850906602107116216328493030287104648924699299565335686544971922966024798398361504398265119845068976255537832830674953181999913454404280455732852887742602465553331723572164541840432460616183976164507692329461568134731483000734659085826759435321078408208495844110586065339300746301739991462813358731654347831946696649982784524423122519080831417158210510583654405001221046253339559597594311244798179252808532744627370622783704248586097809801210592313173015449264381167380229655106526395616449258205344970226077832135937944977976565379481714257885559001588958261030889768633667945570764297007230767920260304190532682800428314296612906601945229802856806597668001309632276858426223998647657098060485399648138420301451192141420406895545431869123147055297108350627193230065751472495792598162528930490655003285148015564535582689333462746936881919175840053014727029827693056758125953893561972024323414545468985336471790862356760279761311833325403958044874582974532587087973589343802717481534746022854196305492058056988197855425472367279189037805699219015339927511389290049714229252229350190563266381746001923991118556445093070702232309059986278735651325641758080165655269400056400178455813978746339604406512972168483782864916184928952623227441303096729727566810326907623981371616731193500083498860402973734166569104905526928964565416158047785907047966656146682823342556703066320063900461166080306080276583486956315248077768736764198966570351738416994218042489357411791135444656606944287565820352260711295577894761635129420626405502797153128994229174760509902154686011353087268349686939007759557206871243036504196091471222179588648568554598892077955396204378087718372974749591365015973130559686999882523314447684812144949207625535776298688554486521116091947430763997825696848096903911986851074774622091195738541497274783481796247301291469412045497916606847006109714678110637818283887635270045650437301614665496744536536160564659428395577064303637179166784378529854591453595451054225113398622683269585106031093030688669182442411236679970602831973878762143553083803343727243164673710377040687179507989834464504374396606736127682659140452708272919417409541393990774362563382631133324393428630234171423261008819257255255206974672402522257847046715638802250949466308976590073888821963908952226234031038822059639316124693849639999926163563865990373517969046165310725679359492405487896192098700327082566744713907532650410594599758306215122871180899676772903801012553301619043022676134035172530946017994804024545141027194379830648040003288006759643408949511024617179846163273076104420154128976943331566001480144481683640409175237701209424018364561698420006252284595372230845096812186172286568804656435898112924061129637285290933752136701352023734011393876645302348341463666927446763105814405207032964421138857272476135715232485129115736746944007100588453065830419638730225429679768124805012943244740087987583865515730421219080425850017372983568425273465554689230141228275501868504922030807987158893559462004845167409233392474649269416335997704256736204514619763047321696888464265975211783539525951088450168841297270995809845848521270093773714701344283057176363177820187334286802890941880777487480914379294247346162494547517043472283027786579489240678241700064502561060184497379577676959475506306966898837449925328149392373550754565791708527358582937506944144580440266288651741458658006729552759560269605397747195360759232677428916773608249556475146148695262674378954680436855861400920231461859176919320312140224189319662521549383000987461418267472192334895932813106954492160514699114351136420225041051820050565617232319020230451703267636988367715528597304242419003861620434574614664298948451558350246591275511270172676846288535831583979020165058882190940877724154982479532435861722146495873748908491773338399294425552185656103726479847063731896962763535963515536821946216821382898081870831633695552968943253169471607227550284633115719170555124898316274020448647912821338250011437217091328295527479922523627276061286788784855609070041096521041640777326605561266452315018507031537497548492368157400581134776891055905416160863437660290373068188079879042423853151360359976848049456706330170237841489651922906605340572800623483251500219595036489104080706051372896918189795225038319714494163919516568071009793312345681609013475201121003090006509364303897055474918839959494488508625173792312554714635369696203200057013913516697332302303574014449142527592094286267049188532215736817860299299725532897519853397001606859093507812082487516717836208566591481903214684442296092211617642338293774914947220951873579868988319680809347389901356341433453971877122671903117066496584159623853627330225140977475078787019717647498611749532353878465695683870905352171406854349014873981790754760609431609105486742270119770402856537745088769567506103249592177715605843348942944466935447024901952085242671652239376504449272091956449115282318423188956690215292336519364944088617474720277863227330034670231317365374513240329735886039591001797957494015483858314435071638015122543826572406655595582206490862724448330038296104568531338615957508129056298038791251110325854769365471609132820497978702600692183895262722587208223068168469148611974590296298836926840040094163246984444706609888557261890717012704546461807329981456472075000567768980390504852850983246225259482292960920602768927016101587076733048282480510450127794377589008940137022100311953200787766516793026637830961623363705694739884630349817801207341245833580881288303284793433314546586681939552695602226406825712033798836969104635044791321991049546698638458517615972362314864880639688219800932531928808397766208959674692576448419932490065681481562922530554360408908104429042675764160679007824013928553886665265817472233889010388871886138714576722752216798557687096326045321756470134893129097565729273722659015542013544011817948557566603535991321727928347603472519017795205299672021640064624814088420445331436060963414405891170720789739680814055560351900718389550270732713248021785923284241575704813903049308139165792658675585708043310563185155951567676520086775878726649514868199731002785642757288278937073662732925982165659669097122800152512135243283624761457475817799353991178172234157385107939461459558482355858458946253246833842392534296569268103701445939943279449683861205171047239636719005294003294846054489974091197545714993391374140213151521610586862247618155618257560596214855216933028248340185307537587623481227099141820836309883514739940861884609852642147153446855378614739792951395591091982543823486674729052930270309778107351748730732066820036309009885083062369306888774875921375958135538832179353896356418796286499031502653214968473874765950370640834041271747251513582138342426632676075706980855922727375638270626862604854466660745778867894440549366603953153403562530706166101372871537805915892066828749253583747709177737024173977281621013811016857965800237317726655586210618535104863299724034767415926414752009858508780021237809490641396475607343342425929928013114442089639223819883169483940024418778969792043663575504263012819291625071785526141465569154003886648223825982536637248426463564345985155888858463710827886746371819732494273087442457163178631615874456111930464513714695739996937069589099131859188273024833693768022425536157714832514471562415338438620696160379963989754797116794852853079639412642459611588296409027982000707466553491947979010189995473732782219418060521951483535509894512703792446350142191937216583166586062986171623641788562225542496728430420868775146643053271078169734139271846398036739455910766365651143211745342808785788315603516324806577656256614817732867575585966681356151847439119569259125795183504181924081430306985849719292301145145677104468199469159227283869602286435861456813369903835757490794673189237842528177958987963409456014441849763934040389433829956769311654269565340242886275921378774253750102799169543649219550287089663583889931110354222635596144274558923042409665893581206036544463418116426338326922772641891563173648364776567043367345624579105727914137551117339976329990204823669461281690084416101050773096432650814265003526021117875065236606773999463693346082149589729107988657394187787042481889286706900473251129392305164635131406006454165214264164052542232856483271833829356541802460774766796820060982066080834278748790534792776663789692728425655190934708053835622376247879188123127498192607234646195644543537924758477809146261821254919115035240185313704107676955966301625921045272773468339788523788476467958669229438165467901844517059383190903794898321686170786896778859475093153853668186839568007047795510570284955529335108682810521111125573666247391838955449847259382980784784643434177085377833119726321188208212612516144569439455659463538782585932118507172332874608939886865582310410628025816762282210470857074267852347796285009533199270234656601004568918563087637518585821358707562752525863221599301385638404448539576614904505156892439146915244826232820716818407307932639195438889125587109215556084458245895074009441964027397296638618174197665947039185165478150129414392216413315400488971331728422258911485315067139272864222915115482818785520401201585572460961602514934141740891147244308339791203769974989380239266441155165893711978729673506888122870525129776278878734910077240773300735581899123861422704505607045283708422624173069565367081630881400696324866535431185068098798377212912840505247439773724788735311465727540088177807003917245682556017822407645050136654743717595862892715233861362702745902359017055683853551679962289092441028181789327743753857548772565836961893573983093792493650867901233805456864730143353158919964700679348921248235774819016432740924653885278661087516025927016197867642176028255816010375383617536812199419262543952471272218968237980806236609349367129789987040034447886343883960036976664051050801087976736674979387746759250127814453499812123443928443132718863066173002614666745455953715201253836278222459185160090445111698460804070253237932499030432912586239226489157027921303534008033094307008324404023900887328424499137485671530013676779470492591189961148625167908786597184110927277957713172150461443682188869783047800483474728848895898016209554217922782075359822529825836603856272259831280192712688646127072731045758168349841173841605184911205132496800495837137189679638204973365516754648013826369072487338555588597649882086892805113438796533955857339510391497969124370018274940714874184076056226687550228858475506801202252295698800391502316893145952428266769188907848194817776696475345659806198803798912072331416767479787404867845266988021061002975161069742318137841586963929705590428114517124630334440027995730595498209460980980818107423126640739301519561406037809862872152019255272651595382629662541227060111511773700726917124517144407149935748263887776847810026269838482918477917776640318892712170693984322906786546182453776196644101728976676066221249476663930471639379638933040147749311727149602144628686327639952388203006039695380335203856163479637323683440440365596087758212930226694181050979262068986331201484999006096592997967174363709792374673022118417788506915433874255799693499945811278094510238967056591389945120922490041105930862946653223546747734709687361785022233020366644226412564529451085290891775300339898067186248665493562242770649585416055641679542850860112654161279743693864760679251694817888719479052787514904740757642840782390752105814979411717434319384105697504075983577444442850351961787568014703647144500661864139257435053377336044244831443171798167726687801767236526937941902007794856232001637608433095701821456212995280042866200157564862191598957826078845072809853011376490703922992105426262265776943885253799881696027102823415630798769266157493510368748813880068100830813990549386421617502838275812183188888715462941092833084735196690567572354555867670040669112916213983763573000274711753218830455610897103606178662712299891550568953264270682724640324786723142326645009488642821837825728149637954675339947646877250221348504878613041069825223357616656036780872402281085038235096298384937376316300926652809890467758659057214926935681368430454742498670501928409330696387956916122258780067337067750935234688242200370372296699836643060609338898962479893881164941411215526433521007231163709188902061317735781057929247621754376415092876049863200417188026593091964230701895386424631185636496838329945733641247204976417791865958015911709163887536028780002213330588472359589546714227641557236946221412431875239211280822198343861660703494881144985757839763024056561356631383141675879747572919904408774097688103741212067201036055453193389262029780443149039371183189113577437489838213332783065817049413255262859006472150944716699260651444184519058076592616869968578850588129275660688599168461294278859431179957764591191906920418722503556127167738066615615975043043636881313572929807885202151038932972372493120915462928395066565518140655635213703791045178670285609044595748873304209355402168763892128308536014758820277251314368014056269485955368978623307043706331386673237679167775474332985952821321730129320018025283039588441529184009983680389282431926255454528080142834201637212172284078602318712015887010688084074557324423064415098397798326101158093710099109464788579553141777485926541895720173134838826213932455915468724357891028491496852495030179363978105449411478235038692903704999394039686255151958070344258640983870254302098156636879432452476158359016721554069396547399118348029548368594662774140048411481422498307087775847592287505693317612134022305343523111348589383110455289675413484928518885056198458078245843046120188614660352691037746930508202424996774618933395990534501527666131367153792815473673181620970337305513570266851088817349671925587592776201623559028291237754453762986936868851864502900508211098610190329739871559552023014708113612683802479485825272436992859697626388689146538309645864275110483946318128751120301114981363266320175289015191469781698261628423717929204941126130360725616628908476995429725958017208614912045543606824381739511566267084340323959455692138743428954833821946865648024015645014975139596317602758797945200247169849613825643108503297618072082505948868096334115725648501114525446026460967400149191397966376092359787937382309216249536193852031240629901252550004860829520098740090667630232202967521613997107457060095470014290259712555227267687374319294419442332938416290811769588512427233024491415490240032392559537207306926750071543382861973312366525769431794175136931145516274488247994830071683188485832614742913176511971329736077799157746974830067554346793174386323345972246168333191066729628425089437039846543929079084507777162785536821221470759345271725784499166922056677188884513002513208786186309621594963891219276377770787614402818323619504199209720867493028665239105443805448967730911525528246876414155600380626508066255028758682347378174827014138664225250930464876996858763825524275613977702374398537284593310725899608410647782386408582132981085020472260747909294661659691415164223668664542267357497816805007495538106237100863452872988461714140962856473080846168526130301439866797168492676779869869457963970735749512069811276916571089820674457869938397705806736228761289003058947716283123631994977851406543125028486597189223662372183486004487800417244910388511289844753135920220849424791894387451218281216805871887760814509055874477577731595889079554132607624050316865157329786103224942178283876271818698439810109858086846614571326809984559791072715691517225301518576558933124437140670968860715368295578789749951908118703114299885205276902782314904122165844271216667909432088445105329235993038808596768371404509854747068470948862221465312154005750715390119877806650107883737495772570779232593994272915922303393720084768188681217527801418363987300333391316938008934878142049983564143954542859238152742301360344873458343981992279374010464541011247048666434105167802255218886225537163899064555197120136015812647801694105299753583702358351774255934775596579760816177018484565332793828349597593112152488750829797099477779984064136378186659663670833735913905743232355747232271699157662160817509977746467322481450183852692196762323230263612990180216653120706669855937278134198413287820270133816140001018173083896944556382821674758524290807687736905176706890337088218766832698722207098921728619691071160849081822405085560182346225811779627485484299230413188339558773522513071543330654233622605768046605384779124953578745879512468859358710997964088075616420989020290524029392704194144397246162987258076841960765515480746791988063780061927219592458373386957918817248960855415257396495642871416054215095888348255836738398510455253044420830354757514437237369884138031954435346198778482293773926559150930785184204318843931372854659080153887573847479106349636547187892426400898997014584696050892368733426619565900317332392170747261471486705426135119156787070279705584840245984040447238508665816600483166285093728818455012079917003234615187973577117025394780933598953364066116457957836912666370047553113218158880376946477848118865191120787846691277073247900468068999146288357173723652296125942589402684714792647641315854615248042180352188182755175797764750451814999554531313106524986481854752583176950297394751928698552735893467334632827591810521306059777370249978763396973728909926559165756144968476490251775650365730605187626287702900480932013094401956505315055972283363311067287704265781852375133213620859363790573415277148964771375704989444530183492133807800457099444982828504020809541233464837989093460577364110715566434742295183051843111721195177737525590502470467120765873637744040831617627767218184084842252989833352670946245209087264369948464906252462990305028692281748898612719528192425785428735956961795310469081157761882910608360783755703936986080211700532654773331769132687673669320490085475759753865551615788123117588076066922680152387975796977498852447966058007404552993059954426639796074756490765018080743588067802837549421182519599124935765194866115900302465970848907462151096238455006490166908330975131240784240847269620241222499545989623163427866016488098419307103871006797012359648317229683159453542332504487508189320814049300400203420106590321200433884542891135403852871844171536693716773210655026508480688074431798448298768331566393033165530603395057476685036172008483079282691792748153304141917794258584776434275796291672315612135900572682858711227054873566821852447779456627079037131967057247212581030540043240631476523615240698286829014965046570341300658627810489973030048676298695507752271561195677173721752992790909253633178731719619489790034033993367797748249761374324150901305428667221946930985770618120163374408956247108772748263022327207728665174653996873247796521478338433449106158519590726557425057954184561891819301725830821149287150709116000351814001631586703791419399567258548692047858138236187836232800110129630257985809767302320424160327279772861304149657584619966875377995062655231288827481313170351623737906181030072457532226036177631560126345723789886715976629233981727431584477656107463335285375391401395898001822755385217998186088114876859980721563733908375358537104468765799911762887578481486397853326567380666860783200868008452098040082989144119361978501190815383243868920491570023602848959816360296372679622476412460683566162312067870759178870627495271775615187330215850612646886857951203231093149235285937069754336079740562770794282387494039574084627209920712412949423985435833684224979225262821900626918432832591713438691111367662701688128226413934495180168417200827200401221752666117579507212577710165455179011262044556899957702187087098178057056820281597237301241822176554703148022497064134822561055246059502150269676651934987639392539550276554775395840720149578039976316627993852295144480247855958333751987287078750086658803830257669707404197900290274965563073583951462247324944792319675177769694566576250258988309247069398002813940142187311949142477495260302045288818950681867911355461049104132566427272548060303156029328167416847979014413716295776610895290036077149342477350156295376299251024765593144573234471500645322770881630062353779085082577494139464694343209107989789307778151065105383313207679212673344508832879333501262448010452571251793684538626450312250303105343299149202066108550996442067206150278083976514788049150380215308802913266649383766208371120895860181866930461977488837906331831128263952496665633735791179940610831378745629756448965604128874586598584117814262810366977744925541103864356865560913447020264879742650789025704562695998511913228256574012096353339594245555353105278685661059161010920015644605816890319815133338060885610328658349298317591624764393357578506595082052462156417142445870474158783981949671446454355743510568440518065268998964345060393897515422961005875517646687036797623862336989695879145917969488853609695373475538148194673262950806221455212691129477439981021769373870395152950885688733176309575457929960756279491900057645153713261867941632626674084392562685015811660381406183681477442031414453751547538102927834740628098170611295813104198020236956293322933201623217799360401991967868844154277064825734424129189897723676413112998791898997124921424838614536300959660424521841169530139399049140199065419035663517375124625980658880273693353968769740671578268801589358185647675912124614008747178920158111557161190265882492683123001168393610512949867791979779366240641788784799793871323392591842431189974186711261810050050471216276572276448090704603760762856255055941175579614821260166600925930416949345641564956510296874802729991101727350483770265872161111379211880717917258650600196464433305754456578270775825113974685388762768641236307567112805660964974937388390817971417487329658728995622700247395702446198860201557978228857826490857498704947626434299035946105874816393760571863194731826019811896745177761986939850210104169893743744737679175614352830955750868787277854124681383384480972847512642997866297814954221819371715974079009065772190847574991324172902791265503245103297272945106688904033318088994003960847233797043961646411840965518738825734320372027587983670276122578098083900606890280092091903749796582319914195813926074455910868533318711901039825733029192967486836463123871949001984163050060650717512006365417046165564512644126354677295694938198697143165667283495421954966291489498361351131045180431001270359684821531906952699834133320130701483497563130361372817358951237683739517735882467975822235247866972343593179994924576673284432877368037094498271327532042863364312902125220496981646437700114073901317411428054134120108539209537741131729489854871304917478103543638860808809161322874433410773911514454694795897197701351232869236352843302174523493187145338909908457505551249521311966351559080849488553160640515643111301518409056202081693396901654942272928205691323342657198004751025300907791580955990469739165489408129900898907647049731479051523189303811179122844691423131354991451777539212601755257168030732772715143428906455609792505851075368455591885815790454772032338871995142058560752867051420461385745621849440409341111344865924745458821087672272844311738180507161264105085168032065110415450020680861483966463710139235405952650638085694718010646714767621529320013422270125209010875935542128198833929510134965673220820557482419228588069787798182282498183203691163444547004770873136306309288462577908854389436112742030461499850646323102828199449945065085039599532127608069143057642820093917409265933474793192190099861941414362254812263662543049409365778741468050884104259927457026869499054395041710044103157850478236660979430133042274248529022681243682033283122352276399763991751439452802201425766226356342955354122851908007077168920055071082096301776307193866924731436882312008265083021688455405887255238532297505909063799343092033520718138476571816672969125988420701281101809969473963323289395218109416539067442885656661620093613600312530962320476030080661676402770896646931508482885591640264646104702852865025284476250047692428508453267860105949585585403202593383508137688273968501809998653467431947926425319578657309225977346939543787416480581119451173181535519934692303020363747501222237118009353741114322374591148744843034605831606313787689100788519306400241548212686644082613265477031461369494628342704030703110444735017362505882826006256367053823173517947921722516733772299590668472728390226130012398846847576175198390047770941144390917993954559071011889589186574168252874482266439894530169082027847723492411284140819281421738326366854735072458006468697440230585960896222795508871379369772380608840698974323154830479169139944651707024757382657767611538245209266398445869291265241033502902702438215545753851243041346719015374760947795469732985867308899169652420640365211765192051658784763396693305654378449716433703477940403586543912670693654814360057589671220691766091037377311599789515088503084829823539537478270383619428732751307173976693545349882362547197523248080101150267469776917735002564475846031824818901437318242281128389026266779352794732126091231412365917058060450706251226607201526584811811298832936147685319852742406465306950587526993734753828581174057987646233152668656113425387790761200659619536111931306600283149116922158874442293998792893524275726724206748027970016150997469401185047446727236021912168246983049816520802539416513004325647413747049545948468204227517083298903370398572615097021756142578821799305432445082803182604678848755158023285221354667911230974894505522265506038050075532986123148117306610168083684512633444145817390226837398775387661507268800724578244117465587876677580179415975810858642789494373142841818519874075163789580186333362911179227171147001695239961648207150589266128058960129978401167602904174205742928176132502100160605481078169092558875825953744025551013249733476822859491600975790017096127141232534276429583844326181207522001670966542481067869615574614640330789053132129212082661063367534937895176352107172674996374805281802971092473702724120622018009398887612561119366688765799388191441574717309833663202195394021494595547708894851459318575462534439796735372752896220345437098688693317426509171449914777681636442390113594447875273528245049988398371200018216778858481946793948426574323707183175832401577826137107249430764592591730344753641626182376811287692089211800213531823235547224233409363149862219380481424306973214489995525531885024223054912290681075822033044898140222690087010530655798419743181622851841962000143457289308031883006508960200567404670498827198486498343966233044497182317292327593504175468710368760314470218107648777292082129383098831882819008153823872609030555269523108403363395225161744280189795726348070414994132030580620092060895793862278650251300153314845254549086282294270676788617750264511716463914186895418452571845802985530174029931494025634765462858666253963558571987894930844617827185949047480830010830758436476284779897554802654458012929812780154286274891994280184096779898684260448358324959735195970837541746464939495960802470657964526275455020230858383998780132091810374153315248703166118043393379223724270976367597215578465688103141325136635172866386762963298627836334168730785757645162973336315659331801107501800834811854167202085391785176301304006103751138730825134762763455307247449578992369511210297701256001828378294527532070726623145555288008168033470137734012869378860750271814778923074452525521740265123470089187580482257521202187829795516958845625920861639980082484752448110131916789692279082902707811998920184112770341197737270532569524460358703041823649038955208596754586397559860929339488229100159051005748552964182851631110079799922906248083178848393255356951289552829509117306310685040817357433043387727549365559012643011167832522945992963345196555065481886282391956069039396182834429687297882170328606197601076086497964870550224685247102800269736430049306554400012173078836338877366293854182615695967129007469590019796469367309029979263978147211238105934159293939348608535169361847814223557562093639293415694897966719520244903443411020384588850748647369917504386870658680381285256779214238370047499438214700973728626119704013648164074494404524405358959370297092989185101611587642740327047430291877091908102509016118267735379350287157891316239342589323798276497649392681778996818065267350090656230795623279317746233952204353374751206710695040730147620952793592104438009944617558821329519210328024905503191411910360877666035232406908012362321832365713017478979248292868110071768021351913077049393391724117512447670960004328827826470681600982678770356768893665436189864562933669430918046921809826450585199822389327623854493667948470674725859153819589065741295315146653369439880140038483191424279381686893470051582271510930795636347926047437332505221947597557623602733180253427468180806696290554539167934246986408941194349887553941864952403494633107985517788965945404176029597498517095321583585766324113632501147951093341440923744144873594302062481656429296083211138394293092998407872998236606248843937414845629182505915315338112484996568531884903919442599392092536034190949017127864603908048205908460199368515015059064948401022080924414807961865265614103945929990062772509272275401189267979675897253402054935887075027868742250850760150236130949690748082507521461650415605320265043830270432878718072742339786802960420068703405075086951366344581355203103906431480480423765939882193115538325114031242271680629757808551426732909333517409942763119740860307654816023608670684762106281602012727197743184516859042947785140236643876143332120662024572666537705744942092002938929814633256123777640759376786529238099724241095802736617978953226638824430856846507013903356599786002808363078769112593446406775359651433778622734559889646777476971875320123595021967213365307352537921092950646993457854907536556698179930944694250094231460452638142381951728697763640164405961715747882941225606906896115622430348412879107583475585089405971310631185958549431744744025634382522087272941601771346554199518199079698274621453508147762567930950566994027180500874789688851811707192601873391901543847400175869612401586505915527476044193636598081934760445024762960211327734154900996600833961016862449531685387040658785572127645847087304763409276134020157593852123259416818250801232083734414378296228316368307265116174364881129771388038694620550691093590016333163948195169697305989537117705169314372204751375312767789201839863659960291556700468565679183571527568013392225345490016455049538617040674568123677261658764033332138581723132658685757956869685195842794738940798564535772226627491732124820348848211040906574778289312193565470532049249285886863548396270686007335469298086797859694085586536722090015719244671405991210047529323315729583365292092146906656139802803125258670547440750066961494317430378258242994315429882838891258844232522714705390135794184774267747359153567041064357767208246359210793113637756860314866657169772461542665453358812240730179149825481455390515396195574601502956066508257321505822790218727632814014363351098767867937515688643396639555459599297167864717613414903992855237635361080552488026249219191639309955131925853315783330889099726310097761085552957953769464178123685693790641559999437209986023354578410581724315577280027906647443819003199122457783165068587720451245244510654986731898955381695944291573930468088494406473760243585116756815393639415513310949666285965628890372876416310223994544925209693198588956746642075868966232531380316706994538005940323014563339024305754930770696633583801388213090476684466286997079617346623156621524679082804381648528302324113911368187449278420191254879062896320434170728087418182777722399998162326674703991150348434836330398149935074204893870209691014685127816116833342979568948562644764215758524874722666206449172918230277953550658419593952138553775707603190737509311185868560041980041554282390459643971840081574864452907324369091686833511003322600314844936589017709639537292702948427101623055125498990045656876720791397144366918170617290029097418746360973272579689373694060575036555876372069932200718774391378524488315965754870780677607910303939084650791342983621079859118125519221578358543507009071569256848720943350644659652594653936961604074585024872903231355540815215718243028656610743492622613074099499466375836138225726016208893101665443262683036262729762706763998042130618973820511925796351195989710849252424689213904235220653696902307189474575918563553994035703596361244967554656638294992476335704862460303070720911220017793244623408938119693573267122701562954195414697274713665444437713426950080907239421704247675416107027253844810995075183536350284765242155589098368333193596175409056470112999008304968251263937229532466931033419106085096120167901948324437495427836027829634189720407505554570805527582298990670280676207441833033092529646098471653100148587757448535255602850029158065416333266263423215209360524260829855421280607480660632377018228817671425893470925822146089999381174840352763733402997469526771023621934993087367300524444575193427905260059043638569674889376802275580759307159991297487646831444702972431619525337022753082680151730871034571168548694058183417272339352352586707846597641524735548427963613347878992985644622096468331418548017888773891059242051909785236765098410387514935436374685082928906877662772373203468739650565998276058255438903988879339052153108499317200510176689447953119559794671604042634919356415900765754380077402337534635943484266841188191305163877873091387901886522735530266097405383967825425705847538374331107514465004465648359280801149251459438818429494663597829665691051730392017327949597874709611381634338372287485154004447382561488356018828267501017442542294426211928904946263668590252717130271095408805883612183069021539495534293864722599163836774386901837610484493557167486648565851601226700575828648830866436581108142189353626566670786153609773937982780855755904389874511874234596578457552170310603863985063395507797618639124255021424414433775692240237418517101745169418917532030228872889693905551320787246009969873780466198252161584631178849145328337270047602303014617361672981538322800055998338840717681420048963320001331856297319808617279543291992799792665671582225317010970079274441130737643510057342946010067374681523714679149493877160832069804636894827359687691524681072371218467968369283928053111334705989677210187338619646708356628594753898225723178536930551712103883252066785461543404866351107020279637334750516443223268238826529774986583312652218325150554248578704048523728624727173828160196245745232007303861972147228752277482497725086847942618953996856058921607251492539745799167389739875255217807128054601396812963532097948605903552792886394608656027585720341175205663457666142834625662642535758814574494914808927999904071867496568873875346512322799248367490630137356098174689683844475957413998795385456443069131116614002346958496178418677432165192776513584131811493668836824753554616838085111789807140048999179335408033380838023289997774061484619667053528369178624292628262501820590934544087241493472211244826673083379823202593762858360663944095753368425264593600740255607394445329534397473897798637285645105203701249448617412845419608645283596954986130366486618755253815749994291116406318232188089233125691848326857037919846474978756400372152167650315771008238205216119388211534523730245685809936431355809740066673167621370499664882780719493589162697299658711451212096490246010333780295819385257291078565260454620554373512096995628842867633576235666731836924155971352161830436676248736138350442338750753031964546556985542086844627413103357377688459306776536688755644111382334575245137719493246505150419685355416973263097428941330727597854904697522149143622128838451915463052688173850162624457651191557045170140613740752773529800443981210011110513448808893700796551403742706165995429803882097899918195409932484293851617489264522456923132908672392006217712680246728352135320705082291620243444118608495269745612987321801082052234939273738752547483439371450750593785520546388444722496987830482893325840539219084801527645765727170748248172446260813354407278852887446162685656242903118017414531688996442181112774967604448029206992737498546072850226711787046511781710411571382485222031443390015684312355278686959441144424023381989616565979548157687749284033528253932230081388150646297465818315079672965544927424248766556527699822245028803581870224253340855096438294343610236212714306294412220457933227786628981994812874822548521924714026825966831605586776950617385225214529479739822233770702751324605266005011668936489994380889383235436717326647417025080993081676160261226658708146991898282977099827519032338863984486995989118643266622822063632709933605807274894570761222131826290451105143445637275249920612772414488636349926010848654883581823129877922572849742502214220508287580246186762598113833373085712186212448300251188711168184736544294371677019800233310942450999034897697790354914788547370125762402613327116950626259494958505981166650024214477813270094718750182743522925037798418544381734511125555429061284460314022057756395242145204142625471577622452482972062793551842876324796652419036962415039738191162147671847239260210694904789130117093869867021084311980581170180085239233673139932660127188468015268978832577072128488353814620288737490093467538610660964254958966137182070843999387125869938668371301741170976501744452741849916051388811621514041214286986278786702200940269284090345882491853486120031353563917758378573456203141648290177521981862889711006221125205021016738178928250197435940994822069813077329576870217774282317804668293874798996177320028910018344198260445786517926894190360255265815703742447820543978918461860355932660716857008296989058727664094852174957137756799829199464128754608524726299066248997293585543180928425142746734059104409332854056731073235102604517884609864398580299308729344739260440729127594965102025021884358737730542961090238992234698555464386699613048978688369788589108199178494615886287685700852162623587553345440187520181877867044080491701014004688098673844906248242271145292857183968940525398110452475561278537319676351611985733257258525088850485135441770637032215864540047359454956303842324563022707753379599903247555294797919712565516133245165334222768258643101647649342796487753650015190594304920597545162536832140035505613744605793210437895735356083405536140483453117576741296447334774353285662388342307121028204272286521629116280729748743234373586086906424264756473465647961556729792006632942220508526464462682105250141286910147575718714388142258704471242272875497193241582824230513081675537534578117192616259910058063075448017490155347151032017321279488176539499449875394686879001023667744517923554834877377428180474643162245855161073926255439515018043481099799930918066200184192872493017647767260946665651457073823376796927447392262240663883327810162477700658308592662964408026790518077157587844443508066553917400052421292914758737639431420228364951229538837615524655917872181654788472843988255873904007593432470844901044487865049635896972991141272641681669004618070571419624605648872772744863050989583980458621107371397814407809659761105971433063122858999367441055753432777530188821315928081959213712662267978940193399516920927622163953668249858993759566822086083722688272893631196092784932732819046725284923421463157542672587963721174268610156202180338271424555160014278231408064487567231833492061028236650653040487655142890423437056218167886103828334574821321840933212732161559088660669717173179279311905210255690621887977024565580723006282725254710799716236101012733985701960613778365176636814240375545443533729745334084050541135876823689060201538170238034607712731302588976372968881157660186068769120881144169773693101928949164599974363407556463569148181554284297468560207403230662853390619641429648747850989589561274364395986343063658393839292450610603011001053989022895104014097576699036099068601518134826241812970258037890593281088874418500971759368945821406837710882682845704290954241591391325389507490950856036016131440955867296733157259579759254725462692553660909568821534192700496334422784080261877103157615401320269453775035672715438160249750977178606675791722197697927429226337023637805155913933996445720641128682581087795408624007710080715132970756984966126262924694888969057603578802045182660413404973563269103697564451798829351558587817979087354813197973082372666130399308342075778896748701079869946411791812160587106620515433409065347802415557927056810902957734737511873002701473708114504957824364510192457711129097796911578080560360596163739408437838646836207569481664143058765335667750879063654889519161153974517354080428372481651025151766118388168332957571775417545639201154052376291712056611046579236181403145844936848235561963282542978418099163109619497302288710377055009058267637085728460486434522001767469208308082715953426884814982191154490134970553904190137995160021528309918122188312452883325481807930511864527342483064508104600545695006046851761882640068655577628400719905636296930838394844870201076750338421961561901312100369887692442132894856059052110376331441802394994775062423074707822136314332197951155868600822923162060905214703648562726092898433682174079687988302291190152295848134121391611930262675479529210299708531617274189101362424566143426614890566745946417941047651073712546180660945287944953500800535716625685720796827058580824683770449489020602282126265669884553049390960371392394378256731170842066256758480873774546666140050188032272444155199626057709016375943011253436652094637889313880939918050503034885363831671279933600688609553382781766200120611696762535101822133672078114353386706956797676646835728749703390877121313802414370836534595001165508655103946469453667841822544495964860385759696860769597319954675828010700256246931267399138280831444183666193208089799953437276777758518048811767098512471216802792558063579231759726256965859282822974821202619284899000618176210333929095146999862414471198557574460385927239137842009740412160647949337712300607865355524056997657249644167763440276792232957010201599583184084647910563523255720704987090999120167456699503741426962744288380655608872456200163067849685993701863173310488157719267941273660226827997255121030130300866681610683274278124810147248571876862056320833356742246474103137925366480249371531928655931659584631569978847609598076532124800030602002370257403385016352934115576271776974020237659657725606968370625141173998908940646712752839224041905700977282992771858952100240497695489841418726389689340655853114282268232933584345913949529456494944060221397744788725036748064438551072909300229301313276790771580000587669356296131942605710895655346535728631543913576846221539252861323097132079234166655794707314922983225132288525189757727928096438002995717920291258684019704370030388106883499476756140516100967348279276995131559825411307022769649957107537725397469754130504396855517028517294602314072040981137726967295573092153992886456489587219379144637246731965032812554941989445812768085343776718827829406862833752036240091022246776870478405226065318483980444556464246765700651903569301992151193498793651244566618707583521116525025967193570522605673257282202570535877854127869775253422398295663499944190115778493975739500194352771725335828908941999196181992178495244957910657023230754635703702957175534481630486364679316574063006691797349309228017105697427647320203974833258434394484832800556359059238448355971556006991836130022560851625248059877845158543408316964929574043240529829224318282891754550941227308307164610090518253362898970454710735309425224047927692086446033255430877848572624176894520809084593280236714590261246352603927052304022049004174672297451101008953726386893041768210229358128028573108270125206775322246842081054076695919547252249818008844326002536540783162447577553534954521572018617902030153945433132235115406681729595529896401250412195786871771428346144519667930544393188198310645099717303545868484787513434836103865711236297522118433540071032002814386252667254519715771326036698151119997255479833149880474264934092837582217636965122358146956740577326815788803078032326187318963443504023470395219862372744909103993377145951219669561693116554105966287863269029895894335237529256454464777772059273705792243794429701611306969175083403177731750450886067206892894547500653029880558576026599346226915038514744237016475449001661957043397960912801963256562691063344529158224017576060919393249453739380760417452590440473040789629284830830046686753619945659857860224328797132988621366856023079625303957585804364917887604730152422750613482727625413613722270675156152075208600247426571503804239871709025139864772904522382513955415468974886343111400682806915483735274260064930289306378277516874170107638992386967780579449105157366175657695476140174080061103577506792904365684361744521004713757358188041695135361248045803802444208918387307271450214169632953625769398146584002415086279898415386141873039782632208444743607743673993304737366641225851078986950391162057582072105755189274154665995021845529381046074757141354796299519821176401304402342315329749746960877218696017392490173945226498324133790855902493343961781711523074135166328761692809443456653950152413482981754806671255631493724900375008975507990349934036408129178057733386275221872906445381770649987227353660643270914192032562519724495000947662232681470144544024533449282908115852683844402552485004482972267865482847594324964334205497382818957837972282896514290272043578892560729668479361690941692013292214842099038984250975169476831073487933800665621271591611050434392604571515714113504115350708928015284806125996743659098294384743983191007551311419977301501759377891224465260615638223976249995566197926951907659739376994647361317134517782426856234828604031145391191975610396717174159650671121665984864168623509373437578962012300046756912936102592314711390251985059762963331142020157442540145885000288302133555713014096187039320079305830885650492856805402028424761820890095188777425311588641175193729983000130068337852678309333122665038022582433986166712052286235810377527169291202712094365292286944137678704734474661272804966947422710408547982707753606400979767924009383642493773244014539323746604285713873946072673268975647877955930850061915881552526512130575794280540279239164308992859928946815933762525386099749682734606502632514157481036743590688138798093419823750629801650856240174235220006130202824510197597759469419604832784656593596780961691826987259863850062200127903193864320921474807924079347544067073991385662086839517856791892834363627956614297435052705465594623572232769257412135595101901638526160078959144940151947908303490909493820223322211563777545661183759107703875512019180783016232855451637013191522497628405553426022198383452217062529622087924407469667606252289618346969052162141427754058978102191375184530946867994794739071271274157687306745650227360939898011601694514661101651698501060535315073535869625662466692307714840508041341026979285406394373619572393560416737193482231998524181410759565209166231627790430136202497030625178665740314589568999088619583470593817110876370792430773952324288809730207657474139119330451440532192693675724291017059816153517800833040479782703359173225115462257072147267107103334956263855944365089895500948492911900205151580758476614356996425660914199327070706274270733514075346567218965697510787058928328823542416560612788673973414802245634187809658333935123104337190785796212284612742936677858910744524467543680098054300992584917363509767523250668975600953052626208356082684008148701824192907097125706802423647971987166702057175349618861130286187125357986590754596634962685899050143617374333141052354424415344205242811086630823908028284412179934050070050711478186166469803542726389363905740478878122687430485511917467195218587296175604286680480800350842948844646109543170785046487146572553753199749637471129494435791990972951037306191986854163038690559165949371652279618530628330439704181633826279109745330639686133309635520405142176577406584730137659951891992774562308591653944899477096955761027292075508393414125432783328357059614450295130157908317313083702053481325307201343315368582935831759532242502350290077757916091609982284333427783576545081150766513377560229148115860715910809826259069681101310522209873630664637747291229435826460317532590563075514687098091195300921978458249363220212067315316092533198373970031281054583782832723215679580058375613463686437487522157403902858934353568852051379320782516780808984842324220189603209120213889019139370954667217148934526638986944417192034793410994048539264205066030198746853656348032865863523081370260026848377361836677108317010104950563051070575667230053222733669169149282231797469370146037617123646898984080965340960899863087420961238059907396008606807317157236487132595082323160528305119503810095144144607565871185734182214443832256968035906009638749868179326481922683411875617345800086269934092042878964056460029706762352428431314764374282956330918696443562885783247234105759439142398758800272301956095749572612017661134203893752016607153203693278850030391750851802379964459767146421115201282504417559264166891099314426001730693571782819040137271905139649463717170356775625700386309535558513216578537727245048333105931716453302404128693803629314130961209245944390997829733436614223440922188477262459938460315597949324606434157111202794870284022718988242937556600889463733068634759600417834294804106777709295896423627332634917998307068391619697043458375080939526377799054906332126359320141755050185169582918547166178771324443288651612787849840361664462408679259223435253412865426730850425472328770734477868531695185388731283475991568551417169018230521350802355300063723437080232492608044606059391445537482672351684777799886306721082160224068330599728125045201168450530251358775932504337249515873956897342492367774672549579500417419811952273842912062541498991485059143757616361974638848210703275452175240389066596464953317953899429371549686383767096285539463564664826149020218685525180430851268030506664557017191776070143401642672749087181846591022059501839716706694879943877971753615281265129921246145897592921426988799981597140281619080584959400414446393811505165336974541541637047338076594290976487726259034022451533049942002533026291030307190083759103440809619843635674259696679870950447378209319874061024301162866556746645873212087613575440692335699642063983013955225287092429337535504697559175292982020178194645441281832339557308869261029893839071805895173269857842278421441769615224070813252781789862048361411634180331774138656966692152187548292061379901585952603836273872807163097370282809806214551289181451320638886956450312787084359000050733065730301602673591552778173037578491472179425627959797354470517380665249350966441521036613220839148847892599824321870519926733386133767677524278141389975374144838213255610709720980861246428009777769420297115762764260940856508793569615726668928140032446581934605461020077012849199805870283238250887943684391623694566637451028869777732779071203899133197583507992862884431253733208880778947603748056415194093423474187994227784202580693290925293270221472858739151188403607659630908958289002253906458310288172862855338616272725722066223241798867115923231517671977306785412035681883122355907012546162840181687996336261470226725022936367932685340924078085655063170015929822667652554589396652553709265439154009911008940606785558820694640298873277638555894081503496345356842039149581702190187525600395052090764262098699441883810178619504366032426022430915612396247888528763988486455555069121982409548650460677332742721495088437392937625658666946970403984157336818942769769271812144842092649465222882478747354452069550155227291512587982890882610296035694944563643279055255672729695573096927221666460068134539992248734054992823386460845087115064344170458773310382142884434914049209343656325838254996059147771127815947305900854597498197106062496401859371124985608901718716251160429118909781184054010014068573085043844498100209464547387265155459172194703456902577058681538003845634996452357258255200012529131836307762693355915747440906835468785917843425929941720593062991662736810597824613830997331359781304762045378693327336858914893442190362424584735609838813672374250005099165063994910926380210936955556367326221042938299151213037313082068177773707141553313604425610829198358068341922152823236461178474075245217533291147210009099128299101798552549029125454892640420562273161164922957118548877591895500499768209244478302453550090560766994224135602253854850196035697292290105742427426629095069368239359729370669947687438844843606374313228756484384951732557862789184254002870926612007618730443535382599044543581846090939242267074229981663021675492704977671093841690659071240036364212422434585011463166391583287774724774291483307980100611217530221836952471268926061446246170308877300796361290642240415437406597522471468297705875296587050357096288041104764086749535630694845530263561862803100847133016047694551116807888613550567467266927856856831629590193226106401675879576361180086719795243604762527487532629659030272962613642120569702255910399897230598675458701482208912667235985540408698294662294213858842070804759502382851430997459133185170120458947819829715630452020681461127174620450004455269116366597473727836913241043457468820861624664505091678864651028086526419096467469542939225497856316629934142088313219028532451021595943136998714501544198143797540382112324038410418988812887350498418515772731099323907223878121866166672070691032432039018025736765614293665229247095934402598447636893674696926923796265783215684601736154863044643085164162795150181504686787546752333425264829576933817751169334066279413833612594603381852761318178291594394751344817783399161029948136343435839469581105008152777245973310781720511683830572872495853219998501728482302786000073211615978576382633895335657092442856975162736787872725123702292878373635451706458002478037167325544238644860444405449894754963035132938942160777024532607959031693833083380560888851979460523434200663618666923752115563709217961236822022810194415023555049080427586615641060689122966908048495123587792020014504959515451488652021667073184053776018125793708423071690348601404905009383610298136228883923888865301424239807868065880893626546186171094474712612855125636622455314359579337483451118297855953526887345454952763229893489487465251115944732920136277293342430007121164390832744043234718945520074619951776369500791668353031039134506938267329070766352131618789305689247528869489285906583197439404934632586326495742557399194248563378907640082817115097390929244478130395905634200559404331021134218266338967797412022384178637460482299261666669041574851371018674900362166510906385395948667628446688855510109069156828713231401295818850990014891089656179827190318401898456098641537425133088323782210474599901949301829985226708321727121004810817453100042753921482304224890403183816838841966772123446125073045568639528397734855141303380607533125870865121381689511728032347577569687912761316516670515724222213133129539209213596996842394790838242359657491851658151016130013567697634051799529563255633318920911247215177856339115414773986831235880331672047904933211572971303366173450753764011041900516106301075530857545125404589313539085070892944363906832439626461374859495220865762998068505777134777770299493811492577517725329889921077810889647941402397585698787083842022779502289861934926987437078108192958447052473095844376024564378040545342106817110198748501937729008751959295478247904813477413009828688744910439921043704923013706748889581486942405638198745247374763839517822426326902182625129628104857543325391222941629148035670307016836725163028746791061911172864555397430161390033180294286244676531564885361704296466261893914839187901938605818971904853856876583434406157519946736868551045447005481230522701848351878559607381590065967059819942055619272901990563048964468911798040557836732331708268629671099640941910232872961133083629570841281135756763590360979293345525499776209139182932859296929103945367147962334158315186156988812556396229170128041654509260430861867360320237096695705658896494574617730380613056401441566921996856121465098312669075534894030512693513093182599968038187387743254923588868187975221732591539824890864422565098381525499280810055569859629108806500126272017801378417038476880859171276942023520556565658388271878427278438076667743218190348190721211537640042300638045513032692197180253161060932746004440043209576112341973355462596884531516184590145066714216508473297545900169247084503426190725897487459458313728271332755540568181133152775334404686087168369366128966525316760154678535952797764604057906350169390988955954001279496082077217303678518680618089525251336208087796241020755392575799810239839828445316048716774138804511824517373840336716480224768858625996203373724969245669528191763796954208904481266158400945621204984655679837276465681168320395370523009950930021725748523684854724210060422639242634091769973537779571869558080455260148659902821581709671533295354924798798110044384622203080413516292497295447833102980281052188106957669360752891815597304135557200575926420025633060980995028023437086780216320941721946424270640224420983563879255742369931176188449720643589463927787666539645355922978354095056391106610916222707513297214941980649027173547188155216576917310886552101953599189902239565039156323595359392155462353659578924172446592971831879615178794486828253680273587076428423282190126757646688295934138325443496593241349070007683689138772815408551944284160565563288345247642277322246175489857032437089279861249932335627806499997754101342776784037096051138467901408129214827902204822211814659203915260462278244744533014828325534598456874935325468678108031526530539607159576737336214855184532033227481292510195514184030681646521366220577501376317203285635846246997984718410338243653654845113198255276391994657351869156585256889912970500186967227918111786006979001345157401501542631544039856638065079596134955073201624843832562525149170418300559131648940644054883915597191953762923343415113014722181771055551059498864656278306546181801924308633905302566561123281536306413505667913742008721252698006163314520621600095282944441177689288141347048869571853416245751160171868076743841338507359478148894289700967956006142093151717577395538331008603064882323818151896713306312207635297699831450181244210794290368277073597282074260568508612015480236547222823977379188775058223073819054216105291802538722460108002308413273285633051190286826167375731410885531707801451360972637818273130381575736950020935483129554600257229077149113786882844005233983583737431223912368481451145042210816783500308688662856397354127189197148686565020590262193367291834140063432598961132821167623442595896804306508455927923259755660669350423618301640907030466811690484140855803765353419176085177068022283729446622364272115760809632052828710828375196603151563625293314425233496916726195738305877775563621967995147691057712636816024700258279293833516777705314372177532278316180148513850050050977575646873434972459956587133159216651909629007764102953616622625501594285458185532405670769840789101566083200539103701891991075520107919587801338747392453475928831468063573477370219920100291839276133010334974872626815002041435516172796794957067567873854240866671520971087538725032231900476410295435538423710560090635995802407176327191963853656493710888476981094340066030786964384084465114097558836620831338261757136160231647805912447872053069500615848459267830727402633469957156666619153959249006629209018395922212051956124388942801190578356552513328885271520589594704611581160427501173482041711994024335978234021256255181024481845363983090234797908239452594796536150887058105447338843695439950881925192392509967774810694399633053469144224923060548224257777042340644643315948335803170489024372291837624567210390990899580132488010461167740923228787851101242708175106712884250926990064282058544090924794889495351375303826922658372858762508016408832225628358903413591624364326857488849861592799352923867632692749264995625871972371061359018206300225092847396498079534437031238566343606722320409193461786196008821723548499410650968802962241615104741881863494618633354684004353266242866162623911562208251484358338365549180975485118226894972300905124320199527164271182765018754598367244956707157059212698025283972209844565040357372826981934047160939891239546129052420621672999956808248069028970724657135570088165345958236780514268367951886911239544005546622014507667075546474279978615926335290528638616687450470605268783024954432027076085961482735990327573628481790776674039073156419231392073914940904892520980784513961549627195609241115084151511338858473349124201882966595712984897286602572837218497227182447123435567587101776613305573401082398591302543270539991191009662303010738612484764841594129584612662830595281802031699981269976920307228160928292804000707011501100272768610083389379071498849845449720772564408924416942659597598130549661447970620686110615668594246687703535218872375734157415714242826738301043124117712475619325037747004428823296351805893825072644532817992226471986200764466753100717007279232997928407188679109059251435944094615283447865255271153445043435054356504858214761568065614972814649750302116275002552294619966970416875321115245638173645447279656365180298808081551663867674218527496799527315951866010953040816183155436668760131422141783799526258478014582262459751463475794245704746184542745100208173303857379756521342408202866439605767183556092768420630190613040728764881202707487307875942072533137418355543003053942148338303610518110274497072574380499673727900585906787611849777434905304229096598092506095122635497840844978483203955234661206171544229741363904371748360210072245302859289251818118968793403093272361261700508652635151526448517162681468087459417050300843417941577595160027065676481467980883550945248071875241281269973374648224765585662878303267258923066933245117238733662890044084145111298964955686170467638577030836889892506225493985930548781294561518181195117473872695336294290663481719130496308104515567129119583004200642563228117225152601854586043609708069179937722989440842819568156965207678539798585835279832395588980417537586730675917080824905493113571368880604587509124763596084541184643205132401380505715648875439889180612196172898646552606418790199648646457630106189561618160015947475986829698622006130840314366346848954841256883820121023321239794391875054861973712193227067331205652147061933554065768281018808858956673012716062767934141022687822737787458530574300686153638452700692360649113955257522987297456511534800532786487235859814802258430587554053882453660597573410799400797449295993997630872431830390822691756256030894847171579501359557999421244182929743514001386190031907513671824454309512343508219057050581866860434679693860239145023117889285872474306821744968272155536084176129384861679956229520783981445196845879376617698881711045088911822062230934688331997567404597146223861983987985979663864060290886839969669214597933249211638607108876004824525326714257070544365543858151717897468339027179094361192545551011062370468025324607841856959695130008749867106204332195470942558789080849678111619424817873305226145816360234519447266169020415351676023578502097793161420888524425552576728791441354068084964388106019240759472987944401362074312288904608816837912825007729305092641517239945410797711068613643062761736595714833089633383532055856649880865487388886796879187409150934084484441241953302838969964837440868035225763830411104506767455125963802519278404352897172843676039792157652861790508509653780497563347372786981494081810374729591340520389274201529027238187110986133770941695507095050986403354321829688470752488486618434324635885096078598617621975466746537724785779284459605015450711011496608676303446120415305053414984476347808953840683725939067474379924018581059448584859622061527194991692491057301446596453447462802337024381524708079069526357420051284472892975418814627287032758875082723101379850890462214326219146016776988459902759898851958795431231355215692210736157922269550219086189222269031810128133787523800094385140976706259860125883466162271520506973243743003800547838084143232851613239423038012266954057206762851998425251949826542328992416965326844648787178522857318425113228140451353987108452394545015333120118215744860117285430712796889944294808787877142624336319597770391479791824778173591484031141645426815965214784191927175787372605853485524575280021935114297629236178925795207991944817475251244491222600041607695902121234861420233486732419135884767748839589068232073024355490159762812298650667638185233324333753250658437605887197233798144115682263006108395429607925108416941794581737658439072070675992073802218843951099120936808043650505811243096850848686821014475865456682995337703379088375585522137739584225937516999555322235407499033825514955571859725540550884881051876541407061614557994393686741316585452820924187664073817159367973024061722887794773035378054796984467885439160349324134531337599125906847013598449880412353388381507285220038765607815463909910159722821291165242248239116867976711733666175985312111259791029837461019126969373166365550579186511355757984572774598094729634705566261205862486473493196678741941347514533112772535137959558462893173330146002941425203554720138293880672800325118948778558476444110695018868375214072820188532685440919523698549446089370533946702752874772376266993078011606150511567486710148790319779276473430850746800230197379695844582065284399148388262779036434516215099061589219519855408449344164189632489627423444067106413248701491473091556209417091778728529283052611244386777001715420405702572158149755830273503914607550495377056062135704359264317777856306987245889173172352644357675770474780890127385791292261357423672956882347240204404845189862757073289899400496217837549434875821997879246314651596079541059101603282935029270471243739108292177192490123835610434857534226560759726404756822814971558373955815328437462742875077674882319370010437602565443217386067216795053427649467306131525392817675530207788101302676385971618886284884318058258376252090008144947201785550812984264327466582535953417321929258348913237210338677982990844332233095602144457820805484520381926003006818511890873396116444820402353555118271915020773674250535630162460225883446472228682852069326481397368678102375384245426615668449240184590113318439367228521910621243392846151877325578749558301968551543596063096757307803367463804012471907911092489083155399745431004783132169183236949922596192604919111404928820567310456193627491114551499261497017401837968183987503646179002669549990892699108385273155390582341583597336617277563781406254551041121254131420525893471009128282367261976178527241311742731764563745668303780218607181881590782397039474610632927507070242613504400851206660905236658693898599209087840398967273776947106095439674912485000284757989270943888098107923893073161912354296600786182710775771129794124325534851958347219853358725492134011371777687106929293221810120889575327835145810521829560141223844993999599981867385563902852667658812855440378425570330892986385920964677826193073972800099521114041759853729857781363144104262940922106611426918733039694528382002564262348491558234850040202339769640947707664674990613897308533901526127266389448917066770019803230030801943083727431468012727382243837319459555997371490138133807503025795745703736016586245553793871455779313448237365728721986315962120648071434132068948501046826164213116495182708246608660610786453900403291699210535116987814628990094910757060592047999027050734790097555578677758449733177028125679470050497328628426220661675838796215606528709978394045439016474121544952886030238881458663605862802744698635912042499177419376789647438234968957929343114152775262804887842742647875232695436129920594738070649925863366866694189360388551969136252080754186483082499794829144264798570643538545038734107144877071899345617182725396891026645275037004016847893475786055802051289029642914019777081742194817086041564062737794921617771000416067815367739366853569383950479796926556246614717309559067232390239095005690719424171481659678496857600152545918160854696888169114631164389625598765970639459326300480290519597151166117948025557090350817232430192130745439052734128383916021956194916875834637670010983003449150405247341862128906522979954984153790214253705138012567772907200129068158410174377804382775262829506903006337940184169085054696368367799291353781752026572428062410420850789333717569939815004414913722637220508638403219106715795390026736916609271196963838771325191489717909203490666896017748614919162905225339020575711068974848916300225075657049191870713356847061725728009749075180980380045690613504036018903917543488966091039843167286896477114084279350620608214986063215823049540561769523246521914292579714945222456298432350427775160973945274784278700508467219544775789658453131973928035470833823099845562477618919373665431502368589349772963972333546650264729346467671979999028508363965485631776091619034623887848569370552502305870721708460841136875298322458001435875780195954109161630762017690980627253856241888188925913476824237004246598962529306110794913633469146500397961751656611487721339817744326592353889966398571963564193495072873815213621472465960975329797860667787030149097964260105445417818240070516995065336291150585745835905791296409142425448408251968127663333614857636436552773271882363645248307450359702218070493503397915444381287895167870373135601437237094750204844558347029493577695431415111939498824144898099725330020038148408641072269108653665193431722025269637893611568835180585478687565365536569739035654410086231230306649332435055071978187467189227857315474188430921532077426158582527202966174876819495145386255533340092345400004568117631645205559939646845226459529899729996129000369980197440277531200771305383257230982000511590235648697557163791738379945666269317985583518629156530837779825978651146946854088799218354508414027514085068164496000905716139046792600309244108910504645337809269080635513578629076777372128999854529664966338493650144669834036750533001726196749771131493700941872932000289706180222386333100353688406243312571073106364526341043319221621788317508923643179294230434754981938149331871079991478874637714937967362046349743853123147396236861841195488185940187064388766249801368064354590727097516620080828001715348834195684430228801254679103978949123355507015217341438341657673522096514469095980234194200811366138346366743407444034297273207615717528620768716500245116956133193169480878451636671572118051230350676941017432839408163508977843475655754964315544848037237610187325062901898386443406726157592258770406894141093803350543984426794071770123360220544980623188592909449312782839681665972634452350979610339722959037960746563220011178703911406717891134707787001082721844163031365506173191380656459122087999288998296997214896568835886350741116420691288039040986932239171937057844510128636253477832511416429816883613314705982697399718681831138668810970403116118383662232094440363056209595957553143784162576447848095962267623778759068387145652156202280631614443995329580104959532252414378489931377654132018596047782311073495798173738497730641525103748984523693026904948615786869721488933710247000417594367748472923102464573446583256287742119176013311724955930809846837289559172737455670979476745269067136902108495956062150744169873761062627350837314232813138912892820501304989841435760174374402612754068849884330375636554353817622094528747090864308207607218441388053730926455413297336127950982693860326298967041313772260066539476010182287637103446255346018256684438342777672020468262335471181919913732478515414104727196513096704787417550007416573956933645974463257822823587042111625736347216045334345574797158667992556468166606332862275884521489487670153674053863925603811767298303060947015253820454145080587106171523320873636272454399416659948407696494215976644275017122385700810475651072465583689486146201901707147194050719888432810734648343158984167649466152431428175836676395455293736670535718128144598704053307764702640665082512586396906791501183547256498894380984008010423190778197227699042412767697781293302866844673510700256434723812967068023224693199721921498916167910757888037956140608286943009439473678417457947655097792113619247882907479383299555446883381438180649900095552571148275103209516425664276263667873965791498275012564205465097675502760356533660595661178825837315523385719025412596839655189418639692551921742048846696710558651388085154782936122065184218620778949628993914666438440048463266894602630864236897123937216504530277695023102981788117684694118857215758495433117949571423128048322677167234646549034709380027865661514897805205329913745902613602455824355599058578396477454217504446343508114127705999434368152102910794544846647378142181400010965306725141003267844289846840985849860110064138718275637269559660318469978119615424898244285255142697255438238927420214614314516489693073586725271429140906503091723837961884210061432041036639701514174192262102699141449786125551070302642207131412026964335979164402499197465352231129073694034282613728565417683861382780980695430121347527218417624755011431467706175136318271458415396445378461934324397433583265936914073408508882010778589403210455150724107230662902917207792068644593202141329862634658117797030862297158113450333698467388160467791899625923557974589701841998348381083151066084316076182369654355255659563197114504655725159127465363159860828622190922753432425596569462696436401944959196593834571665322295785924825292065214357369526347300823246592429174807011662524791375357347379275456867911698280388382679429568795071022230150055966684217133965438173556316306751737226150577161539548402950136922029140519436493286090398091912332750845391321011476472944830575336575796479792542336305491337327753347002379413091023642276798649757988417775323479919885178176102606731872857508503706067239480266175750770633520110296073766349179382463109473962457133837233518270522276652830777666354556927355410241518552383915313903778266870381247572844371526141893354869746581208647608217438382340990809297068993155522157705848126221443061302783732440121005584543704956316373463874828094216097882387709795277952992642369923083506335127426138894024230171080629215052317935868255398236176173669843900323667070554251354735372586578324766466982132906561686035667394598836376837483441809414915156462093446807654783972681288477278468853787846180191874950542598771009721361495758619515347999636716845719737363793744014206349791221090875622701176713392354910068743083054291172948677669383572150440819156308200337316492451591571464516571034726428713157390604664268857912755825670528032686030332477647081387498194475227513624543143332318395009852584505040090412630060583358652985284326929803216359072686650444140779247950201890898926027472019079247170930503254418169453798547280133984462363146648155636258699113349278974959004697897194810365589034856723611598191850234935137238174189196537230663742200523465763347332706867492065546370161869807859622100971748499347493371362840793595826642866351251865957759894138825905332940116577048798538262270236770509608999928468686775904953827163600660409644841747911916792318060091044032889792265564422004680759598710771709575710332529976765760507000269365148644767312181018739124378636784704180437779562760464183739372795081501030380536893247135605454276572946162902080454004900023789590934046687635847259175916058210267682841712210349672758135006694206636781850374038282323492699936657553017073804601270807497369396772169625881528861868407966586583670822840877008618249306970082018796113129090982596906288416652743524318770365704903903543381177504388117482983058835667841399545869315630016699982624040996019697774699662498340233541326749868694202792167426507548064095754988583673353461499415239807428539304653707135483802421889023650948848303319573613733564472818806321669418938618428607616440147411570659153788286510334072172936493844140579724202172423440050904636334862639512457648894564887874509703746566209896323779491654198962208985530760126206942305335734007975222863019699594515522867101084061228151066018922267134860252132122143520276676480928060165499967641813006439678449475531768026771212202456215697736484125158014081551789477440290950694489654545359638517623769395358619859705530845696425564866257801244404561556058233508017098855992182964328472376305428395959955379797493566107927036315360975757028199423898719541335489136755079305109225107421997977147739909215191707178390647535784957163904276581142143298343546269778054612008809833068670614528946602985338404029766857648565004269777723182465196777448232610225668561537225604881646075112014725137982695372336275860765307906087302506014548184506702932204022162529972801967132610435018952455517196122606971626824872570504141145358822429522834908787840942668284154555405473709372389510553786313304671020163954085238762732474084273480449518132066642068701919535672824256784117386241374630286160498413194341438083690935770429395516271031930786950482983426929704889213620900088827766389084551451249187422127347462452148923105815338410667638978845179723215463234745034352464953558890981970049409673519892789294861037545503770269621105266125545929111417469221350885723132174059363195994455051223385657791421139845525060506181074943514495108872147336275766262407472652363948547246026498615196992160311106083434848692225167405437642049617521197928814431253624879473912365805925655407910840483515652420637751068531610147368692676211289654157217033134809264115152263286790266442406165808637579805198256259926115482905533498352322986045820108478503419058101740566610225059939717844110546267562711281167221596708360668584510849928111404066574293483934491931841005670249409541648165571985336710868494128788911348469857044571373466913666795725831997292475724378712070691918722447469092238474879833830460390340435896644002605434096333557762065593204764501699755013154644156574067485592818900963066912732532621225095810629409563865066463836690113636598772341772953067120586904984488581077443585644743527465179829815907691352127088681179779371224327009101438616153042872672892107091402806460168439166424981009638078225432044038477577310170294832883502496861622026785982125909251937495037190967685815412841029420643115447903426114748033587706056750356489579364041259434979300906472047031182721609934846859742803435841205004712863825218584068562773068961937089488265694886199405897623722511953504664905134736055439449244435496016813600690135926262065781154680641224867842573856224189531666428996287941176050953093880160322361787153046426703565526910612801344715871837879879677456847436813072449344282903314918690075013716688014987296392922020366456508282014353105928648528471154140995016588283659238735897493627620458130786911168425002686621988503306720058197360771195505644179427729901462252523106023746672683226707166008069669161394266884204818333988479732718780695845519524128029202986293365074129866656580015151204455074210441735682987292378218690947896266061567632287956551659283615193242346461605858585955404496903298933655589079598119971799271144964657635088471911076863991893597254906575161411232315369152097815646088763115955244518842206465438850034749366518654448649201210587890302921794232905193771076379534704983088582090608202725198871392168935199159514854604133605570898308978464213089078500321751945684208046958170778352642972655032087866642013680546093254621794003579509605801473108354240878368704131807963034909215452211672053568405993068960339096559263802360117429769532583654961812417760673389669016203819780484388305679696203400340856883551939256264594654917581870012938677872179234050797404277884003408159746966351886046812556830300989106139186197892014167935030561164245705873639897216150345701860812163534867357957204397257373270661315690764818029372963363899734554244810903427125516896809837042131421911368607088229889761650636073993137496769996929288859450184294070706982215279447866060534775817362020235050462303054251977698132182910208269987035290955127937896632689992258949800281885766188689551177873056411172372537908319535340690739141835007518747781912962396655857277333191396148788630780333794284487345683061374955068158967759989957597501432997829505754352428782069449671833651174134622042271840982506353414417954409997146337679496002059410168026354938132217831465883214577298939738675377615331667224371780337174925251143256800122694002318787346446864693335559782298746306172692951004400241286321121831075971543352200812947022393634660423348151306852810226526573239435717601846438864776144597772056517956787430787215040819960898707065444457842062119714471387771270592939582640049637567369967655505375125239479347063890722526234477592289784519692071369803166684607887804178528186305655541344637852360456290007999253660729486408518839828552888188672023742826627872981558948127872045839207598801136774304472307518286899078005027354527052399843627742185936494682267005931949254094793768897716917628209915578542654721387054338226348201378198810517859637493169698962730272965333535531826097485922023173306143521613662115276840930256854177071481289138681727304704865696852652088735083407357345708975732587832355124554186904724241002935812448598595158169581112914319172297426643826616915178591081873304000460897382558156608238483624361003558326458411266234632897016551864568176560715466864712839035064118332694596270759984379384858192744813398311924460466439320510908677801075147409552669764125545730353875366504276231542948990392743150183628934397791330706721341464687548243525157405684280078103580110669538736118632444331011201986364651165948369094797464074821930965981169897498113627568554803501534770597184572078044475735969595966665851364953079066157070574817524428080402061555682826185871473692963873774658888603322493214782041528700512936436223506738966551312180801195017729059163740571459190081434609061263895363380913897449099377524426240968617261013123828501761228208993513550566795701728177171400923398674038354798440096099578965025850863952362472067942707271065006319216380365131777718342092959363045943476358771060449174578897757441381571230437815424342251921560467545490472039996591950855548402767325290817646620028954588668877862791807878747118676649142183530084396934258357961323385253341292997085075057307494373762285359067868702197440531778837537779509340149970654880569216981659243261670067052793423315716177511484680567916640412033487645072982638540893314894974608221126996041311787697398402916320875381759386773700012441561520662514049424248031341536274588122328889442003746910789643993993136329057463986195299881143051043152308098884795394076030196397834217010345701559984361399362161225237442778346762963342156149502881402056334573331527619182241087593151984638831410354866111455929615197832157967334721175438720124160639802144455811731967274956219919314442832521554240174307684224139166501992238128569317602440197719444923911160724100581977426885970347343704905488664779781125052811288113586101089391611335103301419872264933595406693743465196078639563595031266045234838559335364964465835374934006816115752447064663888052937984841665377840854321215349385288340160584257675324444840248089717809416420271702873227597099214798627734287797228969305444021994934460381303160624436002779719210237324627209010694010298478313940393167395871481322842516949757665809022997021012230730059631831733318685521340561047898551036878717507436975029153092891582203728545496202579369285456184625361484599462719094069130259433830738167335417938895182266436341345969727428113501306019624159793918806727365384310957891573258719575757244913979186686275681960173675752711428843037969291278560169981790937191288809570572190400840834700640173487228202973990721312883444632672923415722397979814855839949733232197255952658478553524750230633700814989400145180401327885831283434707806667163330008236839599094131889777233137532414786922855668991711220818249112874248285779646666278202958215021097894846146312653107581110783769335832238876964848225982833232856159127452443418354270480352919507773426798862434778384339059942110467205437594089907264939728888974706577697726463188818587093214628727539409420711435094801731643625027821731642245128301025332638085744364717408462111536348703991460928965101304852081019035456151111892871575014777972153417071114877353287570044728818050041922754578891142316282851922292991677770101256553389545964315896316157727876198119098845831061346340936477783629414968035451722306936580126277343560879861423093362911875423587457236275900060482760547535605221113581849806490473785032941575247288149729191901542341112202023395104498143991386103373069427164816735658052281634833314575649774284008265925518261146620340238027402549546863725342562150134483917105792145838007455868944697123403721785549345897141176136951097993391282786139216963563938877157970343587552852244582020808094026755537701464416541866568590735350117437861116123978278910729252862295402507663468467021206037598095841435065308272217517436363379022960564582064455704013735457228244813817420660880721960132971709125422077155981215556792750092954514409206784000913016215277389720824835891261139623119379992614674503865811360378181127042339533973306651462582197460777089443460766695592039604329602593268031517761604783185203873314043378020430481807632949428221946539171603783359912736062514399794143322570703135342640317435316385154402191697012915861000623549990878339725003951411946786722995159329214066421494657992214512236915483253761388081073179707646597724218993546475356625654095493424840113094940484356980484592808712936680949744267823661528540459649175394272965583151415380079866727657827593319881354985335045252405599226574973334614661443134024531822392250021062287550095409417381278644368514245955765649408687298861617147251549827125302515722148404690988878515894949892870754202895765041602445058653420250676388964529767724703587277166719996433954699053031440810815129393833690217565456863536678153654247257244837849366140570758267664348024811510666226004880599228492772280314184618196568381989715033044104676698395281891014392804868776918978549201287370497269009321141465566668061276250667373032796247459953670016266159607970794567250464135216711298835541125501024615754200140905334317385624395475423064839680282492067898459760206976952564254682069847659549396960535932178079059921505593939307309237582040144787657009948446703010618934303193585305560698743289255384720935457453968747934866403496636655758971717488271848688875008124849757649174046301460698702510622347476288417203555861389543875924514660611440817135566210487633644023334152372828421979203457567908862100656364654038068888131588361646843522313332365448670916588901260390215246696453426876929842362447845302469584660678851777787941165749718580365522232922987208952973535824502712004382629801348991621256113146430414190277469552924688094261055855854814608155869284082082434091727280644413315817164015477405343133337153984971469069915366649715726340136157937899238525421835481802788693272088967212956820744249878847898936758545758924154408651698011031052455512845874204285733423770754167644772751526862997934760712469034240426620419035850684635883825370736279782176194895781163440573515297740009740530217277757310210681851236534019121219340141062944907070681631568488748032667609191310963178969103002938012916163523653625090797933248085074003708001677693679717571027072804521996142247807314474068971984158489112594199775720947169290914957592989584427524209646964475289747682848136248115968638153213234465350701803663018160444348048111397748666445208124068388770508638606835748688406901067769860346453084436090166513398626299124309023666509141226928185952386490997381953935071208624940947351322487718888694541426114830041403982406338248225151291473598391721917317024250773481242648808110847674783135150265973003161194752110223658373794966877279631390860566635603370212579096683005545210677061558046622086344189055809738531272630704686721209654684778144784464620762047652176989124573680736952658478644308327736029627533815916674875824594668341394841461396804311026512572057784299656970381733923663459687095827793446619303597878269658919660497661988391901267219518368880242419463883390924546365171438749820868659647164280329774694967007974551490755800778259354291733002365793729997898785850432377737423975130160519629904778764094308894806107255732606882228352796931716915011437718419514477829353609351838931230261035918902124932965866740346772185665532835009497413269113305745402591819072586022168381445174579645234811536814589522574944927575969572657856639795400143405178367988180125359117109583916412122130025316015916196309977389082539109799001135392130992803295854376095102705412467121315020561245099727367057084977584262616858610042617471953389070592681510968588807424405873584692296926307432807098906500982704600386335142684809994900716404418521297351469346302338279041949873377049235169415960278642875888296087680561936303279635619148354025128787075372543294858436960477432311466835384091590410397315321789242800953323677446069381191818840302343321890542912624298418913236337152151712915072393711929082149137368729278875973389413509589668848110261141214007707151828966780961277522203678690534211275922522060994204616970844287904417220780096638796487074862380313811351324606289422025011731363636976149448372133123154342893613044271422417837223607648912511256338663191436107659913043993271954540828228650993796061695921995045373375047294929427284703826357689135812347362647833798248309923892839907798013103341978557551885324468317250525230351728881071384971470162138080002337179144643171793250197536790175846620273165262353618242077931390260265342974560467030516769744203089905951353746762229126373428763288829163931793054024583934970875704106568124522212848838327600150450113425604365229004091907314651340044771511218201457862571143860515292907815354782716271228852891418733087082473954686066991694716953751433241993686417175765827222954089560211383838241279346919043096650652230099930672572702971723570600123166954534108793769958318086419209512886764035993779683640327219893961509800152594769821464080766754994110976513927902891827203127113000098130992006856376726126325026239660407640266513995162832419180202500433546356869613361839314201465291623414341783105444966539212458450647445040043598484526001929928530257329176134320060323151733703830783377659380759017677802610334420275976939816175192484932134080279460390034378735767081510436311914347197387578800383880026082122934503511749570939540099340270604752740454448894577024051253922428913569259475810026666763503695764215340073848418056982143010354663081574273925571223962132108640555328679886570158377577181139098043372390879968084763178487138513972786816746680147012165618632050897521755686097576307147818864199180983444760293990425165340193457977310280127261101037896941766744008002624722039563633120391964953494176780202721375535927460338858099311154522466153015066593676417978300049119001706323753170988318622066125072243528135164793492344610259263767800778050322833482922200364839899003381752137276937849022865536006131594936432836098982700036065365835287560592485964756831842082355169422813134300824526979591753239140895263874635747985645442492963666425529970600113638638001481054183086065222865345246450190331842285058929424663774362689791014198692734813723999251365570460440541024130438607482135137302284301513246996175635228105737785908380932054374467215379858447056582712184669469507763930179156671470309143277400062953519685606878756202997455274334307173945405774488048201412071931262612073052286538270370366395248106488598128419389961480707367147557203445291854989716703773692745479576086720442484203784633721696160216176816949154269059283611254100461618925502064708873613788401850444569001832653026581269452530763647868121163059803266220310270332395963209766209985784390451264804462147479465877862096152163244041717629982851106776470331463247921268304587636713685501706124228178197465846495793231159450301449739952127123715349204968925944631587689681936944516964511138646560606580884458840159099765782470800067757849535659551385438838228991424955804294611821966875757599823525849101268977182459258835900526545613214589776881429111931866683848639909115614108816560171698527947751439488299608375715908616943869181914462680036884846085460576217567598873947753151925498293909395878757388230752705165394553396134009334558678693543926484765518307423438963082704516995920260547865596426852055408461570114857968233366139930458730371930126732777838112743063037336325316268986401938931916239902390101027456712346348852677015561188203099179772851206446333749473649856670117961845991800491757290544761420701027487240816478586912355938924877460896815233801960659351476033785940142726261520143787663150206330502638770143233534666717043992300844658511682390991322773358975871763502692707820680300438716098759653131607727635000657153583093910449031880363742383830006634872889625746614846270060970004189712507373930470316765802710339562906538622500580726672437625004342780845801692640214406513813675741394079976682941826243809576576710140494123065294423840921264866856924903690832761510505950508950086760237844053371788737115230962780823950010402215741723545709891281729126178219270314945658432275699270288302747698838265665302289064027155973359956122739025443476151195448766351675705010107028185666684384238513318783270246187921937800611947884180886941825845435717756554220877061659843727470101773019872291672949833256507650011728062259126235924344598121163355946599432132599261036283086648458563586257198307196622091926947672076858354166192995839424780408913431017646134638448073911215554247865724809555340728343652900025014380989660189098602676943241397006075301416672820661475270921148960885090940048164342210595489652959225261324756435516655624224329226123578238167241293016798987223019476432632159167689102027067490503591697891939773876450856688566376132531629759950099344038165607258548918773457053763195052447628101162639330954637038238214496914419395776417704316601745842393342081305286273438234988366580662806949534492501219958923449479582677710637700462856139194005783762480210462965341182683190014334873776240883167764032368151664431280650105812524445906542377876149244267363021094875580339277109140285849793186607386879327980316088490761024905092584703413666348227632120857048791531490614795253496246882757714084386770939097649758144928076957223798096807847975037433389376494201915927293488178175689916419664247614410838852167540962918873057904253291756357796221580406213806687547999405949575514349547802364157267615462746838793607582438072871813543317919109589965174896972795551940524903435964350580242810607144280668501178623056374957337525279180659974651523648166415056025357019642263927319603421968568616943776947569240986192337646650846122138391989959759837607931252121364800840413025083616634159751643236940778370363341389311007453936013185387967253492819350787757887842497358121096576992828234967481747990514815008314910831637363416301873050814544729851619816244326029177590511053615362445992222847938017473998761075814036041184266517440957962748973162281681366787693767540233855644917440358983985981700670220578400168811270106837935704234229507187135444312761152311762000667040062582247411693337776163980896536342770490976342878262265139828742515079562103616177567844074623294143453840866458590302531221381830605603600794800297604449758865466877627887995020856196437093271535685710276297873725428952971197687591756243994687676174715789905684981333407681411826579863265334309528157335200641855734386296648529181917760144144028292566561524477802794863360111372252518442165809139494770323433909325814333117707912815121325853180986181276591202352998467537380673899076455459853238816511952231785007783484769608125330624906684597257941220891038802164300058712643853219764329693409375769565529106853096309528603954439462714946650836545716386937146453119137313427641159184019996941795318340253527683248769913592558025412261078383264363016924597436591816103951552907325121575841043769809923520187612814840650829526258522922273047714056241358558977845983060514468478404260709393659646058704631215623274028767867001945426098054899053448471231019449883917807730621693897872311520973478912474207828242504187729553125784352011123797408343744527807178241539019790199742989276159274172348463425821948569421404116894193345914125825178514946246353213548580824512027784685218315050820342943241974712154050390085762904931174685389555092112124234830621421265980144676932356142074731215881538335005084539876560746856938287993495878831805397120863330178374051560697205112452939013372157018658276071737287603802270734833873566988662990386669261668975044991196377843990315680389691142441601679981507393367223937651309594011270022864501628032798118283166411586945968568509237320536191870630922545479002385639053175695492988737735770612779944724598059794551424228248307722054935578238840115127279681174670928449799386060162314116675795995504307909829375293795588547020298802727297798934583547969595333357544925455521422268306831011871667060440652766675679383002448510536904828175832998006292733734734044788807852789021443029462932553167550096450560798443866711716516759015257076674851367779092592813587755565914794056908648257830365304258760303120007722044865977244044905206405694854621289120649317778602576547477282786659018872220374060326453053638209865374617223616822151782682842551687301217577626491880193806319867605953860472225296934375544994363684530545107811830437028465130705760942997743339190893025394192419889490615174899220752420722455057895725125014541931901537344435636343363988025477212007444846718461945972927142935007061176436428557492007289832774159608162604827276804940038999035482419613507231722991690538410442427437745570588309020710987540892900702169629060295089695183012313642528613693441248564272589635213260682132882581545816050918675427675597001391361783031350485119345956018749160313382249927154339879881388474305453793005100674321189931458523120679245701995306599201615832382454246390650176300864590606440704666600849983257541027740925174126724064029186845342352268217647141803137167193677384430175244709046509576456778297805724278856348078419877370263224406229678428203824421854663694615682969261101397642738890644644696648519593800096084280433999033806210855581769752062709137434199055968114486663819220053567497613727532943338393332723140359435171196840393249010101752205650170862203512189939149347220505913118798617144298565831807614551101720374114161285838300832362614348392140679936637616306816064242141336244295071404499363352135962227372992059536352660256066345468356469852452792141281415048112538012065337870951627745426614870900401825888403583073945493227445356377835576358848339714901306968966401194201893155153731426370967116138223300578523737135011274657834193137390112598075926317355073703235696453468649734443867591307478789446386932136105196060533196863143757666002852652990986241561417617258495893339830021541101560641854209109865066649639196946103393966078583636796159826274588490731671182775949618825748498055501232109643754499830265869520033953891026475181396906257663574968240741809336855404871438761613142248437185397632988292874135184340851729610304472810275095841135730260557150358593135739786443534884101065750471747404923752208143117351155687578673930966106312095733284841945208952434758048187177299715392599865683447394069467645893198321496252722770165399802919344244025242231553176283202737204562020054908323557952409627547639177317464978452250380901365972107760925206657845932220056241875963016658690618956925745083738724628989172968200642005195576441981765931637518996125492857512756118466145009871107783476602129892082319509140179747959093490254216780164178208901053738148119012290054136831600034078845651792366596845069813102824804914985453761031159867109295187355247663178352560697784647983513008407895601670042580013832992165510108584668189630370052234237417786901155457845609749409400124551278759464145565064612017890838551400501918540938201112071351404075969279594552243406159438140925443087943546172761765676337097664901042824167163898302184007226472935728018767429608260152133580440494853458689568740816099470984242335210273907592501528168556195527283354016155752458826301834412785357400947056070322267570692584895730034302379165544969621106028846531761386259438700175076156040058022167538555010325768133347905129035554175085980978387183688564390943703705206692007590283179769954614893257484731210630604789377522595014144664028740047661398761766788750513892537618088955272462947578655726977078522062364163991936847183793863720658323504267825231555910808942872007219382256027346939486214524316827392053829039900073953776023631409834095468387242528240430843718515020868374818438877088342816510542243701114258770229628426026198553288417307435368063727069972360964590455507627564014910862065765324709538406375317573481546177833105990515792220233580182657364505649829478859373072090062230221640266241347946820864556512105394997300696755655906964670595869321181218147715594879178604367396897885128032110497812212840069918598078575810499501687970262851059833210597908136335515499581996299650182402318110765702938447799713712006826264506578790945899685139666939886330695865799204082694708350492541507294656961195527272226647890995600892125610210509246210628649317525604853580950413981102900566891608338840640826479228903007904339170060342635149403915971662657337606251251561368942826808026547858342771850485188527164826165523905553964723886962334681607956846986796209545932814307943239962571414462709605913994054971128504594977547226913652834449445419276355149817770919912133106032384609159177490322045670434196208855577684322081754281386090309958133511973825337425513901330119994452210444553202160275038730945997892066434754420770209481763399831401142789073499636233696827325970571853021005519535337587916164330263571137361905774039027019418457480949733362994734526787894325956648322201318600906120961199505982329485721487524412974935163025700253076664500556217621560403881647508741048873134535704868879930161443520709309026764039099538010017572849856494572224930826402146525856853112536961868212068919181007557748892467471445661339640652899210846844383734044966237562837970358583846290655000894417625744611337297855356023559053534972095181143114377694623064633863890404658620718142603523993947497146255594892318466365884941967335658512215035829526107595141826917045456409215698426010857855583094708560208098037533114043942749780893125141607690189915184242275028208618917879890607075641695446287398273693926267708976654265251936497899671399458185867501441586405197083188898345307741729735658775563872289090424683110639362455038885432663535311544189971963003407889607754048040454087101264912208898328682370801212860665536456346006451895659810730082768417596681693746980850720840272675167750195084353379916461082707582671641898707962565312588118861700729904056928987175307728522050697780283070571020182756577150286588555777373917797400866797820720024579530580617609253272397515149112957228551545502348643213590634572101047906646853369821076208450354863759186197489638278649202531783871973470774867009392917901641469133316884765901353346949951489719033351612932803292032428309686846408458733216613322399614887190008046685050447167254945361451942295848032512234619670724369116833647959718782865104928501625075757165708286153954902961550484184505794421372508200445530902041313495478324747379233735468230094330815458638287413201995796469142714411043983417038596304946523514502871326414754079648212626054125512155844650713273281153706851455347982018885940566250204280510766981703001627293308154997328474383298101736041552801757876445202257551563077742109240553583083810089824567063567943483921948334037901629086865841909316070625448399019133522309256498269607204055212155536284448608699216906362081501744344504340378335519543547419092449522149948560565156341957389812235477895154842308934156683794338386462035669904779017015845888932932452227524131700290614391507790818377700590948526516715760471514440455192461864249222171727788935150269963785974732111577016401444879719210071372905297760347076379459585628634237842499430265673324380339861151083029728224359038917009583550723345291861023560325423431549278919446102279083206480402315690976996562805061594679565912941551067657719425648515449509941191985568789700505358731230253157667891656326330142892821098146484591019182422354729543078976799393568908788131830140504477919187563766985752361380124222114756475425777187996888349697760958173892776602606611338113941229634485868725948661685233609541011955579585261249672970156243688841365576505183004045809092837764754398938587437870169867719749821022548001112643467184171662176684123173348047492364276009051221987200332894706390360192830946515287876513273926634831757808970186697598834600004941226351419497634061220762355327471889950071134279002270581241066401158929690430663998939708264898528627989608134669389711238225844072242807392676914334124887766182742289984521723287288899725716931291963720193888849376522544918170548282540246988323209222707406111436044608323679578478696610564933615283215683433493653934949057724126991224355812973080094856012653083755392353996991865161189808390407335355833805994840949812478065010345873596871976876619698185118706470521312509135147223276558236940962624353976698241622682786770871067766490620968183619271492286906139000481877384882339525548543658248355930683242819598863732507977769496403512552573638187133523217028423272998878681080780595463104895948007628716958270097193015238358315070754982741295678992361461607305486409418956793515048036127459534605816995925265625493454612925192940869294077843300869237462803400408571997185183318071246567526534070056313381679902058940584757596646510844459601721743841002487685476261232070657665530093300883676516506285196298907430724023213309104249645900251788962586569747661276975407962364011543721667769539459176882883455986944051521847084557562135093054179170117020005468857280909183520636313998644379410681975232754440429968544100373146926671756010896259336207072905079268387690065939666722191867111653456539089090293863611063505048521101980521771081338227223442530058146839856185959589555530540445964800959223750949235752737513105746315070541931913652741303462126166614105790128074436382074964781454801581411200578479753671902412990314297032750147813165586162067447438347279946873919159102166573895503338938645779942762992194310504021027614421120235759010012419555247040770254818799191519417428259692158845221303509782261160053809390628179805122508743427835885702015603158424963287193436696140883917044891682530609282241280217623916208231327765344446716746967208862773384297377246656195959416009498061207809259416231605965994974391566217650388270094900419340465317058642326673470244877146957636222832670483410905033501197125784826990525329928672100633039093697567568499817315542707607759088935262561189805568667975381619800796245019898127190937772642667042467179646925307885902122776978119848417989887015235669414591488389913498790762911896304116291340001203749587276035602500832437428645854160536991751483284965581788657680778196266330604817815791940768061813452993590648610012713675889939787275252008982341500121967787625545774918740949965455997014644293699530112446735282515774124026982481538483578150250920061275559980511429727426625913460183353539341437468347537826968639969682365125075800761212665509632582239907112043681668514894615346296260517892915990144634947686203553205731647509525541759362260653269496950059503153587536001957460751609823749297742078140655618236367285903663757247474089405746745069923544846619950095913223851514081825421732036437605947317599434148870322595269120157704137837566057849757969783502500460912518588858195091796092891479577877365173494307375422927230580723072519179715701219619149212677610708347739587834788167649417203628858909156533753338920844379475628193316775424235831487829312841786491040016665547038385664927617827862369562632168847475674214810743635354121001351539003949657943423135617202896004775797797814729800321347447071467170419486879744132762311204442933797065074009259213738899354242494970251139802330099639135827362299745841193668093090714877903326946644792480272506353519888553001428367439840059528304795739060338866512667775836171885978627027330608866361717142262865366222704131375468174277327650412498559994054333653668369248176876968240001077702485271643894191481483899298629671046220702444632955890929635266917012424352828871980574892728457948385959215992219160182037937909931508730889955002847544173874869712139467238755298843426346169170321637724057970142618604043686929424431555632438637567206231239713201697087391354357234563842647473966215278703922581924545077975597866322396993849580550017295252967763848653811893502914065083928935847569538144215560492138690528308728584473698793957111660754606502182196493217972783076190203856444472665920051905809927301823625589945986349395213812596758526799365640739591268768242394233783871071287745409366039864476528292129134815163368034464670009862064766560621023208145004782189389256121008402840303615508352443206069612613849976252022013038120314143740842397436136389267031520703062574835786136806875827725012621215988250246777166687109788895801295785794118411229169825205647821750948470502995114440652406885474555632847664531803913855033402860704829184398880607748988825873518026657461807089711452969466827641236779416883977435264663492248329545438365759055508831943917650388885908390210874593121067289249686248455022813542389939636785857072593848137728421851997309468980621641212090672332260944613031811922863871426822482910302353434057325640346103401409440192580079631945034707307166455602838823999034583578972559665899459583369432092920888022003177091533936467810048871099500841862439758656216846390253133431570677858130859063342263244976476426228995841579411966391519465584145552044148424039319183801103115989206047450447750739375430867125226565782946885058995592829125306684460367357986479063002186316179462208349490457479496199437480960152114567656011645824818971653891472285112792615200540500854388031906692939857808121761254132334950761054542530575195077908121035580840185477675308878608067528875429293674174352721617226671364058884597495533317890037095904206745911652624884226672737930155720214335474834375000814095211740488728739832820292593145762064856084702305720244354353541093183690624964306707170797374458589685042695331969072771433682792379153636489076869227263761323718128290138991958037177254824055020803441091914757927733252693814190804850204077849053016877395195363260305864960073227377563418588418542495217374092253864123359552415217789042113140771276075229165117837558750501897847231422165129723558293198778423550637139495183802952776197202493526882590813110697281590884759846909497198571373014839662460233088894964659809941851442981026164223375653764946841712803279441036757885356783554247633263613813355421900132140975523429949026038847279332341935612850051817702790006218203793077523915788270476120297818143519851550446614246121032237366450262658085240157336362293410537362974467985299104683845963906944217501296769151854270046939879290738397020590289606762323343030637461742322339900577407818940935993481808835644023581887980505223292604876630743971336151129951066898815942268280750485960477381951732320454055619922734157263856000119888955353858879062525714290857854926146017292144236936175041047864975041376126646524829088841157206176033064835597968631604535241462942768697424433692973072418032161615506369238431442557802796089371613586645875278029940503506573857064545519389236666133295039172613954955313756651747578698413011924425685143400853325085940287194304959446039752192454648349267351900700014024515770307801033435905067414812787888823094037549058678294322014625500873634040564096983558120849500173674455331686041324644080755441821406366007875066472203159445367193681532950988595551295881222079323448308658973161527059443744214630194263240391630200214173438394403904604660397691481771175898934138976499842002347306953756332631966896767658984365446855072795464219775310260005680591246292204584512514023505319600492239616120180110826529755129927267014961881226046129396650792078352587758408839685135682583313371807345258658285944028959109930672073090962937516320027718396668278130617428192662716028754941921433684535776465453471125395545950505343773076484086372436522703473671728739442117746878703371955122341003609218514117043871093411099703110539524880014201402976339703777856873926698676746378288698052879934339236438250060099051202035770944875978858603318241152059518064691031691750117310899250460875102530102838569488918679545143179810571103798113464206300112038876227635492612561813650381663869602687536558668203056212332360174042681686102210681961981023878460328715479235090096339416463096370177325107665834835474530117218413767133335455898728011381019833652403089898653608589927002620097686806938624163920094269542781136506944792518696006646736663987914196778685117066738188017868287032317175674261750925118789462276913347214418049221885972706602458545860201171643011611874914648607422291055487970446842376556663413823334611373059185716016763598647037044605443005241715377932593002938150857829840446062977385894909185270791192480044113133983714487107751955591085875344258220804388867367945103873503791372388398776124441321448273981723057315450248743009943215482181453295489408610983860928816136498802662059496345755138092934557232285766061163686254952701857701448011269270638938695203507213201042384469133432996577255952175383661942381627203586655461667782134854166802569825670311534542375749711718244274971216393175840351450215651251612069967622770938465579524784594886511472163230577909179268314782477365590896195273903579122893872424058148377171354393837598452589365835841640412301232653499556848667038953772613535018269766619001790832440270956459019833445685581830826285050621554773720234091758281893897960958680206101539582535020949571117268041972883228732278638387807737265518866120375327955957535833163754915449867505144097271027693338510168825533054173502487527812216370045377208144668702764457181546300500730324995161673163724053912214634619797365654100887235347777559833360943164836186705042181122990560747047025337834538415110248244523440334916712125581864295956437243176617161281274289251399316415342740732537963041780981974094846993560918983661834439581382881650662600867454027943777950031453886167901777138478352748994043291041116315943483674917784977568509838675142157281505271647825174124331934568322123019847788218648684738137745721663751077298992729323480667916926326810421144593563499456906083891762610859791531050696514758230425501545633728482019602767653198245153763813844167986960104802764026829787996776899885931902829491844607679701323918612082309322701588368263992188567413911450369551005313033656993228569218944074338107620797664491922974520530621004502522087652929583318188554108911804946134718584116508773198004462675186884992251481241967464953942162236850692819627514096353230494839570040241266385976280791914990866292567028367389261824846770367724423987706850712234289639237959436446653217249207672989017532349383212737837189175877791434240239774506072494179789211077508421047045465113089948898814816292591907331112430939238368322813177564531942593259148882553837648138986053539993683401957187199231396967433278451823056165702900636951807405110334999534749153004031611113321132267627629339617580291065941189311468475451632391161549107780260288527928279486996994929256699773521224275355139111965955399198397849013034475754289722922028676223779761171055763416313375643745776188888047665396523454833170593961955020950612172437336080529281389833980972847784470993764923598540217326420177178829936201952294083228829297759411823166436298638797316206273084909009121589207881383151157897063283345606930850571272201971849253999271887368247962736390176563995931261116263252802244120925039961853425413967090436521197662268841762569104690543792646972577859056878219094290729351988262838298134311360375927359254701010382593432630394008168720777817589838223842005759468087341745714216570495252878663562553760458511552889553048346349454298405867737692271709026553976345149916448573130335133479389768862553915508445659401385238550761163339262850988916619295120487247073617363279281908493192678018262631318709841238017850746558798785360877939236197098609892489378109405777259472236086177818641473461188892040488242680140133207194319792931614121992928148825633318466769084493138181933739000205379833119703721383677530878821756543868595515967348862781076596696161898502897879126329545520823889828229212801802619883698715550047528117593100646756544079316687902123228084370194979031682164220280940069594095334893260446623034199907138489790892741863497661438654576235561517635045051999100782496878184571200380451724225024948969476137368558273043713773946644904081118996285228391056962048748239432282533379201167542633092249489208326795781139076166094718228222791264600142581403983645451683400555395871747902628016067654495034114306921877392228044981467140384732311429393644566319416973512584603345773773131850581100435136749732613910047914478384586901969825677357907217947079828722084309525813403244923401122675988149286369141679683996980219377476238961164867693856840507955770556620603420411649808516561846838066303820781315382871122204626271823632870115267520691048041353086611577517946762041160379049411021295322278854465804840129904749119537609210028630259841174344347704414734934595357451646934655738471844051751090061261219206818461831646177392178562140942805011992575386182079275129951612412918094193527631253850745614844655750063362715879883903496224933598366132117999998002324279885359788687776466153608277926932444410310606835901396493375656663361259219922582626700587623360694763165739967698583049294745588285880712384166221537611365344481137060939377779588291931113087277846131932967234793271482001138436588709013092222760121738706185573936275771950671448690951581816458038766695727241269600781346233539165206883103829462348794453156356225992184738000894185410568943628767154694788959774651217163822178593133908898679059536252987419813781784160112514628378224857062590682149942253351829852878368939724392026859622580181295467058739559763007860521067078324673390160722513315748944187617772211382796679399635806363819879563152754308413479838617631240338286445468161685152743464301944754645515687322060879316821558952862798158000981183862452188213104000213888441306893110101322936745224485650920550861183443308928972987843555366061760782823420134635563516337666114966012019905916666512235364356345492737078153788017633064946083120661830533473944463921679192319771779491189628890752671470587212164872361366625884304759854462462708549923738285686995861463881397157197219131508698403197622400500110908540650565093745007360551672455061386019480308563236731637103149906458966922241821709056964819263701857067146363191434744586776757358020590874040620392887355397571591970182349467136335429238102562364384771037434731312668676544428648815711368452967714092112482873826217971432279367669009924306629371550358579234200555627079126050325213207997519503893867917850362942370328403705668160722951516193274832105679866598120956367529048625334595661296407616669447879080974614843243219593537417056995933792279888835163809760819642095758850385731040680468556651403859165888438123927871819285688257838404607740511557066673100967586354517761035718227227481165041787141431711800223595963610292315343436807989767968622376666370842603614445358709863610565681859034767076814113772365902315937705974672121958582302349290064923401614815153607826519488868448471637929663015649389159221405586043580252048372262984754412642128101066460337960596272149182145315468452471506929774416725477893170641661590778439153716711922133769778633721267142999423539953258836713281699128542559305357237022364199980810391691022231923005808977624726616434287992051206755821194661247188909601752636420875221163020569201358701801808631374317596333521375885970963842462324896934731875669588781234482046635252794139042259721820111354979031471184442159178698797905425461947309296922457405408406810561733791073883048440024148269481064071202478058427793341778125712071433627244102064964305953259663321869642568543776120518014537350760227058667761240570936268891183871532813666253308402744827948194242646987058646258918660725424735314514038913758036797612902933145758753590797397847461802398607530885181744656632429919175673317985777104916028134434182177442668293318429882478330918171086402225981350364386301632992782150352924725900893864119579033529729010552049562061389984169322520280015827830913751348284350060145500904675084053448065727507174972156562646379724840681393667169650331395050972807040344018601755750043679618522034232350106252910794526474934068091199621677303494529462174718487083774285013772476060130202960590857994634095546063887534165598128146135701573005674387950082270084612452899175968666731883186788645679210203111672899550723280335632371255477058161596783950315082390330618707434981481381671658287132087596034593906442905412952787762632382322208688893357353726651177487817261524844289182784984296026272557160513430286417840713730748942976229521954817975703471069152010589431339587132620408216347211777948441381188976373217233043018459559673835347609004756503767475954030193188460468804080127416549424726287180536065880543221724512931287857010786344408935534692272807333104142836369238797664605472032416187798982948076312205623762235643235200749764581208245010252436187973802006408395095986861583066349659508894558519172701574654323687932358011204571519917451586064687430997880488800256548258783327450415395541772548143720216673691752343495101601416408503761724572611626118757053106811696714522581611352323338981720670618860111555972153391180697398088914526677015500656111850603753639660678888798862998874085157329328310625566597013743621030059890971041931796443511237508759351576681953451808283456105830580071233930500711477988483753931807363462305244901707215073307791378078587553630898852033688612036342813544189838423710873148913234922610693118004821141880478263379863316893354065376148421934184177793374270861464035992766518285375259364756649961145785316733077496228501232303664134164936965451466393315698814117481822277186057389305912696344399291912791812450630213024651919781924001892610063122909281766501539528990400423072542839610195758150274767545757063173884743094541515649694244008251177285003976863017439852173413419972209676003302543700506115634753511436768616946290699901315363028076102690700538156803188982285854585099987401113301019825313522860882147067188570984553825214914821623227948189803101205240318899390396292596565314651368848534951870947101084956341051215374094861089551953639762567015503991752225986961640114967153571838665243194934996712355700448291046132603459716355753176518643986818673501408246636162829229178360066513995853679709588827098519396977374164401412694719334662797330262402738673496338968080224809936104373071097050649834250086906586037862999231219167109217056092826369068705175583548802836836163767857969695627787871579188777194767244614576632828019932832230793916081498358069858141378292751802255336789458154198437314489471862749563935310116011398391084156172854481153091891660336858126774597486042048604182789678830912993629522333057630698727926330676201042992546119075884930526158748111990568376813941477319201855255169662406260205597184999313322515954867767844594084877120869062377100366447162035024562016574630861669621478336538235525504503303462893024424923766673112584114698144999052515843974552470438422104084993266405910651211682274272157916830953980813093701549538246344178125369430073548128856622164784418922862150065914418781672538032359430745868544635589726645887227780654378851225278178237185652953012942684230158756869835706438963983851624323803932995546417222752251993082426378010858342533401804431889494509754565608640289525075433267298769100087280882192364152135592647130140815898056281207779598544464550567180920812024564581469221225425996180450624557981584843306672309643039628246343934540268250039557708910776471324818607565701491783294326556487362529902650049205565251966380815124466494664978383727422668757956802860344955923537648670997427276419327638029372091524336718976064170087801564029482059886421790868395699368543360047689181832911902240750916374676105501754406545230928621721794646065516398997569405758845408331345806335505016413992781054682725803272185922996325863095547030290216530814515620817366923236169050079990578255176927257718022817812411237660410366319177216434349590194600222525559588933347040651207634967685271548698173367295788108680549066945006421948910413008044308871271122460224095004572320136512606512133265449678442455059737668913628151728311515518298943711372332541985428116710483356141171319697195892293018969433987768970074396668367695138683105328066156125536254511248686540655835949608335258519052113086952194911606232842325633873621568898766308800986246190233285415339553390162873175307571753420898108543481796331724093410304596354862804109677973839320986445432197646129156741428188916353808626223899351903871270366713957841988338612482865809240972615816692563335174296377305821291522537634699363738460827496410889730212865333014966249743443211989255416133221957577749949234233030323531032833284668279907070364622934535216751396693356500356611437686742173359267504950205772038833416147796106834355333682986614698019406644457250869993112611761583979288202324523983067546520764844643892209183302733562914196715275975221285494899175947311199241707462355899965357880734999120661656616845800463979840857873691861101267968687487109859519925868115504700237880642271368041080656114306824767420410822908047070790799278046415220641478658370226048300017136255649734931764011157310732456400314054528261728994974204346670138064032116915122663112550505923883648037605974146870571332101907707339622845266624005211661116065083346055845804838691331168335310878400097976039188723679411509935031425095922434944982290388821547632623568543158407791224451177917433065772084932410502403624739293583769691290776886339426071799280530249297434438266120828204080530709430161083280623197972994006024099221001880012855047753686641841722921073040067836658296624240916662767062335579986592118407841234244301411117962606628223616621907036161921396509798176126469992379913323030417495460602859543979309633171985292202771319644839935277842491784329179432868996193343556931307060852895009851438462984309373760983736037986099696775234444512690831710149631232002122930876412262161338984966368987017597001747253860557985228798915488733887224530500956981412503627063640282748012701974137932132261146633411354056137066238682694158852303354333162700119857844583935611729737287312806942353113663728349477109153749233993726751012515734127280954625230087090047501724145081184984175685486935810381518032363210788588833319021920671694589447874627834784270130856972078180745489819776634138522973973295353621247083892247527461162204546481708580084942421484413046777691546279642291395092640472160614200762172795443343788729672918900312862909097979569847208831343258427024854414992938547026163259910558796571658257263451285437482216900453585193171659768673874696331155190433038873108111630502063098282141989001074133130210259394585940348818649213125147282098942913357983817831269958774353487616330882895636211018402103008963634942753800217224235754124849429566185568332353270900333723373135428783845761840663094927600537754521948271517361385164147097498857781746797333952160776951433549170497887086167184370121243997154386462287479007490810445889477596192825809752019609470707417646779865619268750343656170366614274123354325708191463364326303431810103765901443112923395912785810606797111626883162535498372000337024520904688962588304393856113712634081841631353147623589122544500645555562044206576911841560608203809989979304333795415859780801892805396364440856504685825628134283645614627225513409559232467702297990260396300391384458203438681670760834238764183280398006970591392321268301592951275495927459827028893675947585033698510270074220399127692128260835198257725840781973328435410925193066424928589732546325978207639856139984889969209070992555614574458135029872526983768416270619036146842391378728295965194038057269748514351137785035821645180183442573517484093081455404722795369830684026202984653436849937554480198885650531653356305739092368675198633640071446408211849261306589234153870539479571041189302200199948177519491900710560105843261794301185351231894231703809431577433872680676214266494156139569920229190790482827852842032543905099164903248072101074682814851089797530345535835926581662404897281275410729153165121189555838833840305210532836756201295344795692860125120996778915078560969024807269523111532877952646963126969920007276452969104474160316757038084651057543801516244080269218509243919512019981964428905337389203322252354385459351983759150171536483915836100485369385826503820364588126818280330573147855098476263264263713566761965637105837662948539893565969640598931733175653755579145515248411643733606527199325261619663185523247823041086104979876587725331437271699354658960010928931353798319806512753344471842166448568910948226816730220833769549585040740364358562774664466582544522818995110060721827541855336720068641841078438451935205034250971299739168710855161848141419704593096642338755702833854508420121492636891824410319144058555955526485466665026433914034355491921751582822555997445984853646250986751722232850320971374888320671608588178846719357416064374525592819166177707955139119048155170515598199114936961177355146603481462112760676353498775552910293092161964949234437345788446872065177696646145505130857398156603100713341107195434581442656868306920384891643021218547313474958793942957413515245828520928291584754058559564253721360598015485814882899362758436906357939276291912302152163048687178150156524905231203426037530381015757374024035669107149006908639199873286239050591722438203285724560737913094891842243784560962756271008227431094273041289345457647321420785107411377637256219663675479103513489722304618313721786800372323306954683681834489943924221114121480550328882818805923598385976273179440385680542895356477913538648073627347477554576207926260088381648113004232552600492591510642594526590640768896143957622762630641041961300055356650578261572223985227049913463127088213187103994926296388949191719856332600837688624227174839624048763215747566995470714455783882769598167771351870213235691277602635968079427602525522334412784359816016231117587040976191200827327671118611496029942108243580446815347757547632729688051488801616429691466431179995084378161138177671766863214220945516050442453354266189330563435150068903498850000175244635777561102086726749133403090444820031146867489925513886968631560833023008985546930823056441687820251691000959922956933648474875195555451895369623049075270444014146122707196607793694870190697957903099932818707735241265489310822532676229050348620363827580479309325433475425681107932674613637727396986889951426561036180563453720289470804079448878982904605903448869752348849412044453106680554953617079228791367235121533373625394460657518364038227016815962087000011357400651350194740048290670461314435671883751370325183796457777860763507164990606393816199989443853807929100326547945294744613510687520369545111142411088736116272959518831980035871202353149829693915425660945040001768108224309075078982516378829702873988787039709102293587576700994746694935577807331665451601425021673288381679453236363666298654462072647872907186690328301483091325392792457534990805068687015305225938125812437098851303410351582462131123601510718296115574328164181406137907362074619438383422414376476725735140921030018590898020948524153575172320543542001160380170264127142445094488806935017785098508536437903870166670154612117369325156444910320297285837151708066474028523301626329786443828210753011582875102759632681068182650699534742961597022918903268622089960006739550969303900783520573506485095331221146899320322905949086490754310639320811705716938225993039266798637038998799017058645444420661499041961247675764092704229019554252873663008787762917551817407661707934916408537391672987958992705460861598805702318169179400219618922125084705377300689714722231996708291197535482122341665929349440459846130396559711903424817578789330449595871499924732169313604515196829931798056485027642779462947842761985428561530456213937463149844504407085588912863012003884379184000232598499871935362359383350670062863865151595287693186931697487121547294356167936140191050216577310543008981690672568359535818180308883589477814635229446627248322936730363527531151224950400909089488176330249933772909783306190198854848177262128972580169817926409115923216693603480149888151188095358401465694752399524669635878159525612787481870274513607608648394725727847306100575766770048815395099958350651530283020987743790426684821321207673738857015320725420395107604413170102875018891525969473852356513071789006755600297204904935835852650485174404960849902430581550323368348484251908580683525601191611611244603606095095624656280928798268923035925495864005638523121728595564971185087219994257273277744612079130728227666198483915203772465133832635637207936860447904089215259253524948021676905464334341606165109966598873291017957556532693540534590249868790767173653218827538171008344604656068027854613366690988742436249385578235962722228512811569301946039957076377775107109748012334373379078972451184483046063979514075501304078966818485525403699147025249209963437250145379435259198363316132674845683783205925209636268318825888980784067652374539357350379730619099793556081306045718599858955687413713904250307039822598538296861429256245372317742600786403270074667989334756246730422032227547489619728162714980116034060175397461887760341156923012870327080100708169554153487115475988671781764590496567548374944845345497307786549110441417918842249025603912957611255642224230790671918503863244066879641831886087808886604882930445077462222787760708427226541138339045220711040323264590926728269170294460631052509956300190164021150501333404614054189711480446529233333462327124170044687083351397336069001731030019534656206551865291448762397722265862741562866651447629904184902577617270080499998685994767812538186529111429617024358826868628412703519191250864106670296392819223961837956671203945142175479073375842791082643792188731181966856161729916390987904591250108137902370872176882607166173943090793618268280612062632899618087268983987775290336968591345613698307536150286573429442817247245689692369446172105323974566859036637308350883202650726633676751721860949747374397448485230745275346697921415595186792379307433154911825391617064318837552488029627714965606313675369564385815196634965516638925111970375271317964454850643678759697702722086916663560179683580149624167088037918365399547759161022637699668144842713819453034047106298459231471392416016643224222394512357828201591831350997644053346648908081320210931007567084875167335646426869754840811553617690432068972618973568967968958057914845985472922153126093976521678468272486897411107346995907055010071674308540397188070066646166165077871011212325695248373738774649580255002536162990305363791626312671847761989796480698398892821332494660365254662106750782694525419819746776031150174781672736700467770629294708389513759242152562669126278618541158350372955497274534236596555425376754567830543549186098626668639728984465891244613776556522289431788066824185563514777322995915069903794569280404480165826700064165975218551187778487650565623356634368597279516859731531299480386734455261216023829518566490029374067463228899265227283543752770512103407784165170736517669587384816924669263219627020845679212289447891557562558308401592715334667529833410875428754511566841339567233433172700695426035770920340313065365134589688335935137208497986893770470040859539438213004536681018894770964797595463186441598072254986296235206152308163992562051311907889164840608319239936631045188383395995436782620478300034514619337301895821236767117379377468314335760950666020477622138172190715363426461665065474061327999432951249322222802212396219979436770099277144259958743798910758097748152231805561946563977224465699899514728832563321239149801480959177800409288407807772743455981835119393955110168507367838080772976045744372132845940892808720605199377778435377565774524437060326928823952852122278074154620080422951910975441334701488715324049781678513172978195413416862166486680045237577973916328637343025281927554551027131835596191414079403028903323516534532325648243032003023055743778932440845352584606019658074918914051386119536616654629373532564611947058328107823253105541037025491878223900605726661475473983034548260701803567077229786601839419758895632005106754158307453123210686829631479119983118108321399903347652508376360034174484334538937065431818213410681012410724359637766461044272658392513406320138679702046322797604580762644219777565892407198574886203765274214587554154623852833725968563001366137664853757539202774440116188328863511649536194560941899195604786101708228679001629741257573725470173240344277275661590127542280425318593058941299386534568200381418473691337059342113777831699182331879394999533111748361859051481951584354877567635611921720054585689379413422244936796829506728388085576949173447470744863027792422444576848265844327519458325172865185145896799143968264842922416805673269350262564836782504366788618834925791274092395407295430080832194872733560776512306808124625138435538922465988777937520076742704949909833693070233733876480279747221039377276394803943759781887654927719313814884245425851636067496445354675154784632244236811723910498079277625586288693448803250590813517097293652540018667347273516431761934468497963967040233619669331047434673836359238305491324593227749799369482065348986117585143126504895277240945931106285965448071572007355691625005812245248838595457668802540133514246993516064220734404383458924392508460384445351900861727978441902051245248936395832562246808799683050170777630526551527499173418588769052822062039521965177980413515425868477885276881706725951954692644422289986195049156728450523985455531519684224812397096757228046023085300565848059161209658050805869688451436332117015741247232881314686477959773409473603505551347998714295463806008020118885843418688875118449814610139757287492212418010133720128898222430159835302737550031269362321020587420597299553199738338292782035809133101220482416758538664184214006148505611270090720172173088478399465803144443878853900589732059773040752249311209699029268480077072318835240266532797854239352672296593548643267281260107406282468512432472168437389939373188414501607055320372465503146915551425281784524402006400552421852533553820185004552984564808526861388489992989030808727020663570679468382828317218410212982455277525511422054585866862609409772580990352784510710536085597661388481966557712622145263988662663429923842228482910867742102871363709023200496870209825215550895902897847989295955375404935918729825573493324917452028139327177585605459510099159758372318948818519424015024280671552194744204863458728186252998180869600198878959111236789225752769726693189655525032339768133542675468501586743589650649237995669329367234099440391836117841327440417138532687493628824657472153102020020206067475931346760166504781536988947603876227129569745601411253070912688641652905741727774373189315823644502389453440422128569172421610065651959774872109980433944086596507084650048503712868440064314453504385697513233719269553350773878973617681999170098270072316723701987636203207352639954505325387193395035111923049613949124207120055588222927476031077466974426868331745545014443001292953601968258427935345113781399676747800079780807687715639010154116908392686565270606753446459562024540441413227276338711591856223504226174333195495743202731344627969212552767487801331389513547101294549035545599136702595195149602636279339256153738383377231573507654513248858434096464323354529029932204247178009168552066051942420706991498885740287123238121053753832476966136857059703022446908781975349078398712384015513292663178395518925275872365623332909750121321927643636705172904116629881171173937937827243717102181581161031863432524398598208999032150450247011173931653218979697480915846086555101197906482502581281971271095567683493923562669181626803023939089575074126018033124122359103853327436040712731388257830484626397256931987909901209351939658503589555561587308931783905257144382248339328068525774937290341459345028777937417148663772914243196453097140219941533514088081500868926411959365803424334941179127087017625744073440755994377166675143381541540609311271420973723828546833944810295597995121432308850277697047342419926929848083459975858238422772769294632109404260799749058372174358182467446351721350791334146596196133419590350662096015197307323701832973861240639784277744508178961466894570337986012477044547835257720647783465443774346115363270895846626775331288463595472751673833649829794541255991440257492493365210950139524127662721715534894707902495640631338503263781502462234150116168970050061666515854871568834193041064966534608439859098556505704627501746765559894655838413420112312122802999007184002458903307812390643892935455771979575894385605938139812197725335589872891301274122112180205331797556724934303629045590116602927238565896135795546521674856556871501120731474386479747834251521485555885925137161473029683240117687739285993129245247273711523733403735065400320632560186740750417027051388720866354798178933403441528413722166580682395353878307315681802637495647531584846401897381093795942662309898769698303787187000362934544767621802745354762093735356957938545380300879496099900572535496086285122606108864685832587081527063209065741959183850117217792479237464024368557470674072769983803584817407906659660536868121081255995009149157545803153166109735478661793286276154871941810210938237670429016818885689054027745155399622085102963806181870556081693811758423124218509505139158098166591146443386281578674343563852875937960304365905797500775180824493531613920637220276181115250902336965819435724773726642166766701110320995847915967310028011855273840233676521979265928329497309984260316853961440729706576578280734399219350484201682782226936065389932993134644370675214695638241317295033516517959196047911087222236599246051632183970597697426231325284129955890589148989550772793891539993186145708832746914639111053776870086392121482980056444134605392944442547465838441636463202455676482264454825355641971067589023067083812820039442688746239907968476219628587402276586444850408518113065084803583126863062693464873623697098663947315615630802441188411365212177907393534740021173419321510708872221650711462937898689527036041347076001459008643568619695101590249803894045027401273330887235578834274143534589632756451956291986555483862650255343764589261805172218043859955858195577659909483835457705082228218864638078831100488864709795410350460131120477238066777662727572918499448699682208148876884330840048887684355198815831712870512152492077959509089624073958751745049984081873626270932402315382509914674964662350666375935184315957555835191775980374996723502663078746336256375211529681169850615260639932396402042089209100740197157487884848258402024692206279130123759122612065909007557572935776432403704107647785959717970309413709111007708369065070229752618193349387055411523275538295642876001714860687963884730365652567169107743314046870533152133547948433183981066896781192968339651636275305555262564642251508837913325046515861434865970027453596019132616580495988433111025874341100824864225061635670324658292468288902788221753738733995797099210336647908568752169893351804238814748250682087028827826274989187349933344656336216446810809410455512679225034044941519859151463470511459933098993590309191171029104448108954527355487932031545745250756383324777705599280972252869396040162084639573747499259373920047471224726293465828574710409008439415795174608908087942039035297457282058241889636253658470750398011969779617462657466331720609204922802618391203541231335018864319904690128566854727776720765549045639342668894906699345153396568665145185787387188840580902375562702441393018886690601349484226677354977882974617374007068988522460396274198877015006153855187334629472000549555352956891633482880584411499311430266941400119177094621387013298778215895423082485662501721362377672969037670282970660065432271779128404010445707305310454019835574946042725654032778486687307937225541022994027270934978320779979978023916594643208460535337991160982810553690668849897694198342819307826371785296602620451916288579404175447745964469089579998136862035726812790413740838317291970289302253063924007083213584041642815753747493172008878067609574167224097909570606090724988588891681324630154066611129958869887187796863118959943148455542015508351793530716948201655099575572004827857197302609388577429099596431002470807692059249981577349962919082924392020588447568462669561113336243279399605387237379177026044696741475720583058129928461829614681412395421443983013422758973350410719947101269957108618989050614939673355407667136956922715489936200279996245844533092777173853088965512555922959706651355096097726399737442566357968304430839778956541181040452347905823737066463960918115846996113095145165671688116407124053542278736318828268195570481795025156445428556157754020850631212221459713826148313382538861389688789441169818353779870201105240149339828774979851254210487298987566335811187306724065978341666777444315883743261956755682980699074484508128458946117389969784037196026634983406240580173555173280307445553350941698750795384693021783439934910620015686157018220838903489799220957828501999601983325022645809692022093746959044740052247593608933812084599562239486298204441186834977527269943626984800865400064464742808936435085544854117729013893482112088553474799093659609864145162566429489373813399824218042570975758258054082399811408577330983880856658234040361241483861445345565108294227774023934720164892845786381249237372708335844538598946595273986233807625530730166371794540905604626158132929699619244225928727287768747019803956360624442465113569455329691154869083219164441770340944265199908901074356504422182288662196904557856016559597552547868100870559752389141618494123582194104224975953858075813498834313737437961194625594348819767488565160610259051196746870305680649386315500007792503770507675768911076198873691105761908864596900631377127932034858578498259730692203682393761653459835102693023748588872741532878308846994495575974387203882869004753703486854812918493516146625163335112745071087602244566072613373908315391685380541200882274769708163537518866985588425963296171123556956026338998199255349593870487419825306303976570162156518902369653436082414057725333630370766185156545930135437336056193816968075266800254870967790609456349110093599645351632634196913507936345555771421584726390037780413409535464929432606449357374475290512549271494548327334399288739470476970369627797643786023161353456579051975914049230643078108045199716042645333234729394810481939309991934486443126086192101673302153127366196550364532077843184455629582490906287494173283124165993264092638834676067418524267157871305083991186457101982232049148618447545819142980016383586653714854108109915388396413526593122396699157892945590037003110605322433914381522708242975167145068810843948086512812906401674001804414972051509814527580226940415195060880461954122238396912938295619540457678813591924819390607207786501550793879932675084018203866203343733977761216421947613206674283396603447187767213185501214251608955707717565694411340049309990350737559332133139552795418668448641224700704787898020507104478052550923153701292315229084527321021115266812606049111624554813014590865255017338195941475561472672297419610934942184684248655913915502471002244028288456570292010938678698535545833326659049125704649191924095699787623936780858558147561845564816809665882918618883379598959085347445346820406370847612151311416392201022325338743509443438538816413877957325134801865521977665022678745196652086441155115642103790065198271222021917173963448950084075554978398020376090248859528701827299560456544337349910040578356262798542499001385086810385915691421263703107056804578082500427908458079194846517738503463550330746446047902610971033074840386947558007441554057644372566474954723845354002829483499872066300186410418805200969670179612849436764388881487218265811649536765731814235832324062704723875804298047705431884678748835120983772829509253907597530857922152063189060049448983617010299808953834424776084242847361891388260551612828888205643572483415756032159671744673191147982392799932955615737955475852700377938511004521775229393415796720681162074367780984383822387678443962306726243644934986648837717194666411546696263454498616942522042560229942677868406243922224261660084179076932430164304657671776255796743336297188976790917254526926274427565302540292762663149906950954055332576005682943731520616396339984210720685561967283427631013094408938192394226028678712171249747292205096412001758438404807710412243239965593094688120064000705449600160806227185499259162321370607653014650553970654692228347647060246188646802970349422888558724927808578000530170607201423948016365631574246287280465977064774089834619712643671986172931495886829548761915058824138365853507739855095012525653943967558077463785958832355289393815211976324373464768691128737529717103127577266168889866160331152321654823137455950892331137065773048267701989327334296439417279551942633005034357016065723512086028703647517342026094349816646688503661018924731163269914279816821977504196459439424603356458555618830721046363128392875969775124162410160247271964106012281788773844555274838231148689047106364252412058549437048386854379106333361199669175973556396397541571089691227886662521045474001825971262046901693751152980560351646344395324342975440761575194668754027492218202108864645403910354305103163990687436819412208304704903821742659369615421475776686285778528639852407587487186280629722966967727973299413844130638326413655710207005801850075618281044692747665266989930843565305763108462635866434761678699201229219564457864673755532485778486588770755764084969846052581114605629642064348688901576405817128025137220557427166400629487641018049153598114287902307431328053425203235163670857540549177080807489250121245216503284636441233467732610078196199718844751205216937652317832593771282245089500229920864560776872121403530934700227798492654809174774744957097980587533969111639754138059081643485405349754411488258899283659481472474401750980935115438743825678780525910652832452788971419492804993125206730121630635937285968960968047815864263106778634256360381499896320201498024466022065937373714824630367050665171963308071502396264038611151091072144611794013759526200129391022208451744989724563230867344629494110417286004171827664183689248572486043734232634234767671121223866965778721423804654266285269814640869211730878688167869139387868956448602586481540407961126958313666568288962169263029554304883900564928113554438715965098772763697439920072327315202628366523874458139078767555457610694932719465428035011592038587624916074828554764221857729084884452632213251133592806936895943913608104973957442244062191803657636049833339889647868922737732605560831394687450246304620912126550237549939299631087450822786617641400403024066806363624314301967900456977120141663092358939092821718595852945281356390682560189289251168629706688907258499482327244276481625052336367711724992705149843631828429516798000649766841145800418276768685290773201315564699390161930089685144422861733623914650004615449778557339971809865465635976702794067719567780113573417307810781274551327840617382481169864148806669089394183576567183247834363068054921577368000997956794938472316442948160769759792067737066798927884611637519235513610791631274555004680383184069449328310000495914552317673226419919427011134186400457853165039025574471294525300653912695007942274218362342005925740275617795576540099891610885841000272327284688779745115344912832746599476173036599235034627829372354337697204625969080581200826980277954198375753243546411361711347873029609787292683058202425560804806965406307456155722157948949220593297803667671820214204848720083000668607435299509827526726060150531016783918945606578646984545104683179727574951929086519592103742654397542645583203500891361256741133740798593598982333538476493307171085647306895657312426443076417350364328044337071889955965601849593239174168502474604299249380081373199960480212540338937425146418151804063262537866647758601461421279998075883703400377296002479289332646518250933800396217507026305824609994003085116784886978910258135809945817240336693403921351908611411563398737631500801208993461684820316186160356019270668936892712628219121733426671808781931110108335418441879883484396229815767036375675329293515602537720539336499397565331737775050369663444538844508393620206822017858389922458474492612802665956278756421752572005780620029216547142397887185729290546059100018771684937231806852954012764154962477919993595338275061740457762818959719621261859687011560877960011075085725014505115735691721868566668761799051435228543564630882170325708647187191679171278935790983762309987483220699793431972231206341686580016788504610718666396726265569231759549039545160545791879884172189523669449535199972291536031245406822389221033352069693328908661432796340715222565398310690396860791144263386135461479821239759895308374223877499288501587537985605985403221279373329051164611372386580452104996092724848560483389651188635044402665199012888427788562524036275732186168764424374086572610179723592204549953718546364252553902175556501142003649118206314146588813684267245538030536914514207351298729202127364821401721531791375562884362430027437204154521427966585204580601862975962530417948482458903295285404946736457663819576516711531306163160976027368718811444491782668025405494301082329778134047735148959337908076612707507034003207063408297581233538059549216828477473429031737877985109790085495498806990671203509088283141885571659901384936833362086267739161323375427387730174860033162596494838513125511743551909419253149495815472323860051840018893848569595308779164070081452439569808003115248460040730193650595021337007344005539926786960140170875026474577302370875317851713358498318186725694221092017400950819297190012325732775361578216688367487918327533343069128946258669140836096033861532520853719943217458303299774279670158302871209587035885904670724257962489963777679230751172635762616313676024621333214285614490045306317931729708711242390224588286123801078762743825414849872724744193088137231174739103150650249547928239161661491207892859591032385642764616141244552806972195782442119242994266063130568770008683571566310041295531072715267732049397076180432403222206238176603204589586312331017012758092587594151635595398223276140289971899791867661786672020827651416623293602157485219888930364799119254058397015464018105560510850912590168178239409715293962694961427870684801459983179498535555821344749262621974430747661145914556089417126525663043453041234056608145651372290326300603487957502427275977388394835977727525522033553070912803889250986358021099994789645635011724160811971956684917255315817211062656555820910308975073655015026297491533556459072775495253879131851728455181729803248899854837744040924936021368003370752188900976409723149415144831886555578335268718118398721436554525579841055240368837978812393883802970438889931183867944897401172595210499704747662589176254840217523689132635055627071395870325893264501546681294992787857075676512596273490658789685744268095352203052679419669819797984841488904398892662597532094737751930394701572638511399976342070256992421049974729133249656768821972259389508256327814220438074611041545731615384858768654382515952247422485919870691473972782648175821000812021559939143946805825666867497188171223627278198883306693713741553484765705360100891969634455548373106746553512155999369410007297107516044416736346101906703193516502838250223762827775289357223286201143436496891634797503085228486859026743998722064386397973075387890753645221614998081387620342614068116309853324536829112360985788582836252096943387855116714927699483004668386057965389693320466456518864295686916457913355370651960322865833220117486608325861639606267800525308164976126924225990404087008920761580040349623244264894998515042040196744221631967562743978912530851460104936434933918774696655541566752881200448080188600867993096633824956287923294806267778175238897854500283210045896210394654519978369134321404289602117528465324858704401952305965788209275813228131762350201205711918447909800221118085727291863016509053316782884746459809869755539955230144729762225024811190392455148547735666443679793101182934037895565771543609135697253694335305540357943357396832445570366092631211253605838926031705677146742537977710732212530217623190525079480319395216394389470416880314346465800508431525523945979149497987850838318723915710352891584185704331976442026780298934596933630805347036664300312858010215577770759088520987429220894718907781623809579990757463800893279398544833959834566908697508184136882197142143313615718261476611235491794981241374400088755772288975937282972246213289508016253804298957835127803753277700052690260263278508576213943756528043200914312711449389703049006894540149285274351186591093625570321742315812946546867848187217532471283067846718200165137366793010613521212635975403792903502920018833830330018494562986096337774990374757596026073450411060226029802485685480839281833140223446560149790770954235205947398844001189552329984292129583399857439674597001101536280691183113306305762052847347585237079833124472885992814215938293164631391306060361506392786683383451811082168187972816081656061226258318247693736730190867624268529688997975031340756904594086834203810086965841004551459709121585442387214535275721641978682214549416648832172437586404619461533515427377080202644766972189192982662494518818758896320386991073642634428581284134229645882272760569321586582801520954444730552813620268162583969822268515484922665384486022932372423625405558004756420272618645269483858850796531595143953312043546998947074500075328552946524417059850338508838941636421205552524486417051083637213664741861409256285664772570933257666614512077986394209409873495904005919483647189065323688489538215611763929619777670338826182740969207852551624500848100156215375741387503067804032401710555763544857293575177727793647417740085079986343745866554151029040846192941788803584790737577769773541494627213426297989326826859927271511587613560619629056910997168737909234299031988132266912806489858403769569486622264593577572858549951145707117461536143839567275425212104399467727463121596929951431142405806231598599367593324012186926048733001240314324490407862191514999480858244068012732408287398603374346149831519818405721316138743402244155480917667236026031874393403897289850262924710751736819752859457562279582211469362860062100956146642855997869292385074632246206436430044449318547444765616881614495467334045801582519019045432486545983107361255258439610239452510935701951813511217395833626542901459119170317898082048650359545546016517982532315495026764737962896659749754306484557926385636266643966781254422989952953371286612984416936323182177881251476374777439535549032445307583600548007957091902724540457038041169107856765809195197823157965616940742744678581249232089076236341101706766797893435887452249817921416195467608367822826095872588984371306464385992901491647722740043671522183868990580094167224904017157415333984573728552803484042800720935644776984145516505743947860345496626335537634526282611857375762885830130418185169576790010499239980886682369882166035977174923092212073492852155177122957090488064055976715358423802750610929863563124391590647167287298809815366660450961924810207787423077707114395067207057449867957521402069765261200039141251420639154397934757874472067914130133102871179676127307093240030296861480477162452617259469198656007092066167959622481431297793988122280527972510602933616591384712600538614033785837101086248558048461007965107135351234939006374492952898345987134655876406740296843839833762390464889342675405551702757398063261839253617690022435478318263123389061672729625377691991676477311443435543173425391617802115383237107639482909225315577729421609512751445697259271348541197379546138145377581794886754897427804960967291036798692854342673826749173267817707728035890170673262651973568868253407344923494825099380812740309832516645767012745282055905233186012071211288709962332310956760732789093679747411526341080775230646776566602063046641966221855632405563192286006378108570335446870541985005644073168207966629014594371127711041857862803315032626622273039361334479593230469337917297896313479065390889069930720171553874158262814893002807188256521526840937974115704953372938927820045449029095365043320796498533498220630714710192823925473216325904935184542143593659989894356838361329782177350049732578054310909934350302947589836219121648953089628110824114903885849374043355856989340372769341242418749288674570369913393686249336369331833114498772952856800549548815200932186805684195071566179333924391449595303762166945578732706901936641757168976634017635957378153032154698998011614242223015483079070920819775325834449506405331919221921577715803727103459586718175092907256689572750159431852406984164362619661842344742958294517589482758410132504968880762788591594946593387335255269947352445472774214762313172466322342200123914451934357068327843865953832172502271467937309460503604384755045276946438134562217108810006358606770903935910114554706910216907237472356952775275284625774402140332233691593424475388499851909635685963691669367046245417022184690248246274749873096676551997959761070918615136475521496546289331776878015176417113880425820689313378923394181752729513159901492558652842104398704107067636064704286896485461697356707811811118868201573271639772209253177509640606796698239102784098654383714402888034994940633829031525794321430907307900722713562949457592665143686493710958951766111549553380487792233574482183329172878157127403162005336038579444883469348670831217727747860015010285956293872423066723319557010087801289223776935746529958325337026613608938196652268032002841639992195550097301338983869678510975786028141871948090756606346027601789377190145033110423097168367043060418488922974995433988007908666594942033267616562874597828006801231261253899845809768960443273197802088557384845075319746705634610228203748437310492031860350367173833656439471237402784438456387336287424934587113912173448982685596605334621247210017994789801205783539521396696904034722103483431032906084397093266204570144191539497640105427176939898736674408363861378938875581801376271751936750343365049190982653297688554568780587361472805413821929248550902720755255928656058048638389183733009635817675043401632049750675045741934837219288266461144631584528488542990616489683699841396828472780392646162714412524822717394418514489773389010746130042879508617857203720509016528662535173844593232754724964280083185412964148045653774813304828869707678205125100137185630570324033038866827730439497476609304429506673210626902025658129441940395464774478354829558092729284600282613825177545917355479414583810273875181221002195497653124961566441316381359192918603198586865726817491810922126050583235211234786951199652951627584573606270418527523816705432146362955833047323068253058166382684183709285084848853397226617498088650753668188954135047677942600113642126769184859083152773653787653837055498781159929103147779556197038527796074995676532050031065676967433046242569016936328009809320302713750831872694429962147694664350175046495616637959887970147496812220064154387996818683832940952747430990143200475174732583170616317616218595005140701643306400292854719836030021401097346437299970706347917119287432444474525851374524681495752412912454551659447177019482539625605453321136153886251394679317400913651499901216337250269020143834041146507696708913851660968055850939393188401779925917012571147441576030912598834253290103435927750263288378563045868052813445113146609054695023248159623943784081541966855533836761377448393995488715388683582430477921751964956104152754585962573368972963870341598832555272595161676827510297477279787037811714163767759027869291747818338302837882907116509432784312797861730736944177532687639288371002061811900930540255594899602859266754795971132693664424049476138070624728684293621531487918281766415338040601661685040615443266003522262107129361088856599931751645411515662337287890500732056299493525826110940977585318254499085122144995275189188896845130720241826640127862639579239114319561987445671106232537053805003338381691976104824813480459524844771047881028876425526965413795208387445424895984907180311682377272346156849808888173688216572459625130992118425875597516736292433095483198195692743182451541038985985529183630507927531210375365005341236338284060964971639042714742155093575661536743216370090410288109040350179477604531669531162730151361123046992999763130481307494241800779313643799868996468164605671974996416098378807792183906438605635772454277503535545022963689558006571322791658971955530740598199015221531012718136546403459511766645415560224973065211322024778271517879499017690183574553389968700224152771712703142862759359348146536082856614232933461779814735172106065104384858294201225092466317379220789822470869383065220144641242577780942716425622214684583188685646607447844006161748856771597141091633035644355962994148239059980555787635551662881321222066793807776539561301123243789313226830589700431404792811932530026012272706850653220862295277067656980933618480150511307856121440262128242057109889838939835767520717563233388729954966159666910672639962186299037844765490405928423683360282726055686636014427236340556555867574368599901657734310468695667270708929497714942312251357425830576590822745793915139645051218373077030889661535383750690376335709016330186091809084295582401122967812228021226656684954784593077791991790818811532934579341207461275135585824949678871975434473985935047342863995493060709325157843203717755312042112316050079183822318264901923205921236749163425164568549523290799621112478145846893008861951225772159406434583515168651181663210394386341471436062189116039664468751641173289339540108872435192063119815806151361261594728728529243204081989511430325290852609946513330374329391412019756074959398497006868167719623975137308811047807001562770333901497907039205280208504937586088700692535103128077133880148926279613115435025777451823043184267213991680566818731577495782004200674879498237714323512605303722647809147152713065565015575863532919242372004110809944773009434725701942781053846234342952721542872318664476539568449461031294915387484997711500124051233148775458359056860316321252829121536090891905181195298717432639800482514410853536951845209275585771597581128058039414581036222566893243935643038410901405308192432544301393540949092465366998185181823759833725010878129292697336146731663254259789273864096270866582532254409995494515271112068813103549567193035581630931591086169293935913057002495533429967125768507850024018330204521070722683602868079538952109917879547985111958466381774219647565961521413995508554292867839993891931876368400341749218123540578773035162403622211025783297997093414586972811680258761528250842558301818571423039573411889606806419441818010663791545644282876605757225722079103180783510803117868303288208636121583535954992071504408572748130789279334141776776390185820915737109403008671707371993379862868254394175170666600249667597029122240020400436498314421507306217607723867356039662052698373438576584791985676990990060517026811969293188348674468950922716097807222177713908904064250313435483503500452216966022537157384918334651464578186170088438703263524315195344709479718964792202459675334349793812415605507323551635446617834475054680691725015412288921267338575603188393305738577696690384671816496167004225275944743400357032432449579650889638214554427366911574882527335611299720599221693414021010737560544313398011121623345077433174927190954417435264045755513407254354752913152708201041289040016569637218395129516218870954949905397555429665824887527120130719332029776397484539053672418324319791729225828893368129677845545025057587300734001664130507281212844022360645115200367641430427149532612341977851857342922153193030948181127977652046674361843228074481211755177173306355833113126055085088688705173971377455899909698579672223689587919728575083207402740195760677920500188320177265006119370289030670013738259105287186123506557245095862946123257119445134727462049109402817798822710815616390320285301136865497320373879194635144695601945314561186745091140489729567245201023847075945061737445633569400238369724708513106815115665213131702053256591765542000507226498029791172487801166506980307492878107111211563627863104877505439339513258137438928558154314387922163218340150332876683081443148569400305125930670038844048372186834229400473821000280929681383947018797680856533031037241038214864574319043032195519368530241063978973682505978587404756375301595958364092382635664785967699068126452333239792738004326260140199242401276457542681530684608272659492687071170630459125472500800571926007131668802409439494164488832560789403462017304450453745962714331066691669835985118310338772242083934495175847863688909091016972626748615085117519907541229375042927187919879535079238686167926402954219950857224019951784218169584750994130279729642311061297682542006985624147768918552202860703824939888532240550231702079009580549468361388643519003460947279461559967731129897377335379055241781401153434701432117562342275652224458262729247676341448142010890638931873408250833910755158656744328602798956939912040141323255672183466021207059221758727861557185570891345631710513701921189445115444845429047949206965072764860773110655217946099613659468656424281452745143350464463682093939166277375220434339746931030307112470510974125564616741664366447547043759689581931018471586365894569674126216030128273474284964283897949187788209014863171416853700788458816599950465732806363348371169772744759542349570082871184203444751581157125991081945254779035930619753795290143359034136196268950667814082997834223355438727798741519720901773213676662220565636293116836571657787994126982427454601109845617202225731528442748863876021643556014652769142737658611407764161679645335456499215327706669743868084974889413525355868487963746362608773986852981869854045439464606311295801218063409780006414191014711526440684182282993295460154322878927758287669783177363710910697413202321209157616141368023028090830494732121232983031529187422202810359387954526611696914412819429879587743255168480161325425791938431454162481747017181991878836256323433388243585929349508984559420760892156698901685180815890578674880988230108827106396289141612963555383676223895042036036886932373514760849391165879834622119117081897310443614387524121843927227962497757996558995317963025668653754002419188393928961225835807380981364525916074814881353141541202099449968007719204866865381560644817676443986583560806384625184433584343521846686917494656526450882953896953958294500403492107292313150747401486082360767895025105638982894023648546505862304382657087884628121470949153393236618089446989638109731204805794671932124116476038856280761944457660999072211052967318179683461339696019693409676349986457088847614880533885005304349060726655434745293470075567981526307776738423039635199560619762514748305015202007360962388298811697753606441793471061847771150891502737901998270934594853630846672055558526174439616223984899812084143034914078526846735202024257796532555843397926818362624217552090554701744567685424790670929472609470382184737351530807854543681831121257612866301385744456068068755182861854978979816096055207785126044091347062540000754410279798762781964936426126709906065061313457927252806258985316972856722938048091233360771024778097787341045160410945445917432073691931888270918935013757319023577688442996841538284615008190991360360529806422071882452765210174613955705804412147178962863628770410466647896523391173319333089349002782711216908648624605029369693325962067919934045056548084138848989147468379381682192402085790519991829958161090027040054539489194162897629875892167836650970153003947027093449332574010920549964487611578183967784189577757906745771228792937576603724950848321140006334793540710970748023566056380517651299120427734358412603620480940807522615161033321893095357848169716001775738626440197108859201595214667958134194570347166990591908870828376342195028623024744682486100398429015764207946076412983766670837595449939662935290773109762290137766301525843157175089526644735337941371837884685988979227720560376871626277310767286940621944454173091132478772982897733874100446493178004408323498430864996862600019762169486814224185310363749943898714235487890311646911385267054120101834898369481414014228561139698633565745419146070916434269836279426931674159966225706358437838989967741595235817630096756119284504725708722019190969811250858881431900166917543227873849123601345055251540226040788918855216765186195790572127708084874851797658986995562045832924244199663502237747471224686397197595078505249224363526416722283984471575344767773985440642342202764057009631645696211391030226136983679019116366989185801629324063971625005312330440067625147160199656140109231885126385347335246081589158827751208567865604233507370684595868617824182957488354937631884413338990999651774884862173185129337215621708446396598513987780711448851369451381490946288915039700438550022828121746750800202763323415275452389322040350331617457823077300745831790137020906303703247567235061060369501225483125186351441730945709047258437686274950023157042112538651418383362369956005430814472465175912798600935208907612059442412266347425270963893694180425046191494277994328133201099419801886607732525017998466124102467035686277033935203543711045308528514029869893341342080291238187147398199988269294677672234931468004524004525194719669976348132365648133071948117151561653150058433315350836075999550399201787070130011009824113967007021037252487401952239479578290551875585864344001381191654486464365825038345982542510307379811405155847226214246082598830896760133299373260299759959799212596177373769476015648798574226368624550856810068153680148751616397040828943094277699820972997155115258560343466032063765832689030507882739096250751063622652581035365898559227495833702580159213468965586283521434464311389317548260398487113751234214102999121170425696716872775569375395193522660823923990994284827626092720566606871483638539144286969831160603325800228338316517777099786869442938853949660447696090552009716196507129816753353672839908264294451026104916426468449199603914127234135881695573003035635489463434557238326889118143190901743936466251691174989074806733827697085705263766543487162360964570284031688055674051718724332185215789071104227041058055244545933610044845724138427282902330492864343044821851469081536510479199505060770070324823386266915635596039074518020028089316519346411173610231415780617441526311310995150601391228950035017832952611760268723642985068063498089156131165994819923702340722987558509074316111163349044628194570842208548994723764615674290449665889414356517405084216211445790644308226754905432834454536363163565367223775836786403018519050657551541518322683576168590728158387628474945266321969263935393246263770262618565827459943973107344144829089347645637083008631228914433302956933073891989618557058921875286699578354041882523446092226246768406450753169488108466627554928853107100002628967551904715280835341472525256636998935249371365863397084287268816394908138463858881851848998315758654710225528618953060721506407046330779651194151435723772889096657452028935715996091725531241224410164836697077498399106143422768328616509838250415558602969258641429982626288152207196275532353071017460223421005409765521891128098348746481008268635584871260571482529224037392504716270297308815208624983396215567673795368986105386047346250780896602185941535861487709723679256380464864162227491532988981141912483976906814545307645091443908774353125584106170698114527049294634158752563641368446538896779983880636288818135081373696928663435497104589072217305364104311499860322879805015383802716393686420796571157365702689866969670708861408707444803956253456185190277528396664344014129869891203790465008353526419266676302634164708856713389709645695244600508938859855472034772867502545367519869157657327670919682099560811269900111544364601170805438440345203755378910471178637624234229388750901441939297832796138607703884386698409536363254273473435281611647559612628825575691625689843842713435021438516661525785918848129982457313926034729543742958490046325144305907463226467897862265700174373130129718450965293029791050824411926396881839841415745769706144453021460412530605680892863416159630439380539201493124538740327699813706127617591706670468185645001118513018937345755747213442169354391437580037034062408907423376070166089182337930056687660571937932063377642617028753578584408943387828187922042869812771665575567865328786434264536960746125486625133657997391903365250400067838131451393889853314717762753098860416349037165576204906811752700053127435923906972660148296873250442048903963277893380742236159270711224130803782258177330269397146954805243963559347485894599965407828930818039231109392839545475825429605772228207767544943362493062753716199295589305679272951836416347449745372464772669207023552799743934972611129388354786569952618004351463135155618097831062290336620486031572293939010324782041733708232559053455808428818243509530297021050266634037293893423289612864520637556517319852378772126078549479512822687089519640629107641336510706870897720441304492602671548173128816898888422977157107635027102553272072212396188391977398082518532892966690534996878914847587178997293736375290135581377901230458824245132206624839443017974472323965412712958313064579906590311935102290963061780725653320128562970989313905587617518118491529126534447904071834150625929221411471744842335543134418360109524366889943127160671263768067437749081833669510458167870118686962676080283701904655892148305374276791181256153189719308092847428802272603204714077031422151257008185529656181026182158620308759686974137802753172073640289347207462059381801255942062371500005039210862457341805945128476518520617098272393545645053193589286101096024131963838723421515946107110201925892281506771141231310702318586999362299923492301163892118134020028446814223533586945255241384867663637123349465195471505030920027435040204745733694596888485323479724130733267995055672591742035038040846442381230536592165457639768361184018807396822736976855149550604092918574615069655657035132759505223167714255418717585703073231607713757588420364665549463987293913874598202456745593982596714399088399369651603065697222382244628182230309950761985409426487589785210946401830879327046843917161860513166533675759347909647759248777092845810993854418944095792734749102610798348530031155353151698245056691799845231661444071469992080443949430511462172508087469032543064958810116172412101185073644155371910301486178971098624522097062907983174380340340035031455639953084345778028446539803754139055875253715675400685851320526338904992408683601514242891976106037535865272361529676347464277429757576252102375176437319171965438751828282459987989343575016054749243289052117772752463006514641264257600009893013686594955717047157517770102668724704592900421969548562313901620947051053891125384703359826551230493696151782745619798440502450975836826468378925883895664837289842015031769488437772980584673823379036347111755356454733150850986692751605257693193327805945637748748518352205483617403692655024099701095009626028348025352411744118495698128562104527563547329769641824906903645845405373045324095765223262310374975715184050473767192695283482285201701282672175794354071918799824760788919963089244931659958519726093162679444885906054748054743471497206105493188648967387012884522224994052066951862684830662434021920000804406397514246594297116251101128769577101290998061523357003700856300232445780879105118863906722934417915319531587112834133206213882804003629482446768782866424077421853613387922845255986338836362410858976025488468583163592384243335507890490886165884765662680622762069630772573067991898634653651097337289269383770656759149825392638699947143706227204875392741766674795142280368391866059531434485635897195543992189422117998191323481302284022526908656512268778247262563442773567772052727826911727411977125919510286988833773346003032763202259009072694671344585945269489084780563525934042818630314303477812824161579186914380722015264201128177370538100200025173253873519995761692075913800237902435685516295555185294874018736421280807067476361933675652305707914526760108733319095008532463604848563171245543463355681203550642955336873786691378364163885056618001538248940957610578041860455846423424797589964288850261169329211993600509635176883384323921545462997513534667005298807080428872185774340239052703813961271428403899868967659140982243504621559803674567944448025778043406996575734994104320884271192599190947642338810073875385823715541243973349743857183809138294083755911905622909222415892989518709780535722391299566765548355366634141800217484217199150537547371085248032215724668786178447589518666641487433584736528690077173771406530779766138246425019195037421255095034251627412586500020626956252945621330692872953860627785253463463716577900186203379617902824077136240567241968091991179031072116387549160231966306467596332123005764549744310812837193239154200098214358531419757202891586789804487602661287972779517770490614055425243458699818718950301966188414365847789452166898883606118322817551842177334790097245318570268948695677570588730274077585051618698366510361277353960173525236013886525248851988895853778150746268936131460389402535574385176991133577261021571041079618971986188223210294768386392322886053706900589344560441159681478871085741812933776630762859145197455762496650924762726118871298867180102665690254779339926874598450530599844947035334015187022681975481055292310633547575835250761975978847312892050888630024033131748844497817033593292258425802191914984181001113009269760124624765696206968101695686538498301790683788300590643190940881645736472993866148751312102444902964744248597105478395187292453068121752644478017543743512975682382397833418402259018634085893101451579964167373180629931514966716686965888390926805346776471950862187413650148997778586191745878722669073577244912394161522666877593929152031249940599782957998830767098737771146283145602621737870642066997503288486207337045247368664260906021046184532249339138800609857462834838665595445474251878798692350384432465857210543750180935659167428439603728767243566106848695832561917307599021413188280681741759048737894324418351342150597409218031762525070225619756087529666585045808431481106328289805833881597813054265093886400816817032880497643180749397323516903282244773241895418727479826398286588272571208494016367861991046661846307223153664045648509326411547189331300058709676794401469157793482068095096577093726836140666915344297663584397904980904993718211575816513159324022778266768564488500013235808933685673142251120525421512310527720448489504354037758087126548137052802659752135701951971384756648611782345947989734236447627955392426145166573826411454977118455549765193635724557790187791976130340954672921367394509435275991631616916621519908716531157365368484484605977946413997569359687817136313251727394098695865434237385151523592831236851586482013893840489914135099013952346725050055397463927253680011949889935035584818572388077897348351677840641876136561830460977059918829540163135362003384712130435762049134501385709120827091727445686467811755922692223399584881402077942806559379678887370833142299414847102606033006018820601545715807546777666036047146817658377679518558692083134245809755455149163149939340883790348378422812525838049303876668349952103081285570979132701859856996350887547116196330440245585260059613218634547851956390699163001517943455291650321270876296953776562213198687923629538507483446601847769151985488932150408447721763129591032952057525363519184928257185029784294295960104366622978263069327458442884495116074311752704353499499179646081089930006245351564520830143778320445461702439881649234236568748736768198684597224736589705622392929016290904511149809691278457700590580652961152328269345349230444586891810186562899969475310873796350872556133891503124307806009314440351476717376841188468739179034910986083808502729410596841632996948951591988047893069025256847582908551978514078447422191709265329900848946402683754035081488018787389435071381024242758955586393090664203761986631634012840522555500967212799935923877637136707299671931330387338677310932436192749107745417553541677196519560878622945957976832495689327939822350008045890004193756214051598566568124804907423865192111177368633548012371151784440403941228094526993779838021694471771009827556536078425863815365003162541758944065363655488089025617473038843383889225854712826597557704810187311962679772244625672530693348275187906149649717699377963199062139728016024716420063071741760053397506303223177686460949469554293914532161418618839532076907636882731062539482460825722422180843962653875279593310635494683773040053755087155716154852560752484156563675342173404040963051124539679452692009135295855661558247162143517332412318397552902595035475438519719235960899004871567890709939047340201628717052692601244544708491211071106678436847816047330423868235667023839498808171194580796721933221724097542722221034260927865465705289161826024113605838175818282882905299158748795557751229154194866673036780784762727215293886582533991336121333333277251701244523044009092240468347624911883643199953143242583085854380039415388773089514434041995943264232019918427105814270503176611077634605623371824416689351922152437142084464015681959433024570670387995158684668040947852363261172535391234544016862834676582736091277965136148416323753525789826732445003843969533375276790053509053271677011368836718318919781278148468552055994488367753883726756957793043362121700837496278299644375055545106533612490575667981020683064183780245699323918046026645505407057773918573937956003933454697178114848241852032353962308146022210280185713979653670317358258507019973051329442098733621646286828943113882232655790767894652568185128120935052878540487948874250595403271015597956777281612155690112344087209141253745711556197748969661998971977262526007203669263286081288915555050162111376558384256445917018302746664984016837132672530686606256999871528092820907302163564953066625185747508277950253269696232586395813327384966949333541407129306802042619184353615377003379083318874191085622591149503199789388752677065967487860496153011330648695037490315894871724819927702265533261820982660374016391176717458828023755993242400537353333949905575791782992178374522419371527236097515883675546866974517852699727454342093900066424680187163911664931550334136434161374428254462744483053744390069414168448530671806906995970474701796832586329366878147607646674369555621518820056505540016504623794739690599204791374230449587239352828202696662499073077201781819930187424787972281987863402408758464083660364645375640484439504978685820583778509074373342305663029566800538125183523590287748493627111550196750976475667236606328322213253301833062704344596654425318595682618029953542405819336253398142335130623887212131759759737750683867422644366020505161480510713796150318344862941608773780490080655137769585068632115953941826092784970572518043619478255161418528822163202027985854941106687071880651622323659096156195186604501169163641528861001614043621028560630512359618775154917478912302696895436564301735263326821512612126353275503913298692832437678581316199707072580866940875141508365140021813060952153166895909716190886846360565141378048052492296605045443305726573952781391695140901868732726553286471118654687313369152156666569541460315413849698328810506350735755720556015937916337400863171806841607367320329482184490958252615695128421436780929543918823416902854296629831095105304083855968523721680035057676415012177299360682913698915908507168939459576087972407316347985888520933034571098480344181639278871191075141426014122646299326443491526285909656136535124536069316222159606478183366160875569625138716529403651003863016120683593369927318181836276998893943049354401811201789546906094905415453115628929865740404184382968436990227680405808112955508990771962963542424482783733563331255342902349784042610005771407412959343560977229736944404662196814922385619950312547419740055379651475148611440343086689467255379534588202583983286088990188261338599604685347931987306242648191185960762700390534269491610280195118588665152084159501833247293332770725760357868541197041609989611832741999668855521890682227230754995611921914271210466231632131625005526286633039377610366119205157673403287183904853026876539534373428020940648106427243561811117038146598778284714157931424178074077329617311401764737732557221083484609201537376967999199603920227949895652386298164485972711830429568829098308464593056908820237476862284011815088736548455602225332469928833594265851044262751328008793639640103262194734086401485713921166861352850244243250210284955193182530589160831527814927474500726132073278800271004639274732024507419125528695568223232337398528475635738723177020387924723472151906773405740592983442167523190768498946327939173258298871873646582617832103036843362263046313321722077795605081159735646096570349529481101011076124611179364547771078628245839453638325176008344679139539717780350906421855421651311882588770354324966329609364762376703632960345339529058241461558774896579382501719973979963047098910010375809160578515496782255470961063455082993234918970653124451787021246148538931810698182621982775696078030816250850273754814052877658654863954630920659753639181062568218491919342031822436109012811166264477381895387266312203228591296559234161964216549974947583218981032681053009486291705263615572601212351098030432231402790338329449768851714109480096194546087543144651653545177983194503348340494960336321640482879142985020134504298642994358561057253928824025813212786518022296566310372107534982830060857894431626755575543784502599155170402049448260976160046859879805086356542042459368942625428055295883004350396968426969528333103517847957382857371949151915514614466858199538598041039828949756288213868847932969491288346553073164394854153307582669612342620603148451084909984286084333874715409634481729597660577348053935572757797179116587158090302561993743102926682559741827314266963710259648403148583782326310449801731005230707001829680058304450730446193801087316591636551249766020482917083049463326324431928365053897208948145183381060998619522222451195214717561157122069424079728445092726380131205344070463725171081105424406972818488544363876394880247709402271958184456730276118849770658120933519577465049719566613680198705241743007946723513690900819241457111137539349355363159621685580292588787102572877346699668087984662471216092966709931886653484317440463687516500538847399166342219718409453800256772929602089367062669194450282005468472914710714427971025958991804522043279663455093354196165018954758353271195831207599141460234000110026821131388988324071893640378237551025494240482221488571027349527475467193145736870802048891253134403437609128850223017071060996106446887793027478923383848074656537506126895844321953949874480691138028354823971594181522713049031607590751566082961710779813385818750575468364690164224322945465724111778401425348602907313287775692465646906695257060791944570861779721050039479501224367149783781920170704827442571871657966029341194988812359268849833513240268710173335290290737874692505192623194640692472939596090355217231953696154682412254831261577468846437925386409063092063631131983904753146053016610221057958997109903278834005018620094441897143852703136887759270406409499519849193681087299101615909605741375447672479958706676736979167726966139788223107859330579858689935982078145017099667974236500087316665839525614567299166965644376701504501598361419657555478581203654358103351498491004898709921102418971448974352531705564522856648231313336196317185123945338391804080234254356025969605990820711816944830417828117105738408912169176521976146356358730031418099242474308150704117279101194685210793551845991352824207566379850092737935882449558248524496003949055907298605331223186038208382671513159946494907906148898575820223466918941371116189005111684945521669595629616426713203098823743379871901231626178145599590743369432717270355064765849362142713796377990940683752849055973953080577084114088034617113090889799322725359508554834455870326071851358278997506003547382262667496424417247215586868418997474738375522114447615718538948349949378335128169583549625385811210912622563989953619844668719733113129198084452889799005399187133663808370663989400191353028064436549652771438537738127473016325542335660954297675580016712445519913058635537762753436327600416559582907830539847437355170235837146211985306951020114880271967330143351714905238982489376682912944520792309417564725689917277857586091956182711922427214744875414158267962745607966141819029092134241318765184977467360276507879897598690507987062957055375837766913023605038339735884983075841030110387013550447303610076390392829642325278565377287121948214522231522324622420856678800407897522873933940986255394579272397353768429053516448575824984541774582514966841216702700313485332316984041538044893942964932341967600206060952127797824821999660274976246917487249221869654829665314403606089283852786826572515425737801404569287248521465206513873785352555938629411357500549347606194417804044627780399906969761239142758904507063219053446534336824210280771707208264586594839387928561915577202279587322492574336153100148491902641108602952352682971910460998557779755257909085707955762587763356178493201812167024333568663183153195575436676762740914777822756226836969054248746989263974346385583724172889481105762499138972395043509385757270289686716369502640599132516831547115699078581577357312575393058216264360741953236421726169135121736077261755571639827856396178545166179455378412839238645494921446848754063619534143499491783168406707717717179263474944579275289282306830205614195808938407515850234319983393311392165322464164818144877405235172736761412347015154118433079780007421564497771025369950107774844050371123355895604952332758729079844977072990034799682951729324339877671789306354491968654332360148728605772147688198309497243184548443971657629558636596137256709834123846268990865408794867159681557465717817360349685157004448985778838661310560834820814157114832026621594197608188822463120855472931231956117121665112857114544895083448673384953753421121429061500181260254391959771969267104722856789259215075671021777784514012452316839089275657738727551479052319174026359435632210767851423229526069954235280171217366245294259551724293343079267747300312552973343862081903496166138047413635838913906159600020415639991268078876835629723687440636925286817802770269673334836467435654941583790759207026534948324309189595983053189737404187778674536460579885884224077901670842450480417629791516389002131632615157341688523183850454945753598120393914310228083203714783722873905232397211958988578176461312905334920564644800000001889591946015563989411693051998826102395985127744865294807985538498454335046586734025387294519587586407578170959774973622174596442418009728411234132444182436628482465854298002168319893139765791213360741144579570350154283918796943265044656669985447498086362597248733003280135388030400604417388589762672723359175168868749093281213524998343533464057016562217382246738049877800945976009972670799075916937947097465048436493197722560838142360389820577985870157190233676984503731961864158579912071396361421768732356349716122345450412752950335510395254841358238362897756375126571153937192519603738073079372487390921036197363423081976153744057991254120814001353798943543811867249661716880411738412736413447892423507046311298867532203980202590484101048280488205271499734071892011619188998980674165672843576176573964901424396705553360759242655041485607658841714997980990165120369240632988270091902924915116949746995018030575385212919117830372524235063637858504487292331268244478715307956893525174966592468428518141776257870714393091103878050233374541596731269263510447923201694898989540837805722029404608554544508324141954071864677322580714724026947762618204963459924856189822266339288941224492148195945590288614982715923013189881312938098370432018497669577331367787692727192210429839896111405065161741916856510713837282672644352214555115895537832275589294314420576562916449461102301990688129155193809641220837866823325939443880226805093752367749419728221167808180077457020941952512998254736347565259776065680148940172393414506905933409094172888558083998968797731155186136778983647473741231656294841285629166453022169173638381304907765396119319635411098142829915922362318764380364364402261906518268753659775716825452300405635822255665055340110373329365138822516070876027641675618220258132844215117277466312705684225633605808382198303488488013111221391747022806139403212389908755772888429108896814362349158299337489356906544382707953619903950134429576442303173208364016029448289828534820102081510850552851979012962353446190565700331607885904297641180259156096654420853378680121946997025939175172325428934221447167493533023583971281604159478233014808539568488154740213202547846338767066249090223341494857914119854790474626339938003207479021317906743345472191051790662987457708090746809031957479676970642467161342941705682516201389234808834890770235509064609004908449706285251061648051266590477203308780311119091383652672398040987802698050558000983167093198556654778179302826574116970482747612088414882814394038332212832290211802055269722032088379321433374419991161443915065272518909028572500415977610157831946824582433039724158251137270352147968467118559483123112782511699904180245629760900950769463460608878363499146358298167842763891438561448024968115541155369120992096749681799929354973807025789421246820583176964203333448524028416709185691174765208816356066878319678039217229219363702617176197282308575743539740978986697803134947082284244047024357876466870943919440586044843531373832672641654061347021649951058410828671722616241541831460761054969249101397446696265122194352613228849086049088597856865644448231335802472902333752436339580794617419847887624467159560633815643534941796187554287377060135321902298240326339405864998155863827381114088225917736645996870550028850550622272803367477123614859278872804587817324522869619001425764969201657984754971743944915359108757641553007599938534338583938714532357472682682363535960495059354225386596861814132924850445199593553707897301148227414977258790248850414691222236544614878993745974186668288230628227360634584506392267938074802160398239711768302486642749993771691761330376828278420803605513711492618992621220644880319452092443717523523122139659203609186080929410440320089145671181597759202536633331381574212292557921536731614812579016348119661899585139728599732913954952865529738748206089003523632162112109636849370298535991009418962060027175005123551870680165625465477348901709631825144096545464957977639853802084910696594407549167341495264041516373835387251385694496049751074187457513795823067201691498033983966737636741300051474626664633161379680423311486934257563404246338089624092149123054017168164957199199445475996116731367983820240569931381295016331503719075060131450398784670125737731500805607736515677413643230507738294681081669766622126486193643811109329730927771245418301143305151792615054682190491931576670190860750711813464094760361864754754255456415048817060520731523419583244152583771675224242076570369817351788993331969436341843387595900071579524462857241089249522081611085460532035367539584975363093635888292652802225856666244945852793404891234579763954497184303341001745904093582526222644770882986214176928712157118909558539400604676901820580901991775501733104661053140494778592570520450816666508031412190368824439773285428119195405877592857599008352599430716381828050097124283221948029544249730142535197237642127037466254197171080098984852527505390488114048388506098150407866042842720726085559784824637879159477601538491031620050478850560667964544229947947180680542507615653349055151168004496425859407821424946260443254032077282388881127060580437462353821038745290690683785918700217728200539882012113542783778893670735136221150623034382944390170803718687687127219523748748737500987737128634985671926213421846057062453430100058853428608787431251882378126850358277932182967649424236703229974546180807684027208423621284558655366545572783246963867416426516209214766268959191235549789475312372577664016750078440282697536526560862328437287557744776705979177118327281376297999641573678793995831886057961315074278812821071488124118409010391060619604925127946315194458104313694740616205642061818907248781495126349117777973483118318662018855124362188679368627764896877109950973954806314297706097762471740251999730014862336935710301304661454614723138983610764833088910345704752486238163457507689866809486514609213492100555245464475319406391499776958795677960370432657551557714638321847087426718825567853360776087845522492102220217169240950381525966000771457306805861710321129865081723965284326060890164053474025174310903445115432060851542912173652317060762185405286876620000523184373275140344559538514887949347249501910486273912403649959044113353767189921716296066903840813327212223498534689874832500822316348534873688246163026591627084045418690807895029074352047230652685216683538563900504059207328017335365022604815159352770375662902859567097087541981117414205875898190537410232183090675660835426315719061002739613998338630652762292156386679013371667568306760108185436456305498798138145094554373504434186774060893186466692825011831313330025771908120088625149421410231832501364673072322031005425559077201913177061466009047073521298586995173324285773658699040988282172384837777943189400816285265140825839587101999312763448583580040571046876322687780874683826046381688358282892892920700685051372428563433803217860103743980467883131167316539235661282118788581441027385120226164261049024402214616108131463016624773175281658337938719851942585179821613407681279238680340603631693260109707885497201424514325453851205849950958808992440526426089940158584765777296194795168289343668362310866331536541870726066624355391003987701604887824579684663023951016020364703706157707046480804113208340821649895304421917455823325622208602475612656237856932452033815484698897218310380780857587521704550779722927212645761432730434376680935388722563212743228212716989201514502323132690064820363165183450783920747775027799704702365137683336950131512176535771715540801325067530383627025742068508803577394509201828687797279942803311770496089172130519380659794988083460872942380107640337644115451490890576850815418043623857986563509108335105893863571173595317785944200065208011918476100768826318895002674370336282506314048647252480775187134610164252969877406444834109917412470968214501360069066026238640503881046779288001889681455593848072858095096121067294576215878542592823533097186180694703671269414733469584172802293719909975592205302550229484762720461822262923506201855191326437630182806081998548061244486319704495156920382732332946460003510545278342671592335738811106105697896680640810476337508009026669439463807630492211740234100977907726068375657148604077677257260628363571879425198796917647548312715903584229979968368722547155895079669904347314883548302367679420285655770315627650589541659841420467085497331342111614794745538430578125043408186783379829855247520185867614690031307836912824934944069643270925616144596470845206672217325350699057245741389587932513609233378123764245263777578780522519659610077383131100308172272456440308924500904943138223925761836141099421643842086826780385971394006156495985226526204066850587307454179396825826111939010323431348380639082167879675439704905561403541286570566533233257338193401431464322304734871893903009157597389823691028493246128848603118869438078220399231246713440733386655760524738628427742629550287565945309938481688763347166223251488174870087322295101585475994354499557800940517007141619091833573629064537259723938749455119592163766101834578692681864138179688086079228246818901321940786672982591500140574182950758153008292985470632081929773438889755542490596288514452081505647690050063338863124874145858681767601353153596795739354499027768756834513621083817239706196007248569963560851620952633086282038351476614292899224625694437424234847098803511034212547852003698766628913706610693350415401343919779089002527987936850704628169251221778651769385014919865156572459828284181151337142663452866651015789254344698334335125827092681906712561450730195279834694959316872408128999550630907738280895085752622728253413982600423108487810349404921443529362961623612581437950043431936419225269267151194299579806954358475872096404512369495462836659904263926150396701811243244429272519498719078188543060464433803029969221969420155286242289150394495101486836692038058320842730048015742955833896018632132771911244660610491238557472542736760771332039950268059390356930113249464157134320732534829530860115264039500916185989017286346437627770284791651178557103053351149075810263319728651501441125712796977087499484686740613152446196794257366603852930068671841843726984692490419156349370690818175584686350369225477549130426775446222407542521995343638717168917798612669450298984503406533570598391323580799070833806426117677367162070335176648742831361036463075416175960153551560353844659520727242918896056274173035353215977209528096809475074038299637911660536585416486175361728289479906916839942238693712013396139100012083725489459730181920404732465524446999138131572326781712331923153960433806932984681581921964465416268019268346330372909557820335183404947131351331869754299466688932021042079000479872451172406874063750813209454428399588884844739526386591586411434873767621654388286115482572112391612184141728715689528530230916570920203119715715482322897886155135246247103231484162653414047140599495806657019404799164743415840931324261521580473610133440865033712794654308634592631677639796219202209582181225562185869666282237973297739506996949721787515855252414762706020485249615077242321917398963930974663416475254791729980749414896136108342854503369860118015870213764844517521664738691961001169083092711821589129770891741551879512461708114585847134838359404629979473688384345985470112393720385214361082769953950968645996137428170759075700517250577231720183405624959791407176495897316659700098448737303252619619099135732972213506747588125751580261731490241310916658547780076341468494964514317680169204155847686401411164975051711042835181350834122641659489997915788756240222883514716871842056085581516166343062999538027532227199179779501444835900779013926984114774507503916024063044539919253065606963606095129243605400050753285164527536340603144047893323870257453685583913711257797931384408502319124867918422266730422171229461214652764916581855697713873807945788620936082667793306281244360918647410457111801180318889620420414212750338496106636197869792431386320177654770138912438644729128602709520061629507648800568642421658985839409268560553487296194831728662939169210965338467370803930319999793453815507047736240229606718230903164145147898865053173670877835384997213205560180462721510975019652152491852070712643649845921523116289365615566315782400283775404607973927739732408360561057781922882595099875295372175487207143653321204410667442280605332718978745074478788326414885887963160522680044249706526042362915853271444239642353488034466476677109742607841690594487673257959333552167893099838035085446904983072742397006424298316689096971623730635475045879353625668015969025597347748522369126660824235203320736537921210089509398053127040391502432827833389168896028169183037992755598835185226097594368143449170582334820974567909620565593157847614365415580170701666406598918444248324089994660529211188936291763041420464168351807163264182267331375316262580470056039333058748179779253489814485113414569132722897789117555933666712764621126758404648952190796859413056787808260223622552373362612412128054575689633414932132689152821317234413243711557991265156314370304240394926477263990250438830490608566586776574993726718092644323328462439009264372586974295623377353358773007006280498369275320792309222259968762462113678014054737316881457337589642791194721961633773767822397001174957146631321254624620162755880466213560223430529260692017050968378611613152657067752774214269205834339580783507002265974684987811720995807656887972040350809167296683293499498616532187318499673027382104546482769806402828068550615656289021321726553525656614945550713390573348880181780864049942615379528396182016978314498909019343291187315673038138690390616517934899296906364855161527713874083004805362156511362197126245291760965494521126193729218617728989937833037349075843743543254719324469720648778187698017377223672175558632866549538713504788545297572433789164684797119580339055702326870662873447047448903583693491868408372374831627278480781277801155853374065314416393410808996524424830139947949246086738376146335169042247996872362488596561551408294639797023217307607508902501450387951065826976305594786740174109878242324285317905789143054246180927770460410621266697688262323971395329098654750531429362860761474885643057733036884899698414029105976138698092770677645124061042329803247831570672291258854597580639384237553783445844538246266904930378005567300928155759728174890819123718092095689685168294692145228889813037792427998196710213251749067328720170750751708812038948859623210284264115623558319596640054862599541937612119832296675415726213214634687139316825123620444266765747393975744393452109255790919723398270045409975511697583463002677837127019878173012623083618217320616249040852673871790568264334183261161444497163738113529008415245219083429182453980052356743935462676807066984844336143474334708060530230043533462056924391474409323551708783067977931044216128756631949050253534691743377152926786980891134951856099024407594127052461786582886887849715667759606735003435191556442927866459172027621884219076445948840741173273445032688506852748333465180805734159282138625457965630665698490102731605856540366299889936979395475524697351269053806138466932120693390509514408802731514174504285805960440770167226573479149148462841416923537012088344820037743238381999629033594427203175514629847332960664345479672122808846715780370611565304811277404745964061210716543415625104102689873034485421826994117657116266133215945145060808539251893109893430333665743653032906724815713940026187767202763406066549567283780065267408688945860637094568521943830453598751218729361451780000320866699113647062683540327062793143771485396077726678703012340565873928730098666141240834709581452198125563949160886665368785784672591262548615898186395888898779958803541804353320080419750401768555703140369085005481796089169384127628761528999083419509736699118975644045181897516045855720058783158734064720790941052400335436110888536605457799782944637844581393074044119279082487943877860844027001016499608593760092934042308337686800690043903055829292246532224261174404639177677918155370886855805236974019398565132935710711888959801658861855106425592943175372813815241598857215162124239863861334869325420422961114555782121680604706632973391335587769397347205512840898271935946576404915160712757261234794638787046814324848817525802440502983772379007915446188358834867085590517665452154898521072352875516725858121691248304597815675454541366607518956933929349316543156220995843384997031069839873120853287618887526637851297656169298188178585650776632198959530733243672527900101348992059305276700689035264130769683263499546026186747444658035565812431328971713888568833144689224668051659592639156187748125206123058676947620744390080994134858693517040365422129423292298798364153795250728802456863412902661980058320388375292048348144242498691514273520424532634391745751694927534170189436864726895992420194185774621361243644200777197479840608252156079394481999470114168005452213823373041545732802536136484297110500646831505195880120501033267416276251131072839218644205144248714379333279407202568050281392654445747252776491700974467471101084615749609452999680266808291317820454953475126593743284737051147290440341746979059622226093760410091524088295287075167841751526771697927521571216771019360984719227751176730787484397952282618592039002487446113997938898860775820775134593659109187568019854641327432602326313972578573848889099899097346884399283447331951188741914252976395346791867919055415690875773392338046119661244465600997128750634978110057828848195327220915801499804881817325384446179596485098524236863187907093336648399985853558933520237477802425118947706665990163659875189954995734288129172728805152722078746135859498601859720296549003334852694106405408651363571518665699883746410895922116847801535779631044783738973702183158307685864127398559351178537983929745636740492229023010527743958064539632621581144539876906822551029321456266169310775796947511849089348035391737002896110211014138501843646023158186291067966730503247055044498208621920271500654619798616189774640105989303461947921060586038237070409795364678428271093317619489762027679397435073974872398837382279944688923015490281010258662145730869462134526712206125147229222067665582739772888754589395177279999372204878633202101719231925041685458751479018414809270331899307406300513078734702719882258711671864742085153988570644109245117732733233406218222493923717399056490409041302140499049313482174012215056951873463662673413648519584969226507365302505758500790883410670187139395698038282754653284973550475224276979146926838479853256123345840875645508576213213110090839313696756024309846777772059118246121776078274867630293370876707598223918269012124633508507093145124326980398879806998926844393643982817812034847204720758483206363245080663371350703599133352360224216358642958064222448690088744443776096463296486454302338862402220853210910519010031809404668155953631294882927988845508094410224991248370908044175937593539316657738364084914644593648167555959752799084821619351260617092631141454472104280617686918111552669761709020777503198618786901135804477510952771399593628817392421494312714659551306375791544485526856251175532323001675582151238329938681681335808147725165347951850545028011649875026011161798410121423425153312275418760197038976698346132931134667445570608967871174758732803957908298964977567274806412049630529987572234433693422592541363052122338889452668052061433868153317216610180856079744023851443720394764234474525711149509874682486541354346955720891104783981218564978818422158934029780885172187739351127700113609822231025660683251466826822204471781037118370798165478009008059492437783817634268725074947338682889410881681961998374409374348566719463166252367214834854705395614746834433191687695426110282513238864320232019290235975063773442662582361519677144294811626432370905022297819095183444936604931200590675371231330603252285845744476668861003422715778789145650837158913846484328261599372320395053730376066233057284878410830744426844244186222497256528697269709272818233706785832424159943196837995215915952656036610811086873758100847417439770755522157803140131182089934063441550351635464022673883722246818919951750845422036332413149825842354300738500063756549176501174757971410242742746392837227002131603770199817680263277097210659555155035529123813608962052030336028390565570941643523094023769504532171996743668890668484681399541706414114390020633808478486648914897873618559781072029637274821397076344321491598134956885000389628622329726544722683475117191429580466808281403850624465359002753592138635953653516911766157253144305550168691061162949509658386533219274296920752303787476650991867681476444966766390124343072567913336859912103372025076738405683293831885958889779440900003872302044750976701621663161764250089366879417382451265394889001463765206050055591068373752936640293725960789579566917144031182279138600431913384615529366423841538241676727480235810542006505097632102551103533800111817727939008376859359374787919721373316498476239433075185935496737318496440750139946579844904922490443783173895201368615793213917917163555288541635644461224240568515249151247264245213767310772788669316152346745337626394663746476450985728624477847440759659575138589125709527142861645416936599232359021664810351334741060031298247292537328069521937485580128683880977011573123023574035720598839821956626513404364451307514261113769336874261101150663692931202805827531405600536795743514485848479841129695229089564075957527655502457596140676973728987734377580871377233157170166634253297861567418956546695752869996801283548099356952292345579450429144752826158505170976565377612983174496345194601319786789333564024167375990829116755917391587166454195685897181721900939985250198877973179607402834921097955940835365022160576590846056969354898861968251649467646817977012566302724014972089800347748697199051040262175134821713702992249159924034474333705300159969275209917961500581284049975435907003746483764849662848145693622116868029677192176509881136104618374833605124694535415394731720845152892365550742201841774159980978620564717208118933682918412097193905879808987880412577263785124386994827795879419907840681530346809456973538040643932816845244613510590734451315558884622657460089935212048928410647130514080226718426258794220392904911612833300738368295079153297736805095986259364158972123155120575010325751367460999026642026176243480327852611621654222866594661742037248143388409766071847369271809957337674729539356942392838196939517538414156986983909931593262763981908874703775212410437736496689061151195479951533247379274599714674671632465312144255670191909188603654008408387714690169003011164886209199471925221865785450930499081741131925093178858197848270316079121009079163693207015762099290842902077778437875982394262135131827244156400981293905659208416594432518177449392237081118513907796412454613212301391593866606467414772992328902611586990077443047790426476530282750050820407082385742350234625481079942078007956974252814399006623548232358251284508224138768265742317871476765570970524311317911840861582182637399681197812281714759952288468566044074575105040119030539246718949154567319728037313430185767450371671942998307635356021442004846720314960949434637341283168916361688938113298045510136475153975283443986367003972460045909701596237127753195156299433822187285115781088364543255666670604543835712728164956229629203948750309909051101286777987912921390132538762454992900287650012376915467532589182495427632528124426954461040569688234636815933268746522417190992463795859027550936631883042215647724806905688946960959119016843206207658651780949105426091954222470521697460275477178378003639850153806243938028430517967300941346789124205855491346540082911417619407188650834445071460470204540443321764506225329208958043064579447581647022788939070727073373622706223026636054120068707883081416969088059446293042694059855394661453760538537834866465717788294098279952378437419717297725827824487059781500350809062181492950938411904741709066832873102196442824756470979147306895282500743903406960807092548022908363177404958816708234318924713129194938216364567966105286593116323544026755152945513506501111555954188329485266279619605814041751595291105065840756347800058715873982311885921895654421415164058892621029339636363767548267420918178186660052993807871288591686291221097392307246685591932595795900642515952463236005603000267681205086933925496330312085369559760297203208585758153910613419425882550238671609492412027265151300696320398881075686555098190825955822521467679652544205990985426038748160712701898021987938770060918350594106775531213830774194458000595980680485130899520448429239856252679606448695868309381048045087109223116121209276276874877068147925874967186068123710513311517616037841304879473770188351675982119269239850879737686460701892893820540061138561437655132392277045660375033161741435994908153621201703416273303278947930173019990372682787090422246755721619844411645373356971409059017716188568296430587768622168409837343197544663644822709219434419193501460693965229980083316481083672605659808039663214341089342659179239139051850933577178851443727990766694412337472850020869163213243449494367462976803174140778010861642020423163207207149309100959799032608413311893496650860786462743031261519662586527656925850535804395624940687287359243640769660326048933695518102045999563363011989989496667275840709150184770932416563550201126755370878321367299135407155264411374392175484176605126928497663293606621084539846737049735853598446795866262657798707119079908800987645920688024748583113122666046887076547665834204901390371684087668369036377356191451362229724999539952874438423128331603211167960109608396916277210642591114431571446830305266340403508420870007381324129835156853512708761803451337624052523347591642010417452192783955095345105980861861084055446712359923832553994106884450209039959964300836816393787642624755231465076864625916560232209513195916186155912076806359698039393227241644023282259646596317284291588823216060202327448118318069781098406784352773703337810261172882923016586467413076237501191628659110166212804259814115707755844084384733789553732449346364200273295439205946581998712635731730200357518570345185681272140761090188745949275862696158893025182068854311121650631466997006457038602526599959580209566245382968618975496381401221604315197354334336229591087929704014556127751421669429940905910975086556935548823052419349538902097583134607424001788708131225874902497425210793543967865184059456429304291428289711867457435520327294820190550165143681628545258683641692384892153905842424065027579221552879463355812913922768578643161506179883352242781304885719456558413262434715055271580053609856871315382130576922312033184686575256844199238503001554286166318733290072128778315062517773708476520680318094299207107894852644857891308539127626159059300272348192198982946140609693942739665185353426794940400928504926419648088205278280595643688057277107233977628758608364829926759251915355180507272079295963302120801829309468222635085926954307660092580474176624844425110921803136760554508907866887857506560615928387510983638085448454384561682782445110649498425541454067865072342203741487842394387337527107693503314597815889486855022577015774587523231201064537123252493840137971609789800026827299897306453884925074516295591123271693104367575013060763868534794908247253536954765617601011809659373688126368585134917851804199243684693951665859285748158776820380578298448197026662254226833627083787405789306376859550992867601052638498808542129747735613747225485662895555782432140751793014303887015119924084330510618133066003403037744665533433907802847032177303726227551023225871537322333632718247800615042784194402789771500543120505507245585997026506632127181879820852415311003072312549356935940902743362374722564614016183126265665359866506030837544519607434027170225938587721096272178455051514070859081721075383223992793590424347941785345384135128524140712889673451645715802635576685578288602534514624814144611051070173135875063857514865105933743373284033576665255473746775905326226832715022980634529486147183997911465905720714091577088067332692862131483446138790354316578554603117828187120903735450551616659190700044480942037415419034909735094087567755479075813251226672832277493785396310228448973218184520149527941822019028416801652897938804894066901765479303828274186550744543125419044748516296503712457118249492561044141404694171019858383082800083150393165615395270449763860976160793607849913795121537137808112026387446996322680815715394386692878562786759989979752723010998240645630683716906968987731230410387835445473681086675076412680033410269751548722786270542160294271782933725601003488846348016933623604141752579004694845953202454693701142161278036781854611012442808962417006901979447810542227907720267262134363678090693700615574657533701249113801351514532455918575852170524582581713510870101118746526620902962354081231454687760909458172446799341230523163387322575788682066576042141803710790617603494468012666722952744668696074295069682941433043402211475027824141371315637067854210771316467748140547418077088256583229616378081605146637233963765404007558970912492068106514274051522777846058734798368419994194841863920071203702225466781018417498079970355251053945778313804311455788517045261253598850162292398954212782557883755813093796987520993644076481261573774069832010352970353238278156899276445715063841596760779150272531362866698685933104685491197642208997061808836476683911438079069123577739996481494073339024508386332111829423130113626867090996697825452346226352253713147474203962450197438652238573347676258441324506570086541034606757523801191563860145496393580278956529361712319189483632230689905796341504723685192610771338418030510467443026326987753092819704255671338008443194857696921591646140300302384852673592945429226279548051418025800116038056087205892425492755627864535661349904673696120440103681368682307827557013984899918383978236983967772101016451746240044732406319526596406199734019133542378107027817503368422196005619727472000037344001784020803213392019757254907337671085495138529143613945662921865590948371143174114951835489196478036925225229250022252490281937110629164069541418258286825168277035744358472167837737325037689120129044809682599712399606071151403210163702100143042931522882328131152808186928825143337251888581263331537908068046254198334115303014900304216964140661128850612280632649006169078434751865646492329359387475096016230497654358714328428030025395342912167967155103605466624126152780976958451253494404195969919249594206583574653241859218883693557272419262350210110034560651217725062902199246559112603591779265663309959204657930110660733388557010376644333864172397748605422638036006146172278177956626699304627430083441690865141373132541058388342922727224166704332683524243875445613782496644388741713968947148663654156695759524046693426675656316073879379153642231371536306925724012284670667512475434824288915781229595449759008921588025193682849198215600952652741638498542294161982188942539842001465253072057628777772478604995026695651184789085393092426545274667734201952620868697598878438259182297463891981945370105663612818465643946072612624135706678990483766346207759397020341089672877052331301010452777064803356987602212816960640938860518227289167678185585264983295818909914420548805094924386875357502625250079400941128512649013246545229960741366397822959483849533302115504253066255609744466836355376616921748943569029521606625999174200773846159174175885570122395250771720912768878119413061110492650200827279935296682097451378833025729351744983112317657589046578334965952308805528002460952707839383134392373943902754340172158101509565752032690510314793894266611002616317736111340961003879744787929803150378152526599267416833363140868650104445517627956772455197292400311361978889677688048824609383990648827482299593152399233240366823022001790463334131128695232147158820395424013771119153058961795726092518573878479229545787338164571198007985698385891153504647891215080313667213774440357524170981650321871423293207469184887945923482020896818326567017188690641145325333613112725848040470478615863955846595844979056061500472406056406536298877649725044889182197646655965071097937058656822135916902850828511619008650311913503356281071281931618149711781388749393862402391500555360916179252211393529615813090820180738977546151074004953275384988160867989349210642034306314147364798115506690900061967137913447339693148724472022425632774194682545228609358927557545800706585385815324875578997587056608415264873218620005319919752715173678170965489036721416591213704290695375081102692171680588304421220779419788860613734847627077002873387448763005737601880452125134375153725593845260882482256012316319443924098513136268401439374434741936391138315339808366049312418588361406097493495325558143977964612453659758897693149450757694638485765363217950707990260852752266620880054584632794345312332457614888400046900088351286017326262322102593606600645834129279509033129849206559956414001516245182514022399317796814412924558751956097321809174389273540082610588877416489526904584431532062626030686815973343894252312430344812626443084451498745369676238692031100469040450544968207332817183180920654152232595033711583844188660997709601012887914277359368132265930669449444233571435788165998587546239522569458191751402463051986992928848977300905032714448945629882221605134026804390056658908444818622806326280347292116449217194025413053032805727770827029539841823154944609931045246377622273758498001293944857863499508006528587621729923632061352736810483684606142765675755569688419517691847139293347249376125752380299882036658256619508751113517713618679273475266671414226963064365317134966196643248153777125057491225029537272020949456641794318301953724610726336332089951372751731139230689921871114677076313302995246846847070258161593391960152633854082879774190974830373405316276902098999250174827189570157460102740227981823002801522303524405554636985702416313487715093361230921313610079674388668672801662663314386903437451591082892550262296250997324302464273194096861066480404169555298290386552352892856510763370193281257012871795560744096966445778364831720845951706507073838301023072940354317163199909939615683719002968777096404689765647405844357737364684684008756729919430357988173057887920174780246842972818520731062718163360667006132479395805443808880720187114760879925918399255499772430521072139921504194118417891526979995805566707317935797726573845600721689376571507826493367449049788883064664293171167874692086253501426020669061069660493316338228450084052061423947148825643717932881432032713099034822233912864303769581905975125153447497975755182738905307832797044675536789919869172759507326034704138052392371794474123978184332060920773086782580661202663572498165884919201931138434096873924680502758909924575353859384177533469153160583989254274863990898839667296200593983817725976872854516464277390319924445525795172123258886091771145311163960589436294343527368520186140743666516797850505141290451324885759501952722279378348387687520114141634102683887836569623016757318016281427231136123117643939368990219406280342903581720273170153127361402060508026132540472849125148148636839742017080398047562883233836989441167916449297754751301373738759911353938745964292401078589687595183876894775019297895496409019049170267471538036291824218086102675934006626369722242471087633207182426198069737499891978751582768356215946696137854755868998295931667705551701038082653367101893006004816167963369829717276185642649565376619033905429726908002587409709483755611337493145469710562115410470255738888541806041112274330547133697180382330265489061533159174015727493087233125360415511373418939039111409609965299886650482273670236613899424063328615353802497332248344471666439405450767212374871082921070351424366951886451577635990037549285064177035439052487100183700623386898149782297181315145307433114315375871428936067375226041026002267407259308652900489878347919642126808233446006222191701270689877499449076123080576111817251366770570427210853110094128603332076245802079116954822814510336545272917959768785471605577462913594967743289013259840111200599363520726768503621601973270601041689448412159281949989246205359578789458129540186040271926133950205489796920314060609103123787152999560744197565023343261324318154571108274252903213335037447615427244789326348657322090734865910864950319882397698851405851174279917715123594953230195705347395046784216188228220922883619460397222564340211691564616731926601038882491073126753835605215886490974299140446097152967011533168749022879507131228340169470498146468108066675986283728416874653896236487307384302652923384612136881190646140873858327411985867643345365689912509636411262884518376603135144257609998197622512259096102974612050757742024562495776253196307749064041334287057651357565469821085216921135030995683846981639499907521030232524776013135349911095651991562900112438919638190975536198007489719676793317888440453176614582597376948488405066749876586058319567496173573059433319838385690422092880090777363003394556623972390173680802875545131470067738025558029738436803460527296395362224250422257208231034727761999263912785986853818228174493747775702813422278422699994085950801073641334621766307707531305471844150140453342210239557845250447551012775158188745905228850056923184612381894627570250715042375116897093010600251038623463063418518905034996338572449144799124338620663767463577940956200000831008018670949893192841393364287709259402407517720849594520348855012600245895237270498297012615105124961401920612935519184642142225905702137818924305739176004678923592600904938769478932508219464252468575517110701303658230740807548366154798366212899196029478470408211911464441792930088493078779627068553289727451004304465676938285871308791245319694677134431603178618083868383668359171957220752922184105683118106709861877492745216534093770879460354222440631102252969770032963022889764876425815966338343781127270071327150433577093933410264773969214470116907090758851415282173814272922033828736501145906224117896694554185214040598719013455637474816298372400248671434023052557226963409750222194287555603116531256415411831292900897953333456524945883333109211486272652522789257039840123453301004134138323124072455896254339376574189923975974963817469023558742757584639997950480652991529396454124738746457511059873448163712704968012806560066108508347573667632522060188087805629706092449428014482270951042545413856528509195712323920537000037959533453719918135808160149791619582601525766975388715909934136187029451199449767779530938204286830019001970675795847555960699980275712231730611084178106044296676183687052609488299639262372165199743149518283327511839288592694980247033193665935049596907930859554759032611740412486036344747481369319288112256724335533377463523076996108879464058932686647701048638777956155476900711545663006010228583705722175624698627996718533076278151144873137361300252436743564589505431617770251941673554482812515333681863385244330997093838419207226192597594890487415119276459814443580698677416675915491496824809984355356539908501166632342526016464476889843609970744714622958603276270745100908974466557506899070380765423198528061004360721953095452435933688697556835855426252638740940526918764200228898106376948525497597058126832950460411979377888280614518645013266042777922669742020589762092945758733267254382016353802153174937279043204242079511979265365966974728470484657358535979460561022673570803079989556228750408212589461855828057522857105632672386971516453932823101432198317278061088991716736962612018662101420638140412224865191489099671793417777240279465058611725176444222183500560760034098436026681322030840665492502352400374211206870638308806575255871609979638393958683011391116380740838623097791316975772947561444689460526606868526327624537064264087561339249278266635336285731032773066650582441884104305838167156623409325339314203801102506222535129559995435077082725430953695519063122543312018794408913828516571921638339089056162766108787680648795219515895484239589817943437034838176065089775277318468702864230806569559539338145692512953667189093818378107470343307151545570210541643057877962285325388018208282319260705703908305274800842463233378942605722996895207700802194662790511110145828127039086644321559002174240771785133200792262006247418090241285433456825771723302625355039857006818598977615813889698424091962197663096510065635729859635271033617502552216985889478482082134816821730042487536337736214098312518001899356206317032801645794439367877045546571238102162321369021223466932203747404154875977200877706791849851184129411592492052244575244030843399863600985160568299665217209816063561188861875810420960981047993720800456480579251945183968141557641581725069750227342275427302619762571216900899009858447957526108246861518601915381621180756478175782330202496883593269129761650220335934571328794538925418224771528051377529211385642653775536574636169511012485708335796437590038813220038204313529246805975598069503428663758046319361383722935188462562069293681552916617431681122334707601119759840301505018467494847051617044033180872940395093268324134912719514088545845860928976730757570849370374360011560790819159879447805268117572608947745467079771648421840981901587300336345675226438660376110117029643851655912097450701104762099824992680028922345922540606888305374674117720579177387855072771427701989290422444595430243508370988800258470643803427431387747814890237570136317457094566483132791475997218908064359761682594670423770349298959073224553037947536608070261770642713019082028473884135351288562342848045822395394829624287506836598780586169573058865388497011631800400363635452339456955551042058329966628220710994063351768321960737414279279417351214407106067832815430211808232477712228034203423781607242634305942956635418324470011028281405957140604883488307075535094854348892996013932921160117838178991450747320757928834699986106351844272960332028080932603194993844714408646057510418002659145847242334402079265685929452154495512773470091435013805267431957278491227416832645209813638403577000720505075299255972766293618453223088288469901697707854702328694688725204591233832973295882615782109584768267343931077804355344785960866164773976878064806103278990492617775909832904581549489912237150858340456936401020192331554158947291981289466024957798510401681816725344220470553327586757625032666545540750875049799005059149535490226938493311880274239002595399126978825695327272285860660918505269938223698091838394334317372064896771023425313613906021209481809800559513556757987834602379317881037222859983804760158779835291658713776901980854610144451609703701403443297009193602497026197063620900260114227126739736879033166082411264605251265396113977791683472784969817295103833578384546779718852418259018254129478828027725571147140098089335290744076226497327894378836719926684598355622031535452420875773484624637683631094598620249930479905164155830344436991532894876549968236947042628910630328696899400369767012671153265063622315810224329631455960032870968883042772962471564016826205793423515870792204638222034195511040750619534472907042674362975103006625766916910813026128649780224343625441705233002267770631078094235463693232687692758313618829871564718525720317416985324699646836820990851331130481163125344143061562226995485745443414047799508355538416951466954614882840697145500307751966454119667687295530101299717198517193351955681057953548489095421740557154312805720809696185333543719533705919848174785532654613436896023404796697809137755952332969976794043877218704259503157481905426652198259101707077996788854790186018727945128215310200987423371418482432367069140493158277791391771385347628970625356053963846623762827433182901554133672267743241113467987994035591855620006580263083112277649276851163053169036518063118719902760161174781425182729335092994126451959168378739085937435311359286695843290073504694772897808063376499783809895089732785022050689589509249452510766696873427309379615517510906028756012943810953692712601628332474980356786042838268080420390219899205530849108885642481848635177730405478033837318087145572063919159560310929874810849942478107746331180253959161525243658391823580041611212175680555574986353651629136360219495097384010015112073399582367312689764943443029985579359505526711996617923392788117081449035428149920902240845028739823571958493153465621647813191435875069538237466181151761434533791483081884983851222275530136661308498021243022716008353797837924146366239632306245549328748106560717099790325323578822309254236598540959348766881738698521750196126464189957199489235987175158407561691427236249560776066194263894017759861632560390622147879163531446875573335924325887307252699245807865335855065806836362428899383769468771631939913709438258750228060560572427356015210530970024454392057757306421344146088807013343936120417712948952359864006273179371299373625125980034123682219506469590602541840494727487537617199788264303348730849230220981205825924493538346551268579499347793436025551867159615981457207486308514910065742274351803841580892783025739366445327574043571224347550390542600072652802158495135307293075535316186124844741877901837911746177540389257919758184258041721746664935243801766769328425234589765258358190033364820123605367893933977955023696656380732159162285980179424190741057796122299854930966995929780330671299916811454037236994475031829505204397185393487197203131449704675718374955506043534463058333353443871835582110167542347697762448032062949047175181741847320755550298802613149272283056926390646531917966764247823588856233508145570361461039114362010775641182582311505027436869698068111969419112861588303694942850494638216579982921513957477119779341376055289498931474799749930033931612195021096157720894135472210608288563159698966246950064488447558405613391457963327308581320680577256521863149626737290496390137550079608407000110491855362123282558863606482392351143740615048031321417037318592129265703455323400657284349752339220199111183925560961364339316217251055250550389727153967513265197822074771524495844571616744408549392516610260480383332751289067480875433503978126236624474378383599922290758332025462001965484504078470037163653207113973453090839783026942598513939773090812300114270011527649939724100135085977960111790973281024954555667982341236122060691314788878429272219152191471549722826284074002015840330379527796636221222535620296658795839071618619267244745020553122203816361936911268024751499939692536696449815576146042109892875021684562494735148398857152132380600962957192563893692017066859130482481528994269092775230863423171399524628453931913752898297112909475211373644078945430765225122937259782714429763882805186401525212460914760064482431904290922119431488963329669362840097577261505086896964990918148873841513835681485107492869335409499054922967454236068225988706913562654528444444894886805221830660719657933536696341015963930042217446727501562310438057911458546697474835677201846235463568360176033340862150424361864693505122352757524734311494943177861824044177822733683562171003459704143575929553373243325637739284912342092195407099735714766818670534532873189343345309932525123328897196380713300243826830847085005483040804573791915926999868978276264080802852735727353918355773784623695654974799514010842604898554738861222411019670114568809799876750966438496202852994357947948366615085717866595973675492931964620397085711222123253163267900183377398378310993417183068626124122461484719488075990137437975992445772923642244645948968350856415145293414784434019819131033929520066165530431901971789657525260248673593162847133971234046629635013006148188264916050519178620280888243284770901446001217851785716920859994119129976609857133773153914534929902916640613648454872311843804043055323322007844580555194037862279852969144826529387897031256142907996893324247383770928434716302592340821714651835244038484883627542023829252726023991865143526620235238487763435224758024297345675097860520101306912019672113794825459127244055639860075079337950803903170330261698623514081189358684302642407606791674931951077723877287333094891346693623389241315006935890475076815291489026899388531072272808013008146984933403737879840973958101760884115846705590227970081768737052730951131617161848224737125807071113565506830773031418749587192219458133129654305811129018539549340327043731385635551402659396744503765949029288641533552641107481106099279896087696668054645057482110546421407508241002972719983935883545590066781421477531210881862686281682631981326236283803689748504332827810720389652780911803928634388374752646969950501297483760095000081766418388152738303938650532918172475825710747252172496835376549147124096392329429029727066393047885808256285426346668063301898336727898627391091030286138953037695210560405684228854424982814965349905088019237534509117936505412324088753800980660633970218505928329159239901908866725161366659714961284558134538548300463504937700166307717153226678230968441134227544285304105565051548977258955375154542529974553915891169867174623863819453451062596789122529228286355499192586044420904270734172314694139863735730199110181624326639915123913903157079440722622855189394446884219545170215961308048565405107483737834866247879459858646799496415917830598754297793051668736437171216324741058528153472187365272224732854179160961900632464436464382996683612726542848828948105580075389463878919047270935495037767697092344026196899423002367924015303128405524800769124206628074152434260743915808256411307404019263099787718458842841524247646044715140446868026888199166541941064791918939478093347288156180270827796177967681288599224605024744780801659839090564810330177276677398916996760553150374276587423920629819274781589105830927683360085058245414070173430896282865925771909390449050851703612026005081307324191441948570257468143000904686555163678941025411163753171322384812394749378000982725703629148233886459847213461084382122500944073991835804803125214906579337995886851927883450019021089793651713039409342179198780036883493109571406692380040915778352457282157212795223326075604871343352563826809994483399137531939156507991673616203792418101747661818670822638977678385184603091532214160109108853347431091194159707769638208157423476749779718418001203019107119103423425909504797929636254374618801941205805321365928147369153277701417499733150076514179544603635676047790819184802297720391619536399686515703872849244540414607178047055817881533233134889940186585091254021743468320173039362572013846028148120772772751125188363161085701455273752485578864502809558077488518055610251501580233748191927697305369657877061121993318070911408977401183504368126789438507449857112107802123123101052713147250787051796831224534990549901775283836494044419086373236927415854736477222188514045309163397572525712999918293726900013433675453154986247070587156074808335084075768959401729827352063322917860121843948417020360601829981405066221200570579562737542896848389195121380446618148405338021711746222121219960733158334081561086935580029819029345996933528024254331423406689964394255947706172065340873855034644334835023669039252490193549084415218269235367986670324669895410622061833039493130933918794023494341523658097696727447627415425154029675375642358004920876052333976197339671066121616228119772639299167812821898617942733632314148141022760214743275702085281239497593457945519716159470078496653147179045482513083930930386812305270415977018584932096770867001220395341191678028051620350666272334271755418481587937521498189214123151553573819805095033425095175072962787308790390777881616436194937255800994334764430605765547139172564994181184816409125324212116984889165242161743648659221212456667782172660297545958053787548054987555673552119525982994134087158275479556593109860392119702146172081294266245040937000479659592215045143643290099821764784158183711842000302424843067483996764483708204024327172318734467082123077386648661156496121337679115339477253229254162286644137151289525345508796804911452798439763901426992501883838604338002959234568583243009023540045996339326402845331867768634185191069454120590360455273921981911735776409774876760011759815486545125252921852613602540901274295546995741281982452064938966818244245221420498484531917102977851195620369682143066030761411023195947890269212239739010093317510044377186928785658756333578408281810963364113745329077591735183678789467466500630629554943902267825188859284620599420927484935628169138152969365366905504978618460327668160633036719609032270768221820962573200871917433097675360869636081303535441919460029532826329113005081582797947887979538953382365145562399016722926073897415636852225006494437798150754291874262266362454115041131390788336835097650347614545550581897559364758136052008702180153352247664940819189788773336119177056544392465280187307365332534148081674855281229897350702460062325320515815598823576443369456751740044723540473899768365175866059039503915419118612032791192262983615898298822929935147662902435591897911559576442955435438216902056185795444211075632781055487742106605286724014912665916532027257487639955252460876686614254787698461070727778213325005040806403576170487987944293021493911179096862400589970228074678832925885509138115455616952567969887541918385049892365851687271486762501588487445154968118105814423178325278580970451506388066215202167214314769190281268863923316792065486400599402700567883971105775115771803212379723669271067696316258998841986782467822488530110907131898478703643515178396823016923067099027523456010597667891495454587545093726992717415758528802946845193472656349421254408310116791018970081532310643305944402712987852216014638743912404791086950323030340591523376409874761321080318750363686041809732242940006859570715670927342107625910424478174754752501164864735815096091857114355310611515937842741553774676965918413201090354193915304240243332685641197115583971440643744670173935082003392877991940184057094067252135950122483783750366997703204166451091155612564704540364159311021975020759322091889071774911740328778368439966135519666424823662777022687759722495897688055487026517897434505735864944902772408455979389088809112450196922422011255298286320111382506822801720197276192728714890567478420990212871940556067853419943879782820140140883195718259860553508730497320042461327232992223450271879023243276804689319548113292881236929048371556983338025208378636337045731973510426550901068430718888663557152598055755236129736470488761243645124032021156592341009440669910986691993762688163510139501588587772719297344916021757132606334395488732365297291849176599147534340502317824396243358748810837823516310409696575155851654231051013803391817327890319206512980807293996310141666866640768519732047622962033729637901625840460513693955934390821861785759277938844108406815081513267130051276050337319139067276145528507859546942894399781385629843379428185866143102288696800898665690303646961328316689362698396862213720369860229585284688055386371168076934942682781467941588179548498927949625790849702371032148584078493572247023143226038180218498695090437361554079902873729010924570016055154030858749626126695156564598677970723598295182689028079355626845571100857321424029512953375702165093192738669788720721660077710843490907445318218737732387646067473946615942502954269299979308610205975360607337927365610779535287440782394309842396222408661600145492729783711715857269141867555879910725883394001457873186111776543962375075629982688400669603919421204642843092538698095173747367327124907784088599433578407223011622260126627475965544794268837962918484520309456024551187317994298600210323181099056233092166288396992027975864163071022868652000692021949987612313861147314213540007874511680478225693558655641406212327175889212716156121508475595263404855764861018512207756945806721308656316120806091991900085943331323710874073946846352611269234417794627772536970438324253337833178319187509744402745587464288457407124055725683434526410596953803827004554115648549923198210492468889773148497533281385993850751082527151776451520694452924495551280220362960336138364061694357457057306915172201578848219680315915453495788961672966856041852452137107832672656234626783831065440115159532192893622171106355617848727059772502130830685178853410510309566687683150473057303644935469534992927999590615574085107772452373580517036181324945380963703705132919974303105583310611058412725919807136911797867443161974443541096256293392737269245869503771367195496535096409292995330393287961951227559836520541315944761990331274386449380423218813580082003154139688667961151068294933045946683915179864693874322151184172836830659033759546379854613089766216113903513227932862100103694343303630966935386466798128701419653751129789386692274125344480583145229759933521976986848204349042161144394667747558055844680423789180389171923950140803207056454327158665061787298785284477620502462192387074753462065294283334787373437242922945855844285136640868015268246003490077058803599755295574018150296904326836922212796008016458461421284080047217583515680512338937967324603572517478013737443350650977781534890960940958574048371971612720922100909387890707479458936930725633624980280260035555933741143067679863875485360429134194572859269372519563617842654501620474664534866804302237374139527575603748522467125050105725018755286413641759374757612715023443283897583916631484974408608848030621966616049092720756400245230273924343575282764233044989750035204450561619054840429576487055891462899379175425768381408767359014448169154641507084134974707509822303772427090775951820117738226645109159577067221148737452495300318289085029804509666031387760871435815593516808062487270982459004092896730419915814478127756680364178091439424941969901422260791139011184097562572653363997927664753662574230806724011469418740122836049947095949369354626042755934521131391205555478649799174922399976135426710246706578511082762794634065717086051988953308269546809776238043219844735900640227465793867243934952142599692540657693657897138762807713140300183573272748657093572093987956873500171183620543365978883425990698004878676697190816501547928929554944101620135515146517970999611944737191911793019709768669346725878744960393476938783771832102936470875953931329035347427525860342349112053503638401241393022215343623489912977080010040906629734582407709687406690674864039875116618088141623589572817108508098075848487644341626343631297710489582692507451885954018100970342671002251147606533831456965873623097290525242153933589777615373798383205108747007656583741229431502931197381403352818487475028357819861786932044376543597936747167095560534265057641546789574177776770999844251567263150131115881905919526834882909200683953590212018705742079146683775992543172304199203533660354362366447026259544327056569343189913145939221940009642041368807222475048465713059812542489615870348861365639021794527436107561938161527936445131761693098838072471629977415609735498352644986935372928870737547666232529546085745907376394947714948319147954008190702666848503576860316638944241397382751608845755046188791297741235743820964540907427375115630399078583422626601456309854030021492964115057562658884149605891338813979569265013981819140163406981385994556815454568046968709897801947297116576312410978840097512474981323877204400658625914989337771287109780704293262081964031473100578378397360765607918567251540506369299379860005348244375383601616562074605683492885738981331769917736203682021507230284790661911187889646672391624371586149558001398629550399395934231116966893009288690209301213535783524500161744765613979046214744105024914173910404643939949342346613633767163442581801006982070710273553564756559849480127206029998308486060233241827802923488746611205973411059233589184889004344768724959564294169449545288546361758538405271317396260148157074970717884327430485517561824787151264932643527992796936537651286683767775565258002947774582033489091344953462683567343041982808859818589271659455806517106627916533186338743934426744817376824550074841454996075506024255947537750540380990549589758616112648799650412873378089447167405773351152196900293393305701547715363804989112258143188424357291682451901538861778085284288306655062260393874976689230329776062882740640534895449822404139610725659028865983390862787051859034443285853856420343184225460735482589234046973193951411577405126476012060086372089407356231905390211657219112795247713904811807551566141150149531844682023843784835723715286472450972243686768188298662552104157732922496013105019686609100379063892929197654209332062338786718097001229125590044166726940440665536690532179416251900253480121396215109924070005771539954473434960120678802345626753558451446052848404506194786712228944529873148996121055525695799729066618619014116491528328295194917450630805678154566209340940989714947725603120093484037550974778365000376977793872841807981317275798901709681373059564904528798211531381145160121304439764639248332119350796555069858399804270274213884461370992641433320486751885521157130029922038674559330841251049855735094597094104401656140673409192589133639219144739451392033425360063206866984056851386471474192131846750086945949998746000985230086760102077582040012171862443608524403784118627379146650335486134683341829838460767508961715854472555973070666648790125862629654982230083228876313710332174838702761948075978775282937988998846715368607449666675400150488266199791670237272885417222205720662731898607987316203842784100815086875589765113731276911424643505195384065006723373750412998609475027290235317179477750947675480905481574717080439636461857312478733261070754931385139730012002394307172164071657344912612758128092410276927264165808804536626517686925302192269498748229907719083262696564702162220510441654809927705205838071407191724487078191887336201269904589899365963229594307181817771477179092654742148793521489650272380135031395675691639843829794961382583076868865385810835356478374306120383221351356194638806148884068569265002690009800106913590556809405034297468627886794079916294598872971876864441917111369056489595623409035006868870704676715064852494647653976742247936156808579819691030251363868479534209178068605854871465158306567565516832424911194184399966428692427457484811296613586486277160080859831598208017519251091558448987588995319721096560496872031094231749900787769612440666011966697567359532655841896939448519081922432400478679915491274703658499607238263080248154313425319004547472739931102518197678507777584473814680931635660578969781959400610183503003500497598379939482611944467457832423416579664823734471510920784291208649289699841061683697898722248972014967559700288885252414932625139721866976639170792827613270536655809574280231021521563060905780671307026701852505959367190844332845427969336551729866706106885964067002226269207448774301367103921480953194213919309243307921760173255720536580604212882315981658647170797148577065639576494657582694369826910450090612419470098394269840331554269286290048634551027482015710926253039043797756486234551460637711664329548653818048840778711415284551597756971042337564778225027020652960946059148220776491387986990278743036946618980613256158834747604292386057783530785180741150638040112155783761898244484373456457136492953414443963731820261940206796213433164030330216311501285804348364644476171067569478383919080869993939278257977371365545391292014107511176512030365191918181504616841142303639494901963701660699041443361168103939779339763937482834303380106026311082529540494500387596315104860211453291982218310210734761473865385968308638227642056079761701794609741544129872702365908915613884546998881258532372354253691120156673568383753780009847669190475515973949498993300984370363094130057682418922622905293919566674440476460774558465889238905124070999521796134780120722144503880884348651228874021631871795591535326399739213162367516852683055141992139016627530778041872114091504974639940838392449065974810502445825709088025188106638759955299643785825156974308504372409776048652252817200390702503146551279534684557941912862438180795594528960936807136213045872294476685295380865689572088616330790773528621461330270962966043452520944488819398322397915324537186026096525850104867389887220754991535325118925975347785245083044115652037879290729601890204535316353089398848094222385871873123680283495738327613588959760575299870741356743983690416115211443852874689461343387770590719465716490764724339802533490402996469676054664361012648763847606438938024563959870625972723907120656639739122901712451699717804045735540665813726456335940226144401061836638853919916064992479766101018113454799587906588402152896817906517323998173291125430247304250855418211082016436996480281123835506149223491226898487047272897326614605837355334922965931304088450124747206414658395955696696070165024278704196738608901713697204325842819721523163995315096839753753837265018797191034665245721047539199652053102247983591636648601319142697991136099375477889831863560358003265199154221528933939849429375958706499161423399834318427249225333675070976315037099066250035806757108822347341706981872552523961258194412439010747706860581366225502318854969836103047908387104448222202705187253495735696115823523554982065336820458801588957920656136284638228572418582590062413818355120434088184373565109998771175510755470853396926600678702761896562585029973758637762579526153948380299774827896358832944889524895022300041439656639742532296246787034730979414511715201351173841776135094366389955816259465241371053032036726936736991370496161894185633199961955609461423180133651861982949300642441278457891147755652593464769949438371263046640845253634915417778209747326282545598073695002083347775452619367739868938868545312573153460138830338796407093570090201867363998455815458509305546229407536929055236237163967260927040202583694091311929266814177397595023888369791167062731329939748751880540760029668502765696940342362677889777864734515844040557663832165582999304553135816322044082532197689661624503571411482252053081139450144516152262808921457031785924944623905106394609297094439675011598820250946223363080534050359195439929469450914273601062129388669041175214945343239314470490189159226076222616869241050846822313821192053576345135828925874684147825387937405537064249733041330732469789871910161090244129725620694114866644021887780666591197982507638661174906849651311631737709449275015203212652584375464484991746175862511600982463760088089998097253138021248544682297386931569851899540636154315350918590047918532393952662100471676932696970580271377681955573011388568963998915569897055122385120490983158935628624704665262630192698614766290833581197293680687462863285907962636090480514036609022726874651587520396800061387447544439430792520782508628226794773763913300015603263103599661182680356984021115783531392860410902689853349291790512962407332607552334719217013946587384982557300642878957037025516758717710162466583520927631880189571022193635056072873479646860381314231560837791359244036671080071846598527907537477422880900554683480348169029446948196435234580130912173329878491531241857196068105007469973242530601875499485698020931958161669915808268547449440210077317496594758710836826181589791280476719829386388540293433153846805994274279080305682091529139394654323173061377324243411440472348588911508211131170360059589095819312823939762481680285067653182221673410731334522559123257329007446881585850266560080892326413938766168407941411346495645232721539310788978456434706243087792433641185985593659864689951704042368523522626705111063656608403463634067824451425045138819548777691229211020294566232217583667494443769464053196600483833419522347507112631889469566029106909924530383929752263061639237542866169706377899834820194624781668148199309223397912809885621134063557811437035537175710758219766030510704794010440985212534018049783976935634821439084907172574723360900105691467067907813423398123713164856433879723857057453806694247198272588333291562200460837679289608763375621092319333924285758975177795522511806506690947291852919313554268143414066128590173674495767164217910958466393012081966250449803666493575202572855060306840205015220437128446433362819351798455750285222533299912023101438594450170052775297477701779496550614074356911953881445775711873325212886297376421631850185817893546560563193466555314716097350975673304899541852189356722972755747866463258967975688649442534975433774979768923651524566866478360744834279765528336002844768753421797555860981401799532903555846577553276359298810154031719463321084943028354997847636166414499030265624429371647038413753796747960024403633768015168928271399562550126856322703762800539973895837605249549502725840632972768686202363225161571676287866536412399635121776345339228603502777436761861766073499640345996838904012231563560890982808306477289192044150789248688771564171630156479686896459777077401241855540393660649386295134753805494045920235596071321315597102533926886545241555409446820517006625416356477481254459117386201280176664297987410154631436274302347195249625602509815683228463449634062552442494140241059003599956482063404556480504696231169064989441239537936732465067080623065226120625404775794170838185151168258398440436596641528335112499404935706370751923874382149468336914793673407625796609696251921530876379005539874766164817963324889334193068860900607742664014500016521133334288981821461317506063867323378664130218784472267372175514467422725980792555104270604114035325491140454744067025414887662652071731703776637542216075838894913470588585616979461332243765143985054039186032143668885778621382070772185602537016317119397756847906205202723876836152844681341535294924919083786166194609405233583544621551065583578765684365263470109359431775818344011936512208741924115787318778464796301139164122568696482851628049901146249889484954010758368976719282543381747427450785915002744656483318239666624921424964707773524848799732944198842949829398344343156461184273071211306921990444855361703288632691449229804663622746470426690316555900591615107609652141322332098467163013095999540408797490732445298304400141119555160034718194909692695270534055971007729665788721325388383509084198852915303718217567920740140984790423179873861219597498337478310222480716652063272977569882611711790762437562301064245148427754016208321324337569822409000698121128323396500343657154304493405659549022880417284670244930146864692747415301589210885284647861705903590317813099322522745418246621916134174847183417496048801488823449459342825086138493356753007905071739554464644118526184962352025153875469978003717188648366476069714035680887375130904154673860627988287718221202299574907881956959752252002999621297216029028596785003352643447991330418933457526049420295226849102276821509643450676773006059966563304388813961245897833498954248131719446346755445323486079249237892808572607855772312988593099448394084831781282444346666784180811535403909030641285542674429399939797692460931408826986918755166725661506861629795057894229900477500959588309781278892710907667992064578847871058359617943952013651184180272707030385816668768727809719560162658934304503398340846544889975482555901093548685203298821615205259572622773824590626721841868902129532127172348059630107945605476234796410825891183588897486576762464142320314976543241057375367112595106034059608374096459918082019068046652578630830863729955402447586925908579208175157736173615039162054091174602693877177548566068308692672189298328232019973777366200138676399083871323254956994504814774201385453460507539394493627057579440077951413479893029791354516127886237375939250614639946240380169564754389449410397767058620177842051043305966863815095654851878093793801467561690857658693854005214111052797611750371143853245015990749924925242239585190351897280621038919524192510785077565823951882716060493274424858364814052194987218587647245725995793996059707233900843362855881326096790298703213287332889500413653725925451542214227844873000520922706876055343045355089408211112484442498579118079007312993320966081383149422877714599237813537017065151932119653117018925704676798580409876515616546350095690365280728923547918239756655265093682767725794453004383560485955313863523017414289312265077286239207277441252484048235667427251997456253559008711813127882097059460634114850135904669712096684002103332980649317192309640120847487808558675985962296263658929090460433009062883410702397826103705453979002299075851976767900177012112394018867146747264192225572866547947336842153411617219575024768966469679997245876538398007092554787719697156279113317041570528640657633498558600077983641141543250168139074521828412185619714921445775761964914785119668939169289826860612396158876797011991668326297944823620495119626209493774935275284000695013965785975052788111012006468308635179984962631315278610084622594299651340167857094809940121512180996993327878389688623931767721158641953731814335746747374084709743224629457839069524451871095428321335302909016331539441685178983720579917791611357214505082905607277678660405105678807495409606699723305003473693378357134301899839913194106999828161907159665410604622824753618898195817875452788545822610188534958473803684771418780229803647435897025826670514955346099485549704131380965962692602610691673195135668437865194284057988211881980292636157447814894779513907682672579844177924001529957590266369143091648374657840968004529566236990899501309479784355159188663771583118195413149588785265234514664590875823207032721681913399367816518560021113880239404255256835743443236910508455627890729789707827646962192945975312546837634092819373644187324331135511816519567897128080583537978342468300824823029434536709048298082276217348452351103573421264389706459722612884653626358934907388658825509144509885317078425819532172804901366132224732019490462304207512169544720843921210659187571292850710020057748313329896372857400200161071253197944428712684846420623556418728900300844445137660935845681634219971023652082191056990994598820775748967835775932382607041965857701134672064667942494891895435358957945441531880976520369063532490808869130723958491498558465226408852997242324383626565662318166977727512878051857745324552258374303252789401789278979178443787374725420967210377667567484088559833404146068192844118819969017469042730133273853813866671485536936602557612413804026706489885073365797331717549456771031526937935272167872254833707344103833208809413408124162106436250491757280944210757922615335699187370500491103054842309529796578225992112085338984777184000771620417020777904337051095270419514842071042514809150367909930051523299148571905315921671285805890594097999099852784791261616496493723550407962211244752434115959951219561308049509679470872557088307142006436520635921942143924333267723074696220206797438871581780741993089104310503488294355064507455931511253064002501629250893964175865802017035707303205059736245014345973568015076713938640599603682501716771415597639605240320609396966463508506187683607309479052444505717263215990456430106050084537856834531512459277317904811452868547780681333485757677609937457233559572934470975519033243609805815900352008380912640485371016936373206011710876389317969805325782377091404879095887692124380369183729242467587352750107399851620981647215295977286510198893201534948531881848018385852497657808821135773652470319716871649035847522586912971016941425520983187246298962486367825422872515765497553699591120110735917524423253980765367291802695017646624932681376592036439001613716708612981135639652971738483897945307370806579474673186765694085142905197663188616014684926144319111560109539080493813524203540356037055818626024084773176057092490515506904443067472079101642055427154585030285711205189754639786698228287788462228799994091574298242721234150671238665607585341434121491798964437177187064042437011669311840762020032691134775991909150046647298394907527138788448648951172927261292831054470393492820461435195353880313313663861737967767737185003552094840055150181662955579967922173494154454645399715462115203924582105181498716190563348940439785339652600052037438572231520589839963290071884939373899106018330301141214544521749543423422518431923359740777218664501753410358211262317677112287222525879984146830043278715143766576606933875870829199143078134534943705854372232942539699099320551641634880910921119684651203990362709435497682277927204104757423077505842081250679651088007899193211978738619324506593742925220881547940617314089809437028908854165397381289348475403021376786784050194086314683694804841968483535678647675703042878215551397584118972411196410478546455002997707080636088314275122258847606733709639237176746667947170475956338200113328000194177211300880466355695660898647540540906544178738858874782558954779327597675259256485312450734601341739317659731147449540825982129861467293677094372764389281139199100824397032967575980039308961081416467116580012865281202098834653887080497243075106303600432753062343342096306953097738741468312588151333240732740867732847355476848159079639280987745847853444917778126881507946480278882193648810590267353281681920757841615857850374146989673275990957775086119981030737451254220598871181989732186095460534571749387113276567214307768973850357323917014431773943870355639350359274074938777525120102379003129057140397546777867399678704824188451076049912066709831359375789478407481313039439889562720173426753223145928911438135869073350875454795222925329431657051939217073107134379683066240893930930763973993857863378296333624086735656925034645723934255720381936309310144610256497790185910668516480117686081818438213610668867576853984349097855116475690287833576565585583404588932420127115480793862979403629020668530914191265442232826023036069070678553087816185183964286668532663427148415343530212676057408466292672884546811681425148330223446472859599346762912124708314393488451434298996345191786879343110100493224385425111025348216274870359737551338806099511751425978128391069730053423889498634789111106448746218906545794612761435681627348250983526319497901061209523194042923364635346557760864774076274453369691062948413383019537353636939936505380953088538707518111622206276644938373176911364344330735390318057217151092446633104249909348876781799157702612446232440688258384454921408984686295332200705805028262839818972944861868508357172061243584467325884668310341126018451074037285364893614384999527968847917714762601168919925895872401696826667178741241033018326211877251614862978706682355353386649033171708391705381479753901583744971742167550445406924891775382546406067334898127604153195250609626295341123185154255656590481322051953769367434519046243098323931685641404268567239240366028109752062438896311811149470452513238740664525923007141991309576332714834525003435747534571776651309682897570264712548496235024683037094420913766282794411238691659881781248759891007098565057947791099904325395740034027605907960768570920142938569332513214714215741704300036800776676004951217953943129757014052298132781994209586528080283451062998620830190385004236037100507586056646494964518495872996446774388941333631738517515143085922935558602286628638140817836437206880822617211944171614023155150360159996777209685978421414648826997587425908889466502175658167437625388312096060033031781972509102681882278311411839421545681425565989824738672928801901294778717660789556753835709931781127603747300627554549138723348480451866593178403088976111743118366869934643054304588947831856776080350149615684404459417033709503105961614376510816908756397915639791489051229481511980659426738769141701860336720265369388676594214605491176474753372128085494620164001464202427575798262633783164327707684538132704416581008103858487559506504279445671655627257947719206632557224595543364320922800083169403155933987636965104173063210375471151253729523835622100925922838474681523993946435923019510311977024646941567307187794016029443531938385151329914786297394454217598299956653299876031146401739798763847729448804757723894569026213593089926142588960984710606336451817180014559841605705592876559213607939831939777137040836347601828175158145228380948757276287539526928660366486285188769191304136390183476228841431066682436112238920841265175781870826931617392347891718399319297501744122704930582052548874755396878911151310719369444198188973328374257780369497384214108062695790825304332367181831337754673004361334316553190963824001704351470838125673261648693624946155274338370186423616533072062308052651513244114798817712209008150495799698637026393980685336986616909509881204141095717332200468319432079524453607748006884138910944035287033932996652058579140337345746140205992849799541068846045912303608287233252397148744235052860563928115365550994207038720900127413676521349638490349390594946764535524270876806559448891697494407327270392281938103072608559023978559890759983619709607343242876371412485054761047948211903538059762735469915011965220732568407307884792647575779455062156689331707018753873173648361703760335315321623879881960625522125056079900718090677021814486340407403693274991834470954197687826631818310453961884117559610631869900703456905838887685182795065223711566281666493074510778741019568440288161740883251977665636592566908671997537855640733673647168493196392893417080661857806032032337335128796467794829712006222034708766851939207445913831280437105594557909569063417287886720305604373357143541538998855167607506938459753539052935620940095395563232896987640363024241092609363383682779800057147215678458401640521630399987127859554023104827133782938388256070512003319223211342020462177706185561556489531517997888221771158515254603987481824988219493256998302047980077407137048081455831046939290484733937043901351914086800330108683790153260551227891854356408146195046071109082901303091162297646161667644033170696101422916808306156769905799438895962872437847732361167350236540178184914783417002840129744214072223400622058101758839957282592185561709260299691549772275003489086318209177807834116110399363154055080962191430936068141948904178689500085769111618590117677358434658268137737833682485346704229174412071768074671132487470653733807236348549564410556219615405269359590157640217924463238308325580277310891504710582214780127461950873344284755534213260379176886943694111519174493795938143525913204479609994596720071414717852437504517943200145076288937694178391788692094040892825443961091537808399347256597637371597579954027578513431358067583118172300530179143527397181426851841678112402463567923549089012297658102072005072311882020397800327520928470000915056807174902106485348065383576587609191167186456946766506338098357286451649116600653446255757227767434996200230963433012828718096699427191355980387497847989812004348166077251511415790099708694355668023804954189688309843283469021336513794777134053011869385412650097865534694375622683406197437397766537518785451776137982220711458009574822244626681030025527935635300057114274666830994592910587939027892936380430364758401750038968271240311414957190425433384666963154300320009225423067100804322819218097393209684373297648724876875967445902997287209590224155183310383218187526782713682153443703793822998683553902263017218154313275352240279171669410904302041292531527520526566056757419587593662150542859410141006859921223993734892346623709094042527258807479978567966884385389633900981209011357415956867804887597875605015665190910074710999026109375001583917231240938921397917319298364162191376101114126714849028963821947192277972197215759723538162986097624424991554606030544792663792115909209131391024908147308711306808049099886897943255442314119312741383726827826646476258556447779561350786200448406178437321065377259040494445428280460131720480057163272566654388624457695552457220810310582428702484909253226376232257082350669956921021161650919392901261861946412395158168466944202849165361090236319463620858399158041610719796628002658135102422102273906710457272636261812185920388015612274479188340571219044334692607608361965294314109652923195755433414690018156499147230353695603284495370530663889070623029773098642184268543262501262103183963636444043694549316021156408643779449523087474926024511787013293106507285915614354189583339253520096513525506113326898739388279122098394080996929418055634662566626255956636006691021580439097931047935014329208758940300817788667406592537628020857144408380619719484274121473657050720932802948176291059773670909152905148090693921655344894986595704576033202909847262675833749226379291520548963174345559274467478937498952656856392094065965360674372567519437564095954359394382821939841708679688267404855687010026289690216472452236779989419339583357605859887976015838246703462416612784249438556245859929389830738394556796076561925753963895885263682371267681126296193117577384694990959268580603284827600675163283444704338699351525998390435132237172872181316076349732854547538722554272338390961498935610940240633643585362416904630916576078934575056311429190168514725711804219222473109048689162131249658245460333064034799704551774520058242804971855684825937743983183708496660863356051773216997767641021511206238847237105851144107016788498334495847187088505654124920895785174373845583320349064357828168545154398463624323509568248338158637853823577047095850626525734916951805386971839209462284980301677594152052588521381141759309516209753086702566779402867822001330852006802670146176196010790203007638804450352652309292705418061070317144392910240612947160795543097571350133302142052358444930002208519873107482218283846764194478655191410450626174528414737042595557742336113731105491080336025175756326005537148721831556667254540099239605275481509404402968153740632338719279974281372695312577358718371462316900985036772477926083926582073448483568038902772737386449045565661120453937008816302536943739903861236235211874044020288449681537684723485509146465964949994645315068850748332009448626996600841670104892505885486298253748513162372038558411728465708930830388843802189853976152168147461300761232377969921097312550945712903938346876289256203596382155111011756367426397976995719249919527869782152495891316193650040499647562024375667922347048456155573683039806888242268276770803647521181912183800959272868547876977420523467409412950167989530055866519210148720332072685782421540121354318162108668807116124720345275262402312868541608051220736699838315541620633470279522139691827546738331622606753693637586241652401970632533377055306416041433653970987895389854347195035499110497017042320863555768827745671541282045912128682775658896054403644299595605354996330921645175546308086563469652187508603291317332694816372644137363848415906496357782054460483385162563632083391435111513506220822316149510490142541969893701981992610005422021956031219875295044548230239038095142913561126542693621663979910976019799442697368622918463693754322536860832089598460550565361218176589833335158291094752737011751658643273444655916177807060985088312198330833059596977476171754310792938542999501996326227700474617034222579525594932750111208984378418224739392594710405750222406651779358935993092193382273094127215154084336347979681672752097158956194011392578651122033948871606183171828404609733386188391086571585018450693928223365990266811152185697364677862918449521842979077367272645027738833700705574547299294931651631595463138470373462220914188861745404671457777662684260325871040473613571939532252357443323055163110427136631340381288650676485753754515576799589763553571137703297351287074343743621626657673903157595711621994225970219638856126118837902501516821544014941629980396315020174237257263827534595013888406270193148135313696723289691306325344030609426648899948280428634821165071935083587367873903882460449085745487708292716036769338070338622646501409594147244347874224217098050465064111895271122488004464938891866501458001058400065566970857541255877287146546980308219495918360677457736656988024444066068732097714874227680241530093874641381599103093123408141947906926125562918195672250476348220331262802022102032134697784676853883261676522002763154060887880490208043295803968547199836435048909523972247084697845993342838638688379364657275319945768176909563895447228897968033623775341812530818086745852648258898934643138834023584563496676004585997829454005452314565807258372526727926680294385678218971283900084051645582966305768505429385714179271735290569299969800962839457477280627736096019781612531208279452331480644305663054461577678592140951592169165390027576752097531989405076773014921754252929182846989049463695990920276804375239359166989818872170893913871666046729146039870649823204669046641235874471674730220568179117913453490137563477757219257250643767300514834513413875366429209863771775528816414278358992830015380540759588072429538240541067444848091761384733815499240945094598890143757788389729575773017932211987144810096074504128317829320399545115387683768570799294129819135406677021158569682451836848780705729252590387664420760226932278321024916200110832645613208226900512747980842205511280122744357026605311689616592224228161258560283786132327230934441422645787793178655682055459514129635027726813855038754936280509399123508927230611358639203074283405409789625666857794052812299055638570696884777404382785537137979725762911328381967339726433539499189508418483351943809564749151328174151130868084075874122246704071983119330974445389143130243640129902014116828328876750592280000801974880719034888704467791830120362373348074716062471356966963785019221798314854532538820709459216295607763699974502146630711672173768755368043018669337802173596595857203822044527176167442061901792256121409409544405964171576141964120028176912544530335669651647809726583470050929397844568430341879282300342685842727939049125288257033443332834405832438234168356798966271506047907520509987879773539723253868473679296384148847364096629272242534839576604947058494331113392050706845747643649978500670797370487642775292108146808292487045332856387150479122742270388852546542345109802561961386067924839387227534503650726374555307717859064200541541237646676943249125472998316828076983940710651090891391934453836370511973646966202286124185763778413547866427596677140756368635515961770323289768525753196528155829452021068544319645121689551633032729935597196950830095101385561636868263718945612445307083686145432352851834528213534336495116347114621228591305030564430510176781125797992635448810791338350418617827333517151384844863849825935993004617699651264702395123149483774683679287380555537492225929048141432963676378751602950245627301013061747692614427915957826659446862123456192574387540278807402443247275160213149679355230068646285609678422345876670396903662198940487611335636554565826966915550350328880930132487882163332828897360115368850405435013198972469542516253649666646947569427626927630412386398753791305695039727237838546407778464679579222340722842072496524137580653291630870768760616953235094203182726310216059806059097422501294809414772585517981490680251296450331042033150100477346717573576082514424570016363426496188547389620534156439850090789524190014851860195562701593694753726217795850900025509704788458209320249014435863499961762445958859754746231949913563894046029727811021669176919197607332549577591907624698248548661876479055194174104743904049633664595808295095049043970283694051290004163311089414637859711417573786750200266491292451986146095065788825543914503747987327060777783455591337795550129565617587642428376924674199335475469636219427062717201649855878538432698797318154495002020465954013108401443676288105516306451237537930698249607244186238681518798831784320593302213745252558909524748700778348350661734445602993523552754366035971083045182703036276173643100083655137073167015670448483137440793749185985313860284308977434699374799510621230053520939370338665956885035343907598404115399297070371164472614969303580283063303496531897103973648138916774738215071699373345766473543181590630569352509293244585135594279106961909140244300944299233145598448154102241701514369479426858081870307978800633672543763585022533725057758921272742043271003771609901454934818474069803996117003041640000209680991402330656410377631287853999397053928959400800447649603857610049606575300507288318414538668142589771816814796652035074056485828660745954289919129373837281480073691752521328419588706478918355509886464582988940601662926605285325925276838328135858336524152665402991926934193431101528597728472787866100692650551205023825956217787602615239835416978930729848736522659292021297938525331809008991132358101672818377714526066964781286309726958388403075820295794491194589751017873929697241273783641000702883225220347661706907948602579190991847413523774020104243113377687679299464592373124033606037877132106505125555482938338533083097897174183062698054146060279070001926714810888095324326645554888004100910056311670887697097758194661733496506783836444737365009679574785746271891137213560807198497304472012359234310415792365455722731660001267094687390142959541528139403036079012007141663169941550898968245504592504813539766989247999230452702220166898255449277850391719568072836655745106024523271560488851067121641570581624139648919870480855314913469072387150905866509075870609306980514662311738895285917818660407679269717261476503470544931617813408903427916560698762767026374574474507160488769201874937873119057639786320639307625168696041931636280751776093379853361522108397110534664233239494499893311698929627060622408657682445033149214489904923512325605749385898914548935454607116872678845284029893235604211987518491954687786080125893725082486825279558919606122541539826344770549020931989284016318709737215916187860267583131317894676431022323132309642306609128496109074406898117334618077330568038773451566694896553513490383222024465132535921305928864221815760230174142725297186061837744397839766299010007703387144697241775799669093976557119811342211511449014592358833150853718498261182253601771627787318607310804191822854344456852671798646847277795971663055436228006501519282860727749383535774624394701346106444393868164177031668387412374587763739854566167232397344031944755398532916858658380369623672592547544360296194697853039520214077429303583816518102711108705872810190302846482529632771343285788567777975722561996726890615253119334012905461989390352675193060937702271984354512871185996876992646552877585662176334355801849028809662105339836806296030979291049403130355850558885303717645679188497517553428263583048262011322278065317028961934322706510010350619112483704338568992604279426192570304482491122709855906332503114264532272856227157103786031969935430098744367448958646722453349582498201091881520570983304573948258490054293898322469599240236981874159312674365574271790836269687729908124511489804806307735376175159674890897277970383258513238668360002088094547988623690554274474655839860949974181718455415558342750930321585911494737425872694370799169718479386444821887212340947791536080909847127679273800170241046396879166531846883246940811534154478256945697849028585883724916672946304083462938785396782418799514679913746283782537585868056089771182431538965830030070050409291715466478003647169556921139303232632246265369637766914489109149637696645161957535432682276171977846201941476604781880205161707069352644628162463834080565142432378085664300514837302945694478768023284554199721528868104239688190685200673776035748694509037108332623021059112780240552233165336949268294226580835381360742578172657419887942340935457837956042119780229922626064498522409911613418450820187140924141179396153543753549310442452100181985745096059918311921011821343701317504479109723997914774524288210468812932618558619730220054118822492180611231397394448203943762874479556895263390376847238290900546547001774815876036033875907598920611279827262016419833783244534375565200436652198205446895676162354561565091820255483909773722595848353368233970212435224832105706427561005942156789300217234052554519733942940515195869269160014311249070819308093113802405778601039170552727419635209864244468131339546192036043621716297783638195867162871755339286041918138055082666825972799705498145772859918006714454458179710135890584581353730179559960361439099610128797972706494962900515845505423443995693168684032388949739688972574841763857345645370076874118941365667480030592176874961760682998578430591280109512241071713043512196275301512103195537432709259405826373669305820073742343796923157855140985450893261790017163025061535134920245263798051505299796905398833401798207208702587550861436738529116814224711073139365021305697462850958562088770690375689328932057179294933390086361166257782371715358567484881267912139011334885815522013622542892388871247196436443018849401086941995255031063101510035071533966591632037071308215336080100528218829300205005073581390610903547127410376692304133451103982526701758538291131848401776249438842653303044828699690763084042365517855022718281887360935340514182953134216156525539659681355329258411800681177044601092899717865906325474236274132397671557821581692996278374841638650404019870265345669439105845260633522692163050638708620244693943355240076713457999619866569659624777302779973100793120277410272799941893017414265566730039993436645565647755716968612553436427691398360823486954796944141372406848642160128867448038550366529680299436659828768980463461678692878688145967824067385261446929524909000454750289812720094502809837397644577315483897994949841633962254780964576055484503245342564309454185019702869740161669569577757624428716834122108182977523091270971209916007724817379060475126395043626176146466814700343893840311013802806749385168106345980266617745852294295205321164734694636438359392764447433943486233666549674815356769638549594646268616657219128815666190885813866127531184538045292505245017184206042371255874732259671612557149903703546324083749849928484244811481740798654732404317345658055953988633478813563945179043865964125561866983855530862803692841379884872417478640061481903422697722563786442264386751290677127008775221554112305933356094856618996128207272140595076152062829793422365074831188019261474640079506522762884195509207332085027450549710161627477695439554467924412810611033205740918925609572623664921924567254763091896838213021727627642286510525906893450310423219020941594239093346998555593354024307334832691080114190458599716109066691634817469768307101928886569717034112295655610441933811394373862937253106428590892704233413692969170609998704535282015784565230557197538277411567161737118440143233684048686872140627304754350616891966492287990900771123395967426091334424170950287499204050518927747322308124390101149459810118042075463930258950220944191751632130587846017338252591145517552775938342595808586423128777220492072876257334183425598771471355448327120569465003524245347962011336825962404374268012027307486625669848878130387946790744420836158789556008739581710412123094722925174428404198264890917470259751141154222041662724178169804014300853621981342499036767070296747932110877915920840161100748196647661109720097389125443187648671559165301055650981545463047458354735971039746286239881034682273990852958106181374094854117287483262008198236935819930755874190126615405147038739268957501001050923425931507768672949037286841009952764673771239034652976789938899774139908318922874802843560553278978862840884711301707373111681027053194473572549686253338448411357974424144327822828111887238253289255732416876802442547109958134750751394082235286300118708039499391930476887465058164657571603564876637090703616663815879011673890704210240521258012764573906302770493652266765372358221375704931533464406513171838831445368305715177786914217085627905175154174467620742871749715396779900678793357175226699805728108977717595468206399424519149324057300225727793309819580572939281095494094551653319007847868690233929919289773153485763064635330120952735845959073833315668550241681041486087537725674949558747463314824112880251037869658789238179559747552582785623357369046964747476911151710765962667853435899630749687175959005537236393798993423453556650608693726752306166930071875836451383987175875589305096130322511143842421800292335834112248975611530014605676264592976762787376607317290861547009292678982952919936651441545555726821334467701757147553333860188461592887104900620219438084737753693168506268236331461564045370043177508324493911494167963960174072837457293458207516596179095350276868103521060455516220021795875328278510602349833173653342486781432757515549167773747572775267090890061544949833994032947077754517253147934900626411739526177725266105594031396302826521561099958510105716656577588444696500426772108415904637993996706811375520463128507891510579010614695842469536888218776704909179564482091267961603108318931592772405142295437401470900425536640807275336817681868816032221015501033443975918411128857057697600888316442128072345407228210555092054946572585362356183307114912954143616389608870501260482161072606612517385668775581311801973531226676694886794830196304542661987024248778650936298100063645085514045626807227337804406607736783316005959484701486474791140399563548008795894549786158357473276952624341312033995269672623007573655416969216490082405851989075562586097332246632623281587487945890555351406838339777064200558937912166853667126600102260050758535119120267120369779747955679498553800203581376493817496169714749747665217731303008574120021242726449375976035465663764844084773049088392436446930313324855233853976268014603036090179609895033044470043065129322677217752112127140507618428707344797992917261214980027082694828962737615164674395369842047258041875383082577597092824006185347474757853540106113098839937908288725518083882422773726448839427323032116269929376488891982571526532094913685167595939555726272793318554634815822521217796123818278093701983415238653416485216934503831389850566723783757783047114481379400141045599002309299977460230398968273866964092441389918180624847712265044703924861799053768007484522568080012301523685502243893420521567504780167388730341366400660638817558468334527096441026591487959907390614578932475365481782268495800796361677682711629698650963159078262794224114848201791442216238104472354663487711897110578498801829202812891396314756987218665563269251077588875404549153327807849248830710974836174999831106029994567130185681139882677653215045611367217827705351744761949061605685589806989645410007587437911121026832005125050570753478187907066962635320963744442820233805615025692555473665280505658302328456723470095482017791326437756830874035529570562502057493392404176866645767988829433410865327493611326553493831475395340083145742986002220525500669544428283488741589390238061437150622604171826777247057022205798822737538710994924172626184635182968808356879790159566494050552842490185149015360231018413467462170989785759442064652590347702616799398981360682203966099297678168198285935278892562937642001012981817150515369340479531717514048675980353864577366630509058566938070887185363835620225631201823040245838346077637482603228188992865485647554377328877177452912916903755872785023577670428839438048514238985148419856267205651010139548570555201829852066170601310624040765270518262215522075323580010775435179336256268248370311697759492510041668548789259832449256096742793004120735910339187713964041655087647469975368611358196458122144809042176667841884605129312713845685487870888742292977369508052103022414636446364739915391363521033991127722841660722470610989187688091062078157884654430141431490250400295070163038046446667368322445184698568365332339973218013389417873302250571637766243734554061961275904808565702061786089406411686905833780191066260098462406266232144716284398962657683978222523250644862819675161995777682894737528156022863316460894673120514127005857735429572355606965857837667507368082596428218138585503036892721433440686048428876179079551193602932146071585650054765833218244219879329962027027227005850133707205344197818858128181210954093158019835697708221462477531704281662661848800746653789788527665072181569954410928960081855544928251510647330561250763739827955027237246573392657110144053324700400339675937767131264755185347901492367856467026228476760007295590801155822896279419410660141135325158686907404346618801978441753466016688379403609979385050541095620000479908677673575153061253759268243002064070152978187041939276388677649256004006208074649648975470093392220062932019361202571264756382110914289369412172604831209586747551599518341138149837074190775611140355142554927673032582984064223237964863341147915844317999089978976514672457507229479358503373956464944111825399771367576330723466894306699639884396301475344809443207844263894990399765245806461115602980139977131444923653197297906476937503589242236402418797878466364715049253295095817672035267668950105605283271804914551567269517355380514007517445919620921558866883221491806529914595656441959887414217636975269714480495546969377397239202999195055146461893341431384406840531867164876960007836584210802086809943763064865998101175104835791100568014227135556559238938037294424835933402327040846231896896053866594581205581976820978563924623560884340440221639805921500788271262075664842238812093498053992522000686017824820157211018101683872383533980334902436265013503893059589210313631666027310471971080761212802521899379851699306495584237880776914726999533386104654732496575896670986139208819690042412531268875493686702914372473917291666314067711254380635623628327475487188030858866884517268341663658291874709525990722974687991991742085788175167956132500668773880613154844193296485681404951830221719350186078187029206089183699351523211805503514697252627748104808150157076996931928220738529845417590727109770362905986134146087977115101109725818001258878535238598803534090661871892916163031007704534055015845574879270910120071487412600619261855919563247983296816736175156093434319604678118488786159487028470962955987819332860501446116571838999585405858091446786011377495835187692872542408882694748129153948178149645158359230564515653053931940731278145772614591724309534408676767285474617529665326732635852069676236996919369135487713224859282587739677183014517425820792326396049909798617369774348118039345421210891180732967881415657665403482923574644258557798196940752855706486898528378025786114448847805301449527867446675745196387130295000944569349266903005875246080976170352093865124413272741623168638975018530328582867382748552798333982313439419233716870813415939157020865836793929846152551900624032436671741966086353266151045653677824351463938250115539827808953444828636830528059430474517053676295274966988185266602268615214130789499756545027563065334365265304673433910708316708504623764858152038345298613195038648428685545616491831875759375660888108183436936240913759630561260351267425614446283665120964986214325269595679137443778222592575927407165459955311476883794344673733403427029266250592294980614137789356041515553688344995564175160505756434738257655307891183340574976973217806299766095966766285531326498045042071949849914303059832778732624504393492770443766326088770305040521009886502136305943547559746080776264601291651069643176680656183009400355826863511425226640223205882754735147000685479776220419977596866008992805182943160904896292188967981017565704869503708160443698817522688804194818132840676947155439375622543929799308882678749623796819283365558887322939748596564663232682472623694587713612062366471929757745257626950823977131876034873593669506530682487219964852237457912427066721190100783185861912925639127978834940304317384129659409367040616317752425868784780186364856969168641307275810023170740903421032661868954785073875173710239885243392758689994647331395413886132348234013693655085530808928491192716423222828530315873951557367318405250276183109227655401702147980939481966046616472786141573530226175732969001761315018723457069620171147240780191078634688022748281975586940838214495902172695371910431558087807261085016814695988675017628489761782780039812259044878920331876456216446964446231779868941660944179817521778958996428747790729692667555303454844827186734788962279815360195791964710924041267331826709732865823573433731166045457453327823687688276493864270065464515733460402048841976551074225956892237114944262098612250961533866261965633715605245686477115678649098252874423985351231189519367689154601451485200091661641142158199256335853257109884815575740157836584038841425691729092243782441472893999649225016917762278490636532346792896027610845430038275612835981913493625064089887392576552328604955186696990270515029040405514968103124147173691621012920669364990904205089427171838954173794966175393924658200895914514886356601563460459145447129646077341117832617977714872164485406026520512987383137334585907118417163438486897550071128868781271027800618428263215742678257303667442035291330732639682580880252407961287936860697484837741008743292176956399347339331431092956398661273814258365788181286898424934063653102843012228734638912665037419203059791827916379772223661549896337287406255132203028040448480213820422288096195257399754867579677434276101630365295847373407726361343019455053196085366035759110830318753958896996925207300861728973801237203507875523166450627178359601760165488612074248342067255778406261562622720236516210485762958585267764859899685926678144304770823497134755978428657622753540325973950919002897050093449229746807769973134275368374052438203460485327498130754440191122484462144589952180005361319077934331856713720310071054657879100170200796738345019288848776261613182050888979312303289408757551190371666822995795081130942108874625615933220382540195514121996066773126408584317974987236888311081902897930837450920062418148722568443779571161722845628431671802282886773275695361965026200990122315294000789321419208983012546539014002353559999217475608246215279658638315516694234368784681529256781527661149506058404023749830706770825401542938229407344675448736865119312484014995937016749923633098517658143908607632120063980696788632787243724793523693117216114777445888345455783892916052254437989879779174898072007645795812475911588307119739923862297484292318285667739425541406206028229108239172009208804071329468334462923680706878451869065566111178675836664992535743218041871104395667449831632566082734861508362649634799886021600470557669149676416437874845990670913740644667697162181969274908206853254312289837009200478929429315774067197816741776494158232716380499996387328235564748852788216115372538389070299429916726110382937105576830999961184111423934878830827572812515009415846494263772619365307878896385769166689252176386837436654338114454658708615580994927991832364749456358262527679945118175662493679653711987592044195905262497745738064317297525896779091422005987783478385770402527343356117995746063050797524535122414105020374853609157255273504976493823925993930466148988950189958192534235652595698800921772094463998244889838768197145337838463581434295657763520769884487252982522777266776753700451795239688464589428028741926882849547179160748959136398497532974837834463154324173818504414115415298274982107949360202534178550483051718728846973324974192244466155092485898521654306646978445463292844612769734173710316321859419029986686855650196228245282195710159516036503947253677395005971183776839682664866766262043843984417268933797380503424022945085271914984641178225313958735302623234560584984044792403621498419310710646435518852000165072910712974569162837202732507395733442460215465892134825866931802549288769783728372477717763046884014151598119600551540926611454069466346349345803298074278725646342269228500201955643674099200599559377463449234959334177022317926474582798157493267126341481003295109142769109120205161039921460973213574120553899442673921179378883512247538625549753130147970133943399213000921383974892148386148248462434549578606273788109308507350463578019465972902152434563132531139888628328569634136024178010317285598291826831561115565377196655703614330433268538928824462441878326773808064728868350140473757352842610516727461060793253879767144225525162784432474067282675061773075300138699037442170471875151320544546716432017044393560498722804577027795519306101101030030133665974064371171862526207653623190356067264215115761565646874830571678135514380392236364503599697277792159688249729883136683027173961554680112199210299009995227607529340604408418911191754205792255974478151439171709115597738022222130342053813742689866955657473291086488153992826571652089226076989016612568183269775219836759508451001624624385107322676028368194334181573368568376244707095467490370252927594198277417723314511167583394088341327911435904904213715195709258526782678944447079150163467549203340501563861313080800624268142587777989113205021712000251630354888716485913056016238741991708088928430271345975132946339094689072961572572129945065267684562757908171668597161937705318770754087637441351596109413514591677916234488255201260920901019922783326349919431533014601058615627776597702526765980041044658424633670117923902288789477562789526195895845444071397690448176327375520570149628032430647036818806989260865869271531332239599258122652835337645921555455429624767972561055149045587811576897331429976767755652975130714608257295769550256833484501005597346747552089156578867766758700268756831088312719301225693254696469918565078358338843371599052439417663172626499315934190661832136917616338111273642799289125856516598070597045935734081809900097837054216486697650992812530032532040242804763433711908790685084716820491582834461462620991616854913323561628440553397301518264873714470052116434158816547568207129444248821303931272161998979029185286250838277443542763633341260888360088269871534612991029820518788920533778260928221632502228121233341293852189322561194281304015501897311450707633608446775058310508284648733363054011739453750087101275394866814537240831284236281564555833299794906592309782080140127838967137771648097745811704500366479710611875573155305555844431534832308957161319812045899653887651115345543732147095314315489713324488596743528967182613624017744520843660730574392106311216396817229597313088544337339080600862828982702278666212697477193879648489631529242731271061549191534322368629707938376021578414847788258401432702007140955165358219571860931012668043559619715393333948646291321395090718258710397930648985225387225238044201656588459737074413447165299797623517172652137028777392810635130950735362097569784293469128538615390149326619642594852024716656738237758006372456804780847086749229628773139279311866103834106864251480607268989560240059320725807244737791876138036663954531418667803548547149734093284219413892544517119281062125800232910549667249122050726450197376043559459047673726838935501148149029869243914901056711519669542835473076899325781656975540590189091863633472153066674800283313835330360894523647513768081158123639981256229388281237479139397364467722283194778253843357852039233484372574939131607253426845433382899488595526867768591768685970459270280987327762428861014586377997891357628381446574306629810325869686628501520633745836235514577123861849504877279158910061172998481905931621797232425594623729204547758267023817467991328518564795505854391875653124129879483092677903833221304230211253900929501597173789360681096560983629352148885318134735508937053495286722900082607638528182952249505016870004376073266262062985319589046963893073422883637784217971858000329774175200583285516352877897497853624293110426095238137520324193570962382283499908415389874734584974140087574707754237379707007974431238136916476948416506801973660837918037214144181325134201423271994460442737956770152701001282003167413290442557864860504614074653733982781283086176535072261544110287903709524856293676085219834805009262375999618770761739004211661455352497846008323248448342809868587653160936709367704140167791647122669218482404270046974832469207642804505344934550808288036610858555759900413854214634790198955659043830820808591545576750188440450058375961445854442035924171546774632145644366331284749406405151478029950274986079360434359336482386978825072135923125403181838189647784719385275152599694319306009806033527633407570656501672643037493815221779730334678451956419536077224303460191613928043147145124143495993339645543571184306662175241399940124315429506003586659014981747884471501172495205885456638886289913176904100411641034326615684382294311272726327800187490488177433171527220661210287819598835891070525382496220537253329320260259801144982448024233525457814103471176961810115029007591263507655880580486161432915490621036901675739186303152205514478796065500018837372938303552834916351024901021879704602462662169377825552226812869827180787543979604785824641159185008561648078963201178871904315380417032918972474905378768332351145483378182354361683383733824723376457268621148132835820704900938124916059812001138581731134975629057788962852268410149223089543090171428070646198213804106009333443228199203994592990180043645749879965081074997898894439540044111229096517830997922025676342884453587636148950609018038792070903374516916510264672124517313344642701182054028251728350219101921907631284039150709913312906533113172019310946448612364294552787014899241231244004017908865126305046991536722650191696533858898292479286101154327718886509678768717249174723864788803246373536491932323576201370365981667017187862881692554161663927496316705388487543148902388577165813354831126400996541911591333506308354938103890857859167288984487709592083308221840646165989383137212054189062081431786436116088448293997371566382338394102007435822805954032852507517819597394889575688560433365993637722216058621296606733481837727918702753999332187203079857240043113497362020714512315295027324024721422295558452491540278665727256793717830779923043939376830992832994932524687421310592175755999693084685058296650335946968406033674465402518633016377101334413250420691712889464366884198954618664805266594264292746658075084667412538193844951212447234851968243798302080941263625738179733068997315157345000673740966788309698462647532429072121485357362101397897756807618585945420391443656812012946845514718911266517819059196292933132821126009623221180624524635925393456256224065874715640684241121579458011822178759313805833508646820551851562242028799820754020792650114289583663190315586516566191904370675036855803598136980614373737395386410760554518572214598840789128348768100102460013795576341201368184380911563947664030806169179646287987130862317204673630770449442089634035353630803607934536461538542328347381537237717169930475399867496973920962694490186533094706291477574085908053281512637505835275520517878661828347031132635096546700398798958313642796813940536215969756950396503451143005367702915257464324904249965449431768037522191864582810546216783321457453746773229831003067418870258672781743551442434418028193956261907484179996505590028531650843464223237730230168799000368576894195318832095759495519995920313675844638587614987178310826654903459801653917940679218870348257533918324687781919685473565623788117947987917997595063950113335403285672419134654918539386119446669715230529982698134810614417387591161698552272635168437455050491742409739243404069947651094944358958655006294272544502302514363305266616868958751676753059726545704423044367075287976957747957214574215397838744997786348557152414870192069648019091036378441656412520608133691245193537717306894218723792317673815362328687658280097396593712502787319699081638557013499252550864333796350647108626184783216804800396628542305094648781920786082310587674580731118512967584476113503619560214133514559939023089802977031583421224640026388341419443547448717006425295942874519620581924111666666465237023234081709890967269369985394064883716635148454290661538633433867729761121124606520781720503709749265372149645412282125447214160384375822575685913220773691940657601993500250306426834279718009367423025696069390129606397366183894258797614733635654889747100891293530830575479992645355269028571976168257120652981898314651449152310742729413645337629169272811657604079880231454197928790770499481137324005940488540566874732870175706251461048406503327869800554835922169353804143115797872499022226249993709682598155088200939319789504526301808231232607111072085344948543800261725429838521353588185587216972093203990863714979747120343534710710674579756926957866864203020565170950691233692102448692989387839837332155297096499145180089516727867381452513879134452560612152334778223226442261442986079931924071960107217471839892917871819144046139134109867801947891964800810587227335236181237708219418036237761296385991697383537735996436401574913651884452783764628984943363415747260507239379111978081597816105346347520904747296763896601111365383709923122824964141006597315292637062545283804293269057437483080068319138729111730629758285102873290138560452776458526419717305639725112647875744959652085104102868551199848445950865361192887919640060429718750550202576356489217268064108599852782095858425081124965945076348348588865265945669502613198945454605972085431284344179295603315564849059541800155811490114767460976586605212804208163900661891966739796317172402575490109756752248707448062201949503438748864636846727414120483193767616781778513665922066071950886366158194660436176068135726960251063073338172706360924765517112804172697170782026083951486443053265742788142120992946175442818067025838108195010255648391512163275577936468947665798910101358940638959199602362081089056008324174128028224223978735522851983508487464953389705552839564668448332376092708819935114907808414222390651780320117989388467798472880805568818387631086628553577046403916963396127722270562911458065817031681682547268566487428053499203921728629796829245906060089547176559316307200765142705143880026508440661986258817481416119081911921148718423866829556568585487609025331627873417000840622102880611405108460252711044827990806779643753608543164471278730036361759348467960656108214488052386189861062671222526074320413636243907927200502329050019266276057417364661397178435384401688846293343738933767801430393254481874821297156302467780148091397394242720040408048395030593151922785209704064069086949477090453000136724772277345433413072373990422613038065100405825364959158582715924996285549664813738403120481856430118409547468188460651853518171772893017940471617997711987476904975418972817353454535491956578539057798151536648018898219348727147321477606442291100420751557376519757108824525531499376863862195212245396913304387181528423247776961449369037820174512515109912668960872726817929157035322413634162726738266483424953833056173693137510088763287984411273235604107779659097951464779718083550643671004300308081589021407028584474116320292722308417647515781545965287385898098364604930489895983836513510321123994967673415608956352646060082995776128502490645322808847637523202289646917613039674766045872394477795225922956235519905283633363992498945836801226450160568192240529812545383533952698819542302861236696592777819311381521107303394283002716256007707079482752645249289242100836423131234414035918483346029248383347631322573546943959726593925166310413879322131167931477651931796402331298030393269836465825017810617042600975922419356744525497412287055541576784350236539896514944040458688534510873234035254360251279075393604645749464594638742376878350976891460639179807597180917149029146330018585985293378252396415129307924147173386480655742045878508448862863496083562167634460677613831513365517320523653190746194832548893226837350073366291134758778617599898494246500852431948132984139929271153955572375222883831229043904025719088737515970233857915750248076937462871309005792375550826058056687940856520389671228255561357049376384991654990604903467363027980122488818859925749764130898011110187363890550402897071065740139252844856597301178654145185398732756940719714979812982665186543968147834305126878944413382946063816829749676323077452681046909363097024114104474371176965781011012511551035297566550871158795477885602128100822611777938691820169159497488712839886246417314084753221679310919926223855561118738589713337301021416888991928890452313265070711797232625180819044457679249459966989130483892868399838811704459893292500964716866536945183041502037885412191585835060009258709329033235845834645706368059824136478132064488230843348694507104206543518210553697473290128953236305179902927327593322712241400915348957602317292480908470378466308634877701760664585304043383050699852685725489388119354084461358036762033988475683059480663089830890048565550248324084344747200251425404243526645635944112009581350528083355590350602219577444329781478153002034601589380324348660774942565505848549617613081105893241394531678029588019510510061459391796479920730296302639677973879023883713218125659126657805499680654038726282528625897028972341715516069795440816961256730725818446309201406357543504933050192223658577863330847890002052311143965100155488195173703807554977099777155312803600397635763405078643478841969084377606858940712230531857236498273917954166056039362445880612307813742855119395328841587347900681019634977269341438115580375138257743799370193967156220338366511979366966873345992032267939782639157500703125754294148449669226877165949407198095216232775007351026062693913164576354776838300471207463648591851741625337921452260541440341133427600183337517251138013212554098119200846672921443816844461708871360780192827327161093651032375052398537203110370596329029949771014733085260744543107074692685781180970946672401423771141902279024588197546674379813705980888962154274161375792968176659336602216970184171415340610198664107336875260654691901950166688261258037642019734079028244016624661520661192986346826402552860152759752234185473378668951951152620002830160822918879639716603781783119854682528044734493080123810933102268261947906420261607598967991329265579339764047618207877495669084169856763911747210119179075452957696264777004555012120136501641570839170086526328253067531668011556475708950767318602556651313590599199577131636711769860347944411177928531411833829776020301457004644797504051749890053392919792578725812186103441445157264985470274550183929358663960522991671579664620972920503067010990325587337669661840412091071622788051300371992563428708470456744284813295923786954354980347685452020275179431481197873608936851958611463563117709059280822128401804761281850206737923614524961741564280301034235994372917463141465930869436883645329749212010534363782870822581302405809870978529791920815728270974490997864618914000598200602114861107898410238349160530130470997542319037736327319932068480933195405230276225689039328143553921046106429570192726124336831682574153122225237720105390495333123066320541740047182719258375685372086825538210712705823796971213492656539505697946306113488556330450588210602398196854681762133243453887792241121901827417049947246320538533877862347602741293788834595193356229759259363609170290549559836095110355701767704456027863025559453675623412577176172825297000708171369041788695744677802869992255854298024632943128917893729422129175431250076675622152341803788841007440182446018504599100258491655147986763598904322684578406772832162069702224008739731347061575908845143026405565267651982644734852648948541990470739090682632111505290949741223308464839536952019394703457044600393882597530095856237785188341717619996977176253557716806190874793980840237806451488116154452595524246490790448124687282803107375366916628651089725262508455589271222977800016955917473908094453745786345641528823402340283626702853392808194000709471237691682139499135864893517311059462050909988681637791745278983871148658924849325579900090685671227981483845567849390633740324064509507753413490176439450341712169978398626995315186134698106056252655928069764070578445372362911295780326067081067512008723226707481278822967750017699243471813942395895082574242005873803306300073459076483163828660824539990094329273523269865020491936517292985798791624432938104264886147624937358113867654817705525849961275742708461500465748450456925117177264573925719898940503282573225010628138515053333191130101183414747110164958570528444322036146085149957210919720408407325765133761945877590015453750358262734015800030262243480100427699310028744990918340395277829645717235037130300893733327752078921622305447191130268426573694116078312617201098567862338398681417030643381145642067955686402844299028296023008001876996085306564259896364579461885301890610490947839093452625643397396326728670197790988905672488846411586610538272360002656640968421270243368927746927072939099891008705267695388695050157814717081184475679760824587677166880107686901468232370806280156129505282707321314653467968540332096760268751011607589926778476343772007152468324163893689750771120624740167700407086837162162545297276953968288122149101064851578013608499524617149463227994856055459241208671515884701453445691254934616200110261342857594948203737947904882525069395521204913703177866741996463687466719370076731125872508682324426166570892831164010700272465428960398868796150337682079374540763182593530747193309298273876840135316644022172809756074438531495249068972638433565315983518968237776089891450962073545898606563893002916512168962787353929057464725941823500443366477125064904678799944113356895118544862582419958378807023899722181895094839885180646213097364915651832666986460587073811618708652252412918006040163380531108934982704710214528954526683692948608974209324686285348869777591596540063007329700274954049193776017910507199837100298189199042964989753288406294867269791857935790399651232630748722198895669932572199392200123221284558356129753099576929035187020519351123468776172258327227616849374261775423647996411359245908285293592032946770984568382522393826388493478250326385466993917569562946105206980468587176661935825492783199395248293583467823947807094693162866567017047320338295412337753834388223959206368440651686494101764235214092994978926341324012923577816301774233173568331260929391618008912583821265804576851991886160376131616857955062220564289484849673825721669086873294265680180080553052377928472147109800372340625637498314310195458388821776659308950959505290844210035670751303198107018663212404462654001313831055214871424559393776274390064830505466933482163471506096541467002256782123450232388268375808572227770705942821857522700560931053831440574965506939479499197492785760045120301534238795122631681027653249806528637045628579340256398883478239788540517009224600442158261811404927700550189600199958248492421878650245651329109723261445623308769553245655565821736979180343359883170142614295803518182648609026224707359643021248886147741392694683292769458955043117957385575089556263541695260394792848878722164822388174495865892319332788414875162924472863353561541255144096044939577639515927326339548364547835323567565146427663991608756227169298820738380183247499704085086326412758632628545143522006866551987712148277912081142675736538141213342800843183298999655696921642494918947932784454792533736691118976002010017566764330338996752529110603961054095851773986220068454348431669981826881376010871344741446357505093437548348578970737935125656939819210840192338570826821201129070303701898686511576146806291761944219140227942154791158988959451404228006546546746553090635185820020229717318974374490027277667859748148853218417170777618274981977191079325307024079845441314495881702393924754026722017920016640794091814834055287307639584752035165458991975583118516504223690936030141078014063237682484784098306088995787383825252801830698987436633116253350796094435871372852280246765169297287888654362768260841142443260860873668619501951243360042281586626626493128813214377562973983513896582247595884898581721939399344502888990293152822951625243729140205519479930314812024988510169455629432721495343073576550809887086505114968254585111155848360475355246211014459159143984702714538684557841914002973011512376098307080026702892898073154271517032382027778199067357542262396898194989176161663087616921313019786004942672132894721115757154481646072307463991976017023222613983818360795334510501711034716888496327860253159743441278539932024550672760095371415517292171039460457356102924056642579991816609750747178091226005424093726336586475262549350635873970490978766256427304935738561440039018788005692882618806258073709883793784704948903110987943553416362798476372180104351913799082839107861331644696163921967854587623915475092991088047357146678555146460472898011980208420229819216729135808470429808015517725664553983015230091489449507479397960181960988680386527888274727984081654884231942461335834948787490953104371805433142111199027951860082000393430484582110350410715456042526393646001698566291373781191977110220334784410027072283077179501828572183526557388990246774791569366632101221788751364519720348651039984123169493699708258748053938198610617767418191798599616734141127058414126034485692561086421236926856297850967723911777340336214473574409374703884036564015603769076720628819083329658764934748772603706805098037986135543408949968733038301283291214392582696468838869054722982836411135788667208546846393419252133368469811541340675667266027231406482033295403821178727898075666395842731914714085363490921098831172932700452466568285206133900863907292190593842105739008729408816293311834508322551138233414896148371510985356606470980107797917634639595022795591247379210441755905307270793433352308554593845227773154653551613147329943106599442768494663652862775149249687874200912221049945929432148138766665475926938306721485447965466704152773484742625451171696782166000033991877659005254191222617616464150641466931499902380773556460393762680675127772445208873332537653512733468971556818184215655282612707902199514975311120883098515032931424664555315004255450947727592708926263974430177144035176286261292953344726134401248944583198955068355912888425903905686917302382819403203769380884966249299881603018418601986158109616140996152040488829837172789737006584923811536031074445022924836986274337493068707380588840802072715096228767514464088875616436397817054329815942497482755892826881843485590872789431746621159742892146617159023676085541964934431453698346697905876890497048963547857436573260596611772437465577363317022602342854795804203833580685740303975123692127869535888715627040969478460663864549403987099277099511688646858487302729047085542893648290183471660208199382388190732886825152696974195963994803967621416996557218377862954787142055263317991298498451635863054137735471717489965354500393314950720736089532575537799640020138861452112644895897930401995227765190028278358570110150880301311264959728309157704054524587622935031347898623744872154723184669476074276730472243499366090898163697955593142478469493888612360013722738744309299872294396602430347639922013408572076709299368850932538339679796192745548273932439475110213238751211225287927354022325895032659617391303188235691443716697231741978749883081163404340476075238105381305321668018081940635928511016532005639634520445170170099115061927378802770346132962695469917288670366010724854527546140085190764436010157801027393110990625785183717437143475807513796085365833221573270995799123377865914089118492963463744804706822619788697355337196402996659568802428376672661481805453271692979776047676246600747541881614258767149978786936495024944910270233346104488769199716722155167395937833592815551022068681344607214392156410051113845876909484254314951340554256992020554490446509074875038920169718323166058902408718514590636267298714243793100613910140150130131186168627820106405443264213278110953830700078468985749005835472715278130120299468304770332879559377662642790997592201157495135504899313054545178184279868990273369300230878410869047421573005089550096888230698090281544212292409072759822965500865719297625274896703282721900953630043395180301212440809512723974296772590395241170621422262135045879502876720459370637131778952746612380430433787979237602829174898629564135219720486162444715558828012689530706661237577263793153118148611383392899484347140841330826223578719704243404661984572137355563471743083103176702614708493493043189528812416958273066701041041379486258859778125427781594554398579925268708493487686979073385880707877008099400546982881251748605459853977289596525496168717732760721418380357363615961088372669264617444299599839960593749313760608036051414618801615325240921550258906187767569482964685877808797426656109366289524768168816756340253683277856436210959145524698444198873426644579240111699275160975466179116165829706677294196864018256333003505511080230480864231039883583045920985324528631838555185866494370165994014169037604696945195094596760997039698688672546288970340794008600650853307339323117305761220050751935869490279145863677276900989393844191244259515153074150274040852826980612445529179954670235743189770447989859324402397799552026527789176535531602199541527368618078639708242054641260412894712785491408919049250860988031857243092047579505246096443842882607021186635953631675091722363431829466157528882791073239582876680735777695163628813442849147578760314057147380483409604000385597793379438666313934434934045155365134485925067969496431656734674350927220452014713308729822174972181249071238018283890453433762075864302330490993281851670812491123487756078165543963880344981271318439602258740653144041603171219714548062836498970616808998056725772220732932858774825393811135533519195407024744974680860317411593858146529459625791100864742065870489398251092130875178455321292292669815802978492640391592550781538019412797275333255242401526512611353603908631079072401804189264984607132285418048147367888790289383792916499861411298696867159028376126384621465885644112000995778144483192962292664500384907121476273310622560848893150908978347364778311300826548239226008964403262262463386824583681564034598832274007826048034343810495235513428046814132889306422257735232213538575641745381073754237577427158168188009810464808597188452447659711807270743188110910948831248439884676681796331378949410091055365214308481142108147613300962205193497505587983302171889239795441211802480270401955457417943832802246500970536097878555595050102900208379560998119928450754094408629001392488936597174774027659826818895293125485349265313748432678712100541710488511186014027435450591230950104103940162956414246211905134872655843924855278100048387155162449076640236059700966002324315029398502250585962976753413422840815569433237326045061678946149385463185832656945562756385274871814812867315482921970502800749184041311693040139808963887633808914249727165870100828876029608109297790059067987377052937186536855522426663221076340427875002554735125001517819022958183121835337879381331266737604590595424064933653589878957163881006059310506434970151623910516878228016572559080034466574022307097008904205010488255833133897788648251235430049856474906379661043168041853997778336137515465588588397638438593646369129999866637621053600575918833012641803780907651420379591870612355906793915354377222233153866999033241221836575295760984113371415771556027072191001512898036933102686375523975038624639031027462650271530683016333830801048219334764044980946617454222888019664881260099741214731271184096619909469266707181038522726343280710168327273429535931944939303677458169955748951435604316839128274668825754303322994412164945634934197817004224694823486547058719791763949566848767137926968852102113872164373423793308103473615082477108801462368241657161461666772897897832120131778989849813040882155112357413922636599488539570457080575223220723699820624709493991701194218823034572280926598030087890705665498183188665610033366514765171477756420614307005186747883340834185727754558271357785661327434681016138964092273280753868687712185549078107344273284566568216495044106459039140778071319896023086704365244741072391953451220482138846382772285340394637847977812678195172873883073543733677763162066797479585693440379248352761109966434711990268957045676978679495545327490259839227529341269242044111174507382372931621872845435198849123652895981336605652636402186384222553143375017511316040541894867649185383827671236361857833604180472950392751702717155010095103508099650180083246484659784761001056172320916467856108477333757742168385586134977365072521815030973166424676085670411690305329175370835131265232693962316588217676943693755934013466181468306284395732948118102618504720094022669612511950153349133924157171263077494749713482242008895587029967646817557464050699814554278660472636491133759590247861718530457742471694736892550659455950412130992955156586550738408730738709437898717547124352202696224215880662459200165188778744365752107635987564552954238652734177122470139565587786928920964951324834193550109764742373005202996026610278736178910868831842371753426335433497002141842630478280239906717474165806492117858281310748059827995208509122611066029554113579149316183137522009573691127696414355580775237168980885263100381233449393606026753873149121627229871226695624683667997261468767260425915114233420365473188871485784391675615451046839492244895387458410235590020063039420516400837656423394468603495729619874082185952482778138713345728130527166776816861286994909294276015101586245590918104134454230941810990470695121784772201304808394695565295140980952835495821322277886505919013243665589113733387079387517708349407241038238875963708896650677825627110825338676262967088601512630099076924220441154411437765568047128727050082356471828301719816689101401319772031327091227746153305039534883011043683705095833806819990320164460887697959169290800888297493216624431482459715589845801123171439090848598383292436344954822319763301990850929761625460733947037368749593543699605331679468221651531904508583780142219134588956667028653041217563897645173889975237900032741348198842388295846343718652568627996442944634123491255019571799376722157910841215803382770917618548511088495040461756081057500275808390833224079738433239192646542070280671004343671943237387227978148601161166319616195347191085523153279782848189575674502677408648411264932472182137106150398175361280771720646589915799549497351087486284588936289439624676361111925208858539464938183769292411068631769515336191456999282227393865959763139117647049399610010992248643772414167178122011691790825268759207750991029721226335294170052276003628685418881502142862637223309725807925459051776476619456530203608064480578755489170583328260964082710989191086225931776543066011332218208570780530912503122793726056762159807862963454423249665528421118052293986175321046727553646756772546573225391152890904640083983484475749198246383574479103020731012081586394213854230923110490807784617754859113320183727334829048784431569583807243067818071787105339617302633560727474150379944522039372124112200941458832275183101811034599462865728096613910583118839618286104153470711414726416381475986561335769438502185888856940589941494001761590908526286425163839215196024639776818337037685015338595577259886209092910775677994806881446861565107551784804030641296053271648451916995018844241429267281866967089430427873028136043206952254639068932793138164837921078946843790887514714648335064752674428167956687301810715107758729590471711723827075845623151222000730506435728439823142896362458124363630229254069185515084880097391604121174080698492232118615533097972527217722476525329243876991760098713853201371474561704680879371234657516586560010881357977994166293499315818449350051895012287116020219132114920350518748588253822524614593574355367425265109920505884620938111010473005099999440702343037571277963781971972961360592600993358679256581969007711392558812318290469181545123574521865267342648266078747520292961838602410543248897814114399791690252533804103056133184642898922112853390898462183889333605092435878568629295129534246286814906832928161936265442508183187563682167140559413647832276408183788624999049963925199644677439514271609929326073292533617452783821367384708243448788654489623237121310291734119539410713497349586192691601507100374826567344596087933358945029528375746199321169525462151104559888838071219934202069834651861798591175047028893741764105697923544409411390506316296270117809400530625680319386112076311485857964598293237150919048372286937144529271570757813394609389805587481587094975619011260013319192614218131284007981007130170348443393076309253203054264532500817338251634179463281509900732489888522819438880139167088001858410479985795201819860415408300698959581659758832903443110184323960641248588428761995761110645779562990224682881409483232033700817367531236734010582477886378059153251391625064839227783758256155637117775466294196904758712450598354939180733900364649232934167437052251163578553411417792188427752259830192978435728529274644363997631642765103055206644267147643980072149937739074850596338710827681059378468709654116785751190395593960595404253266658871636366534971473951377045415033935682966103573582755842311817475536698142181504561996161509666455090220046201741869198376858798708184814887866975939607006289949444975115769400540018547292900948724645030645236066362208318903316021814068137428778704351307283776516793733539812179685350289234087289861763410516449548472682816863350767630682567492108916189458210951789765952022276052531369754482483087434442159848136208482411301587490870098442711722320692201783862929882634989731198129133721020016770151345094048124889932419557681420057148448280872901639070553315933142023982585687523293011619670302468902735745215188711334439912352565730252191741450989809759356302324460664206979043983615204841537444173566566050473357191697119498385493237155202342729874689481669344955871425982674704876240874368227346943928638946232307033084103540165009386903974464208117347078526485508792097258567499266880413842458441949936761033861266926343949196866185997889588090115636753753522554474369932809141267271386819955576767165384769041697325958083046891555933057185296013321282920720455181226310309760984509320477087659003648946936631348254433939444980833075067449467846671700054639597463075191678322549039854237794140119821444635559376923657885236296879255153897504064441610099415406723581153985481697604743565859584327530280006903723773134620452520850886157952411181238343590195209400980706496026464450371126775007765973556444042811065656688112379636147987333061101670935497596512210425395173127468906864330098122253269899943666952415394930752659794631246793364455224454154428450171997036654316632352988769487222679856684926324489070536807677404889546396806679895216523605859773058548754519294927200663129891846935725758414181565460363912113067960750780409763603533616474039946629096120713832953745230383171021548126293416842757745947816610267299183672230127063731770590791221533333745759874482521852706316415366810539891555861405835431352979269686429338665704150423492721584944398276431976921850278288811021589432220013861748901018361142149769015578158599531193710870720315219219277627529456136685326826451627239369605215576722497379731240882873833152976078071447023114770830283059296110021642686079136030375452302000440567938950194286717393800581760738855260043541120172950727449567140989091744638166019589122021007271991585621106555177347878510306825146849092524939196734057582001007217463081556967852602963152955652121311283194656297691285592492869184355651142704148951997786736957529162349054487240343396583607834583680331202531302201093749336849258700633372826941779193688016841615769368691656485430417377311612994930501613788947794221695455698973440167236754002182464726247056147539561923577324881890171083212599934832964158953044484025839486414292413338447438592901652877217846151258780895036025144718068039864532627090749871634248413728115673614351536991340271215740390458244901693340331155180565800332372030818609722257971005467448608999141749332387631381115825841690451589860354695309327076964427762534782572696748449627316874567709285029512804529786507822181652587505889195115482317535578824913364770420501417543893719811988953959074789320502610000856253165636488337873275577214927375659703572117668478309436092486521002747583561000557917627901224515010216338370545205291187199365685891939198980861945936082537357687005851061977414539496091248491495164786941999208210080133303406285373624672743119882388162735896326830348429845476841491642057366561200992009843714676919109320843840544702524447705371312510889437633352124581859565251109946890604103893732627622566823936797652312318208708191766768345822676473520961990049882433790412436686355092981047248276882621947768912875476217492588070848782939658389425032961589941264812489019210942357729105346493575806049620770756775691750669698243618176693050393561108932227289933454246391516443499100170767589401753968133000426157925807440939298779010079825762127058870612075424135041235445789252704858430899430845909680751636639337485575630231068698976269286209430698668304325562027069961426496433899686164939865841165954606922924296734510466959300268457741577222159645728841143230094875076271263008120243407749401819255347321091522051844191704876215454111622049388974020388657048059406166541493336156481349006087546377430109692602306489086312419507063660690072571902095991557927282826378236925032929222994930992576408108955797060063477363599549199214869540425381622889504517408998117386664633517445080407380107653082243022833139470085967902061820774169968511243821793905348493414560323448430589036559162710202831042244535234998496252511741624108317555926601811509667813788660465303588024651515280580883611787141251940165653533616312261728849931850907365880345460980365444892811109529027633509434091691146860265841512680472254956322058339960215562207957392676597798085272937388740297538489914277165320080990828784081657716980243658532482078792948526699822078900582719871722952494691999558718455086685157841911252684976341212520005810089170359347683630662008968469151801315308231828152326066509557326907570655278264663650007495609272764560475409381996175167815209214943637004051681397011143681706583431617164351973044934577649517214173985396747729509160210774115042840709378611377589945506580169795096698726594670359662917595541993991849827637304916710646319707621885962446853510308655467362957180454050686738918291695424119484493702334225157693915767063772939302112259372783586393852187784640890082156750567178623514170923811158845275256916431603986792185673652874549451107651841704793916490156934454363149371589371256006185249613880345288846014620713520680230515801184056709914225014354492968805750604276065927539142331942857776836425373915212288383596880361155132619257604049402882425191649311143289352409421476175939073694005723327961680236893251685279493529099252203569264836797837800403655313082799065051340739957095584128161654760995826020302274450075103218011973926857636536580960120956233740690631044247599480420677015902088336850423912151358888186943109697401274931057861415279552273614326453982834216647971222124409160247151868587328176103127986415529469555704388004432362252923308769129825511123669711584962452401571076999822506747869599125325623274482345874312246695992884888360438752525737501762152480265969589614739196093841437529699728561829456054873443610934961979587053563408336504943154618698329092691013769634892064309134632393581490578185948963530354955960033893503493901082650080695665099193224385420812072845557251241984234518246864176792382148588773754820282247464740101183743182488480620263629587126690621286411713233432354384824330529532707252515451258091053442253271946852091650511699223472038778520319143345492553537353734530544982684313245349119745020582634078541621244024100569205825975633123937694505211396710690050773262468511409266732787918279525692801410518027573075966835153822390282875253300315818163337539149083001205914871254835561951144159754050707820897035659746246977163368059763723478958319388096518964317029290729924406352362092416998344320975500748658282076007757112460122749864267687096481820892449456931209761354134820349674909463366381486832885620287167927055432387124842487536268905695794679623668777464390347163637942836061204692574041065573086681799932066636900867243232171714514109959905027808928534075695676912118907484715969862156691442251060447091831981842112542266277679589825281418012228984227298031233165546870770067340005575494556851275988847141702289806140083623802864300285789471967321232650714612389367454582933830998634773908041593957142563983625380739898259052655410926085462447703530291219815904095639641118979658770259750170590349208766521926264606371545209759345149028846674980640704478666363999307483433234993005106819071600230295806072102535144935967724982651036645326868852570392606276951276323245810054062582803520378016577245190836742382754163952826143556249342850070538144663824078066809022287623426922541059058176832295928062535923320853182483624645426171362652741794237865948915860333519066221044132207823102590415946306126760470482664705436660805914251846464110622985690532144549649175435738804491511320810052940831910074760381966370094001857884023588018829174326563209178267038643650685694447137564826894792680705753220156113325187663728905448249940994745312457697521538212593974149513016770136482816277050043249181041674090964102679312560354357525979337836575744473115521651610212148880096112345663984193856639891892033260030784432542302590605865358307344745963251180588857985205805302360318572927507538593595964934164862767119419429973094788500952316413549459300695631318843749323420728011155972493190247198698306033076664066064989104437209607401974525478808341915756348158565253981471313919280161287763620060360473435312057412433328962853637273213419214985302605055624873301936338073296500958066843076381724938668855971452912453989340902695134287058297603637485954136557690401008458063899730253473858037204947020313121332559292103277301419230145843962102129682951792698111714881794750436356233797114897614407194194433002161442022896573521875605822002989115877786267769721453321062444216215671140547276715657581699075473479409598451926579724261113154395675777539660015270570434088920832837340265338893220599445509759749165889647269875513385660699428124409398466549706046409709583111399725893283526839954742975601678425413768598297827566165850078153034453629790848425202033389323027395670233984825881707943920872377899128794920816001671967235618172766195381287227069043242205306782221778840443356426441358636380895983403003880972414847761603824239741801292094273583645872393825833161685872867591751804552858029519445912378584879177527426931364137890885010824512200506723963000828463237991858725352692831105750147633548159172530804782913981084469389902587104365514032783794372610009164003575310621902528620674422160393690899515308807221776893394189264813349600359048302397758385573843230761865153716414230201432408378331371595661413297553885225941482889899286474475143405201027054512352607795190660973502347815607057857703771983369234090583984368173299885053030575816181912645683539350938330754916954559587760174717137671742471269642582810210955356800234750477586879209050011723898707272589666530650521544389982079826496977761984109946660382943630004243003945508804399096426100780698730137311084558538845597252661013365107583398366459892328952479328870345413440674526171672475230333266868005967651985375563116229529170311067776413536009359559285410516001991049785065272912758088682621987352125320242298772524343284461274915202286570002020211087815744969240696132317440238974185486856054420702300969806024678286811633181097626961617017405498070953294974752352534550661740997255179995779753586484272252648488734655688770824418511593836967277026438774719479961065108454900794309183444137139266450843581416916348577263098175409198144849789742378038212242998804885488040589567839877179783426962794507067792853449735159937613729497093545316421422010725171752253826023032820032230054167122148462404631147320250781495296811938575234689966463415836262469295541139379231475336453048970323628891436920683015977880375999580707522473514187307490304500463840038929630686819395871238646546533980746545191455894145692918321653735827145882792564632621898040377594981940629842713043390070391644829966739413068659037877835380977681524961182965747832724105501137238427890850648935428028673929105478808730233380224408554097295725915043630895223805258785109699821004403591215598153410139114654031704672557860822649761763209416863723741461840186001880886255162232922746033860739899031293150126750892273957284552857114944578971967464491351872457632735676496237598856758305103221913084773844867052875280995144335148921365762760589955233009081286500845031961666919545090830052779766319003927212217257969146334970569653442730955956966793268644893739409683957611305900742937203334324369069627118555978085833706314614859539140012897512358601545785266779589417944229303211078955224437724606356391859600952629892943794584692957449054033778141409480742822273360135487184751248877393114597596327581202549914886825969312461110979727049047999207095549163371261632825266025188526798749016525857515833909257655008876285376483138664700184210953259590031004247800594126451397976425910982986995910631398202598233777616329637072896473665049072758388123033994138410564089995129550134293979637357922722821163005193051371554490484199940758446933786004448488717056343606432054803158906279929789190003476676347284436460045072693726852867804972893654518593595740475173726477096887809354866768930310511051675572933731457373664234425089403494560311752881817077524788550309326686990105420517072820809261801328541969549664505995647540148318602390448952738465780158011921973149186293098256736633386202125344960307698934635011705243528064154470868286360272204115223287314047862056141371577754900378806648927934302727238891122429341271560243681224260427470947722084641748510672738481666573739645472565081124855193084947955599575030322496130350973748847852413240993545384778371437467967367917319223084690160200173516671805915147454232752855645286668391828611943367790691809255953510363229931551235939360559229262685879727776164887924661965525087701085523066541471221028010823074528769255800303988190303081791898839385692181271507970167445081413051010678639136620162647177391705070065684481459996495446343455119476662467947029831470127162300813498039183754126954858995446725956618803963839832585772617044909399729737410712917359239859013902588545679657990431797253066480461706541919744017787354433327333531028469483882565605211008720710601127315307896143237360351668110300846129248986871286311635629576185037027541950681947572050242705388947412199838445052775501483196620718945484704463883207766642057580560692911234192940740022038862249134646370347811563613598847582911787398424108738296755421425767718352855151704144756979723764547870907676322630816185658883699343151447939306933513643163509367000870012131795866175529351499494908947546123644284573659077907680378303975345262765028765232808170652032686962008812661877457727732990934173682752454520184407645139026183149973392872683610057419316329191802733870734125585376837850800054024014719798150584051085158995395309128054944906599915493817337711672637697884005734090196927076196336859985247022448318930287072315110067965953927880800396558405518373990131708714640753813224922821639698558400088695336768451949366379224597614206203312176775086463530869320982424305483433928255592763813244650888957469995849625728378840288920579431459061065058226573115488465957724330034172362553041282716953910936686726970192444621882353626652134662141727824196487183358990714906447976948168850563904650944651331458285356452553356255997863495056626512900603932408952855045624555361782263314092241723126444841820867456389771615960403349245873742680334259167838648367986729437737628191266343969636405672875664104102294184107076971043155721081004740134695359843443100568036402243123069555287844695453911451403511557116711831819517496536558579406555443280769654096233525103735205694856515425025602611665459783781387826568897931994565855164809303358512553443186852414739377590581223479835609718206791834589812009783352880773918551912551926925714657841989543159026079053053112555347042124997319577672592770543296890199587628174460057060050067524630171330937568343014961543672403501715620801358751169853315112731111647613341627240269404261346205477870616342952904099271955331657669629219121662394242458756124977479636363947290651715272319937188895407338585553553448514358332467578458878323966882591563013338397146285702253262130185178646790433766650128712142827865777166909041561256879171856703729690601707144975776709929549923168822799239686683220229369154888707341245629285661182912825182493833467372866973481373580908777964144399079083738005284181456606652676317273156473946937113821403827013808846543495464270434636567467309350206753218757308690097655201176227828391521900165638747754374603869601770370944863157808905652672041448658678204267524644208547241516266603329875225388760026380923409682973877974398631088950186522424035659933788328296312781417440484883553007586530777178671503928540730726781633924843710860288374070467884480504113035242242831814969804693603942618247443786505831536370321231420480873796755207968849260792439822988989280637648217414244828165465987113405354801001023607619389533409880482162692110684941155249167692429015882297934956256819381709943664135781842441764044271029071125160816879700493031412917021432709136591798308027762525099558611392724743797554970719393520389802122664117407627224974478401067107507021759595212958100518617435328107312490179583734755105174367844114943400045014411707666768289878408098809434734589385588444836368676590170216832123921769519711470920516954774998860423566119969263023349407872870266533556086297916762549539286923092503615815953755245562107843358569282655119557026488281052857502089635792118477848450880245542456635657224918441195424088709571693449840190477846321201672430392253846358823200212217323869715726227023842838549118450386700492327103541549688823295040686562410521948465696788571014066173652772426275326189666666335943152083394384871766491665402646588903077992474254281804619024995182998352552502783011448198740577402657411553410998992848158087064715398689264754976282991764023851669061751226504329207024198600486357938974722472344564291488969328557118824402264347927725048885215225474785708639108600523973849650996559679632896391826301815850656567648160243626092341777438738479833042682838731241900067463581112889338730389806779374134870661593705268532797423798000117396747692781226731032155997201185631080010964053031435053995910717995825061083113658114376467617785335195065462542976913945849560222130296609106044115075033812093008207536999565275806507925856084375429612267585489876083091361419815296984575946292450614289727579070869269451730777597854081997731125138066214945932442073951004436795147232445609374886612667580133391676523797698562060161523024778017047807216130149398576606138647896966492460316013192807813068785253159120395794772666671097441467426203696440187746677914470033268303387267757627217275040409774907733123218634451148711165710025592518079874453739821699441477949281864774979452240877814800766298203676671510760980670964795411570204645263548092931528695853271461450380539626272348332081837157402103890454588001087602961599962712198340157414058780047697737308625242554971989841356428224791985545557525316008196226541501701699918947011811529264653788161092530065969097574635683704533589272646679603613021799154966344979990412408439167628691090090767882447476950427925807283264477454949465805636440535013558598119502428002061055364913475773784530774985814722076123681229520692081612606252933845123618846239469053706963001955451667173798085792942606200695667155348280288798262992462685787831336228159231100497279795661517495777050109220387582830572811421429979458307830867045621299098331642754620004556551077276911179770653983433892628250074156120394208092628411581186376693336753425319936709455795001032807811314773523024036186345479496028657123979717492788044980512046389105613706866155902881523225297302493792895824186121439902592422518440353421850700542356195996835446560076471396327178454582407432910297702735461876569534152260193623209079083318727086832718158681673714578541427759385712144614532046224381585744812094693543755581242709519334061146717727824210458080465712174547217935698576449673088166915657940788906920520841461704064469278711814484577400187414003693737831115753359732496577504708819922663896268698955005393957279437707061318394210771080528751253695402035512329924919722534969940143459700503067899472305233821240883643493828747903777121214316361293676713904552815785175979278034048423453107730570570235541208465649392124504067395697964786895221076326269960106008228318238840282154786009072575843688295253476363794421553590904565731869727461465177823713241104076818629340244922372955948882703210992681019493203245564683531246597768865790260957992642906927952009214474923763061636115387353946499648148856869721407848915173459785118180653381105216568406883467951316736189396037494856634884579698271003867451562714642153770067130676753238716031051140448062210753604824550715068897197113762259752862374773245297170577743075887229686906387110034614068025919180055027680680292235717268391143728039763426640389651411325049691321049373176981219985474107222579955980242234804070602461249740987179321835443755838452260411166574293438177835097679013947730558988229797956627105163070636302058103388968544943370317554975848460795257385558829589485883168589217204691743489183280733190805054479905719750467221816616627646536843767147916820730315143844562343453799589553100081421127092432054658928177123476486348021253826647917653857154632456126891698662520292656058154556617162384608727996339448458696579116046833260659842991624092965195418634056470143318332240316172361196329942822632114190176519838770853883004150246613887790682207146368196053786608657730021611002972186905709135387153550891214735543942964842069650652057749068686963611820086616873544529730106096851298508210118796691752048671115759075711595107231516757718988964907426637425963035514433150271408290652926517599436486407142956645461067647679732167810158634463036460526575332758275519390834983957891868284628126037016480677213351211815008601936595110706968624511837206893188329094784953346689537129353555264657984930698290261449210711964084020022498058709784759485439337715867590027128684784812128011835623247188778967457388456429247669714001825579168798161953826130336134690433900228433629477939987586320824906000082829608508583073822765683056120218969524048372036423527966124951427726072790291657219668484537620607524232988796230968433930905541415586720971911994417159436852184476148418146122554596697635191579819172375990019094390044003662753549516962066524212492429291069837186998315529460191273021225501333087771406366401794695211886431186490816930273690013376527622862118826316862974106042914290392894038580262813613525955733501016752736122685445478536246619860523457805328046826983925001076186444873175249624951217944403536636859206569742816724220725960517634605172407494918262259764954555017862141999819209027628669601073966903042297469260221301353322610166329173833234144857372532294974231837035587434036603057188939505667671552402999980972218078671420385786262642858564733735791963042793653564604265072684907638695657970425167574135895209709053483817662922377179983281181807916145343811277535205161825976352741122338352002784749243579916933636052781760794791573912515147337816991628636916549166958231923934172367106091713439435985791168512661673738314374774594110424001777586595577226156559178897828327956078286594751299719035488377059482986381322463975350421256590288434821985407200463976723271440815712648389262089575817790701030193189935439371377740004059897847056380304594621021614761450945206133483060217748521129345145949640639615076307833073792381742270726762984497508836882075776843724429623334169965101619578217247982297124615888253291526178249512135783715563569696139591471619276878921794449393409174034156422748747525416696688135210715548769160128682576551821389091592428718949683087430821086392445560095276631738139245871108491958561117689733442610337833744570633399448903067441915951878966707376324395003794244560307514812571431349018269850970479307082206251755034567442007199539554438930286846942695655230953708436105109728723568014068666213760696599400441085254381328476973202033571337821969446526614954893759558706950120201506098364301094052398104045581713994804228535058520737128679575732083515901240454363227575254651147716644016638718220509638064448339455566794188755603537371962829012251816565632019660048545188564004267671765090090161942491271967693482220581852889317351611894722684435809883442010026955624682341845547237749861129692737979262512817233719078955359957186294320558337297285291509828320747547419440234135929211755890047133485520193034238898134546203933680317438591159274464147893968668049664079173155516347352433574382412129101156236205032267281306325369187393037660300980913077573402494334835563059611772282555039732989026089750334783271295634307197216752272426948498170049675684160859410557204196793987860546971901810584734227185572720872335654766753996624196781261750838007698346715834167210892742865264125066261938223987757778998400600993369033304274351015310847391219643661203625558374994772288965367584472447951042092643585485151345947233655328321596501979434541409639965914075963838488060927571134443504439524819018901952355802966330790644172926446237201876008944240586713514037342383206383181925980346395684944425123633985082635671395445914986281972188458202034091261883352703707916490892863564413147125320334133514598170100810724445395345759193189481201007146777750140729741251703624110979208152425140879979562841677083058346195701840873372237531912094691775849769618473737894895416962892000397056041600226419101093373105935731421558528419410920125562355294574147398054353827102320999914147426252199095188936321675052924076961285449560124927116743567996052013956657400945156570198448558037140195742098715842963138728192316835382960282440167526718163314809136333732082752351840276698080185374689880657983519297548626509490238573357269289325759502067619728678862998591241302154085344870904851697269515922734032932438649975728333894991460206826908377740780615207095985901370731103824175887106610675903490712315062166147396073790693768997980499772032265467661826570435108628838044107138005924999670524304602354362345876848526264604038503783004479175013333889574495161363042069589289464647698665823637214252612874984699460791463411320034315240341683617786194528503199574115459026986924400972771161053339154160117461588901903643673595928874357058282573743508613149550073164181754896635713767883047251796617866269803640421535101609061186316963714890090778442042835892873716218993752064051038388736120367694546530587615008822678532788169425060227169313102154772329625091185330399264085305799226588379942969521754352272300651169711364428745842200719399508581296192187043543047286917186816324953031775571734748645783881266118200696794463052011847863021809965915016051677024293893495890359464024288520851391233051952781954914198075619326114886075496623617516025031034440316717697718417983774457199095686785619174704960709090508768896374817445173969207170110045304178021612442957108034911058718315908480507902581269376255990496972666459270387888856424841347231868303985992795640129959799260604942459114997858362770075932441685006493607663215464190998669001780470170151216114385579161418228236496594527672015980668722616369649586261997487445094687101531798697664216057170629285729848793598209665356079399958740741407165782292164363110798122638722886177583644837578253530267054412743984657330786404229171469283505060845585531839570954856403623280858320264633257463272677012123555649297804947047047260211176991147992148950118583846732825393230797893155100206368675350107025598993009163480912122297103563817985256621121438923181014760567936934577160651201411830861222367916792228521922733354184314883201882351012868243984292291481168265943020386196354006301707608374943270792238203636549197332403782144782694789655168942362797561959212506496311644173766606799011411701753955015589602266166637546640053810412316442910603146609931400834837437021179984393600637488182183940307438469886864782717386286747199521022424924107770911082836358963015111265923573896330265067619943559571525131014713748942600518542113729721836364572617250277321771354222115114859663501074766213067916998506833534635131798723696438070907910504153515366565528575314391684616279617908113385928917833127714508816535148545846754239983514626504436008352714383941522439828243282872316578790665981290029167526947049545458689874042245102151932762647606532038061617193418867094301009897977743393422733137995349269557282852719187069243593641864570881159925649268273206146697799158225671574036474795662281303966289736794732547949964961020344302421868924164548396880463279818750525033379141037909169118981322007142985860266171921294850940778209024774605267146404763160006325663998958645477503912303262020387155526028129810277598129276923719067063197571905819629218837391016475464906335118078639768795582409207636934585272352652807084734881658599796155845964415677295304382505125413207345553304076112783456045097770601507572572601540685272459761671132184171012942067181161289509034678806271913608692385853121532003520564029576923214208174081373411850848710717789564651450324834003750210890348118708803312036724380403951039361996029831790755413538230332722335624257176815027972969821277871868824371628273520596912327416853625843411872521854039928995203690041897228457635275789849895055083114044954610090531014427899127570360469787904830189928878659373484332286245715205286893804803538736554693682819807261382403667728493310033320139685346633602621384028618176818229928508927562194639131459704495595712795328172825854264702503086759719666309102835159247988864619687665662757217009457960421053645129725131099572508840888216266084411910950293195974623746672331010336412819749964796388774128670854569530563461161941644698539391683831438539720745771109608370402747461314214914586193435508100441511379794518877776050454600272476761520633011317772388705853625315035896247106975647841995145028721624469109152813978597633560874585654863386574902940176305962288303964474558744276407975722112920333904392143122474986511604579293738260500749613106346020587415998690570588924882053233990274825144189970332190078636223306905370543320879815116776747872560968100416686902142342964234341822569737514844935712760699113506076437224855314942316297724195616114320251768277668195758024907693550329725753024383480214245961767677064767703233297377987965549614346795630526568689508538663649162636647081867033949052692900409630487654319449849643698262751074473838096340355407356312018563885988710414094266797033304856761268688488717332633594179524173752311910519108212708443000469609365919911884841271927370393529651341886478350766622798220002802819455876563331812094601901642463779670351030316704139321171215972708191990050140817394075142934899941493530550907452750763469134604709332493842314375206405027379397769712402116166890041768339269320319065385370519148375908797910341697198482997839871299593301665402439040591729663335381862628491500903247570347644340814411408179070116841439718522028551158974800838643296808503492850410324951455631560335672387107211682848444167581989188648062595009806729370217594347486720467983176794423566047340148970864577736471718117440978143543402223277496966082226230219310380726922512044933008658395543288272539893869826362413057285233257081319042560179773213565431605408810839314115893237953639447370358702045606908128565289669850337699648957127256413808299934280494186813034096890701278381439547583491103976124846179107215703407815599180489720965526181222517995748473427074306587294159042731830005599413875318416154379074720486425170843232480049344701637070686378631068351298565784290383808849587930133884345628858089534249357746731430948672552316708209922123950130860687901161888986315788958607923486547427233710360121852891170961627245016002810673597791596542716488425847258794521627408727092913895410897744723051562052326749846307297030106268827689177077419984154460013477595820932168458259285982482073862753633764090007388279952934983558829375805731622083488750919633313685669606181888167150150820673503707067256430452985541483854588172173693475366046601739107211720257247073268830258002939742727703307329287845084699909432145053541049701156991050735473568883611074189451394360840808468830987510077503872006973515926132866020654789530040986409443192445995443435542826361470341238961674958040428365287637354998418995896608506910533542849076342577424036389534882534941107779055396588440317252961720765764724933820850169512551991025514412447048135062657200192341180524819077848335149417003952405986684697659774202287128943807740193106996249328216474833390633770742258531104212601372965926889967171243702111626311916839671148930552162286890112318676006566604881667982270025009335649729070012945187902997491929050517623321482655518054995148591989284769714608271270935992792331896250937811603839737301255130514004738196368481908773303593162589540053751178781949603688746216567505149660307855587494690424427157692818708513231846110560853010668528203718004573458670855798625847750059017402817766815054414851912257340817749930712918708671449584499734207790382773179296635411374689058309515470868551979490827267093748632708287425993957765150296360109000987152354569922695102893368937248526222726974898968073229294274049677259585987596673541571183663304502517698346137350086510601264639029377409409989331256024825095722028702065620855135286823649304725979737984587171522129968606137004881059292547178362740790244719408668439099209277140585266432832137342842979097924817147975941936703206166714371269005634022114715294231027430725044648993355327300014165412570254175950501835595488633113882585040743092147879510588820326702696965929386718856193395792802650992039794752991353163692703907399084239273531139905782137249927329942578981471298588466979652271882107391884166996779048316617514808836726781699126150532110851433577020501704635143982210805353851144868360617251015185998547184065203835348243131968443258623732064832185527012263950538830786830969753341389409049957859240036458870258129592583333671580390189581470603019081506116791793933275945506722586203768619830511491278681015515425342120585678788165001791686469577500482627671481930323104027490500072962360027679722819571416912519040268091840810573487227462664122214622383729549243491670803746052990210349491991340646291478643740249164145662583621177897872545217605428753056753288570574998927299050593676236346767249164911181205836808382920627530558008242241893875117713610446475747198147761159437906416080145253895857461718879586376903189331166152961501935547953764563980408865941806713360063277948771194556496761396812627412671415597957267659398498273412329588983720870001032737241575781205637758007031124182185690671244699385217073542155022700899975974545818710911815955556693424037749810847857197156564560526277201847883600330151160358255774481537678026397924587992373938590875856196003693386520585861903501446640271306284388709901898271360049238776372318993880979535217573326559712669578314231556353688810167498271667964011698483872073872390769782858660712570865240656846000083935432018237593037971862203205015000648828918445523552597868364632018059104125098911526398380172043562350318871057400551375866323103540905272482934849940352881537393232581254995560241970067482130715468929582147243084851756706527246267694550536261930024220168156945572783320656721398960928009911809830104439799460308737409945662566237933498365455620286586650217214815543428959650905033718606358268564401641363924811959121074907610433209508443711716727367020890960313995642234055652465314035693890841962578384270578275276682696682963707015174667862809885293891273507767201811258119311324453113703745697327080762405089728794314744716500751098448584906157579217106001089332290290263307494513445633955778222853876596549080271460163133531811872990271557430730866654749525253284030760065198063234504675159456891731703928070124581190209303140227486227057037042736525716540556638490028724030899202130107992195752700690183835566846667145718142998963546368032906605587573633088905539867755358475063582183882626985890124793013630081658509218489216386856744394378009939719791466251505958600539666407396306354575782885325175869266567167237782374231401037199872541529553899523553449763392931043807510593018561612946010266816623078311453770451838768662537643847919520264326011426790985038428258984048760249186322192978855071312285387463743244882825722450017155253939940612112326439417562822557360671801306834281149160925256435285323033525251739443676420851597296235122674286505115418142951552056103865179063202320883566672814026215259193512692871906316899053044497341269449195463878736523044140528066530745474639393237791026069551514726097022617395609721208949222465156829802493010122015828663551235924070204914336866162109822212652207522375637151453957763017740373899346723098493532846596230905813260410602653387195945284335999357567829234750802177621273364970326298128699912000186438850706193404996308812908132929639027218084375753303434907962954590205111959463386308458321395494344064040635982713829502774468686716235291221307930967892644954292824184292970157225704959851301672697380665422072436899966683617792676439210195688771897058805921578985547387646571929835166506022326328467826168986869194290285027108203341448989930628571370781214950802507465845172792685531954504116350034879507779645008395985462628292391650019107512014858309106921204431607495798470314166472933242766339715508552313303147110075325088301794934869198012039203414777571287941491480612379813806596585057761502096776369347438502148248642400563875938302462834343925509072989835605305325444511717897253729452917109023098839327919920253908721099185009799773348174810940379978155438852390030241226726009831373293508932167954785893822544353768145889389926494422705643762252767824135993101410713823439615321852358760711263718716809556445946894109581802045582226837205045229314430917724901031529922085096347785952276781345455673370759125011132342961454136118088301527907041525997021563746088718707071677712445493968444867461159031190459700479429104205899283434407546080055578894574404545776404180368981269712136917539410342586806012128803582700604477471804109943160468518176708420985954997392756279080222260625750103543675977992689804583976002820859232751860460520557399786729946938327027304258345569779532056163814001862343014829486129295236785422633807989363910355745730469123483094816734209432319788693904286851481719983160496052573303357626910273562555504194717552326271612625976596986527121152929681287664473887203800642046922299043029200157991425498630300959663797739057235455647404077393439450766711417850992762543905513995401308854502784656359922320180750201162486844965212446681204947983233701185990589323689934993652750742981373032208825144709801231909704716530198675069222070293888697501644291061412358102401484445532237155636293857753056194638642005254953435067916424185341266233466021830376968888077553520335641034663671817336052716338087857711041855145654887398588547443139908341694375912868545121558042559590293370484502329144227830196623861648521401541401336959976010255965029059629227750233827107079848233348011804919688026285830585928013018481203642785001535047551008238709988117578721334340034765140526112944644117940107190748872913810872726640072904959736224419130962751513512864904014239423502481399964154659446394485995933727552568593169338352573316483835359931547548217443825510125521078723420699745969777936717205461991704609717332529580567068185791497413399985209572606609866971641718342621419844333844216383502835885372372534051025769614304902651488180314376475623734230485318585279163700061424919630373467129860338308087088786924060762050099965954544192648228418894034484933513865203653458562869573060016696896432878962156776307650327513520727802224497933415294854230880104575513396658974886268322301358928316297428250047732514600255585236563334058718594874030135057225829636283861954745271416778008679254445435085287137654474236029716572801041706356728720676434251618420634421058937245197728566148494052137795701560173998489048060855921185467588933188049995198495380958888556226276785467993827535346020050999597082128283035323954115553912846293832259393075678990929021637542330865123647625100030612017677288507171305563640097065865095479311273303932429519189887501926540375536800142198378976611545959439209497719145643168586619217728395779999188032991474575352315807204029849774547849867318398397141873057114188092568131881499781560833919611509426528793158758418490860250032998539753628355241820358044099779718110962356256727532791658091010575617476172092226531203206407545513862702167295731778556353949437644990145741462078281511488359368203307747190882909931809512877861996888028894582153970656408215615705506665143606725176766516110321512525512092551640113988135625956529692635590226166776711840733885148239402074153544387493787854408463628317943683776867553049263627944606391858712108888396780381729325369629549429887098346942437139713709123574724253941402391471345692229888822264762359239050362320547709244846281800058520570040713209064081612772996153457561617277402906729283282720772830021955205704943641215567763231224153907244822453515813055325983636998268531491999091949362785695461057207221270643114594003687150877547525654052356629457427144433226821954568480231950018487897189270937322501448736179787783435591330268813960147121787769089329309140172230085365579917675069290002290402693884435173422859829631462065856878921898068217185555227969318823149710082604400376368022596836203721522216719705856991830098507567214337645529836437720650824190931987989722968902178665701868163160076371497190134397371915426782434570071097239529142348475011907856460470869643260416031480133608012819205129612983300809287650662220461546706389246729290883329017064177802376611607925715732166074208739934349671172543648604105802194435606278668498456913867148690784238085684888849807774790941242740250313170899802603688508995989176716416795469108043346741947136425136618954387036151407561693546481719164132034521560128802496816660407935221722368386540175623102908013617536746758541533398996448756229867886412639392033513229338846173731441954924112653111085390624103004816763552899018367306474094637184579792203632411609386259230323791900630844418792253331048408789949222830628111411538965709123365849226101868498476610331965654528252569870525854184148027710524829870605113937844407678051283447398049655757487083020393962611388957878277282680843801269182411279297642788704783460020994237196187349492054989035240592201014386289612981269168404784900276901710789701604991920675811662169623589195070537006433838119463950861582891477214691593703597574129049584035499829897947466040286788026180626149588394870099716763628158798299453906075241972261623248963989558690441286626155202930516406595893754520366819107497365925581585088956838725234340539326690163051626636748397905274701999181532848617115958536389156668878971733632836427449847672121140852986652033916699313854146130222983461473571627858836080867874900975249596701049344521972037522455752643315624432068174961440183749663191821935439252310810315704806145533572187806845588586215075878660698899256423644985595023947337292621387664052434557803731840714854140155410348866144905845155083531563875102812637869212467177326799131045356357882010458562637256938410539492469967758251184381486268605090119041395308162548174333773824160495023087481012327109916593103409675040092658610806361586854347239023373871745821865034628037494415968398612379057491135352424803483329820631436362732630018270214299073901880802689216793307582691324088320155692318700433197626647812509215784575323381803182212522583608488942060959258438179632027491473674565862205912378773666567533145941649367724186901541632598850288244747292700958403545982831871219926076916006072616508261579048114764083190183476897461389853616430330983347726220153937566699106602117527058292892001921943820506791835776667502270610040616775567348553709979344206619352140673732187830987796364803224390305311915014494378225327951312036816908599075199799919285139560705816065599012341591669189587871286580559254695217585816710370315055087187963074396720348586230079815548435209729544265559967712299331425499157436762275507743014819535053850405927820732245101364417729971289986312583478788615764442703224319516216550926719442580135063402769014653674637985313126130846990885089201888489997087711297316887715542704121197526140156882972759406551352500797261686947845504245165409798429818291791583661489606833063305847759765839680400324643323216220655360686052925779788272546771316601253538620228790013559210955256085840699109173364011736645493033417737937691497940153009948454677760054041958204720207052290099359539639429007429000709953341306326047444639952587373701490469353399496504979939415426331392292452040299763522427030158237147647225318379124511917129172405362062225580466606272441922867181266539201816460914410993202583803313563259330311029067964462798367267020838103432125151098224657604711322600214695418211258626727108923332955711995467071824083671038207678444304443803657216760486930893434715281449588626780780947455466669136538427835838683918791687568082896436202818295376888135202016101648347530635814933242793583348600117444972302657530034077642313664146231794962989212020274551507500620603230506361695307656116442798422296577201869433259176641803065051027543220840204073581526438200897164508777194904597300738143859287082504941694075554486410151668590649735306841148618802658771750825825181169917374501496913378218894670530785335402481106800063214517529253318658172868833120794709355351923898206079787355989557966594321351785443960427654144453972381266301607808823253645529381317760642109602036159534862609293390103475790734842094646678053082349528799561407127074058966137625076829261046402308645282554687744471519377250276099835913585500295745253556837713645939974796817958363747894172145131780799873083277189570797000585401069289497300428668119350666016161823355451019081604166419689872291561545915276553181700865351078008060453793336137351233160038709902264558440676377954397579628037022454438769476107524160075095195431935629834976426189916434544479511163769295217274310578670135082398417688003073329325572485872948883139626346380294231743103076374095083306773565373818364926092033048895604017626163258902636528527664243178321898944000392047149611808455396251149844747161082129321192642253371550338117698688814024610006227387561399325971702014082520940025538293720817491202555142403541842785484324290222373278597355753321074347605409354589232605449186937273946721857833008356172554813366559427832918564618944399947409820023305697081295935043366335217775499996934776545159329454935024612133411411178855413883343353179976984594158882572613932082326091113004165270928143073419762592250554630518658181597073645278963001681181860014490945034610028597447742579540443371647623245747613820834719957891596852109189811480862103646314984108394193683013530102355869942286884818889422515085314204329289308363700763658748141610549354272283202299386184931067394290896995460968249908808393042154603164953673547693197753786791086158904047849549072309243805012511325615952081807840675472533708805567015325341483532641164995475619559991903903373545027242098919450780791148153166558587897106612423678297171417811524056183257976029410500938990458171436988144725502667860033608559447849862224285689403554876657589783881154843906933356161755598900211348072186359946429598648073592213720494610958957526594377157893271530601590570802583017829436643947964573461685057700573680646148110128649466454130912890971480055508355278954316363488655346092300795422272121157571401037200271995850070825530259095498366522544251104723637579232687047078133130922907662823113579449732702014896984197390572532285942887117911896731044604583610781591488787986158600371725913778305705570035056779682413506254441813405027115094083601646030143680168646666567085328004010940766800063752430017411376911212857918232743861868666414540030216724414315802315516859877936867792189139204080852973983564417897428473215927922403824767563000639281518855190316499597204588668833644497351889116362419455729763935734388425727664405456330279736875066158042319763430527021804361699524988227309456916414504932009543778598684740346042287758381926325628026374763739139430331849206913650117233309635580814159781741146063442788625027546296195112681454481533625861593098282021039947297156842341732635556688362452571978028918883868122747683808188773869024653589121870117269399828123072989544106336019859092560371104228285272790681598190718879188975534715909090317364862251263330129630850436694111868617347349303761652142320309176526893106189348049497838831230371392143438209572742217023661890336486892621539560097398860145609841263451819257560549885468727921449533621019285538619420183679033675394089434637182101697394269804207756952346872203523938642871911634823607232367049524814159501918138262690510204883740025513954692909335662186927930518980506387568985798360687713852730255625689400459597446197050593471105303133041713817111020825629040898863293387846736613501223143925639796476300743400070623455427823153878224504008336590434093894983966058501586069802860813736276214066073817160095677049877921693628368211568630589481361348317576757335573272158080767394826368491509616719469569528423348964405065464196584095300068963659089942631145551609883472590950955506661944483745184327552478994752103154920252288265472244245884817606812051071839201240080547313194680276485156702145821607710910671407876345054214299420151427701105963090628237824087302112719899078947566203744821122287962853063134761448967747949275045816568427712757162227384152085537509476452501697465595261508873293546407346974482041873930577906888528389509213953782871218045438950467140068044440384556026860853531398115920643766328271578400267379558844354200589855972541044511469997214702236226504556835050146799867905062240472651653598481510802141609185251276815703513075392024168650560263769948648646201547809913702582682860243934554763912966498428156935918754009584687167613697870386120712651857963096468811706978560165538177183719609312558887547261990227601682777564202568953040208480260754821577234791352256817328507098840676910895963814985241562223026414387286873389796269207239233451122208443982319969925233560350430177789702941569103912103925212366856417147272640537202786243338654488404804888197027837539299422191251165488718823135270106861343025940806012960889679269817620673598791493241660063380694218218531813895932341664345215228806857720065486476327503552227980058551574998661737909999739334116300317949002635337414059231624399244230377433249251144612440669346170520277480142315230001245552614780224723063722578355121894169315449922896259986045604843761231619835913367223948373878528954505381224420944542679043474347446019977685152241047703526189545848985977033844809017435695476102983398425375323917590173345572577047024235369724927112248429053572507755674543323539740476837858455909510020665545875701449061931185629399105216678456617170386363617739499996910442773230020673878649711082442356866011708686415923659610061746788300439407333202277289790980727155295067443674313354545320040827511680940369920940816002636017895019088051069573994194678746656990986738621290773953371971418922872198653374778435011003445772955677071866065255625715724487465114714940519194297286116827320274792990468785300605670925295611021130062835636069251256470514590841361506239431154090623935533571559910725673616224137883776826295864294736112377392790990432384562682140885429095123775442157589566174991081904810713730648409577948099224428443923390233603040589218454267795650664242334295028356864511096240814169217101510881866923079383073258715640687012206538277751916445932144450948137722688969390242864870270192893130863332768776832352623202850795612788588278345475591832801329716729604951467147592006003548740758886480090107908759866332906640598164117763801079639783933627907697584929453372003734721936168230196159251182189379953476628274339484132072520045701245047338200307152003249750019027831194257727418825214950871776711098125268307073331232937453146907237800165085542900726986417429884359445626831830387919649177346592282995057695527350028360997455268457438297256145663131000038408472518036123961710647418735493321276522168508896415897563781509905047198088878872198268931051351347283295210934374862005787261913033400070480617972760932065560268280592924871029327507214178171237169938248550149151557144327165135612497141612322206249359417480173789199393331277135887923535272492855629915785344722068461896243963639709921509787804351898172003241735018123118572524405552671219315178026133787236065827381835356454642247916416373809427263588017421622597837926836470406268546161337934714014272030576941936953291813814784366326546563753237971456040927597278737387483697903510767781838636711516453895764917000963635093601963365052859879842801965936341913385026369824882216829512912057696053078959209008386588746477294333563309971789990747592133142046262320262459036780319938798737719907201183454157407252361884503472427480489919228082698921082421097928577640482494030901093969659362055832711342507464663968987898595884178414707751882819231469720715727112261965641668542080355928483389915326970933618759876452124928274499031554797866212583052836386050225066999305714233485545548576222456061318737668090245157490350505313278270602186573010026674746372278574578590983136862038103434245438192356797442825930892972481031019040888465666367840315590841829603324924004027782228040839120756676442584099789401789491974796058576780748088198863670131590012033623281686908706771268874135851734314339435012514262957459657115817816844515905774374472917524785863542853898739146397546809592162845093750672126611667657430035209917573573990686197822385536198831156854492438338659200862282782207249318419640222742628647155377924140924813743106154653368386824603957894695582519600914303724170712825941064268062299286391564665555127586044556986756689139132371647855537411097127106617158438114579788412150213563889556145823488025342066636014526337775341867851398238921837118944626920285972227297051748744677664297008582684207375288006331251139245572916923978702635249826994312208871572764181004376070884117755234274773358468440679465211064267232187494703111716228713231893006944962032729150963316175656074108485030945258231827719190094150776520665927494491106905951139283483571619629764832931744220217605270727490830402228236838469341549441879816274425349326043612400834474411495505798100656208450528127343710402619226318771877733734761667458757401090098383648430585985132840007225632758281320640725893426915717619260434230997384107279681851129028893447774159257020603941798699464085088922150093962700206097107312661617714813423979478261280490868189588341706070540510427255001861876684986060298278338617336592795167971486292760607050165415402626202996169625857851321294513596878996916162308208163215126392839808203646226525413741115687264481145834189387373428432602674609698515906276351894951183919826313141307449842578830700393393349883542845893471703458822402452044857453190123101241324325834484968107809079358119034547736574193123628724150180143829347379954736185293687688733669639011954502889167781982929563885196089202691732393532871718490147677375712703752097770491951601183369995368610065717138760108925059161962110385965622121938256006460041371217056551208628231690650894352271224540668967342878473598317805904749538452224514136399403766366684324759229626376690561625824210609805684038152190983137269068633884946268028311587287378466947476561843822707100248885865190570865538945268571272869218956293971250076201769485936275690586013523929052874132648364432884271742080093119635598340995688806030454634596306385878183434728069312618029424523320402275795031814609327202177481418754661189175130179292674495098969499890660528245458381505555604017417469167523350078485829317048499063908925990696395247525509198072987994329656548130629176692580377065167220450212568507765279537373352594318630291527019803850897114065558064000170252759143249424579935386812108396180820406292643945207940741366467867566341003126567186373006031158548186185238467330991149952209347143731198803890895922336440549358157235975411277997684685400045675912286788774808077529700784389216536085450575658214395680834728194909196733337352687688195468406476469679753510705721838133875070740579728327706007094421387066999574904341058223375487586110409788684044489316396678811781677064535473118509091726444566959855728130178220507748148816107560074768725571816554385296695633500147052671702800099427685278670303836344146246035667314144134751403282946343548355247282412600988883174913317346246318706656589811665013016090811046235688143870579692745549053173776924111760486758246084689271739946841523762674916553743579310622533906132478503634933577649851116371790561112695474806206861770281160886402386077297971018329878235374221845964150046084436244558938454433159226697127982760395567274408443415307164986035338338862944330844121675554940046621645828269179129699111499427044365416938403065448896065340901280977737443150608782323890344050890627273095685290297911306121165352270573211760905605580677120032374550908753122979596723025972295521163378354110142538093068717873725331866389418019022683966524672557140000844040515355350950269605571364730588506174942561863348471450595119245481282348074673629310415819575712675239666197310688566227794936815690510372509933332988335461282748329374122930320099122375506074425836779361338381738763908806976414833088414637375923346983216648607642744023417206949352451876513580678948377080951898243362552590691511449213234137822503322863642146529246124926842055187670538398660840944373526821735902357572192104960214096689324057020348899594010145818339890611100403032887890167344476294467024029931500248893090212972268352363666762147568577007004553828306990490769532973353442754524766657096191538685656305931753256091459297227590459329898097254595965809742742519938741003818330793515089544376758158092255412566597755155187328003006843068553113076888343570068726796181086999878340558324746392441401365878252662776155949570412037282063355051799130403402440980016740288075510460895392597566880064928725721242843593468342058436599874414824637309648438244656904489165820115798489889581242263311286746675896924907439375734448113168447093522146852553238593959964401145135571590673735522670132736349236198971165908886667455702275680657072434820949317692642905758484697774850775695689835651340431020069760362913280543939738912137620596384535030675399106046072801261010822952404882497492069893856764190304855428058507765910123130722630596207794485415693337823416833497126909762401601396483972568199019587347829771745498431550470574960133812024322626024954255197804378342741354976908066174533134936389826861781925247995042624824265427681617578338891504971299429537291092467771775502693771620307288221545666718551556190270529408747385910484583596720736543726053809509050365617918738793961244490738384068571669985279489357993779737735900064964977666331600813341501590588907532094818579098260449019108268381853569700060677005842446410163814241197980755960430701230771254725524105976159833382536866119828963964008855271989622191354348509327566007459261011862047540878572540430569008570458476019641154356272426478480884356938094735464503930222448275772349186626703388833658773560380049819877004407548170955226478095037310821631089219977861902156879202510682442884879456665852690871651770865765942144166393505659476675765466764647525396927757333948829808402509193376070625392313245858568683518292499530178192851010159421265536846787425104207041522883873409613947846261166745807159172381652097401342583824839048005503223764248684634349582591800353432499314143391866603417205170405359118176335108116625409882143782442083446013260713767747481617388275785900969829955231350560357516886087548153307077348280383404790091793588573476224248284380522189687671166603542780049547631956938830522900466210209824551989269416400492628189611821472947497739263445375704414502470882543014603130961369700033218118549614226992640990067909839981554343005395516648318092395448016937772237054312884039490543528402619726220370780568044055035147417752955525629127285348233139562093373991518682718520803507364801385573766121536058679895258986482883208988359836909839289371768940306795004534149180084084702544147680054667948902199349593551996829501950936156125358789284613322828313582026771178574116456954592162786989066199547632861444037547754330850202501122299850737266331666899350212619213992427886453972920415288493580443089869293217445227541789611463284501708443487401877361294515131844544193398171980953838360168004660772645053158884973852997851055539095869448987505453323456949620207374818763188606879776923535526490133579572038335002640000638316951508818463269477086364217095627154756777071192555972232042431850862093779021919249580569575164130626766336801613607551562511536319424113078360090941667802517914714357173899053305659197197338724785080714669834534673659182239524858366993095982907304135114324204235511464736803303025733465228407104625101344074242274939109314501060981348172012402602666156505647085019037752179783106656335187383111706153429540448126823435024242842303459802811074556614599885008487193208265031739130658423576632351521921241223434507949370708272950638581142417041303669815303221676823565626641671881675593148245213141142074290962354161781492880715088585621576527695039641965892788256213212877927961953152456550919600523929847611908967095603660909144285806339616397063107370963325253555157666898909110281192942220907199653443554577462326186082246819380648383167939460984480359351067891587211318214007173265599967676180217317850756192551738648806646413895421417970004565330914289610745104189177588631380931834549115831352672735577704102016092362914227783078187907760117674212289117727428809745994004714259111868929274171344360887016609914550665126777848644154203509286584248790123858872546760918346799706991851889850913368918833481956776243939117105689000639109885202985130050092520485867002038071729622821570292524265515930956011269465796535174581353814642569703064403260519448288246320103975814836525238812221849258517434338878364749038066805260690593036989125539014049172038064536264419742099262276283333709343970724354576719760386370988093017619049851549899290718004874623693774230254024815526844172891566357116943511689591281302993981858973734076949179017965938232548551381821224431621241874061891738665210950063553740345347638404066353918848603714996754911923272534608183215688488928085198323516400964257764547478839371532895112187131483582057987541686386747805913221499377187085805397338883725763535908096491239902771982927645784155094274955617132947444113987414964400055130069548562134419618184318582017702869726232061176942925445535480217510327931385772849229988426587340688774191675494096095511971346250778350271377598508744021317771623948520344823444170220158288639857040930816617366684500499025296470336184059174246125464348415257997663943152500117329208922711185654710850876842424349071292986656653089838169670556009747558445042868064755262954491204240222149726481491728358312960289495165398792939252614798639751344458342493049130710337460556293155048135294390498267168239674325850562408189423563567466386243377537874807675444845320155779301006064946919558581330248568520565456285760136069328727017107233702892282744731570924784668171915230383764649676374401483860354241866095381546017719991567501023259307483861872350000440822067425396475998971939505940010446224610228847025143713548785099978954247455338523499582159619348177780943717893223901780049545944417610468106222342178464828859461101910449024480259781619419795649735448700159007128611055711972797270566729860542609480082491470668088454213657569693796652927242789834439008076328772368847805924350715772264892385523425428259700736601046622256972063287025826199856656690972286314573763218075473616094800759459289280059335208278650353323758905818090750942926364385747082446489499940699472382294549924875365156578778729587992062362261463347440998243746983648963911050877897086020820197427484562467005962455820308382178784564223069253067527934185119255437175488697901097423894302930211597642544280470756771869025920144469901356031368388574645874143195915502577100504342666433702368045623788164912917385179853815033220469733093116574386165225809541103997022720594799145087164532581380883427726407206839069164304872752667965741120205177643488067446022196766884375920366075922063890326100335779976951913323239801626529729450902711579491230550296320803137198033838380015284488134615970495919676318602731198170351894686760354031264418353746372041838414306356479874817574129652832384011505985875287080663052607497560846309130261782355265488372716701349551394858993712992737086659040650756598617500740192520665527013491293251759177104284409390119336158655741157085528892337717722076260783205084529039964888925940843622219975055307851011115545753210423628837339549190233380141457580035197519830102292022854578838787116345922865300146365300678285122911819675676155744488155193501561525041163166264329516155262903717325007678699951650401127653271280982460204837748931575855966106440725307611245862518543078760251845369385920902574728664330408299992268414203608279408116854393129234943610566494258862111431743530167350758256803828174426794443842510321498922845739231454513891408953646769699091436441505726667301279639288839795167864152914510213961725748264302469336086131234214342907464029500241672428077096083589575027999396365682820511995969981180127127300612289195611861673068677805361260506444043054779159689325079328919029307867028269155740659901758420562300306405649589504855627211218605842855147491863018055011455121635946019694117810468406434814863626077063234665792505091154550364247836825640725517826546537823312079522377637109705407478198085200725080179490206959586810028714200574524264604707374236433713805167055632138573626706033456898740841228194404196323051783836787156813516147656692446181980168934993396635537891134132711581252670052781325063243401867558504580724454324482956647925198985124681341592860190630979890075779463101305544492333083887259290690470058172495915232505414531896705835902952161782480251173784892202912258966961397849583220225557190413816604198032003802201412155342418242814446789547648871494871382598014008314537924167951171497323296011644868625230584538384754954318908013280553132263704903361457823575294995830296383372678970874045147115139273323424774135505927100035510209210413825320545448794491967489857206993595728061082012945681208526750490917247105876666214579286233688058176140989389150236948013784758917144324335448560701892407511737016105986690966502460164826416852004108867995427258226755462514072827357682998435776968048752092148693385429198129921160648547396418579198372037417135532561976458142607903663062787067356383870688198866606210706163681957432856673604018121404019339639164026664320269585514055259323814923445497701601373668123516031463740217273999871800035339826085199862510721224520698162138823199619413436804789114495517866750737660688527304403094182318667823007881473424444609230470376770098420333320936459930013880647506302816294751333647756776330565612320458135856441595387843224241429485504421726729694338116766989484888967786907139270094803989261027773420343134955294905780022524554475915612712148333223410860476739817374584553221041984122136994664914405165168852461911335585995619083790893249967255822757425059216943949114809998979412494487260850761634307073293923301924579730651380850885034507026533095706995416424341552300882909345961391191729895045088091894396230001889738557865586492078390412111173448010201122555103606639285341462990989370731620909195261112066025761145344071189729849409778374262750340433477084606176872694587514328132578415309206147845707985515528310682227188613917319909255220011540814573426296439976169860466232234911785603848832887146743689454344932394537812474339378872418044569288981812457996325736158286960073614156116639727210953817576200723479807552376632122196619340998889372583031541530818791564222865264526127259334023322194333367932115649570843192096522920875017148593810582414159487930836255109748618870947770817923612623076505987137242237123898889221498187608651564967574697082744405956766331670404678159620315530424723324868984716910440820103902991469217398944662455803327545281814027890359958315485016089627817222900539587726225523346024628361603969905145785806978264234121876225790644052185715571403788356734879584974745819275717626555959868906088249908493993600807262036537295968615871332009330588584315097989780035175722506500983159415607150732543739299774622100583399193146849128590627586880322890524109782171487359514033174614156276229842412971224353548888941185852881501578287776199455590735725097114932517963047542891987735663373391062818379293927406694926257781093610492533960357973876438074971261377020745377815993729773768298700901430864389718017518975564153058831156779286075783500598557208338369192395762973665017179434630035995207187493994084009593773370395357085970613135763342707805843728327957957593237846761078165679738619886381782585704542669618287560054890536098930990661460587649457029202831150228754265847789073034802409439951210270783213362687866547618373804169207683952347355613205538681102353009890580947522581797082759549339969700368009832730247317459738950206092335873555185600837621996235831921434520013353845521225085749773024464306133674987471205183162071861203817082538281955024267946163712967221217825251239793992118724015128723148709210196227661892981220966005200090123997605157432568572012487382250826524311392501108444240433175632537427487542090877373045164282637828616279932306880493164372369120886903873029792710721322176858664743733790673315756225974854161927152701466329451132556208088765637115433907283305985379892386044273128205385598368482096515661425382908575607664246680613708918136305952941985907196076115813554538053685806059536198754624274795369113307479674746227375396655526870230182742517127934103709932049097119133736646242592150378193401788195496121892002225231348747164957739002567702601695703093953803178883955032671674640741416818177453866800088420538551974573742635165157878449443389176138330891040613601434582469574578741270882752918143120685546908347119230662367935089783250349035867034196396601903935388627173025452725052847887169080947886941353054668055808367125753336238944629856052071082071966705997611572103748417209554575703357747994028793525511510169414719129813900950810362172763767724302832760124878186355714174362325412895141495519627694223056526002082571461534365705336879765894176744720003337829300965019628948962381729202607764409824756653686149144830966068736849931984616405053172598737607330074955812548742391180080230198045293853709776354910730081431149829261148837408018120476963402698698241616178813759258159197328204419583802132337595649526983482557382483406047682580959190515933011695802242510703359405645791664066039678597193078193823359205692606971858399736760014425249919767375490126202873624998283288438126541713717212691196328572391065076624703075659324911673921435590535603974224715993582612955411638516511879994488214580351983215911546200324924357252704818573633473060808971138498566772993760120649764477099530596519072433641618825387692961846986879002835300966228633560383791046493265392612011854420058131496242563936628956120993575368662609727017201308839189111259478747043620999930944531212257548163314412656168983185987803553184503778028682027090869057125178902832207923562980468474844119153780612971992308991919058609591051489410614898444196118975228631392706092098618038594130521172792292662674075075236208844472585247174520058524470521124330883386001027676211306980702797128376358753869191704025830623238216419520099283923200755198254993922707502482942341837618243927814472851242485469315664242448720544648029818494992767993098293923799112719741056778508473423187302905989153329000206675523895990891768617932211010603996258557290823640056131787900738815532958233064790486896077924044745721947367418347081480775880589718934467348545789086861439222796257583379130293761306625609210456730844871966505927066039553450111124624762139643763963742046981535258473474838740785373720097643902342894896753178566450289536453652592680080589058297308771888847448105772433806756806813264995801499776068627864366107242623601075750214615057332753693297206152220369498272808225275333573962736901137590405782177159077610388712480742302951895802217776100414338903889215110170689710431566394275004819313332043887677485460808454410026366941190289063086615330235421413314733332709573741191949559491807796444542536299099200104670429138926311441929530242165488274342893549665132711058803585509896339030468615052947668353560350208099358898805317460620306862324156454986087892046498092688732812438613455655419798970215131523434081257168780842770031928320104569274059863371746368120264228212886695077419722610407954789032595704398010361783305700590444164528637390974504532218025033002633677046367479025817594083160174617991523252909763776396165236409475697107301589064706424671668574354998196123428739478095348329890030292777372067220400491146299945598201662486867769914272091528559604707173105375166756410040486944186768055832116773574485431103069009817080723148554025226810830037869597352611590088489553664514136255733100893142275161527940712172976093281624865756545859998081134654412958581081350103434815576395131807114785805474017692372634690992699958226098797072853581146996666450044736023307772267896494511127925022583651349051533676591503236812009099063638874066724286010511227607056512451565494648128856167036406544357859864812810868643953266733278000278628447915464732384889173754566724010386880074064450921995710750051729572744729006199887390060127912677720582583021534738405826272679002683496921327298393460660805224809126325349265339207775341203063847151821457691012839050229560622476139638494860229298937440314876608014348106810886961857902607032461092255286832166214852160814293588006187998306383152772986174764642833961556727907688005880510583949343822469659383975491729753254022611906648557932283332872653769872295436565876792963082966561345365191908309504124090481605934239671974976477134733665844311468214873427840133803904953009955704441433292158967054441885109080735793758109614252960563365197559126908567097487041301107718488235519958035712828762308909772836322692336881475224799829375591021074000503559730083261932774435714449994266873158192127279783514233285604017019089175136295034203088733140051115496344837295535330862191049592331207459493316503830568749494306759863875161843733529925341877720991464622106266830655254512404187937092459257326569986677272710151042637990312477239710285066511621884172494192573540598212831399721345222138641704896455483732200893116617185080271874361424367829204275366257351164537490465209524801224931755737075037486461261703212653541334023973416708341114134630429335027685966280331994415520292061612287187740695268584030733126365947396818870467219637908677252407422501096318387240292526784952215765058066372649194211478415409083267780011880277637833203561113195970924248680747525083371297367092216135443029951758556453716997203829449660018357453312595998095981815774344265388338055472937482903807031190066641461227815595762143887177983306774879177581253396139065552183720574779029155079117567635224566303160519052638634248709547907912803072506141651348327574082163215452005984695167060666094877994828778861509341481587161180547779539733125008800896006345284542990713761036992113443128017062114972613485313508465868647128887360901909793767540101797424358430589314705327609478728581346646472916157541598986555849806438919878152934808084983053234153124191641354642490308217613541656681512953072090133735524172672848984541840691321848680756619304729938378685156345611272739511475795015630929881620973998352935337771228235351931564147613627751876893866169983984989832414146887758444515117236978696792582154360509084125254251132077920679693416265704677740346105874812768107274015018518930354253393017400325879193788667108119702375181352456675798452954307658052160170559089770786707297651017547523410375197604011909188187450696142475586659455139552848298844900396285477618923770036995636042281175667955715529985629441816908360539677758504172605720401274342367991079268883722500767367988821284619563685658200054037115440667958187712661975131642423542664817621120351562889948749484841151986863416220726735319778780699179806399184996260790105913188379416515341879489232293413055375451124861850852399618848898923230894910044604128199901412193977374107052559502089783316295524853530860667457333736948158246558032371156314434231079586719454549477060459236862831406859655389596638989879973282847451076894955700867462040121649961577530046522726599330594442148536528229673404787949716512173482037715181146520230374399371349456973139021097293998534829545864775264248526033417248854496507942456859905292007359240153444018248984057656056729583659046954232081505308318497062735341989409561511337432185895154599223658734288077700311571052993346697351904919672489648309771186945063310628491999443315880482732859172018445352053455896859038708260601694667482890678413288787204782243587725521775749394336507980100369619061851826704411281817602182739493174906318713995918213350570362855423446504424398063616691342786219287263442055653918567413622016399203222700860638511388610906151934513267501186095018938868811860951249147725621780666882101828577320330050776154099909562552940608019767127688830449560678014667728509214878763644803545894072276228490590792667880287504828232149524804594311691208850045957151567817780429179935518635242648365185486164255411733478334487416403203432711109016659034574794970762177408561244523607385585682911203182147384905613490556973612367422650324384770352283301456870962354915395900071800327238346352351684646193121065443350392474205301746123188675153209073285997963535540259666212323989793299713982771089476147879413202072577002331558209037010506796259022237035184045052310536908757992234016163629878092254358784940961092090490169116453044220852426525511704800723500656913278504140148760545903670899772113871722943105053733293512474753889430804406038142902555738813771972611622856235367979935375785794055447162217146506137782141281282695627639881397550454806614632724732831064394087547692262840378238416173714590219080931844011174436661382586794483417337357881284405899134722161053118597588744357750059045854266167734929997998602252487878535282538589833953944019618193969688145855820930970955642428421712348502468253593462670856987203011637572614665207094573064123713497064886793029369989465230290979038853634381198394193045979863645756668522921639668411497037166428886846255902684525190978854279503084439950185193918080715254081970837492768829439673425826270958761696531784772215661779951296587861607586184528257125543215399330513408052819440891892132200638586950369981979617182442718198499258776341458910810832585205289940552479496529613306528690813816531908856075728922071521538941778119517467019184910714201510844533780519546831860075279693392695937212161282633037644704226955087579624566245439234950038338437447728826915483818009910551500450159744234390284035175173066773436707727742785860006893630244666170131172703865707931821404613715531420262941017975220549792310937196160336455932002168405162736824635198661009496432638000361441384592363606400526305793495305018415912913127240852137566165171413067751595075250028677181079661903763620931302494577223075212801505709844040288854358750706277453033722131679228007802151382562905168071408835424362770852937319767727517792568168107435568519990837433352123369803020041670120160324478014875775666963443821447217958625934417052241979831661301897389938545945223493657400385661340565215633741354629442855998599239845187598345805914034948110827079381042553408706585974983490746750044060908650343673550184082354379911805361942905397771657111561912651799627784262410659265147325816873918932425772421524818009985863643217455235352045003566393284342200185391734977893262140832087041175213739558690703754763034311287589542176881406061503266771509197195022773284691776375677657788798338470287394338166515947160649034720002203081411276827687948340851198005738263230282851601899454552060134036546104533755188590353645955950559425683490872870610718056518502639024125709980436667144915872598666609850571463921459794021559713329549417888239540258733456701312881939087423958528528169866870717114378526937439596328198153735499186280268762315100137617477334777596833214114112142378403288572656307219721610573458441843035766466867485500733490867053554804356448575927691777826442482014202525937659957265405265498999065757737033058879956789074573031001931423687803074326812956138479195304827885385409606561871652939484514716871664937801147176286949184827142676147909516792900300065575559296080870702596160887334245509831920056425146986508124315419012943740817897153319982177116009609634967640066387126544535546504623438576099602440863009272110369055098369755533019913317920998404300628970185197512955958266391249371307194186094551608242603942560758511914872016489202280790360704767381387382821719622497550066514395763906859241157878836543294303705179252670060517003258758682930371050778677833325662636520100278856522500137194830927580348232748923663332173632857044014102801016522493081750410773377122067482152025079524596105166939812005109025998406365342581748355319538474361079684208115391032237277199731177545494303725741098541058358186022935995466510329430826512033193724149346580363342131210204047919701407734333412899877268076497365357414478186106928947610592772825669891115232788047288970358124209273352994805952663011970764600779863358312748283325535815452289164264220781545531912364418474625796165979781968889573739316270469329026777973426724822397403901088614298493931968783149484738962212603847870748656330595990255013764969912863375930074041006027119250474076053425049177287243441865220051054329348394727191805373757076749762201324816073123583605631381239659825362429504434042336155933772596614467776075700448856216908533439896097099810162735605892709940811668024666091961226269249167640224344001127283484528715690901103490983705310941294244082302684262358034535748220914365409244240010817282912911083343608947904502825371794265751923709077885665771170504048910218905296674639987748541717353517009033642041656678449567537437722757986968687452494556112473714723904385097646610298129911719962222073402018570257822570391991292561926065373017505136030442932226442099176518669076624844046761180109371967375632368370834251325524658379765012974575305465742025140024445697927162234172437856708571984356785725709914136053774272094421060052598169971740402271229830275643832298300048582250294417949385343565660282588575580594657695775221837104314644862827935797961806214872176322902503599917424005009592699025117635103599504656106691405952698053057274394103356306047169230038506389675520630130185663389195751892477884989274420642088175983779598511759364877769270756203962535731299056579660192419048042551703482291602154482311543834894086824645789449623412034330714094478714950091998090121478626226294019963997073005263063485110414747754728333375294988817474851613896018056836561612914112815115548872963095890060750910649206921500554363797705256688694030766019066267622046552869665784983474167680174864723307585865377778842401641496163694185311979442293152484438831217171509476115595015365281346605598306408482526349327877691672942993547164866285592277218333136184603460375678166948719078614909741722447720489607397379362932885396259509875377749723577359108846156624459424915940543301168589379501050818960897823999055144072205536543919071295862305511169654853245712906120526713948845382504834972282161032305308586407721000939141961031035782364670710988061558260273856092508511314731958531723487424305407727966377935266331008969845405165612321497832713097593758745450295233140184101482345548922748795981828364804672577093887899217784649072897489191187076205150426970712884819599279964102311152311555246579730183884952211800090089049875283856684151913398311156261727079265331157787440997586256721946319151105612147236001441534818106759720626376615910309009351907148268844077623210255333454540811828461848965233762253091400823067023277127699642047898213391238915556871148890715395329229515127384324187083476436728895501004099501015156027014112267236065214608031400024219134538661637576250011177213644797782936650910194876003765309688306479348858757396248664304776307066649618450047586840961718896754533430911528754960363703149704634816692082516652914367862333175815034385943433516729075156120954875370290250474172492411447785557836203201061986875844768632622558754290368994596134790333325613790723963104918131305739963861491075721927040125093553356753781512609590279340856156626352342782254789093480282599739354411963994586365234614682950629428775317718482900337051313181202653032942983314606951042858869243717955291191739448980257706286325187629464403427389207574737863808570225417105826553165216299210729103533100037190124602943667990023425756717674499508513354908077746077020980103678590358960782527459111183400400548897653395066548772050496103398109595247405937301812757361483139174991073706671979695302123521085650906287025484921673366970757388221555106618567618353123226463859302271080997262945852940990411701672834138025127065786312044376280173504322241537770500688134709339505492046523502762666122954645175685171959844216881064138041221573117715282693870105448818284684887133974031819482550002252077691945236924664384236041813666678858531650626263200794497523312669143736284209416342749806775560852148976075871982686770064459737427201378083527825827349939789968691155996012109052698025452276377910821596534593464822914594164177832179484941954874269016890013381775602145600623764225904707055499587194580284712139527427016607787172208762296510105564365912914749424436548806729124609273668793289248630559492482913676541886565033959492833272237211527289345445108271530156122002257674942351519191864954262887024545946364585604806458213756728067734915125807042183396834302873053329176042621178935241557763889672807928707762146718013386509983927167205358928633507861290805508938596793905998878968984148315464008904367058225593593812478344575178174648967628836669956836749127412307581387269776728893584380434722202601575467175382143702777593394216723993663636249900641448690462727041707830163718302792243190671449875097106004050159325307164151768694688594775540019521994643651645853142059192124496483788229569569511046659040688998042307969113051696562653103693369529339328252303894327954846178145857148898108613848719433613573633847256785858779211213259521205296954445090136835408901220568049898964581259184849048521960424623786321369510502560638471506265135292231328957026090243144401115109829144979924822759665167186490503243097890349112496047781114931821127857001717714725410662399017062013701328083670146358047960357551116107642324741086515507002124823219792204227392397084918498012738176460000198691360613690636561259931470014786326513184269019152614674862669241012018905334695506112351101278163518370833456230743862673919730726618709243550234173117130022300997126493734679711521760934341393469128595068402543894193635129917097439330102221051435797498479047391210471750017254897391272707720252431458005434152695261512540460078118195087590758521671093707815589226689816082796863298414978000090360078011803434752284983007279454519788505501587687311747360888041936952230131934822855294509636977919301326772593440326498196131629385866238232149723901670628393026590194347023679313183588927511211711257457145672789323519259011716308306011096255539330402576258801667239707313452186143737312206646976613703893162608835060865322436988630707689228532930381025792518008342006781075152990050845261074536975044006685754823827657561904050993669706414386583256335050578516229589121247372201714746373333492544212280686902771959390824430604669770147506331480729925286242635420912335420138247043156254047914743666937212368418303968654984041852996228988134299752825135030790765307815781756245580540281948061140680038568715316670427844108695642148526485813787241699345102204852090212364700201908850563516660346557054121267971423965083324669692590006376236349013199317593697807141394820747385025577242474446399924288078668684850241345792635726780139742466828282420781314711891407992194563292168919553960716896081462989988144336813322464827569112234990737707913544689564543890082846029572938988309153543189042612378014555144765383531504543895737268681560057945038073636867853307480788391387315910219701353060704587183773735112255045539121105422012474555252151388906604836215893065840172824914051888410875449830644893367362383552699256737175154796765120102373011308323576626217522590602378477558434895034402594824141569675703977732658385580298842216705788822394067746579312038835674467809965116103721596650883250391939909280670721010836770179648443106110221908674737747278015492235359530389576886887483507228923564932599575868750122452824830679666878878617727721652428043827521714150494491328020417051009035616627207785132318431879047806956033025216509630951198774268795177876514888610876303768422157328652487121370803871173436638062222206827447876155587478330619721070164849958132711331815510897046542233756465223344591567514980996079175045401222879190537960811626305570294557698695140711400795416449629711224828638434143684165773587644816868992728695158847174238795375093580300699889926460503828390430977701434427128244824283644297601141766799526729201654163485701144401199129493124241517238176902094765915877533840203124533659619866491312141958680743612436561673255406503710731578364060976754100546619909357624494821509514692954200329919314461728801465229975534277184689969335453807757724156119401344940532587702863625233270574792340752564941403010646863404891096447353485793951866282079875465661958997923847452580514494328568126258333115627858873001012615839716329232600830737243527663093853738311578309240003440009008036225284865427846221304282089591281999719653293957496590773847281047594137267607874477496185331263536681347457999050202678760637938385319456215195567767092211577371522052724701640801563575880781874302280861311575026504576183561778627333089709485864049285744349967832264488990534555045701464828424525277118535558247360481041599534044372979142467098073639245784490293150908911878876147961985849348917909633074143119858150397817978371589219214620984277156075362672500454348934305235542212489406942483414142267672878395396181821905629831732773390820817060540199403513196099632582657815176615542773417562344935800887902867764007617022138627288754263619852627934796519043785132148598403161002864170731408034973318920391353347586941279890372716488024394852129941054241796966595714460025444530665630562079192451509029125800311355472474374995203096516682723628384874897563673613406433597275922676698678221388019178114783769629732669389354200650464260723735831035627580132298210257806775005036270214576308266038318503862921821256588651084746785563072344528276375333098877501336866633784921113224587634615873309412523780318062063785309116281475885510548292218490538885036634698689797708042228537688634201912071953752395560575322941781874197613497829655085549377986754077654254437877830479052699574210745663612110531021918766243029887618081630620087947072355424941645236262301953342235681311238297350090941005802166890150230971983285007760481973313841959152734227996762912420212489926627867902499098871532777155899088272622349660783812806088839296117949556185373123645497397295983174471760403885978267974664435185561762384210952232820321787954274295933812441726738529860254838995186804573961549924245006233450148357924943449316866224429529143288466446487147378956604796057855205544457579807459853925248115579501454659281176127628961197436229473257254360633615338276547370166683622978365830380377712891372129635690430085391616667321033122144382949520510226768328436702900914673531122181846485530623582830087811326290396980468472689890540222908198169405281794396016144720551935066949862356731846888469631353744939645810718404773497589689551348493199910751067420571402352670558240352695843954511965811725315746985310495241545441685604738338660603519781494208114037959788872194411027835915031065039362611175440901226242133773197037571070855330533939537703940720024987016969349754658670014440243875481190767894018714331254736113371572555739728437485275681628433649836794564210894871538922051299429305956494675543459455428183120436554879353905926674876811141651822469867707737631908918275109140206926430215640431991042874441949859675810065888760502424027931224904500329802263104388234883297617696744108643497102224085650185335015988105181969551065784092826844444317591856129617493315522761994055136982012209048105532063761414413405174545342493641319712140310277390272758145583828566234325864005199553013031015713328620190717021652085692478274421135751935825771893820861641786861173971807148810003710304400476471537457204305149355074160113779419624035626232960988501240314933865146245333146409575009597690094220272987011490376239975666874338860077007322174182458222313677619144750795374752085696272182361791537111919547909422986214766886023500752547825556103437592363871516714400552650079268798053547246674670421440035966606785980577134380728908215266416298815650205381062955527318647538879649991149451860387828746256137824688838208787153283970165958791862793589693459673781877879248825859312765514352227063081759465802359549747934510486212416544098547183676765489570118906386313765146088943386721607830035870528585667228736276454969458596486709361619772185869556705066580917560382268291452028723694137302585381665739954435157433170347409994332705671514312134550765895556057898832536098583715823689309730812841442510916989916756671795778398523312306626813361628149264994641133197779138345943742958704030958465517547120125145556437302962092753102256206689281909755606212383745292265165248893412224998582559740832714882762919027178657023637286262508704579594791115485734546368378297402852950543158425301297660516056036340535557999335086811851434860828719798394649084096096756188755204316971407502398665502159733117898892956975955854811809650717172797800232908867015705514605859366987281007247004732652343665937184769042179488950585033691903679807002743449565579532762932696630630162727731228358813344672349173902694583101965284492810936108485861210257924783739809593142322990451496161244345506340839082919707004915268958248014111173542492348453989155505804716072255110183549670825748901467198411079538435316379221148817449203593469005427406323825061645692410309390716207174639632731187531891239852635259154746833295066978581038339367112007586444822022555104149724630913652181931970388551442502284738848797930283980692174114562145833801055619460950115339102229071176616462195547865484070790280734910192324540650172006829973972392142176932540329729930759816402310718053977093258959688399708059118350024980305406861344144757247203866633343552864736582536641443121174805974193025011890940618870462972908968388925859010950271229518053033166278915478043162480625848815731531927757453334330117565310578809219717430788978017062308784594694720026065353084819099449666522709341860122100024427441018288022590394960623643384569607420554033778296126105666687406289479441149892101562830403669511200810143220016763602126288216299924377371754923203950839969493134824980101884847231051352383854237595081360448559024150439908992611263169784353069061128653352304981710012703470901606716753941996544926234279469973937395736419875737713514362926861554775920878039564402359643214316295532317034247057754707426263976492502150907171837000892117557446562692133726341260656440076077727767162969518392114824634293766513179519570441326745441637080022061173732574782970466381366424606788880201600693684897959623279267531592672683236853922383870586638798249864095867875685384822330446437711384177538131893033008141039247907410005616991090067408011610438125973666027353842720328610546537303165442404116326125958142711429783906012056228225300540227131329092843812200249841705771653820494483098217091523632378598121888393575806744439133444539445847681103420268228800202698663416642761965100624230173608289331632259503985671259087289901133327346746732656921633394605131134635147377193260533072353881032798175117008147041692607027191550494788250629514910031550030330216162587990010632730777632528815710069844249183386188743601858329076130148546876495470668483447534498169535019788520313826160750445901846254548800897641116004485294484321969146832646728557080735787030046352180259931169076195946503903050241663243607955530048546934822568903047636039230309133554859895399993072932333193348155568322610314855539272760414874345909225838763872264681186041488047939176427525902239158439021419724674994784058709590980086499249057224117112018748528164029588066265007226999318276114687311698072848239636631490229132985830617775998514514479611449887334956730226371530982442305595978847848169996801952175582169653032216334102551082023729037099414316151256844585295584601583145376949783223004175146796971455151121865555014293796246554929370549553354861604696133639022853565714379460304525021060645001995506560128463601615678391377698358763572407320601849337348719521259559587355303299926233931874489026084805182477032022565179941973197698986243999788683986272634884790011176087101065601455034320676955071897354795622085343467058554352754987704555133607498886120094070971442906190352737041128789641960086916147655015236232719981116019438934536623886932314683315621809363354796985437439833277059044101948918571565713168013188690597977359341748490324183602087033548249841690743347947032368394501384649636439960385460243038102211995045860737407342062572725899084846332873007816076948920298354905222060485268120041071197976575174084712877621667104815941318268135228685123334427316175616176017714592343049163017466227665970564267375264030183298928846571764844966686316378769663924917425279205199292236235825556548025945133046502697341064195273142078937838715288815199317110854279971876281017613099316891518785874487550470784394241873064120078390964666052417631404195985347536015787002265359955910920719061292902254678553737743581931135590285489301123106974899597817414146261039593961184688397676387808023421219982119527994278533978310795768212878744205293848911494915539407403518117035153036768738657302426236769528069943542693570868588066652111943092132051352654982740108319760770878101021512736141940372874655127733942339069496559614892404070179891755223651823264183369690107938433633885670747355415563227626984114036655740728037827513535649260135400102456839351083243385608156510874205115018978625892624582845246407035007748919653432757300262821084713042758116643423379868662401651656529200874378202564946328880577484885726669022899201209675146276984728462433716028850051042480392355458990510393202843112369029814883610778178601185052329773798810460917337152209038435056661359747364261331566830119002743837945856542449029274273544766580117114690098949352566999633280082544761156431006929079386423837951916547694865998979892643161732989279396956736114946662364324005127467038909995021296022242365980848933175113990989563538747605908267152395984508997958281942634175906472301091077893058430592409641065220414330982028059514323071480149307820328147862008607064456916262278093975404561303358724409907131792874382794431173454516177934011686210794010327612458101319575743734870189721161790686184516135554788970837702439723929203818499225366821244410510756348465316980582907846318074302371276786937303798178489264682296557272465872687260421978373948673403738498975833656013939163543816285109071124940579659050765410669242045609130289471302124049894560895360292119319498025458569490344541144423473907580001296437828419599618733622893123953413008925966724174296897166075720034765886581628738675149669491330370303062561164642627332270376581033087073587667891041664056671366033546419978111059611010899466670970180863526493947084700838704916197049393899848250982889679405903524910611861946560837388844884290076563326277190473937098667662858255605711764467002846863197045089579075839776854337041528043743155346635782838403637508106997317574531432564047593633825263273724603046481658983568209438437250554439677400029238678486916162889327145646104999524303912107880359359972389269649981055444437020721976551311347939870521639601173201615912537763594578126285411554332268272128985761918540244123382149731714252130171041563775625994267773879099226547205699590152245375698231685346594223462313487775470585540731860464214183905391784093168727990805026282547409548281922827352395597929372057563069047026127546405169475273730422881970035503326650928195093534219424033494310151733074466450220592905880149758931166180599734322896706241823491821476251166525797530013768471767303638473977885147055645863292287265464226027813985350027290488609628567175637739542299774113794024187349196182720160776139321229506604530634554478884478479801879796839331973880954737190502892224794698415512383327098965382646355704753401662153182121771234808276689283026705895589168458410411774893450325673054654308733383821358198683263252659513362365588694964410030737004696900383895288498045366380178767376784812154585227875530569335482379933106045043468403435775729859617310790161893522698594505444732231985636570717241719350346023820517429649450984102281076669933423309681463048280820849694427237878657085241235953932165452697173867511739919345599628232152976840717856252029356417576194587692595015657601453193978465649356548828925533327626491970899905617206000999994080563711930813842846221481502834572481932848836598712979022238388811750311431150493124877812897104677407709118692056459290811119061608879608999638896492054076656658300490715315178015506046140404246237092314997582506704441796988320753979032967416307552517042523438163821338337109512679874286478258933795600919563518126954184200764409099343996005859535733847038494599547282453578038125642391290433656586919734736393282147617273647003462421841992411145356623218942758617178840499783660689764560706714137948299346882615465551146558898419367844440276452585961796846804211706790892073884300276749603966585148551453872999229864097562648300696447662966687447897822947067320747966313657449779621336859756042385778669098386411499638174033205046392887878503457352198484559232461642055979950021563361143615664196922796224270178921074901598146270071074969006079010748530625702580505001579521288852682222287624495307354150853612057484576490641331040260129142750819032696166056026944792046487673671111443429462217000960969395289234151730233852423099693418915757694766950007559728022610797496677406777376447824345916666437934105460488416510317722512666975992096760609851907957507426219647604535845880184373705549937057965815440518702655015829707036741802328139444816865318365056358933621405140214722866295795169563845590888546304696566501174925835756220216274185603403697955572473824899102083804849701469720649033099450688614929391283954498470455025491485038309953415444772783439147685567676061558420234296629570505299460753828282717407509794992896171204242518507758201147594521411192718301652403155806194111343454217565566002636872524925744778370158321357443824930544746172918800051288450229387067357353142928245844555393629383946362931138897302641708046648134903482744791434565644424177332884081795505473076360452376216613519528181555376472251009841418854007052252089961690282993678330765544567140002186653222482452020700375801770119341995195247368047011799005732102061928389715964055332639220177649434429529255389701814984340244385728412852860606648101390668403694366179330497108936425636095802501940376664984866268379438202913425582370496083933801221942101575298403871968217695986212224353157688467294249705581625079129811141634947954262577266594636669583558240443207196060466227502098772250905430428043008503671994301450010607982890659153802452246610425900752075923223078809612188773304441049507239637349781730425151864714885953150150303432282836732337425795638517172055493006563516273213289412447152092316440115361296564698113203293149117254658294327885849229373862599915822264016215761834679436687641485643002802537941848996739080568112813985914778731570477994871091920252137202441260743796087343926922193379807543294740528675559665585587744174356632817430991600129507766437786799216692004930385848685677208435694670891574444534318537656625292174997587188774644049895318617690758351149706744159502479794238084674601347670483691006835001301361987842775872755070012564356751781042396644411960584259687265851586623479721977173577939825736179088871077761480962253632310409730703409911061252725702854237864686959475255206851849539578227567365947606165810424853671284235393223158779639829909732765215335844563532557642901708100051956402883207260317688695672614981993080613123866624071357939587613533814966765022131620165690578978405074277153330910057757088439713315903666422588067857340368117554794286220237874912007455256945773006181216535845493136465758335151213492864369865734614420325363150214222986947488041106991799752876221441842789794250895787799735283737072626099358497522476525766979788472534950885896814427922729541561291736587444641703663959245662133400275592763282255364482343315282025053661277574056493045910311784025253396158967011610442803630098042320969789051287560494444959720095405969520270490639370704123533078783241965060167159541329367438947195939007625206020347871311701255755914474651470854633713474654388256030808177298497075394242972131524482377693391983993659861433087261698552065542640805833231251619329234976433470199468036418583319465364082884923235546681769190137693172985845606644678828534201809684154852509820601348892508925884852527781339463312039900552883718745491191065317200691546289420416166559182483444692973653467128149409148169464638515147265249244866751168619004586367139613673521716991865224157965145992605682657483849276848925329561050151455487615724822795871193217066224683994556337227672819502961744858616064863976721732920228624682672005991782873877566609101507919387031191876190923640696795518130080484742776044126845447706545577360885660755181207860516322829282996123415558899138232265271540718997676239584264026801306649324358822505655432697508299576267423377813260506503833692681036389154996294288561221938039733165126930682871271936461294067823320671831456260024998184949445824819948705785973653475956398505093131043934889952668654184163985675605047592231043565009672845266153009323422417933843963665961454320266198456867566319014426031869480306640394245041060824188200420686762334323013510525438721467515491741369940305961013820692160488940656351794752977299038389848411220747026882367589415761040927514138425063308607872866992293776344063495653681124198856824006864315218817551575458543328106959231792983557284808300927582223752630676880631952911283670176131618967175548359327909760595049402833832581756174385064654892318850690817986362680676611204866983395234809515445973836556135199569527687946577491352189965886614665471906055334735624391245875229188033874963431445036693054407699101998071935007815537460896314070815745570089461742503693586115144691665105116321451873064713883122764950486849653656916513741584795452906673965146625194397730528209181762911876065805383617098183372405806522343569389535600381376451153925799848189008014338189755958650652694892304186109924599853561015688627316116938614037039327543951581469187468915149437554273934992754134466188152313685284330481585820776458103656041704079835344395383283014437933766325994433305891095927959156917081284017257310358398759185203180014238522217959961128079221345222853602675409127524420256241735405524974421908151449325084959828316896228568395448018372010792030424141174486852687844378454253228409841838053714811686780697713265582575172265814629445026516832095501834765144619070572534878323804048175519812813840732377025839896416119993934095520930203095519695650486530779277144807178582360519245499056472013347736351825768596273005656717227753537100922260934567491800105367613240598102651402703292534927668329071546908638065989530812141661588296141346666804307948807600571022274501814079025015170071556677613723117670252524451670905856341573297161681936546232519714527481793694894517970949587514887655584883593849333560561168746300773806666508211113064492286935582939508275010517371046490287826123189801201086965778876347003012802632549258084972387272709409114039549528201999849098902489707704474375755272733395054543256995273055063106994659586352812019844810505367140652229562244415665851736655467912366720890712347269906373733744311502129598298739400661868900340015003366794790226248427286321064023623381610920830921505562680472191048691104605192590135472745646869896154829804164944820651394500088407483373927687016127597699041904436453830007085852460800703329817685805330497847885638637919439144971675202482592607291312454503005098338613765507133005906324717035935015006286470980250717755967459818221549347003655656243000197597873805332346690456345435548637823976676787832276090403495395682807067989989028037664349935570789949148778507010680992387347330640417582597761797783503603045117982355592381501392123274325494648682685100231082273399886950205283325009009663539074292212771285732367364701488064781177586881415174064032671490073502988638076886018630685567582549108451145312294772393806753704713788896201427246578408269245545148162870152764710932688855353166812804072452249874969526453983311131355841807719525239455219709833552976396829111234028613121671127510554994259861316769461886780690357682229560595439615327441032628750078194513443020528984013600458015418439618307039872215366084090123950819917970282281396021188037919751933640295984980349164530756114904632439154271909307475698292846116608804970320093840032827346886662665197467418710637356968293079307470715224929918599591401768427556742952687786858257143489046993185614443861527583228696430365024249895300502599640562408635305790295103841958083878497557139579057573069132152076035689023213293789057527031637130742370041000508919126179448602482160109542448109920119035486239348636977307330811162052432459696242005793562384855992819273792339417438031733777441127817142041953114185136475688520971022886673878296900829177389561741773284600101292984848821893283521816145689801092803401525607861710964250848999614664792979516095361134559274917092273168339108901378433497693528396149009871360473679141996748664095446393327821042642168316663269290088706647530826472814464246113415512892245164501566707337568234072796349059215012248423847094033811760134697136226681537622674528041676243426373300080252110866167456738975731457413615034217797215124274767856402440984308897175569022199897235767655455690914534137727848441773980228788969082870820582179760599432354276350279070300997031337049555768128990357275305251818125447114392926844720523942434384076024418492277928113376949753553257242515564439797189255840643659039653387419999865298558609744305844005631333416495706932456419220848711068123545356154862927850118726568890605711295250322808325174679692542603768637529568005080990375328175960035926401668984516022478518192223688000886987399074768629440147909301546522251568747280379891456527665577789492028303350147504397996769467193100341325450886830190250933049872133736912555263860551033527875992645540093397411112895144097861448854412761251244505903479840873128728316427462573307048730449933834210663898365418880850577559759953466840487128662893980392685543320896271429931865831683790164492662810349677474959462043924051106178509627405631823706383843703001427396128448623156068268716803109671210964437252146325547735058018273146232639551887914572385606098542009169293485394283179474207753719546943598815297045950637793301206184694440627509344954609424759242675122572924659585317591369647431315149817207165492469545012632047648655024895636128299129203284941086464761765935619247190133910612930080041852203983265576134134965314312092619398042314905264501105829674993222713852411333598680341976843498960612969092566783492016500816876357932934024233593473770052258344322861319288594863400979717202773182228843181038213038972045364197252414667667973947046377308508113298482106003127493377748506132128671369278211689068747030198573115355242189132726714689821907428652063818414791199008724208723224002385676262548693303529098247610712776244730696629098095635280616458604470568979538502903295007111460330585345809781846226320123573965114425030629782425692095347683855417451784888192779518934228235789386129073334252937818236656670673291951533428662512130738670085438210766388086045146711067519585880799114715908994780737475435946311048655527395538799027172679221395137119008199772150325881355879099804991866374273439607073411492646813969851853195313579402527466932251504542562072268160543713568004723155291094353682881548512305884700898389101692524951555059405841902723503330275778657907048985099613574447258227898107721692876757646246285853951891276708361600585576938741350491895925803807536614281175742671581602289723568558381968072122267663969213475825150808710320186946214434788526798991449335666349348398948259101865067539472323479009397386247145195975615753694078586577503124646579352320711531818965756111603666436620083448343653479249480336168946551577956849361524739774135574067546801175284489139460944638115410297430883850497523022344268273099183012963231139797771140634134532749726433157610289341118475866803419874815949372399778600287845459511287337605169235308596457025276127733082238564420622916744366466549444147252840909340712834496114666681386008962179498162232299275037773092631329835872124203058949208749760449172318439151136600934233962285545846433191124518473171345068211417724801143039196822629286822261895993104795028892720491023864744359838082000951727140542853914160344549356548407385938934258554388558431644420461964930418303102181338527554199813404944719153436385263476619362307604500018303656841946140231205425677206169685576567897778319551207246070410699620552404091033374655607431618248823552646648847929498234705981586910958925471965998369612314933456580360625182611550215021884022166605220477668294274233082733556869702513348433759332437304269064199106710381228536092463911303422313531126441086183965127360825648727707810507252538029247011736856935314389183709392896814054020583556666955756266469510710522157488599640878312914141194605997437358640716117434158319542511925986450834756477518837541940116898545290261631040090312360254640343908500138638650830734664850437410833791550080705073019006389594698960534668560535269258472044854351169997321088414884631388581219192770813509076638359312852377334344153523537017926089194726135315155271507936376333996800893732577997432982610352452793017383081710545228907307911701330410464760466185460016651950045992015200811940703956844374179536328869074967432052280259711403659144418790053375075471635721935627006099257417438226632891298707032709585436646661859243987749036736540713064735350937635803032012542851812246869528774604540909256301900822110878197935572718894867500132689629924631826225721761492960144600189715469548237459136826809145559169218664485215567858195189276967292477850172016570152386686591588220362996028031730631820644755952837148155152642663831726687476401099054215854718886302896102100406340786702206630073991021630052444284393064774014893927973087307080803761269225269560905668968638791370737189621245397626976068981306354454192627805328540891605367786166276375101979505320619708415564896370507602011504957631534014529646653457564661744032132522803534978240375114004045317387759304440592536418057152673642340431619677614192633634631185259029525548243011171141081406967171383477831554595457066907038659502125501535376595466361051515170609455148123326771155412947952732267655665190189935251226218347319577273135505335197669660092285932442368356955681387296548190077464170713748987034125401618278232491512954611458062957348918796499830616051468407279581996384376792411560621545058300140818671568480244294265871671708687074285992345350543216960410192668261400759860936621305304638004277418114347925425800004969047932773310039368695057573741540291704695853699316674278513876348751870468078305949095181643391348488451612430608399551851916561409881115113595483629869998438567172479037966543091441785741447309078013478442011730637893568458517998247496547542603730065378039312506670564066636589004493042553639697137096812343036522250558676000713946617178142007886751101959970181341971467594489727025899125358871839309257674297599983754980532018446815102946260757653813570018194188697345980394675046297507724695332577807128493029852743319906718137301211747687681207747464874609265449044612082238688415299186964795953472182309156710320490647245969682045279334049705567733690364173746571953970228002639031644257574716889119681310051836511918521255707906851958248082521027391991586626046215421098184204765284767988336852445548789504378819202700429724769613435017213568644943243945927569300414493517204511348704899800479202400475956073501529342025749590792764315027148733226332845982808459742657784053045848944047939010513316477728327443535100482110197257965192515910274943037042784347115607063074420546440597706977332739155746452953627523600177393882050686224774002002515801309438025812715293838044653988134017011808854744519548810857588115709135537919672163768407308626960797144600181006655024510327360882449193147538588181311866227907217390900266436652123369407811387801546958369478602297747213654939200669604386274237258232118230476413327578654159584721495812209796414324783500651521153685746060794219633566914944924867975892639507564368190654567763031693224421296904516445265183328554289134054337887916400635302374948928204048083159079449312209170007620420588232030364699924142222554061588254631736205115456618061327545013740792215466193968751025158471462750587096632401976156055813802835152598646897204578864740095771042794819913339999861280759099534304112101463842687106338983192195286692742335015695692877672796314256697552890646854303636471246830754573403548324834834683328999314861121969231659126804495441123890958693381008528956913748046822571819287641132930383093357937659032713195363763675042715873565363153847860835538089949633718190463020973457690080055280962168046620161854498443816746782083049732659707117605159913676224514309837859818104735502414809846011391712183951487550792428662681047191164222177789185948021268334887788733493912457065950314929166546525186246993650116419935278287587717326247352289374476908041672885580613259521917129246996967863619609605415758172929572408028358749470946602792118935991981854080008686055136025278615239651892710944589346735053428839821999490911790376914656991143069293957333525800621477482771653617088705005960258677483580625925974693209929107929609448529130985212368225492053419199399299205985971027602692933154046844457886032536499404867689287100816940460510307941429228616326654891723647703993595920228871176351004933927110890191384051732111939662413577110739783351869488120641588094776751526802263559253157756521635296676733598378203405895993472463673329088951385097074935232365235917684137240045991020024565360907643461203252824708844904741419490410739108262442044962571356274637364662286670845754912907168714994577276835990256900033936445125850003509024856697011140463627526674587109690569921254327970875348097798553253591548236089778343102564419679788580777773868676885794092836620274287587432412635569974721354837546662424985176716648350049158107372314659157775655088907083143320367410981563139868587888507711767169816775052422231607884940256736244152244592733439703602911893977825266565778339492637754519831946416963251369393089106542185512609802338208597112674895626295810937210292401793577044497162282609652837092917868133082507342839460215531897687142856438909192402853747236816926705437844438205634703583427157972706378491566967309797295155735860437629559674339964940330869866198802591727974157313030500938699340535983996457000161891611319182547760451553052839995851677232581208185642394621233930282135137171905686762743867685090278601027814283582456893870277675237796514091925371962077398578624571688522007600289833551555220882115665033655464020120793646969972235892049300386707559954753630033733400008509617219244829988641787319987804068197616588847943420826493310518903232908129232871726314825927392726399767594519066394919991984944759469809764581415340859697123615232150198440272418270613506346092030214977193207408023248821208522999942070769770661873342814459236407308513847973159472371221242516559032265856597063135660017871206806986521141946446679833506517507020027057738780752455811596572094420915130648805424888387338490854674716871360696172209542255598650822856835935938707003462065146331310417934521117583832630820031595474019314864923114451863598692065605668343559672315965016964955792812315996217532221235277364999629177036088786604019857766951434534422152371738431981670700126094374655581388557830883135366982637176836443716078838815100647618481410382313015616608629072314135421190879713641046681853660793135229726438051827096497078709329722923520663671777738010712840391228852972853543277610971390436392918874193403188017348146313551899343486970771728033280060159900981256824928345388267355426881749711171534891389038005797607453212791765746910390057825782368433631395332406887661216441013647320109705753447930218971378160583119829412923141244842062469794595976667286874138645823960975908156917729406429319113707375781577469139062923290999381647780917298430877350356115108549209551907924200183786484854123823539352604530445882525766473915968755375568551770769944270119286461653210173862013459391000088060956716322853167375052386853960172026389422813044085225955873898511565667932164424010819841082320297171389770689382225346602371796068368454715887905733038548590796631828348638523780251407555800422206494198925236712520988121136763270189262410152884925235928414843789178707549625773196694850075877870544768363822010440756713687937566214470568498130250675024728706078832642616943583551893455188774907468972460086826782274680606243053367734079232406963808077792805661363268482179966992203603289577445520201139625998394764311019568803574993638225932965424022083494722491496111365798907283684378829584771443261292671722993987141222239490184314008298810449334205425831538066125921720407507047064595976206410276508761532773861102718021551132381265169860884913023791718453325210698489373744327597358419238353377244078559146149409139103881248640097484725184003910932961286462214321874145842758366908859341631967702544940289254724434426845819519769336225526017605570838441576182872201767822716866453169778757725605638933752527882953038084364829888630567703208056065518093675814636796994012681498313638274032229372962648835084424956538535636998804436286705077321837444294945406996680826175600382514531618860570223169516455973245290721390521302532870404647354942729129131313592630847616978520475079765024737105207770158086549759365664888547816592628695286426092605330427449678207179962330009754696538249454469542725795677492904111612718951777402195872704382525036151030307727649644145556882571417393101476865865113170476315585108701176012386534042727719198160063531091527494600198111355048438475288411823419905136097119387377704504659549062548517547075334573235793889912827132314909818573907394308674410256055726649327891776584368851440865757858761236127270746983104305633150553669587136439230542566417913347882964177230285487051819059418171224349150946902242450185380444680000177398854970692700526168123509357255899184134542765739474066716547786421815575086463292819253422110519141398034234221929925663757967688486167842432877361806784901824565192655542001731153893651548743783662293671653193392498313598960593537078437609581932864727935229215724212203579942164150545750238328659584502091239022972706985167400612405034307117946540074099739713672136833432571129005310202650763363192381656505336740925821744289837746688699015092134243416221429970734988922529263298334834681894826702714926021027106426836013336530935350110536374567283944829540736467284094718896387481806083711923903730760171165998375394689013639403020882255476386322027894600777056213533460139490016257327105324912236386097159897312815729524008007374661500196610307681561430980533794932842019234884908008743448501328405715675732129924436698231028610283619659051389917413388387846518218715763226385233416380941739257393990454387517551872307181725531929148533820998523456983420272112496628924449575469941063920323017856571586149329225546567092099505314698602251670299507523513239085551854861093053698754100229369705709038196493951528360958988413811399733708958400229953764889487276582005167034419087484994306036018201977481417272875565359656499614643882625182208249026059700858704071496500227792085436535574784627426600103024028339691663139478908687660584161573427401582819948231899925371185534188602092232213923819076957463011105472830000214149106688561935657307895260583287705615084559901368559098257927201144474616057674107144764763032148004520947412339342414060775093882564816422497043505141767866201488832231621467415941145677595450046295017732405582321293198925193239667668654866616742565680702385816444438051687297062410616185908047871084037942325853563285348494192180388907246771933049227024851836571067360688989706748891673558564892216562685248577148493166099852581441132325294737914575459726280480304957741841639282943592975269713803540158584371973814972050914258982796549647307423036849313734590742211919854232640994024461837791995938096694957445861744825245776864662697811718161992187805827119087373025492464063579579903130078430855962284562947928962061020417266048032016022740930921695849088075042772028448209209820525838928049394119099738329591890420687835989739584916160276508573256292574417701355169934528842140799722826412843778216225326497891984627467181940963449356608150777449522301294736781251674280370831039932514761847791465877452224723137826945818105107400898585570886485603309377233423902885097812945398901069660871899166495708278761318567953422991480944712763881889980064255855862996324953320952366654100185618017708464159375229136938690990827998703756156358965378116303572699486074705800577195693780846759211672426164821057781631107476807271259220476925605501627539576062234160234782787076735165951284810272857829144668875604099464352195907949019761421420530124936354456602861087350939007948982072458841967302244262564091778106548217466585238959818165858764131468639805530089204675482663974346596614117269424069740056443787294194733345346856558025403063388118705782151515703140884767592286628487006489673827089698090391934905351141517316116691508616079439369710295005851548380765247637088091023636921984693664640064070857565899769245155218752228417719988868003256499762231602921031873169203985375220304351119199903270719162115719838871795938479870865559736395515531726057290297648671949382492097311326619266888381488927720575505184819450391435219270651773853471207635678630040318666156827541559598126581305280304694037352234462378267224377892393223159967032898094484425180326588930328182031076097181472008785707820351156785542634212528308743524762781398442840588933791427089769089875517975860965867942906634947501084290267913778073180221059503508857123498128331801796230949644752429332603364764631324437502976983822647593985327349014497879108598152993195931319986097670929580642046650519841940415804563011227718308805315687721028043754813720862307477846943998052146386889607107377719380860194441832007531966096946102651824360460217400983322421703308798780282005380708945472242745088508499062008413400496008223243199913937866204231305227040270438465165057861457232176191691514954950586461519870866360543732904192439959768462155499128135705452091528736065143319446491490240484696449255444788480499376157562271726306633792463000390988462977452008142849365828880932274409946604439451876381436375249069379652410802885876035534756444703543369706064525412486923423504288286110792568818845714609386012984472474331517784321175836164674955970094893994738587907922565562653643035106116560576058616790800555728043916176059374343683623383660941208194443278979263592971625927150630344027412853561594451740025739380460542499346667859056951180674666490322374046280795881681926824808882915222258420636153951164794165239975062492861410536737414212666843463670613103050460179468856107878512002835806581272791209474241588286035101875535391996318552756205160827869048133296527510247658795519930853197885310038866061007363869825053338975604751111691474048681304282582354754716995277305533486451366094635066707316432690235215473891312782110279029615824826195832007699839244662273687321151151466444563252621683438949134960968176587643676850627497051787862189339156463255580876702375417842669568691480967993189945921009402416275760264850363270351067835032969097795689860659542537604796474026442875881668037092758093987620725260223409854206357356235585235210192341645329289274545971387146799896507814219799178650023299851085778862450556061260385818244411058619659455294987863761246836107435134933925586917398881239758014990121719663765245246850128390282023112103465940573215794115054433178361552503390958447078997199415240143278317075668302336756222565096557744147558308613231347653693293519188310330526657047799840283060602890801826000760840274315968828447880447022908633405407382601595064691857932261548482881096121925958680407967545205666440654263297106687319614499624639896320236363861785110519419960249611705697195828004341651954312754116064278617582359595353593571395035721321801174055744419178838612177336492355026905388721680582411912245145136765944978479033287537800813771550462248203475951301590610915699357841098812063162111930655294702598546291076548619253001189596434866596350114981334207342660665592775869664085722873688128500958200269368345004867471199149243942950873867804026656595228599180087351954531701332597731206933020277559653448269215693237071767447798853520331459617524267916082434297658647058402970159691192131727708139710214206996475966213546894248477177576826227578298459247296924189120792016696598919071434532429362151667759681636656986232287103655801739887393189820296115741264707049633294401670145199503275258244890012623480150874649996354973054691551718682279832423874594738519922692782684123219597527443170571539217988987311909401783355640824828910973092411126048205938408712070713194871981114623143428188150638712223759885544574879367361990845821271475472222172264189188032772860429510590923083997903966115721665649949231425758719069230830967272966842033090232429068899285314963285639459970759762340794069041459998975250955168250857912602493007372578587021182865882074972694279936395291742933245531279479220713848712417125944621993033980756850588587711242200241831633987871037485744325169339302704182379826710432827579077425626673001251175874873975347777993225843656131570113994812163120620438526121362982804639331167748287171876179433301748929219044587651431221725918239521755498086020081213087663557554548266197018424339811754443844738871142065138852869959196401253731656947189337996382727160964158408240358658592894223459555632193619684650773944648741780913265457874574130478254328680599436848148560629842315340640871904051559520741357669122603737116457221772976703815069041905032535753346376745553472443731415477136071937628504170828929094667442844152647240665455538409089429321232839804805511838198783268045533386139208055825149367526282678246399416881367258772106199722877972244447777442150825300552941545021604024150335638914376602165309611491301248264166936918921925936972424168428230224968791880291942202175449755437626549468435843232511260096315579648804169537508107609524052346233100938616548932390702456120809443652806211503389980330077233867053541570272169997910311451341585085236034271860468710733669143164725280882552291187638464106413768041182549200745739889604571233035186105597276617404277862957843162476797238251391907867496234982884059880377903741471411591956964132049551280123744247724086725512252625971320362012496018700652291572611552617010916323873270153531143243146235148780282325069291368461044667667736265785039954446995528033555886470229601471956028395470144251882238299763472357020256059683595322034520244513914558887564414505696050047018199186168156657099844911543277854693150529561058067151762110488309156751979082087530158119098163547856570886828692053142497260990696044416624835235582928392613356979448817714641751252276449853091791589835692301998447901655563512024457833450746431876762522602131313396287060809916257436377862604079688268555509742610608840758982407942561696159465223305927898786562499331927142781402560031190857260869443203332552747536226494034499724128529098586051490658136464974316661151955989284356236687282400815931407118599877060474794728509507839564333991852500377894136698334704856460781042138458610330448774299773633592835470239410833314598034403852315641945487112021793318494010300808825405277945421817041135244665237946165920603813161829618487066245366713806104703127512429326428016202163285472211064531986232673146771022515551414018687441621400424142824173165800140959916068040766990997221734648479183408649927002264691424044336979970522753038241181223782448104204401903625978226945743744045407780913666128814743217212475922562267439181927201402215604345129053676138414271171596799277615562889230412745104717412234400970707340426097469825313048018656999463077784407889419290511696765229101860701607230244905275874898070463824519487317924397952475200793727894500204006853935592764197312936604905660866297701952322223823925221974627189872535656638739852630711095803362666152481343604791328989046769759574764262259486751297603432189500375930308289515539303892140300675937474758528333748076988090118223444718569891267332996023002064298997756351345583931037661723716659361052274564452081881729363658564181053746685896319212050715497334756446713487053962335108562130280809588919161516072619560629144904930996705630449036118901408799297389561396911951324749766170753801350269834120328044652760075346216831985774292214899410630892139504878962774620276049335708925866218351936837430916896013878387206892884923902970116722605143867210596764542478979481429203274342547410794025821514856187346952407080325781565868697706761843013525897771310660387016462831724739124917925304746979908750329534892412537862291107963399360730193553591341581599633642237095892808481751175973358997028257304169880033460025007981004514698059444834650610048355953042707873209684936845969143889755800658496069440856703345141083029912616242940305566950534933514550444939156917320235823968259159386379813130673558390907453057531787641527571439854157004123386964002811635105662026270193132646921247040301329193843579735541351701800109328688966150752385050400337253592486054155663586861602648612348076881553282943201032838399433395731433325652443465257240714811805053579108180956452682801813546708681691939967158442493581667612225079183602559366319477094208782440906101985662669421858539076032877395712154625621512814749438359874177938451709856685813483800544349745721523335997098452261327998551433514249676459744974719599435963198825382259882215889014509820550995513735973125960961675854502745739385876991962004337427212819840084789527516017118707904240110546544835777648353047994596424833342826484548940755991190825509864106443877674173067692753464545296190324507841091011948846588304474097193259016716497329948169023288933975183928056281076623542403993557092346664209110860304042324167972554400440411140779651101764557876475775383593210174725597245950723438158576643335363412709084544307258561804648190393655459126177678691272694559359091677890387419817262562311680719014098625034979382937808721816595556814211856294043530746695010566230328343218625363251287776132568993049935718279878671778553088765743734575638426644236991622751169580838507565842151223681972029843996536669005007368449815292590859911219154385395965095759146994253872563892375700307303590614391345398236743272727776247769325305536502961610624748050128051988600546912208639910252003344027507482273933803465526215772282904285828706574868027608624704120322875020109333456898317081362841074900260833883193353660936274300835589911760694396906264270886472873225907317517627149853394018890193321121050538363164730806790107694342844622777680278584758337424689194870592092177096609194900982741328251292720054260651079791941623330309258067202230375037036534090960347162091348763094733391405382975267502723524436990216242900461454386253552918000841498796101954251759692378621536502374496286478389078826999620000539596622199728268251800710549046998538092707758268021041321187919304540486215982287891415588483451271909593235751485433436437768971540949220554619776630306807782969653563074395457039859773641370460494634243220180859535824514453898128174511505102511873107568582108738547438847776845817392216302258475458644252188110886450589272059353859190146360853643941873709043607178951018669960857238014058351240709367727261362315426538796975985416883278749295942262605795852905007694625121102250086335094990098185322754130940836878322367790794195691033308722567730688587468869840664595115927928196153577557128192201863758718373958663700206936153296790199114989509812833035038664931630752944854074982549267700939668987751413304040537381564673894558538875317728544132087919137290768979001150416572599908970269241231275176337998431195650131135870265912934851119694169391263682170984231054405541003242074896293784105110958359266924332844224562377693702344348932914217156635205371974508754015081929925421381120179450758674490305056516227974797119640897213483343873618230137052501675532187724984319662919929562625384239689701030164462270236375585835763403047977099859050138748338582487257936156039304362831983363560847312790436152809693927822871501368694287912972807713276058946263767959894677959205949917914971111809843257635916347436993016971128633245893631980717184764885456082626961100362906885124480480421255585091802182903446077616780141730124701287896258081664796163385785413281491567790243576982195895107072515699010560568519899779189833303078772366077483864305756080479208083998534916090071316296908269271834505493708253570478390471424445017637787154552114577131015518416719153575027744049104720935996684203945823907967125586353422452137417462512706793908401017639738948628673204579990137152571755673714370478753658621168535854970816397343587079880337112002926647156300771100690062269419523260565543205595030150112328423758133344766036043995291930805178344955196707768366390794276413825050129862622746656102990909543705073073929546743646501009039336246429542405126968394505285252565942476097162286870299612890611978012154658972906479124785063016702792734962630120203241177027936487142808485631268497552601125029361338954812729067437185455280568065528822423978086414146750052714605786084155147701959998187076210529686666424333180032418277358047475556600719648208122521709552299647895946293018997107658980159382834121889961986765962101238188350879662475209766927203194800537941629655535575930815321136756778419798744238576182848326811538109629341188117525946941558889190867941243063955164662953822543681875022007657789145957333097946380828776270590824914000076397087954982053452810881909836643026938547294514614526200054266058154646210686906185427604993864256294411783631368577409021152482908751590632947824513272974573281066657135301320762130581079661448221684428152532361477027327981985726318894633305362837037758965040614174639258230442979896760424495384758281093220800705951548527413517853712269034999057962560033191591875785060429743958523055681094708497418457640337051598301651869199530041456110191356891571688107313093478155331767486991105113646608089944987341839999641798390274109891487082901927683932080111977070871443065958637284967998872634993996808600118896465736587617708664526055262398046471402909114020106724326924518614244179470971185211420380985495341982214843033342845915299251783399338849226852859738239080210396604556492266329846320951541084159838681061104976053673809842557248949209191923395059285240557438400052445396012532446327423883215870132813106019570479972984723529517634125199966025432951640413371366553049648882786301060352874148243876776998467484727448412600027240270010991971261653841848437988088388595167312864381724399197602013477846121009691788602965455027905019160178586632369920679035982799561278981219823066515860324172607026908643716767534522085368113059761668298344770862520238571245799945829761611974176175522801223717371753573870979807630616780925721749873617437428746890587529965446202882180071855112230310953238993947730604261952165597952743006163069134128304800586542378388493785006721067759021078296873707695105430871342630102036393363053060272992519247621340437506511315940858555023203768657657254641681878585894809444070242953774499103783338347805534416775273907314239227827707067861008954110026085782779421704796980703232738754525166292850628195497504263856894398696891840194568086148780942056672798183142592071057876175282252173744665659803035471676203174818915845462605368261910125334820423200658448439483735189164096418786838918557752025784138780630918720543125365817913059158448528942960924501903347221036058692773693371327421961826520827655948003598709159479331556598717593250420682775155118120058398474222218399583073713045602547758540175044289726412642027579366168677738717457196730306916188447055801650089106366712200007159484058377863859377644891538867773152322515695856950110745744696360387762595174110819756776954603899930671148803914879876288816474823267591013765546924986123432013355718043841917323701651211448015293019325824179928970063721505763251491177969986962923453346326145563385221683027630011588227251181967695574326151380445738045824815480826263293625373945423286151826026093367095790355614156069260876546729510801985136325107342759198791219792252629351776447556069414198633254786798433414307664431490597294975158243833042804222414586395771562038396706184817141922343879967043189836839765728603142110395396333697100699843932771137672577762705427885935897885434985083599133255560556738619458236010635598631408986329893184935775873766271466001249087009211100759147185013412385362524329694051838549490266153279041689076589073627516050049207146204493191230140803968012150937581853887158853988010863397023847407240910796807128952074506428459198515677606504066025093066942513751711328506346748106151210656206072997302034074665189260828793571535373400302687160462283058643658719940914988901431790715085562830673611856310433464818946985321290880637596067284821198015697087208124809818544791480053977620279531581221314912306995654838921957135328910813567774893291728390512998090628071755173177547616192105814507393302755765669359905917658922697536488269276559606166500515155762011878762800388433068392818054370084520176447465236317629720715546375665558710693888890370678649463521993552944060537894328521794738861843141702574417591016765861772445817524505037156640821849374300975663772265233639750959732808598469445330900673501222775863968306526688194381423070801263466095951700487516805507473818047490047080996306602822922629964937890495050963408995981128319635268655208176570842085145100295123742288134962223768842402969394818212957362863580665605017171359799807348142742132034201082682084129375417814539465159857969374920696618151014918320563902578141146515204101603606287785468544029794435283751877547789682125927099467170112687726131327189577804683318707804876009623056019395995106292465521426346032291809455226115649952289976104609359182255004551948259065826596084632845686386929035681421954891774141185820088034187430323592759845449157540028399766598301231726454058713815674490909417011365216656435713245488638855856141737534827775632928227790855341979237862927820482548651307002506695393279920822983735402474249266561990347251810098398628021039043161955106848357494046597122146700964737568047406571808519320453758703339778360481316988620095194169917887056039878159833840264477332313463991612473540844381186896081687295719469004829516214496422482688230864729505129127535041195828073818468232889595265739053494395909309258558177809862268998087846159468147235367109299352214362954707736977625614813356915011720640648818175579496624315639674144781891011932591592870940613985118062570895257560242056917850813240897558796686308506967477373562299633301095433618331859393888189226818108726101469548101003601573422814552490914505314942247274994887662036547917038615483512064665011804288638908849734976292743626372106202968841326221073135430593711241540939327439848208120722482351022443932326024512454483238295935555966198705944051585415189448091430714669877544500045127365265076539874106107793450400300096501224880069340884199230382316687783340315646115679207205701600221191101918855604812104395081136919258918349948760987090204293991933423990247834077367335641218109733162833883621196229742763845410219829341142517119723974821040985869538771619090228731059468097350992672525632103169032859951071050119378495141581256240074662243619156960420478552808526489406224527295343890177194373280331041647333122318619873836369672398326573747328297280764936961102063779672123653411750132162992609348399672096263437927118863670678320623435116822658638832321928992943444346195533350720976997798452437674290762362408901987890692998848142021245484635160465692743038176114948888110409288485485302477363467102575623784497498232092795691917962665679212619314097816299910700223123931485707474895355181983377530199155620865396253184029099186283548136598155223719369069071660150121316992973416571316322583509771873630174749927798795305737775292296802617527801459429393257622328934902882641357160219508903009454732251411582826037019179656281734554356934425362074509007654398932759540088225865928246634258798231554073342806059955392200719243198504573434975611266735139353489434030651637361132844820621001661471292388441045430141614678119971872834567051197608643666026771457968652371863518037786663112659286341195445405295645591282853703969824000513929627642141479834651191860973914707922405471951871184567663092567670042775681268121032224575336252688926326369204261790332348952327134323875077441672707376657970969000017380688178665640259335440588668189770115015957130590585855376626261130885708685538302534072491278017715181290484796897287625101179177710142384659905106809163132635445722191451521655582874804261495700213027964963501814838933382538881109960366679961074823390851905658838977861280507034696603455538640986256164418436968166174125112905379278135250551349948318330544220290045530628085636293731937651542456961858722760025499094305578577447630579763123429947120638628515740747963741084739261066012804645794388206746652083936718354209371474870917208170267966491656173698347207438380995396028238263821421162352291904271107223170907339430406511854047242236302147884927235955022136502988665568071125299072650602404838225971063832243796140211016476196805459849793444379946862721774266492528217900361752386770726258722738149614259530546431580408191578068514789920594513024275768546365495730503480193579875376973276641142231410731391713197902475112114525690990382028616246905384334917328231450583263534138977523060771109891338939177092263889814346641623577033546729874883619973961466940274461299049866039773866730902621378126299351855358765032648955892907373775417851332103949721685107356388738343231073908668839190950501339196605278994903663736460688414113492562638036230639228269239937414039447254509159186007524377758780609423754243010715102668970772012244194349852647663494875995567539313697507949464221294203179141594098448104303125295792124764806667136544371249579028191495998563231664589209840180626878010454143759208013274089143915711130795556712962547797667255957143244447555505022034043390740859700040213321940022622711186860903939685938576718402178643352442600605117769345305947405516261320708707282720048415786888828274442665406732572089467712313604181303134109050805782664284813893050593796199853080921352237457925706093186236662377219214689955638465459654675121703112476509236893294044827446495062460713836058255246352300488856479901625594922431518917222977131545448686819072676530799164168483092613362384305129979412848769795452961780676278876943933759742642652671544648708703370516363571861430753399347365727391985432859835882867609449372057125735747963508229377219560227910592434791290957790734388308367499305066860057164139804247973108987483518925535374768701475361144895089125293556731259990988342964951433095353595296386933047628094166134242772373251919539138199490532977633710186870790298902673978174580190465787766590889686775337160057960074563893233825746538275696380391884605813690061102788912494001441494898696997990937682980074488681192608490484936554604126813921549170693373556851602725937540692621011567665758861033631404689710491314890534557975462903484727322062595356600910542444169854665934991791199475311313704483971369320144255971459931536488944611372103986758006673122340281219411442659750313001356035880554022753219705763291634196213616728788518507754398293246169933026271695566111133492797420921166425641689994355535101412004115160005080785230495776140066607943855482366604479371405302671142048974687177836756266622011042343754730045931601756949401003021756833222572581775632500090297669637812124192686938857577025066469649922766193429683348351298699696413842403219445970245465629260345288367339953166492364051149844039510211576164295144175182298581407065398967011359098594024474915587154464960442986230568439723665069835200174213439842080899038086767408825534849720469405627940414917383564007996271178912807288762567216865192510422612514845326702167564045190339278396730137267305000861142597321806933457454846110854759723620687065265470662268030193952112401899567393908882438749433980145616336876644183734108945113449157935428982192474330239938132996957210110372056460587028580610324269882519421261162074474133976850224357010350432795827058882841804210312142830356354852198472104118722488025660147640010264052580800625393286870070171371849344469088843849589402787984087661474218972960362404697088819954204214221009217956420663819427569945469732291052477314239234638985224980821221557386436100131095757809646766291222033797297830924617606734872443710828845471692435465860301114730417859941917673975932605245651464389258387581516790294180270333350285007553322276709417626251302491367428058331508100228777759027211029251690389399701555000102652771490392387931178480683282113740331469697578958571257855431667488320765012596344842348020469404954312833213864182538050391941684093132179168347716521128465187718832071954252117531136575691383049722092914075586264644434772404551668129511729603838649811456657672455415833627248296033089775044082823313402658565579078294261005809467918576019613462519146834342807135818365255508067020277417148897270023064469782884080637936620978329906197558090440697004739297230962332496313974170628909042935993357287566172410590839556147127964788821677419122254574707521674309403142823420367974401947097436756338231040241545543663380732480056426769048373844927545679196647718447575353193613193870037607909809210953715532572199545440273150439118469146668825117736640164189747578710195599925385031460306132010244580738542641923861466515833022510064239359608054442956161042492904586085771572030837371331751977146586045105136508009383158774179797317649509524308032543451154608144212264789877368755608870499110361196167488284234513022865917704737706620939955938569316217933256772418151617606467050133227165542541316557891225918404862081274122272950933001369239960020718468853421641503975792181810847513797197823583734167697258496446312839289070671323705602083143265519829740571260748527968245341893592137804067299696508368214232831880936516810223411211117364693284873796224726960765984238505909880266351346766791988329529993900622900641898323257802849954718546717180794732159152227690782647259408123912701431611472690958416420332193084545577487013884789585514913451520186319326605941221676044848453768498329651272047011971254197966339546549920841373503998201147805808061752801946018228842846489385171558840808983413424308104215175551250052204244253159515496848317358849468531785723147018375027527237802612808110475450139071145671344264850504658515246443193496373055657327605618406796797536889509079683318268118988242193969934504226585484793717149568688422528916320963485568644949161991212901019421532815939960119666920751809096904183880634934737628988509153321816079242899941056899832525120092698663392453979631650789439440187311302467269736363813579642365143308780478491608092752410300151897902470955411026290201020785065146846456444780885875115325210278757781541542536786112758570616650239893180354656747191062874377683878164096747966676283267711816812503602615423616976808778318830864362911933093111572472811823101062596020120796997028162566345251758838201035565993381195096291301047473147305750437317873728455268064086828597675614923335123588550595228692556823159957166355352188006524583559667132624899581081083952173752567837145319351585993531673080672710207499265976914994424417328832999148419330957975312045137423081272685980803699486159434161989991648455704792187908851766127796104104237082959528171467816236752699733108149642260593557084299826686363949795922000179681016420929428067823956693666500422901205746728678011394079626237689569831541452351395405416133722593468456276187680115713240695341554669952515966954210593727247758670129519637763550613573130323126875372889797707873988570749206905329181792205909173465144645286534602464601611579529341722746781572399915429350174993142238441351687075111837240663484738457211772394075780826637108520028748515282129648859762670442126908070372414794744605597412235135374420265322213493233122093974491553057780096075805671773163245324091823440210083166088141306724166894612861346397108575946044784256901128898900666014934041436859549091546030984843783079246560928128814377852145763149362044286296903513705011578803335848163090452870278611196040209536248024573572111404315228342522183651305259037728937868884416463059805172441179594769123678872770287892086201877492143752568684893159288420130159600243050159620400397269331363345898740594998340355021304016837925493238154219846744387305593076362590698448081989406759915439078402709762941606677540207963021538004126528224028385751242015168700914792087800288696014110652183070861426337249967719601241246661916564364384333135050126492820591044888397018722004772440194958637542501128172134808463656799620407192106849716525368494821887204535235122723727785806456115833779762624070072475343554307548549345355102055655743483860050490534085597776561951489904960949178110445068656209094379640703736532013528168742723168659480943347280594985603280104206655049733259569406698987711575168835912747328663133822006602335307144546237319072080228501626289386526644849612526161053890175394422173708574602997069663831134440142157979436943225128259569413829867127503579498179390517636198161494736996912551525038600805470182047203512989296944257448860564338364410583595946877876280738562319049792351605470184842212136596139609636823483794669987201387033753022403541579927027853951537037489973229924938027555696765468600854932013403227993902877388350640449709975150694978691696958296149094934740240523582537842393579162295925843199604387019318720528559597515267266543783808314299994464732411524138695443096120362969999184170585027629139678869956295681062830617446134864094466053319000565902420451933295402485572085786443670288332006403425960664642860740105562101600152150800675242932740012410771969019407370790435230174111215655835956700746598830234757259569530543440831527153668194123990461494512945181267962514493633531432794023556870454895934252363490416435302399897173400720642082253162020976424781741164950280575087294606108175449625931636646420497698513635234288003255144633283967263253176635970307090759295001525437819992814710046529964061670488681256618693350747607870762657869223676261075513420644582238045794936411359613733570819054852896276665875836600934311059201389159080421238805136237308448698746245596179790656295201118535222142730052905081037035434930317528803317425634848490434704203673891773021314573011363957036057773164311712035521462349266330168993912981486530258191923115250770417796706888427403165420709632230565311435717382093506186726996435895283203262040275813019302485388460556454908304318013052921604900789441311864813025040037729828535455677749252772515833420111937154261673666575327271501919360222796489827151391343570941256052626944386334530188194396705663245918154345487486266047345028947892454936840823650565636689930178002507127124773703721330633404879790095766271700122333245981710101383956503188940722478843734748043017402118796579231536288475635344162687927131549358416312682071263496091081719470546472876476707091062081105916694989954253219630076529260886573552918902528428443683426254253990328062714156719666292005574138562394982796777068193674415972415056316009060518945377303105119844345273691390390154092122539982655055787074320061302434775927230171457268231024238174945125555976903785028923132727681036966998951432521168706572687208228177072299701454414709753931563092751338104982440509482620514852054253347550723004822910099813858344462813153929770445684118375849952098244994007631967868854579660519838441812825702660079772649475385983011756116693589050085147525610911855138668776484794971088335590104344652182446630059542215218485695874990299257536233199724264741231884639518880540547340290021051011360429411669294569304718716697170206237185549065351787812634381338380271324283089662613600952535503518429028971928570278930866807539936909176628941732310024324707720001592876523347271033782808436730240238422202851716821682016755847435282683467190294055738604636386414781363110950973008011046195212816335550656355643591517604377298470711937074701685790136067792283040736490324906224367084016383935752620233474851900211994923743092187283471316815336989599061065996034651234794701443039697299205556520148805278933321528816310514703130525841537446993176725688290952299624766462744304400442172794122423372739533127729183110652596937067004216166963927962522679928580814123056287060371295971592179012476555516523652521396596049824861301147624090489398570816970893585539019454898391772099956663348602085332946097908364581971181388159785704720652666543431625141610090964251947284332347269146082573968012160287113863505911501750959081658837093130293839791416113072749668447753921913320146244602473105887794694241879687969730423040857666606486621712329570811528969379506998174013924630036145457073069004594658297840349840732681902567224179853731697833926361453786550263687609671975563073932562348412226277895014489039998339018300731830839323141730504571807086516956224159785412893078579346525992453435749165477306157155351362946511501574433292334442075309206803294151625026819722893048281334448613273170533830763976483772212707654200699387717160145906857858266003690111344309091099432620534889381562956693537728086354568506942014463156172345834428660332171730765648598247131719846274674663889499729070664440657531641644530724998552906642888202836239600845200607970955001968553569351225930473056297118661585266579970053239571549544026614679046007123456998996834393019685586206467090748615221314671166750330978592730317140562498798855973996198141354811308107076397790258937839029091298787129596863290190472822538292723375651102783556510057965893887189899733449876975774524684406071933433106050740894482752529976466994808337146309246653878639101527360925237843603698021988265371726756608787634569566130323077721908026737299009186178864902242045251931146990040496905702334408843921810750814129343098697906279851564242790293269896258561503063157746081815240972272523795865749757472039668070053070757363016054322723127441672680751081024559533828541822869679176685010748287729986825248800710409862786509694002328556852027664993835586126859011246143362937967657702969131384151699466612019700606441246600022090604096559691721624909992101235879957791391891120739265135885205877966946960170500004348545611779579930884559331788033713857939844428202183557975104579975016610299382216777373426724311024226021429905210115029971014378785512085998144325422105347798218087830726418574681621339264645850248384476121535004552243077970699152592059467384157074241059218583948001123147540393638850072868975452089903960993020116266767284879335270277260422601491008281729429847346635936877285531864617180539503096935168277111899521857633234299957638484313936525195545182829026766376273012533166581617060222627591573497894585497214784033560336752735951528443053691855012209040266845033540632324079838421602194735501483001229097578376068218628747465219522335027831833122786642813307462627499391132196561503015337467779523969943169684595818515649595384380592083279806619386640189601066638293119148373214401574219247599212678686348888577600011200951250063451681160555883333114844594089113587981529736946330261606247822616954071906803662549396231305697565623382098744916060733436886820918695772963843292975282032383877176877188729257500075911491733737428682816982312716404087007411656287166702229402355063154081170789837833063669247111596626284528664178705354897512550804202209700870653538111645387471550076799511072830853970132752489768536734907392986012408093596780563495600340572075019374164847505628804747063049072133671916532856424274719938084297797540443219238502672037039099739762284502516602188493705554387930658229041591670360840738855331760947885295480575906730292533686806136339123832087426048601404712822944703657306061007802608530009134925540327616411924863752336172542650204655384020308094544050260816397041873826987116896458076998766844035392931307674710233639612997762683737193084844616150174674468201281670385233428207851856343430771787240956854794072381728104890274543458296816291846029575125027235370034715967012742505166363585011198249913402856635435392949297165142585524997252207787380302611039116107135195463753674314758703462815626416214550856392135435697741321960003706062143809990092753215188911395316118584418480169256256154705008352768701463575804844740119937128243438579980639360426024111564746207526870313316736130860282305301960854701352896868477600019286681560613301057643511144312888160142027474534207239532913714460824205290787028840965314991624229349366634478777486631122986925935996074036884962571448584215122879270906208017661187129253839131316616287774764799372960034276091369590136515528321830273172048167446696864291281268914873260324507155588041864472847202231566883904704760161245320522310971459777940781618317482405356434304317656931485917271189055811706261326178528027044329340162794972644345104761365624630496936019905603093104526165210180272741339297369378042746173762577104656729072606768362462919724172651616177724624196866997283575490788918455414549909419288350930176899402562688852435779950887989897733874197013217284776144627806961368395796222048467288922836001090184467259313519887226056373400543642767845544761218850944740612885507771113442479461638193202969567411239245036777217476014464064853729784148454116016648870607306380941690562348956192676991133889910161387968401194177790862816032164681712699909888189426932064245381876730315505725044517465120128780726086414649568759778198688046545884601898162837398001104309839287464500806088281240184485713357027711878376538190802887425664578417463592308655410488721223117562710686556686781364545198899849470549394309434161994115939765141317773839561587856155149379585323544852430045238250312120413885138802164887607341998704002955796588614532910727773388097736115218204671745370656579490791681043441045674172547467076404044356229578675417251557527598601237114164025913125279568082663081874213926981243633270111863280394737613127362918214055967355640231492152289014077660528892456049846318251002224293561822781828233361892437300390797717509191643897412621476902008868944504460901482397240383536196434504660822450229895593578483990315447240910205317955874510209563869807392681186152850692121643118636699599331581470003466912854776643673567050653313944276031485345033540077721622377664061594531531313397864698006285699191835714915966845002945491320515859382483714979840506464734254718709205099928708356299085020803184367557146442500276721385226020743445188847426800677626275574167494432061313645356414835823505934180256376415018228692269772257240423767736896856205626905270143762699357978740065391221743697808105852676650790694808644766902970725702941810718443918482223963045600594563390967970159590491631566870747602732070614830391818344483109045497596287234803362064508183321649960660022374056334332464606637103353227104297980735338772590296533833928432351172592097823912282186630785723393738151490722764311858237626732187870637878889241390180865158790060446918375631062854901113977755192312889144701947544027895115094475454728604159955084444790904830124562456246614741987409587838744645815831423821269212204212285611467556462273182669971915863266476997599441983632952149979171995362404081185090973911804250790625198998199040966230589468230013695019213800322312572416390543497200871925536705752290151576132720951956392196284616098710496555024993742678239910662022246559001104682872341315914973114791671226413425484265487354327021697943060422859899819033707365222362655365965212669996610818818359097566008288362920517193038487826723452211834729516357470533965911014360463826943586867531085845292386276269400495636366507696556383710638927653246938067873666647924970693866248446577535413881988789308815153196444311354677745146845790650842103504155310111751018940633007182099734393532567788915143722174845587494178084714810592176721254336515731335724393403398999534828226690175035782793642818005274860073702263636665512761117523619422439563390666190176714352821068902066253821269135880752291560058175431594093288100985607613549689376358022103611150762354348306607220856133629569578994942356162584295515000506010232772127832452046752272054872222280307697270677635474326050973167718249026740977259251704003127453025540748500163221702535473747177148452433566908017943521660594513162095121360185434363074289025668843582341891938322988509771168121144132633609721987026664132789681246278107983853654040195014486799532771561557598217990915943929145413448588395201400205205189835383293868064008102994081936542498626724629850877812052575204124864064942195052735354899894308864024266781609302312482106508843122961562374150483200632014054800196479433760424950434371949692539787341715728265433654314571889796988556133299352236301263810450252287157312188647897560338213597149571574903704752285922555403286797001165715449431314458724766476210330121583795654164702838766034909263053241006358741013377956279324157931075887442138070380494751112112268756970745913443058466067420734595728211167488493426369015213460468187992895530927501679696581834214153698150098595509021567450855230426379693280612399093625552878992743871353137007181088737758820031473108530999283895956751951143579118160638942597266680161940084239585342049594345593735303056098429174515677618598161621054915233818468103971504109974247322360370583990981343824535697454625817666616110036797024187906576363506995979800401499622518065467335816745427547808105421304638794951045423257071093018182866091992742518040929539498227171545513291206728100334193499370416592581215837980951566488045002617981904167791053947680450143196165904483909290075237011080481974663847236149496297784445783373502979949570239666617020923193286728189357822568500342551028351133243830635814272061730619426339588271795600347796036930964403728123020778750874885883904919368896770703051029414602326199806247943384172560904657943916735258977509333477796960475612701521430975374826427403913177958393304644011102245165291037881222668485282078280265724106929225554380384645254000161877464757442085570064502384392663858443498130685951895431377320047685404789256316332035115346402789009654765833158204585750679375476487638343468024148665583162633371706251130962978383729872672736940824904630584737130712957591158333165917341711471085299588046129070933718872290799731977483696552570297659534185933330601221324076062895442444306499857041154676729590678211173556755475321726231809453413177525316518790954541507116681359595786534344493994336615989163402721605763200322132954911459048892089932256219766383310801484622349068914272694215356754582345068510541609290426292562239387957345746540563647886995390522113451586903977594557466534065361724604525640735302373096978610647659158205853332021022175769838766374080001085328486486454221161883529515393350615719905314149666720382522952257321693225175975202045107125141011724103007510766065072031301579235934679895210564275877327515748754098024395438104737756511755979469003700440170699742468242918881604660104430947780914716173868302599314143378623985423451981875769106712467971711517528689766072475227234483615573694760091821981944114984508936333974999214027378804685945121291127677482769408332383786097193932350283057107819748507455902588161640491892955644185817158385882496155304664514109953316090716231829512124666753038293384662490168703405563656620156486462508691527884130927844469376416573133178189039913781531703722947510567262065903372668256026039020303271918540238434671315285891474047999054084450958231559275043483872033935981447972428542481938529003396400814347346124290166712947328033701256623752434474564538062970322539112138169023447321214728908330265439549341048853062313711170965049023836034125520552760504030856183798728439768507304766259797331599527391959804486650590712985391897839578228464174158919982668113132752580001186653845807435635744687496676298441447115526710940580016094537578205558109835841649881594436497253682658942979520254157046536081817035453204584686144163073743576633105730853196837124816612148566692029859545405684729931852652447771878757493793630709970353404091177718258052662634552846401132034352768321494013840999967030274628219340004556094476549128752916038632247209295085421649369221443696809939001861083984750782533617209574256352847960695056647154086902617496973274463062143070038269755416444688415013830822941511978127539015124228836328610725911331994933516613206684664270801266596117198403463479931824330309043857967260903553850922659721743233232830946167212039871866153068443135803520428187606908160131330986567419184927823360262289107639588846391042245266436179403206803167117680437300296443405403937427121964272356389031168885738477133523041823634608426184370770601720815714895614267247410860134137111216857628402889728142208612953024955570598050383934061862961078568632279266569576628061448026939055815362935945178416661887230230853918150749609340538102269629852605275961374713718599522612133327869963205664464836525669525660431236476191090052826743380689799143756209281582634801629050319304233026868568110694228983439996015726967040974200257049155432611163302169858622902089323641031019076546662202082488192492337954979204225847011848472145832659511086354877257061657399681297544770355805090233635867009622068982402681492286747158823542976897970023104952488898905415243225876527461026293741147087324075313202387743779502611498656515328489004731558864553712536096544306359109883215072395815772676990830934861085693704866636289517642275381633338799636037227971531410342048221308120553860380213159745874327236668197104539009552967524419993805316538489822947623806805965708833725717087889346596317345101923771331229901186949027339660399198770360293634262685651177821268099561673549835428044189555808927252211481257793504756569326369656784135961001607621916716435640052858728265239416476117320245252097584699698400463436098482451974353610664476691132794022304736964440430822757395354127391992807399189811304887233424192340841346792528350185423053538796451304597338089247340096192647777949063874617745066443853428944432956119573352070481608935893922506051766153635588777814761824193312588222820566468824350892140026605549015749982625715091022639327099174644279438670939248826893802197523522758876406228816566936967831839538138430060735561937213227113047909484532035531421236578677572355723123201536856233207186320200155789389485553089266206139547520051283507993249384101745741900268367080372414063875176064797748269098486005295823062768211420608881795519374297399451812923130966061973037594903857959328828455471772819767228939078355584748721095184337944875671545972448380055012637571365126727549574204713750120921151614104847271711542086743586055070390759363818837197045697564764622481547125138099651831160943017669005725145674770699942639860429161934413407694531013293247536584148981463994481666014242454451092612516883800877506524747081772328312230861082392225236069529782624169039065385515572044625810811630048923925414536873116352799586447472534152644987720178743983406568696899715740928982748916018011123101779923463759264818196620252088117920435116580572781341806462591726682401050271409254412824321710316543871866684822079884059078448466362005764827687394615739804478068441967437264545878645512060866677922350697965100288703958903447829617086630768726171328646952209204853442085934257126503658432828286224865088361336204698524922837068288754599040885912793447755447606580442646770408172940717880911532282210954617011424911296195333869071425041441674647492547126274031420740336626847484143763184124140227414022664441673110691564244157871442183520449553767809890985576102705385042979874507543063648587424085442402498849743473975846034054254853122635165073279642236828467086003035038204009153488746052117462642934518301942852298623043452012095120769176483908989567302868399160706366743021102859455754504320252741617260784790365802830688314518921484237790555067966837459825159472933411514597214497204498434468664783879084813588432429521132095427056189053108447106957488017734002056181082514130812842645271124519978324818867777265509733429393768616311388562242901844105084768820850281235177759831359076101866359524579976224777336815041953567254037000021927784720177030255965397297800863201528969011205098984333131387521028509379028911397416833922845334005331713787701348295663022962465967859657574997559743518622077492588562734050594460754819764307180503244718085043666155520485775365919698831348187252499841100229134564647396327140759252776985849776726512006857360396463487133330521019187694472805775213652945945579853846682254680482563222572327593040093414187853011201468014662672619089304923163065092872655445142460546987118755520867507394301771668049606942757723217693995815710949396999871539952298905676769541433609967493412910527151682519262177915474305550185713871508196966710429798306642396941073935793011400520502819148575450268144390922701562191612934549489883968038240380762726311748418538638896525642200985767460093881852059714654167746083123492257058005904851419386033988116968245461190104001163895887644645921525814124464155830378418635491135875911271987341943973386612073030953230896244149006857164429735837341929891055610991715836220499337176740412913929376941031350455285960476030547817084593475631125739873555580710416931442107871861949989492395234972188436685465153618401085051942635525846358738127265762527592059024748768871932839208854611736421870468120283352542689175410402375174996081180685557846561980650479640266967122471276819255699421275037315542070808805589252980010780940160883661529598253182880574312270707488073914388466585312073841377875324855716221783115844216770611785558549274921388922532282341242657909659246378560963437433870794544154164934550455290444001460841190391949144030502873616225515552175149091245056135416965742229069626751791765189831599921176711212652153198255902651278173077913636600050481401357953727694849656331458977215997828772049289494139208941069149287322661564599409094664174991809605629789124343862638248965962427756598290862007212524386149097198367233019082871613772583153167279373358728555394288625808251412281875084047540930659306634039633516851352062617210129955787917653501401592787751742707036228898903720644215648417470910510105495770629873789162145577065098454534804029469334723374341033343969025728909482549179130615456716342875794999244234425229916808417667769197541385826982412024854921805367396634439451901137189785143161457068461932049063242775146516178244899785419202283186120345362243783329147013098270211834880053205398926834678098789235146748493660680289412006792414341334536762969634150827557768673453456178994636842174949795816115024204127233982547382305252148673341167500479051814953375512147510438746415068080436018108006892159706710860777506264696381494174108859618789732291927344074066991883140691179674623412961395856419631991928729007268710512795576117388552344004856669483035201398469388985350318499074796918969387908543609845249773643524827113145156216748166914086672139820369128900868909741602883523907659055342730228860570486694022826476397923668859865327103198226109048460462429902587481368763350892949863815755131818118948164856326325459551621895106063961067115290226446412180177148972234127467462778167921513433372931924694634352597941868424618724535144821933868839061586398900615014934869310146607609627422184295045254444296383187580152570640924405009454463506018906167977692143379172840498953736303870743381638539363143035958262405542333407211999221146466896066172226970537797945912232063638966528480872359464592132035046704930441398343281268230375293494098779998932693967961143055583300127979007114757896334756363514729313172538236630985128816747656168605569059371006962960448415108642660270308510754993537226321757719407579307142038390533455095493172880394446529581143168690634587586146599898174265160391406822904998319167285883957088015779714898990730366031264511354426172561243584656560591234669129050796932699543088663241099650629100754446984198555436775485187801279085065031236429829223630608678444502756996780694168923667342859622000449686072007814915884108670345454664022296871894636715899833652315731314365257392647986055530460949503474875688267823730506053478195900215199513015027607305391799291904448985570603475310710552435067852523886570087577323919086244540937298030394238672324123458913921797294621856748293988037665365419744277955975850103671084314961417356409636893279215554972554790496154769684713578043778832162993084566926008316562868483019170624397725946847768077987597087553544261912573881780184747870408498797185483224377387946951461002240412315999359708935006576939479365345907562163203575176683447891339092684737187597974395744146070591844762737664183514282749435770240271292389175956037148770719785494208252871514932610485857647984581850046830784588688039021289421793308866137866077261218767611053283337734510372634790560375153657239674271338665165402892315627250224287578406562928867181386082786246141450269881894137234740378687921403300852201794596181727768080926649250609108648960662167239497306086249455216190990292554474015868189347925559283250246828139329686015294311776026566162072405781488101462168713734274765790627667778400943230835988707597100931147896986722124587961378848465027630576766138866280634190296580617806869312821451779575535394985629295793366821413521919216982830262431592813324199389027107937887229076250689607978073878095071393232317366946593581330909673611405882656434416069048969384459091064446775794732273987327792718078694427099208875294550685167690276835376971993876782036234209001983185381616100130049181586591299690547173792694553266523990005318710019271035463668986326607159300548675171134008314105013327742051698087692596984300768707367327377132318858114602039042917162282103891522296381189780347620320234011930464931114081978205823297317195710626478238643311750144997529225175261282045116103959780743491463432848693641654920929076785684655618081091800238093700057283486808447654589889406401068733021896461751538256969823812747318522237526848076653131358970028626548315375097075133206597380670438959161121214506016416233231061901434929942008615122684630370530157038767366731104941589397397206786068184678500615124831315420911699279316921761297027773603321573814351731538881494213238000910982323973236001192578557680025913117717020725566544027990977057355556496868078138881129080629302473871218820659930256276425715238609630534698640223155920063746102228665912711246694266016835308766641813269041500178480392756924868048703073589597781496116599453320794461964683317319879136556252374145650342577052879221984023789462551518434729958367889257729918849204058400569722238633557287008972641558920829634760687098253927710619800495121904224928160695466993233094791698716210297543990668251211972074613949883368736577549180244770338845447810135276214685766106712054306780973337024536502410403465522466511951028529359693426425401728108195514172890129792174853480732378099797434617140864656739145931824779891406384307584246409512244105141425222764358750935017622886051479390410635332188338363428371741293996188804186219957332995579974476768449307681131600990113670505937849443436508084271006862090205643371573196751690387481049351435182173287502070888985300776161117428415131681891370338841712276764411612834565535804005643662426292769600406892787723314260277988536738029313007808347947301611450964008442519115670752936976093766998625977648793404623891883682780901243808391991002125542589617737544259813669636244452592717835097752002316234480543695471457328300116748483554548456528829520108572269571204922418892045841639540244546594366713646197231497363813295471770565669687478987922139047427817199517894200854222716444250391760966227547288430020301538814643794797270834305399198439647341770298645604198134292615063560168377415994901915581097878761063023377121608098000251186584545562214151455331246912362096577847042834400244613353503077287761401422322476825288123207129636919509922869438733586318448677432555576319670609831064673657159343182678919482950002249577539118384152641529771533960081621143871556402891438749700678434290725342290133511327917395886680925807330271940291318940959700086776469475399889460934393278401455408853961921298209954215979536311245338527406114578476775104862261273042193205017962055153121274016014185524214168859457188077380834045975809130217319641401305119542503882143686382598502438768519596631046155954718708241519389314749404395339083163006571954687606030998429779279601965652918852993959133699165156855934315456553971486289347219315686603012258588685924237312355860163853431719758555241613038968221325692100663853285295220618301416348096070816977167584402599585689910364083729143129422142197386080688017787578708218033067231324365014351025128211600017102918768397703475862192095823114552309983952376560713505048113873071152248547807932591723282114256994899532380944712984759629207196858423078980738163607442574376183898707386670073732157618995749702088754978355746745514513762375984625479302195912581571323521426915381606720643602789626026804872598261334879534309152931516286428767711386641979366898428996376172692762899511894708754009208193466021528908079842951795184033604504638466311791378829940751128541049833912130523651756824795086839748286923375180670049574092442247475465172046289139102091596075953698878977338302667871384130724359723453257323391821357529972077497071600890167542417001772163636452463670778164185342457754845902615077436375797860535998279337552554802312479576606872187597707727339622629416605297858940797577553167509989944215279485200209043636207323651335139645675222081662982884621300127595040700260762187265680554205185427291677431596897531529754087074785961974725205989306396040921533166426221404253187453776710340888363622390036163955848160021823790570424162190935190828270009690789612141010788463977057122945140419059584662338475040359926065353868042795502697666082872706603263410882375866502096217624011480215770194662121554446008722449948405971440620635931234690747756129419831425176444401138973142712910402108963349810976040513567508393215854567967198913209791005947721038720207859966774486776804147307959773705307513808816435249904315017663421753384338261464921979273661961966989125532409503740000601906975309207325788462619631113816337212368599958843776522061191453493848820435550137871078998075512508952145078057699984729281595374667815903891473453585090997066496708689909896333051321588411780343649801284183688124049873300347060518842219220150122500412730623652721771335211465423876759226297744572668717200403587621683061780616044831464841695754546059928505592679947100371874630100787022286252813242073374769527882597353892589001737682596057004088334005555162887372880033351169939173650237197842357143030552151395605965156740355740117485739309424872120776640557684853167467934627582868898598019142366122265891110406687990655004913713578265828744259000175699192462137130350774234617806524639383740258204215941111557125427429381999771547105731759512862387032063403512132032252302830108840283432229767936454330383739420036270054370669069069507118949734527157018218167392296050182769976752606519678259430637974864316242968934138718630248739775047481761020259525053129612122140694556044621611669913111384882972014930974681124817879582692193967209199071612097282472571708234837657131641692675769723338709410827606766736830768470645988325466106008048316475972520454820698603352871420117524724842160246939409153117239594591220534121349270639946705547902412124199179621234868579559860304415996072302696112414392905481728590953318206372827106722022418562599017093052842704108145781288248612815071905805508969912302551858487644719340350968759931535264640586861578918032759204831087590785069040793908537692233719797213023753526102094360885163033724025682411935178827354241005618790503455344527769542565476674523521829982661679756870042836366747337009795042538751264301264809866496884292942359795334428453101333261464433170868008357053668883239992849662202629849169165577446945135215879724323707842616063776469541472571994807515693159850108086391394302071831154657481881847024972182755464883114796635313830385019666061106920273777428686235588425893868266790729833749129994183552932978677936360598316283985387882758611641146726818191187218758314378684898014392567478556783500478431988226016948308849096071236812210991414197694659983934729081620455186103465372595675764111295247097015533258768211652187439025076106663354556073450069832869721793750889982719060006209525835714755727456152268217800972493886197214424104002931815375147759060203075923517197227893912841123792116375240338009878811558519571651674775601426462220955800200067289012973806502500163593180194830096246976964183005232765216649076761634433929023399172048272400321991261807808579995377569790721492863590258544924269709460081531433393921772593185175739970593208532649719450172428294103849707915294882212617628227978826919961899700718714406794202715840154168152988536325207737149319113575169936871006587685182270620430561820651319779964837712147071178496324836175018183403322567879407709834946652907953502811072863642078389682411007863736740864548141872814473100088204874750727153507415717302667810702945635837061500556076705539440087996024566478107028402775950972656539034156631391610378490185585296202697733251206094917688821502702192318371221882430531307553340431221915931663183694756671890742304496510371257999296079169943503975162926787615598611719939907887084794636112001146737243433252064397376110730030923125199519920077191445268808666263492277048327208561374265138144697994037629364311984815305400378858683054492551851259984012118876620108369850622203525638125415401654400921891997376524628173128909459494326464665362718598366411085126531321389904420831564219602414211681732065558613076379995991110970438755916388815695717249824202254123723370105953591394972407558101578579801928966135924613985421557980682686395379638202183013469892300585187130654733899086563165634054475344122378981579630916742188642252632792514702914729467684170526856445990032162730445477614118651537748961838643883045110127478451065322555835162876372271891308147604278815742566843946413759443080185475063979515036124815907796352572962387204646972235288964110286419978029907594115113115096945397472491088835586854052383329073683461484508398207878985853299792006329311902485607409524280919833073799619432748777949259095048970990042566489714462098462177404008981364402282099856280194612298906824531303002337505273720021791518113686297026117178036799681948600135704731288530860396613260489570934170591524389844176170350270808828730643293743754312475818039515275275108920568878234703829361081944289718332029917180024257679293329912747830660642333028384974349857975483530503003966930112334230896239076493948425155766628528691698189008763188631898134942866882073671575932873943207983160252091973125740872977913909439170161399413914011060426875861024807052529913163536874666323726212946973516673121084387724834052019958349019167256464447460056885921196946322439755517189550020667770016831558504178365268816232789407092864489340981115893471189196312300754435813043003218702887423702353493220588854174376627002965813097169360937432431207018951908398334900478751037142874281887483968707798071262028042196889959089470315358432132062770340040645043985162188058120710452500108339512560360582543864942286917630984930640716333399593094861472157732629376728893369691275946418331154190909245767332710112188360673755307505879464349042898481815921935885040341400564760780984943846825742221581888761446743761818611618451790624365404204374088914951346194681588297195797624295913321959883943939026814209257290139881676918257211079755196316630650471267231965314200652951176619110051984679752087108666507078451577372236470102004784466579102771744387023355966514788917026174875599967877343597628593874076616180119780285985727703816685423073635201214810049265927600702403585270215689625930105754049927916742928443020877247996545160625348613518026678572854921724426265208483279822316399463578877584214516674906038961720130347418334621506121852413987163688121801414847805909607902868067510335333763379550835759939611633040881762354280641266104220710274437762542386715060673852088147139969402950814680106894256921979180312792428293918284531516273923645429826811758837202875006181862031602060893130941968159055729970115434899878816560651556487843506372667707669039354281922278703040098580980261136347537518174169370566251276357709002336813537754002265197835444994593507507458445312940509646681066963758455758506057896120383713014540350117668557312072089321952701331963632728960427670906355032302078782172380452008890537198930057436113252868888285164912725975071579894624644447342101535209450550808354693973841782006920564497090207549597486133683078919208237311708988042788376501526037897274325997692347540117782121364287234030005088182753251182324212831462900968180930858158632791401264998424619753137267454233538848636373983866885623803689042961724268899374443459203726899158006470427114869197674040092923637958797112269698453716394529908688139820723630187241890747696107847722391244020947906054818665271844471354539728645885277491157531980713991881748910443600650096768263309768690975094149434272221811673853206100189092320201344904925713265894083487584168821530069588685471505042817330277268762814428195640541724279365821102480032664489835029350148234349225834229050637422915393861252772323728409939435842060239241814317168397252425963856192842218125500960972715073758697128801436282840820814798149553386084935570082544061512227500516917824426172873573845698739399082171924757055683536096096369215327108376000256438468935696164522090897962474427383074701644626023508796471001957359076672597154217766418123000357531803321943534420097850341182239443634052662702764710999183631898841607687938097472920801200987158035380979669222125443572419991867252611151603451016236002410924932013996027742624062932017853595515429090975960278566541978658794720335361547506087007738328434619189349279116662717366831918483444897154743593652642865207682109196868506627328145511830165862428560020049887285111237181331924391741894203928204100817870281391778790403992595895551292703284401623530710947787451968994652213746368165298000982858534937476320589594008949263263083429080423327072763483598042184429781619718450527844314620749576633407494809227492082589515052004631398076351689013216837780456839526222359569861634607251539541879883527904625926225990924367337104671917073910531655120437055747084504700978846120200065952945944172599362881943506186146902530620715881644468972645629103032907990049522538560376733257420596255924739744073712029569492862062857075213449193086086617388428735702074502561882507736475096859038110854561610117611550643176953424474975759523509456750479937253490247262606049320851427115630120243131620961180819598988895953426631621182826007421712771422088567541052643393553498896633961450578513111363507903494484886053762290327095472511917008345161073492668828793249445079129105142698822924116245188667376932213234558290010313007514064900954599064041062190600886519653216733768727916990052221694092568299300481159052232690925381525298267104253183513104842284958691951641514433001210436386554122888862214659298808391248148661600518944263161825400881496137970532409726946499386296122052176491405573922868929087013289496148443128797689691596631456249963073029158135899642040536372806202644725468757196190255863453540710978437661840121897285405099601438047219081891669355201032921325399288163970139658356775278071704501889975158460773792360446811774730388602281763641911166077078295342682712569464928812951384556469244820207325048087813366422316447210765849572383827875942760722131755947532717503620347605125258217263779365174198917936219404265469135147488307866989133946072904501751696664148114645966729293270351776611508313731428729449623114586832736616672937070057519400984818317718334994613932789092013051222759974812338728233524392380865623174049729934746210045686223870562045732028186467679157893961389389956825046748867494302432323860658086395186186043030484618458862212872361447262674517440358901004771744181067327497168691505141817031103410715240433058977295641135531613984907496514667808881864514245039695216692631379457324310433297378508765887181360032560828204708578117956147365034540599352364559159627081298693999974354485262508518078697273364674420483433924678071923404336801331066417190796194877266168898481302567182157713117359776279484099624540062598367352495606920468664742013089373716305535201000702359514930164484776704560631610147465989031978674081538271852344154571768920717281478353928621645650235631138932331403223457451253603728337957688518496761479893398229671084267047585189815525556748866325375588017911558466370501728578823629670931874522730673402659190710569481064056046174699506118994617479397493357063550738844638835511482271063915242570622460549067833331339356101850320173465680467337734783289684532613715428837177940999117773291265910516668683198671929494251274536752885723162531993062952934468953349390390801436684012163410798224134981706268386437351493039735043661732923036710892537100833433805148681526493395365269920483600989168596196482108333150651203372998555366419634652477581470838052584426039025583948783280065575754668370680946373234324059286572839157406804582325110956927004420545520247653121833772979412936810156520426555810037706298937289857258731268376079635268061937834952354198840261543536090528569543036334397652528542485546431885310574876243870625626940275218906541214496365206066053034856558018335436716021295773427103097312352854924379315633776158250604460978210802111953420307567819433678572024813387704271856526400188189730489972326404140835278577947324161936329959932541438104899252187406783982994474155150258413737870827957127413277289522939506031395610276075367912716386240894330613181034961897401228474311156526218263473137692061544214481440713046126022800496478537380016779931901165214002215918705480090346231032512317215394434288171866182802008006520854321271226603460602980683985465029568628317617533088107116407065588510758199497255422905188228461649298353493752472544931239532024641546878558416187099530727640142147057743704297190204580432662512129823318985261601455122364259372045162235181047898412354643549591661455164029403428659947377317972305772814508176207186674907590827045541796140336701206601432721505955935171971656511287655978609879375444321916016310414303174769076532180126745429880389136896164163904848028635508409911341301502946784487816723969030616271067422233592092742355516518255557001654374341162480412278228439876603870148600277301891686017966145443737438547909465251578008674161564859497525382350811812010909314669419843374433570788807436321996989893462217900963410199734417175303681604830098608983472086296137727573830916865914268466727287519357250981211622751591525755411389647690990848234489616296002202241506804895394932076757660192939255153220159531372369771333031961786043084704758841778647459502246355836650807748549373972537971340996928810527660802728985115785514721553673233213341065497565746584154743645316310778687746961386220820107494729261800371677642171078369836466799396777645303757139949181009571598148151189523528763914247050556580505480841745662689924121833757388550966370479887380510215746060988011529667386637027574428531657802689563956425130604643052071552589279980802225670016588236885260564263368236420522904543969375384718296255407548564928668350308809226825973188855456479425647970891461062348071792285837193559653650708338718657160527184584669453164227527090369291432161574857886412876202613217485506965561215804121031915116764395775576296999441596975334171717893174883206285104136266914160438410308164019436398398825036827958033422489947338516922286647300275159081149195409060674082464898101003527446970241797284624747600962351393813666182969776591186924906003883787135467607395552645900059090908146426039723322046415652453889221784110692626555449607066949464353544511333892921598885406709985688075977734972698596539257549229204009843669248640023297805966776944807142788273569602415385904037426277157306632409941097784292250725876274051773559951012741167884901114555271740425033251616438612977701878382777858672644106707465265248801228647069509315562470445580250695908987645596829844787140975263042032171785144231590025377429459322737500845013750143060895209061905319070634293881952571402408856876013528658057827523120787610220296727345061341620599115240211429880419819921270573508188660114772655826053605253109807127095884020584616910900991449704698265680036434086311260595883038965061255420874852166409833034468892268846657041239055317960935668606419243057659846234460489835316468109491562489490464331318002432585598104464368275748517692305662435992880941462751548093640179376626784559982740372770473392009054700109025541028510708423945914835933492618840840291292480066774929209432724308416111657953098730799694453869636043062630585886928711133660288501522851657207211046539265170533820046585514996944586072530306583227438724032710083668069052867318349262037000100232085536642548423015604407810680997489425490983079368161955195483591518199430179665938337083933611234749626872491423426878272777048857735936026750895374407346554384743350763765958084340583833452071176231069367372501854053402627280121522669147808194921553202640259305843808965455079634905948112748455622317760393765319332574601449992263688759560086787351515459889207014776688098757553989836721439428981116924923426029002956812034028712617699249491232791996485000364515342352809368551600390811389824073432173861736293385820094783850461271072438264083145044207125903785373082702634297813442632474967647100206352018281420279458154521455821891976764389797205922894185488081770324112549687027706119315512022580072715581111120881750761115373095994308624019793848971907102076443266998367554656986809624728223136037344003092736523653567887328431963267975282082020457633889374691497141869042769502782092174171646726157146537404677066865246443949286163350259000982527538274530445904552282319074130758272853909002141677488404500906539321128257494055398733103352638929786928684773540643515748837935255740789781327307021902426657727813733642158865215003105551207019717965931420094609941931106612861670605662538113051474390252896108758732341797248025703007954630546761655196609627960754670350860837207257996536803595792109948437619486935131809477625514669107076819749620325375786176912091639573973087988372836930095936596412792805796890307128152260531861219249569797334367055278630518204725169164918475927951661885987748725434691436052028793579132630362381888107247863430767073689593969350263123509085021412621597396397779029457402510076819249633447928674807935432658770479087831904231861054847916140862216918908048614488706533702427895467238601499575404906177649246380241531988125374800234713891025977056773326509742304360434568463357731913871197136110597109685689658806545220535971205365973215604132996648097793254055051139986844708665374285868200093118573862126810762591318900826378276159361107191056460543026315882929029536181902695202737252051084402426249742606074137628808090819616050504746594637428204666595303118767729015689317760714485736101947540578188582054496914652475244452342086433945425569788105965201499985761916097013171932443469033643460068171120332724490622820718092877661146571547775470008206937883101934107137163353075946069648468274349626954386958351559438652023296690899448511313304037450928449743646541218638561691209316044186754129001586024422967431164785541926295050598843523306244250675685189693132422251298530674081143551963555567946305705424838397768417804169204498265534568647411824709639743217284853298297325453141719518569574562990427745605703329405646533892823184192067750619261718628470589359142836405966382801040988829071287945118352903628362695096424655703138137361910377127527728231344292547963114167337389951508774955259633185808903916480473179948909529444757458078250950384705866685117031222517070843731060438751828096026156311255981070549401476227712215420092421466914978988191240653078291847779907264722870153038378617628188580326186790629110865912484185301196981735572423733668510193092249734258551188589834143364269468905586343028617325960954753336447860691094080159965039549515874338661415283732144538121311125431567175098934188581460344829500032649701977346459813946938658993951693423906934854437901255646885003968803584622855822764470134767294071058695494900633950496849640015369538362359308959127056910428462564529405089959652838260532701965890801067628868677809635533428647626615419605308572573963540164568341042836129814084573104716507808979186022097144500124476155596360734034676478817784993727292540280937861298266288857635247599377242589396280822494329603890613865958874795926882998320595613810801684253994865984357878704115867750774511226855777509399147973936542679585797112142411019365342455509789319077120335988818187500710049193984554922803737772456070629015059974823844632610761105390457416262094325766206208934796776609532701373517331966008891436852893762730903568996731733804960863244742368028549085897818242723335662200213275327684962634167766736438719420417163148225581194222299295854421282480862431394649270240219842215950057336452164027627468605401788821317332832990425307184200342280708565626147368163236373273438785777043726986949044361212983847999119936907330707172119481944546205108749787446092922970940575229281389990543470740582236335449607927171418409301683133628140568402354848067307740500822371327693789933779825247331223599090664275539622005645407445113052620339987999516626834604940697160910209237786884310609083241367563191004141372308907342231454021138185854941807227332708424920937969759032181994723630625345308390739827683514814390632535690251347330452333837483001524090182855171981411062370739688103231093904633473570255099432244456439047928545672539329835174853041301878234699216564895060074886218571712274045706412571723587220654974308230018935788351522348561153644759577402907459275753386717449536516239400517969557189779693156635591288015881692210848569503882755716499006796918627367687302038896662205352253505660976389111839608078823452952742939423936867557516437876026481566277033045495033872636719766869555542012704553077362042720327284963700198376414638148892509497323956994715446798350219006427656650082648880093520811100005835976574540870380597042187528708716582337235600632609756460428671427772989642250683052002008512360346311616476167708026204681091983800534622909026295946166635139504278135072634915127436529634958379233989518651857285144062731297451001078455950934310920361681809678143745689778486172586818908380726133764983301513119093275689573828458757441532374504740751659047629561880353803272083721701888123334879267200746698365395775417563783596497934953355293144880430587462064541374053220660963016229263298007432194376407364027650847820679548640261177180783046403710468695278558393473354453459182745864521211764362311336868375115909673892147655296898112557411954462075284103441190458622639956478526775995277595214072679432815230750636536272300599013504622310074275952293717667604945980377463814970080299476081227877674506398679806153921817425752170880719991250266842236638184100914065626390837866821179512477143663183482272001984255692465589706439290695905877394083106027292428376133106180480462514005450127887080852773206853149775546672011355223362373133664387765187510835822031848351304260788504168828890457068731894482868807349301324125206162509882214100859062016545682103990519180575555215834031040614696527859816797734294927330911327001993096374362801584342234235387402165997443731806984755935529334413172756416807945497126135316319381548693144673413137081410762877822509091460410973387563108069690399703085329030995521921582248170256457510602238754146901011196334785691825040042994297227701715916806661915820667083026990728242241477214743411994899025054417675397734958262790628537541802099149139648465015166173481432564018583431048194298414570491202938111667844751528200328900053742067357003934562725255823053819346022409507414963378103395948219249316980978154840435016162847920819254301938523403078349987545108291982210402854884672883629923180918513699651726937998265102357221541527884103618520481316657131336889471284712236207548280019088767007599860445620318806409830744673688670316327299307243598112366261377543575810022774747215236244059757898213395351149998804211080008586389760765501648387222789672128947854233775085458165472080586243292420036320867378341251496891410882566343424005230838446933321896260925217143914304443832106086138113387039878648114888646791599341265744691340793145694285503880397886434670976676388581269532349860182760361268142115140231519060619429138245959704689247002841531551619311366975316341979039602161781521031786862221673253593368043367644013039265582015666865525648082384381256048588347989323992519574363639757630667878822980437303083024722694682637621028988140534109174831611273418489606111482362031001582310039333263686459936469420677151579041606841317137484554945191424880329620774172551477064469275444596434385325286316690077796573581772518234505541578030544794230595910773830173537920961971421595367274966290822229907383241852352422645973998736143546462924129610956055231312197065646282858574488343558900711330598992253068129096546724117469745204994846608922922827849656537486745973489843275318423569056441598274920093435313068529340497793172276958690183059219487999255464815281314239505710023827800094049908818094057178000030531644394641583057396539593539183924053525198867857161882582148412068842902983459121290221753474006764099519342494585278426141829789925591538706736875141600648989882525365193575778772642576981339336993218766657302421921240541773127628167632911681663293166219612216006954766120965183617151161991962751311612839213050396980000257421828623302200597686958118767400319742172729070542377732528610220517773355960016072663026326662945696068087946223147881502380918374663676314101807345757108089500476970279169295706963571883414969680611164049778531437683005871040401770838889178544556974322868912695908387264206158119444922866160784547280317936649176346966096213867552796565521525022325861072595965716442959047089543500417653082569126973170888255609535440606953310601466794042966874976051748759538245465242333442274931641490254264531688287050346670852022925788929239225523308165500503455641543575958675032231328951013191025553714699962059761601389496072092898695834460688585525066350365304984528919501182148114754163256689805381953680962542059472044787196126296979145284616906528416489278336021719183611976163080093211437988331689474227990201598372861217504187879378437137110241438374657520691510792989088451447175465908219106265985554446300906173866862324447333952783076888716748884403162017049697601750891455271199784056941394606826399392724862946911685241791965969159505382298439144648416054391443520546770806469352281310373796687291268590473947145205964741949328561511177857407500772638101169044283235649581937326381738992736143232713882593411828332761815770862992814838371741018307662089941415622224822491682182049476166917385483957719245356756137783091508799586313899463864327641534912128822669315105813155376213963725080908958731285879737563866770763220735284602031772342045959955657442238256006306331185078269806240302924383935546965786608119241217612271785859011272647729161563448875288148581253076982802677558482197830206876363448430841406399228948986645137651863533417283153689937804833289762594342404121478775453551101388546162484351229848938427099324932046179565476662536462169553024208692078089824271548058064454430296929284833349856841060699427186144742844711588805800427788056735592561273663357481065165733686494709448893746655216232688632389974494942390603799918945284345015235708308676414444706444724935501269887296353427948626745320355681944052484176144585472935676858199655942025016585431558539396902303902070201812950243785529668239288732852425286786179541645867057064841340017279666504745228930695200302643998599200883733067746835663009294467312175189519290335268937749636041153310862796233409535117152488159553553995905074330619058744210630778491670598794531470813942108718362418488221896590112606280832230030295970553411520416227727953353153519242318468118121499915052524075653851829295921642805757356955057529553120288745525547364749950985985382893012110191051881693727537123281428378258266654348845121391941531620735944008846199496897365447568927272117432065044891548701538937599413538749561422898108941740491137918244689487715981149060612269640752970647375358613312893975579948165116812823095422675556096104258633930399113677730917186915687415937625355156104296280601475057575541537707069407322186452492323996777411044527013192033349190761955030688181116768791795019934541224040927814968657566325016263485182341365398741248589077674529523081689171299532102020461557416393561845464016479912658382808285738635628729695053197253685565114025749961505494856477671548887284068070992377538912089096844752819908293878272043981212503192954440829342548899575335121590596779021781877577157103069347704390157433862847270309129848252471309496798183737090394138993354729667346187225466030881543496325975722627906254560698641485478871903637442678734859645174187829688724214955695219300246063458085948647518084601178349897914532491560995370563452014480625463436311952649236742373623270652321570202828724262569458349033642424816483759880024370254961307999660854078186293803979669453151709823312325202735238562747777922989622863148486685564197154292140666284394670997584359569789977003183218659992428062601345133010088110948592129345157988379202792215258494494387561768214114625908191944231040989622999845091161826806965279152325514817906995823992934781021516629308399474076020022315409709281702146460030566488925700969352837188305805658710215600757291830680951899493200020061704528560449008054496766953501662996069873782107858502015863707852919236932561116271642089328608569514821843265628986711781539801619417179344426242874753215528198947730178518332673814964572725169119621560097968610663012231199320159775416150911926422101515321017530923562324513551572589161690535379052897564365227885320083840054469877791078814576979485264022421748034662346931709555354164168009139497956485842738233195413707740985053678669931016237160573596721590012099902041453004566068413288678198319793368295536830108547259635638930763841952617792211466087804295632226938367487752345953216558229449491439192648118956631758366764761253359540061943049733749333836066446335754024169136301684243897178474838428078229277186974152038102668738734048051242272313101546224921258132289595997792366559464177532375962724856526876428152621541061251038341568715167624107788492981122480522194122954556533977501064983621774326881371677614205949288542237478502966321534297067686976041909897632259315680213881092063380233982744208304413807453282410386285589286326899852916712247178276303140157597810073570704021020486546334803140440003850474848996981843530399483098375820380651575784244668092428016088644111354229359700868943942555506588876649207246773369945727586365058994375095902977182908030687661008544410031549713457615339502015745298613148760997362507371848454514955300816808438910999004273309365085690403179419754303961121645546333982792611450521997886533536981238776763477371009756112934126508143713570143263705536842965860288679796423795989552838118304612192667009535028919466858122793226827560191184433223163866597044052668128966343717820716919433800687144516154005033025770072217061415559283718750714950107020018620067118099772151731449446223948595920919942061543757268485560660976939966684262042929520369814672939998240712212948218608473466840799206028247943206571221835704925559126822284444114123300166161711980663455343660595600654794382361140373482581770772885465758528716297844685304751497339025498794331429171608751682378302446905356761630523748725439434702079927548598816938824431669964552577622544626551572326111382031896324747080408550271806577674613813811558682157490069983239475290348924947777629803214454857071633638877803935809568368719027617005809155005545483323993398340255428059842347548107292441209192311493630535875457189720280978241801183766663369733705511375633302298805207163744434552615567883101563998463957758380418207512879101098550243585196673036262328652119770490761853855749201434765077838132083920852507564892397122514276975865229337563306322275088234490995266543579289532022427890760453415331828793589335225200597048634862624404246879619849648799329954921323963306645725087185786521211226641787308427696735217530499324180155011384842691594777806366446775919166729677034659519067589466260711743024272646911742378434237039192453404753266990389835467388628917350421478804097711705367482642075710027145079768490281417656228266179752910959936551391163803881679274896663276012851488335066558839574020379298530000563428885754608987174288449228327769943627720205141411132213918250617587269118001186893794698746019170074176887225505921628599944473879068865962789685115206670299929395490331776402585823994176217830197228607577215552541040153473641626832726913372594558433421703109117425824896193713965950701628777175491976021418055983844735989574784677355766210762981741154413469714488523714281474471240373881632391076645867156682080477810323293315937035947478285359409783813816935281737875223175350788156896955465943849075221568663725389360556762792606942389876916092949567321770900426920143018767900555259791392581059791689651312837009826596094260215007564985910074535243833747057957160172829452241276722242552808611750928079591676622802105193035828535489995847650398880557893943345357311402144636965893646702463542732587771417389624628866158087172278421065633759079972057461270474067930089239940060959176834132960868478762233611282747834428610988297918438865533268109903046789372921126239486543822089289785734204886966955682659097325195929757026211681909961327773844265370366269029283525231492786611224123459928177042941321144800679964193326667763917945992442517891901168538008481556838621372350450746750567567672941207723453241944098506258089903162317069229041333553517688750631352885385535837893783272850335953395513536004049337698928908376953917764255526715842165972214309872518876152430007871300249672207637066284947897549879910836191154530221044104910741612628690690026887405393497886238283780003127479876624231143863447068693502242225732730047544378616532618160180308952106844688104937475364549655794510126929488858261002147570784630536073186770218564714660170692569024037311844725715960084099187693216300050746885149980602062615204819393086558613733775757797880703046750430885989946396812885334064345934225397205265312835287454259752364616141024056449047168638519510690920263039169614575873618480083829824053511444235785436935321626672986199324895174069757800629349720952502346381407803553802894961206482301653525446041415726814705883136486580356691163981055540277469556266440645637693431755269617516504274008808431877973231859237274975483036268332983117707200594507066979453118930865783373016749716879688444925245998039191059306313129250106997866728857259329877055810090314833994004221444320235303300920002016223255766798511017818982048357065375644802756674018389480845332778787174430844767395444863392524919299381019004395752640447204349616958318523551780504476524479633360856280442926746499115776070367823029342187089519852648855303531724792160248370825339736147361050819967918392917481500181293292326013896868974192782910142050362450008250740882957725133778370740081011958982050561707785822842042284442211235021898921610218186971177358777521701078819056279223717721642765264101332825982757595335644191347371192208298559145591756111024391975720358795457616537037052598474853148752804137421821096072306393625307125960618143509435282121901755301546172890573528607240960098056220525336365478001413030823763530180253681495513238351943479664060817008277462060361504435986134272382996257552694154909536253401275329995223639276420353586275597236096170030383169468984804203161947766812939799966643179241064568288752316599522284265586582302191431335885913267426455244442655948541142788584475520768369815033647335356555981839887299243897714912620894203509670889512765514214249739631007346979196362021553689753512609540773328400361571664549669467612201799677885148845796112450068444773741296091432925879946228430157412222891077109085214755714507243026545352337959537086916773830811901943306426975010136242803818998777530156824186321563029090145326613781180321983008062825791155370664190876494142029123851794904462410451069536543354135831631950812652729300443862012241341686571449508437722513616655377054490108286719640183575234049440874600175374850954591971321383678608589559839433156253967982272230135685724657551805387506601872288173581751371546569573832509637479404211059983017054353884437490045467888831096516386290360023814362075506811046366321629299124664604606232724471173372754625364579214319715450339592729097685003451318451072179650682783124849120346178573002959434999903681353509259428046429440553864865762277027942270135647748857469315422555404248328125198915591189420795449263421644581218843326645348128089538741796248472961470787026762944133474019442358116528843575193698628912710014455974311717490195830656079896134124006747301575400273784487185962826041651140829938064031458725415672305400538875845564223802678682319027147236532047991304819806830416089365822407655374606251901326157566658463853276937404556170327613600872469828529892550701701558257310556550599745103176918158833022565947700248154667865755429726877111475209463112670547412982669066550490772081344270519322663802300573014789859492919037857079375131131365648497772228519694324821718769644175380250118679022297500103185554598876311124564288520894483154829569158199560594701313407227246395490714755412478824252669684951351463468356561187169032203283958598288559818446389420012688459132648411792039653847828720108422937862691681962208755789917581218583215400173855112330969831276432605868097558597146303883938467454578835402149034370270340928527804230088234162517325771710604986871675004288093615483025763227736731216025380496897434874248591639804020338138999107737367213304584415849059231774579018317809844661054400850777704767636435475948845492498209709034590095425337738891474108035890089213214972983935184309690528757083939670536234022339134880923728613864347647307055530736925068037629618308241447052389515123480413261373295436897536314769951227277510276127969000063336288237219399602183389025978222600903890101507725511531339200713935258008416853408081067546421642107351840533514537423927380040117257445673621553290998304632456840914356948678248205135167061556480804570300607411029566679359813789517091364598424519797242917841058879759240911247367330160273003975413143799469541955046593833792641278340263589996505772028258513802894683614468550909540966777537517600270630710911836520724501190507887223804939375664879672049443124930136082173516471464777991417262835794315399230517920478553225346457406249530590701504149194280184930530115391174903091569273716595118196779285252350347273645840383571476364004116871934953630869523658103038619976046981086899926594523257244382115142194171266515629323128259070057895167953196637950957051832477296340868296147204562400998954345869797500529350685137001199874584077500296614921856890929397501264099777846786884268685316628012413394412329316465262447943642250004435723533997412012035621160080662747892263300343678830700905813557965732753522281098322039524267642410854656423016182177066356692353316568685442581272400449397964833496310711412338099525650162294528725499409311849379690599454630399349571792310860361004018144014118304393304119339952681554814643320571436986742499763914592653553778031413135530923923651732422983795214150657822291248597629286327932142667824835637028359689592548084505628228977423800179568905105348022542679304395308306573451195750907943001578319848748530466543838265855491398201603823832903400834675402621672416607866025897343425742599649806397625704520580013689391932672376633391144573281322497156476310567304361800268221872777239912462140616266818229478808424922168656407226306165718324934318172486461712969484516398583044508520736605278864441848765873211206280060872283284100147003630095558542443253430588975924798106180358216696948542549293772508091280146073645556466325471172036126602446381449730728792533075148812960787285657069391199616874226928121889606726228580241477445735654373314274990245032290344097532585856292535876963755911758655090047381766618858684752539415718226659769416323113989093310429168536230410995561399755430440263906890465158808869150180380067825929858797947950382152401797399682412297179857826970268939200913886457592690674871235111781599317780634209806388230793279133452054726916016064083571667692821011720736060947806109586361349506220136896264240765425937146329959143464599558434331888810750487980642687975542828975242714887457088001829459571943361864715046945832561516901609575114069949979165190503770318107342893317844197285628857206143140133458550130645268399001869504326343588520919602795897203030316301348415692187605934373199777207035819815693708718157043984798063519437093305170947851076333218030896537923856473610566395591822371500407088834691282317334709872352738269840122984418744858677551406429364392208107434517024115557993007287214672784864404237219316821467998200598415908355060731233963330681273511146215044240663248212555981870587401077317029987639615762620088118577630024259203761883396990401015197221547957689868275426545964787679392050227701350661556308603284496541598365263371644490855501916871694171769045888596616641425188232942778196412488266632540055817384100464091574736992879175434815886470866638560932145547921201932509754857801743747508845924821700571665243241328231177472348985632873300862487167261686410292717253819602915040693418266807485350919411226736839147875677187051508589335071942939247618656577652862276899821358803145409706927135697547647646913246771028734482675904555518814790582147590626049793889473087752200645903610441304741421652744067986920462090953557716032159538717760730202996967469120393029718088973808277715910998401834027161208263355290273226526677427066136414845053964382897690625921378590760353999265059175263630497453052584189987691028513532655414957458837540943245126956363803786069330278914911335379561397809886303999299967930218413845428643492309871758712380295270969741697779408766818970316686432909019270815378888773911095398310937946219141604470745470165797296552843636203314412915413919585651149204164589744089098223065535337212845688825236014095738310875534074208129514223732606478284394203077765666406341711897959433042108311008343866015830021988628401557992913213641371343468432767113143973862161829532410108859879888486534210945382350375211123501328362389262786896838199844537496998955040850683176134602185256432172579075417965301029474998651957667376391935147444774989113029145996000398358645117987534459366477378527846753074151167575000719745066443885764883253930390909283827989399659903284637983493337089956005572728999185281606782612448585431627379206882769526308296449886023635549756478358312908057752406982482700306198221493580310772643394510244189952869494180248442386784489187218972317301812680516899555784876469904471071908070836592675779092007977397370635796814026285152007372164194860890076729490196077882744507381352460777586212594792587748111444859243799766742379397946816210710787115405940277255588927205365177366033993646683211953055303912477642476667560104113479276900301829562712851325499625415521713739923698026188596242262358150107338288170482715741914057437819747031657665398086919303917809341984104913574740773588293247952370796958226847127832867057677584432602652304751565094479399210616372067275890460838616640326451049460609417215232711431371287378326265860465184689043559823882722006950035522585551742760034683609077618138436442760416655188293732636684362288898636992184370769020174868154494696179186801113094712831952965911703352580596726419051074631645922794090916707295911089803688025290251889345776096441093348428806161916528011219288583424993878168141894089306186623496787767309259774317641802105383662910406103775185285250837926959874748020553265901392030433941611294407715667901679980800867800114528472690556337842462605290829003952769744905093220638705753782917639456376564181403941875423247311297726233157930167790111813935170111479061594505299194897927685521188261514457396558831800461012217264220362279338013361158871490642990011898802702710335753543233261960045491608564486120671184826663843320405054580246753658135982523553512764319378985074638524287393155189796423420643599299514845222407626407030372695839621007888940923290150896364374425310448245846505329904017263952872711601340024060223335354825043874918764943664145214759505625990505800427449940475061435963812655801663834823623227164969003023770344910725730561603027544792814002597842856233937619115630002771229829397826596917022025790776452486737872604444621892008708306945781748214186902578730630824725569193947015874943369922829813243736078573244983721567455952691807825122908768569548532801093476536827796879658324335877261123542668780627910200433753238662590841518243969566812388703165762309470306031222019508415353952801873295025286041094051456065088446285623661036410274620452400677493444319269612823772011163568396595349569972054174554969146606960184707719260299535781283695348287491922811695893294583712268654856077546077751747002161440870486950113761784260016564063592473126322403239636526118847166067245161791536357052892927746561950935867098939768859771110446617762680176347015823526561131767589499442055903199659186203004718804682006815439733849842036744722026109262361950831912248704581188133031923745241489710199711395383949169494234582382635792947263076102495038399339682036757434122742826118613652096330653159870420172302875686403439156981624271343660729961603380394957415700359526743390830499042346175989680740418198649314865989487060910097579651051174091113360249185702692402044441173685866682065938744564237025519855706878835164700226692194129845423377621750312258725795365187935106960818462840541513224181523156068833495545923545033485736092100125866535428344595963677966890640384409488866444334840328564884086659211379826705109376825109342795487669136011943006379175072907419681952069640850270642614606515635731707123846699257236742483402595629016520051671618771512488130771332191724286516849113486338666644186658756094358748493114661099031867451391183403594394981483420847367522102462839600739734927041265502742607168749917197452129836498840114437808010669221127177873114076376545189739646484012883885994367337404540939746332678952329562923803995371463013024025319713323289040825470500846414919041013804617504155561476639929370175029583557932598389717457877342677513888865203047482712741187141716225336062758103383320208617075333414637570429017693203080685674554501391903671697193921375639618000417292248973729045168713884950638803695367110649598838030977434527318609415490024283274976808917283209600441601039464103607654393588170198793311131313891422647924452019209574757992592877684578614666479281603534279172517421689164971653925203149506651834157126883403067033050232125762415501710577034942508404416636078747535641073097578459343321716843184331841287758505076154229035370408817675329273137306482082925203141145033015411773403586808340967229539772365637480311372236923478537412235898038951611685797760806387744414710923446710062380104365122038927969918712003175353637982624575613177159170944426880072561114412642957994454979973115903483551996919267390205305624069334042827865613986781482031950664011932236832091673296608928834347615506972855015934889750482130122604962205168545143354984681835646458844131828699750948559064928263108529028426335499858337950724825454225414047913712731816715669675241719195676563528545169991047778160841259310632762866585458774597959460465266367585185021456277720984874926827974291039294227738457960631179354120750239261465786534594184758155201854926384846609803398920698108419406600770098953464334318828739316498054902487124019573109311193495108988046035068188884350907004879813020593355688866506567640557480484030362716944772688649120906104172142741375524226749388902205840667276643857616370345208295147849824501307152088417726992397011448947310179031297518578579941095083023363768267684233003187612960881200936952007421495812874360755127587102627991738488930341808751337439610424944926099779474694661157015610205598001467125942329735823329062594902492929780064643955755633665633398694955730896029706716754238287038241524507611943945292273615455767780464952892813764936647532546953005488594381958451520275500051477472110301564409261655753927040966585725633625231120041536310334427391155146629519638672245972952444139472340488900438555049846588408506487448513342200296141610727304101284055425614825029409264782887016508125644604563940422182068184724405229182340465006886103153031078193693751161500350785006999948098830952726697327898810706265224848783129079151800908105911379273980507036869155431784167571813506650786206022684998431744205936935625407763578867928352788675825598090698473883124406741883987852182069234733441245047357390673507625799454646302263801800447419637513474304590163798628986665650889133148685751050331141755859064299566641665800752629397180078964001668822144893824039264032939319995545687305241401964972007159059981634957371940230595255301005057775488939151749215236455966360854280560265489882745742763621174999315193823925276547530484243694377995177718806834940747546531672012027059965909755309741321380671530889808577943855699521937246850682769458394933263957555110162585388500737312776734920333275633869701709826046830010075067402378270726727682476333308594917790970104484187496136975281125176678682897992956410727887809351630216531132318942674012488758728081708961731389322386875472009009318925648257981315449455113841477980427038220222681363061443288817020941732031775621713454130458549226260166450147118788289319380144155001130074729040922630378214912044792851841886063502995467103022280344112099691589282316397038711187230371679975081717138273214225454275238782565460396198232555965654762929406713440192101130827926656498899058377294043225544219779540507006613570166505043188925989562121403090240839533146808266144357651431153386433076585232298591219530928019158591070151553102019049824615850583738150373343353139847607115277908651165862795885429009769050035496408730786199449310588899795082378304847140875067254552629129285532594024584580624749703688731300484679590656707250870330693928666337963322486917821432078727114176077138392606599281624268011671178604521795181559133725919170955958254561548623811486807979396709339425310923769975330228136626064645907796005959319620768794560968912370576277162052232428170524801278582979678539572459568058231827597208414974897101714172367030961564338132277194260373388664841843250386431215236003184214722375672659322670007770401669653283333736199267621143892553581980126321206012638732359373330468730780001328636365660286093561010544061094729789077942269625842118193399882237578780353040220439889751467473949393751189373242774273204811860302936312730932649565501578041049717564416094139870072906841680810429415375885858326871454664702192580927865894741979818696277327505380405276567895333508308239971098447371970094824431128807280253374364830796899190703947175596486422498939556887972636900187968106509176371123256305990932793627292072331165000485040408075732305687428810988007627976534433539328276951603076246301338432663814120911748733367978076331853020238176142290374863724914389341725594749360141040356276540904887012128783223727240814167038588854661906213997152335700855248079098552212992042563660713426117295198751612309176643148771601194845199556341226972187372498633779700752042442046223867171397863147025910615543436512347102693431552110624593967968578851167976841323463916731816738575802299409517728536821402510908849235984035438607750043883084937465188894604762090524931255913849399647923754045823791039704088984056997537337976971542728761521934912707150819087721999126973892624782304178085658431854920278266139738840822730960494987806803837465254083026716706574123106278731627561964701727238017991350584123090553593055111979072570138352732891104630158647242348542976916814803034967043267480681362775096579548654381450494286548038152012376235270686308059612113047803882307438988361802338411643894767292853362296072812345482344937133083028040039955105493800184762936593423687207019106987580590765291794859934316329618480581455702240691849170933377096272496277152484240489223006606395404858793436739224957483728904863678465000703807194758616957011619085661149933771893597805567165774258122993327161787203591358548526868749984987620347783242801425145804735825124226332909601218239875649957669843156580199859332000711175617530690959374856964195109650314476678100212719420344778962715864711977802352421145986071496029424042557696059165517832370842409905249509753010623044390496220239528815538358863513146926273475464922029287278921184007497246152787520348211975742527010247027361398637056182915529254597048427150760679328634301220078119592082225327527156041623259819202654527747964020472187187276930013571163128633109162217950717102863888790901354525630179323168864095661505796701622694561875265732212530114686216453172627950150833767628031936403124603365938964876253719027722695698765552008819691483502866337072756736404649241046223029432020256528682617052896887755598021222386919750685156013944269599994013157715872479441727694583080401959736407173341505168468463694413386533200357985474064203930941569639951043629352767891519492840006499351361231485635156500386388327449657367484578648699383251518479970163749932768783402133750791903577290588128450165171940799268252829474170645963938497757899183095960294443827663680409988923205460346488574162653015371076226784824056215629264005818039032328046096604572234384754259257542269351995643838872002803702404078371137733397584474335178890982464343683338812206575471469726237035774133640840752030542752775215744066473179508110513321870839515619000764510897214260375193123228945052448885368249342496542908298447049046069401265084206309960488158253435728245889788093464908735042555757369467064943518425867585888300969378494232158051651156449011339592938712499159007465159846213851818319217399721034937146237915948825526632836732645575320870497627172845601938906534673229959910035292706831813481583753600185298787645459509083733704082805826001780530632133356856507585613582194384915037364083189203458835906351384717775317219816458142728118677020278292965634725960371225371268590927089001984848121759374658411152026007863511568039220600130279015646349487334819563681597751476830962281330792622815580134214873090932815762114731694876462930167941018219921790709910008784904009638652965986702688394611216132295455335721004936425084144203729633347282020564022676811880643668534860544228793897232610566745802730988250229264391934552341785978637381366140352670306407658406827489318691665544430031457838395901292331251963755296944811170080153473447814320408023896812253991584596165027002114527058113080972191376555555417608425692628012140520784385171144444639931513604572747784779757295969988819177100100705069579716153462176959149597887972328998610590449049768919387312943345711026417064501801142538452248955164993005955849870745872903393481164052092841975623941201562883742033584336706158860423684841410338295135907777940882180504663150597884613592893439455150632137853520008880739898817590566941192613051431801680553174189383607800057570541609323249558030528107243107062783033353959529747259097152494388519081257748494517668705030795979175241569070441161178396216775242730814141145711616596715212427133054074813123458913975970813548292448097902931402673487226811628694372611787856851248493796381176823989531305528670117241633103665784643505453828874601647380761254004696462045360207633532416764376106222896486175696085085428335540769631128237855689471027337148442160405129860676241754726024983100524917265003039252642808301339459973002037456539966413265489075530144804063909564864757247911224836740843802422643253141344399333232885577784136839013769321032796684626776604316890965704887877931054687881477684245130976469459341992584721490687737716142721937499563261765999380663954550463412591585823286514894502341941788718503565103884374657878078225956055704177741586712722422103073226303234091731052341204641282747007784159757000827915600869415746702969625539096988052542724503795432901756759321965318408748381802556854870895995130364706923814414072329891671431942908871850310371993735500785635636225733671384466992609961259127138740428755865632962068665752462703155792009713318606765953992552969254902468264778618614131242890215844359095103894945406853248267459156812640697943089892380648483792939147981545111619980324065087758699794177204957955382064494442552690027960781425567702457844782064478218384109784461908565337621191416916379261061827804764658823418215240077534584686135884778587087901538800247194517555890690840446612563800395131347272576042647199706365069933839955250481208001242398982223548730664130768759996326232201219193084902349297684706299183377598765853747800429664271760263172963160018240006953416063347430876139517565721939007614790124609456290908008329476136581756073587123175148255378299237447840327093509104649823705874760383912346152929652902346446329514288558540832575563910563015209230995198287144820796643431631572096567930243322719419539406758269588558723095766963931398206657116919265726034691312668027425341304888636212745282559487950447242722139950145731483034983146496132806113996323981294650530033936549541627445494359544482102403783235965814005099287462308516372447589041971981950514481861306146120453279732910182065871687918238185626059230761618153844451995935304245274761597531323071271895213429842782738544802730007925298298714128304992723020096564172956399381503302849199325991331174368259256942622557452091879795390349174324026077670475372709735341571583748220963696424062394034989507488835797468276072112446203254711787635752447958903800339821202549394232147283016564971877830358249812343802990555477627956207085596718032007686019322374048984455625528952572142956505538226046910241907520734408977000206701805147671356708178189833224689094314183147943864472402834078395396236937823531925042478749750752985373484547007680591399890838188471886937923051123712957138801558500258994195892921867178116491957734935053472763181525900460439031533503334676712687559744437174242163569580423724124910495748109127841730754010723599087780735388477270761273449745763877213386695097520066110854854335901337357138589611082658906842672248407892966326859413211863816750673744572741023883017908458178559396225286203264243949921623599031611752470871757792666221973085372257797815974909504949059591331001958001583251658185371614058089581521650827718704699298203827617734802904969500397901151364958223959538323826290600784397937794947666478484355993344647440972834491070790146210486243770611921373028871880740514082136440474925312719324842288997922087353371953903276101759422352558904486232762073761158972946915444687011301921693032611107290996587711074365120714862939880574516473744120511836233926203107910868519289704320590348877831049847164463083901789702905675762851333236347752446565463863541303822400058044799681489103639499461934958113735452062071112159574624459207532713081147521919132037375118934289514619919514981474060994653270344984283186577378614090959600863864215287103443808822353360884748107742063975813158709919084486298401677406186920478697368110389027349309059950661737900539964305267574744709031280889928743001727996728791211113843276533064762597524966728935118323565633194887304657069825295965026703525430117897720151500131671939907975122091896931157870574490372352181256489735051591917471509901340841421873205686541809332172598570050988241331084261670626975782905187731553717233194347135966639012429779723577111647268442033394889866239092575211536198230880203772041957740527632708757467604111797122505227169223579151690444699205982699973753242889108325575916680468745965078596979635469523046786369927947531306140682758288267785170670848890866389247323592559794128418426925552129331892443502645608280678728143975577210210456276844491157925545200274814650287735905805572818114625530256214475436860919435493966217072697620524562453231386896435960514052230194558447147347085862356045535761515053528773678420107878081225831375000086169315025769159997504141270985838358211762171335791593797301061685793388712255905603155845557188716745954404699367081405538659069593971802935433543036730561696369892970601045146699731163733656519239640631428685453432330816665021549721979597135522060036496500182751656672824214947439781462588991023708747573518908935997856989346462621198005116432816909943434162077208499610843220463805659301575155321542950280645335028965811322344157812044959972652285602999802936576015372986296020516029276609228870913713029622622761526670397900139584064418872359653768140136114759702929463993194308780132834203644554164569125227020669230078185770671583431541779792534391467457547688181575828736952332504800840273383561395238977714168223850916591707658768076726230925386322103192390790927056791990812675954764814356128655457820131144870293254942407755451936075100388900533948049298186385754883731986072036392589558098840559640316243089697854150958407996856674114174389842239739530993842939959927182316882566616376620067088826120530765776024305778286183940665025485438990460314731273567453514137032609906534547427220480267110461697027275856639338355592549394704313103373237137331251088780951109980711718263071685867295258885311192000841730590536790348411713741806937556917494669012486397616735144726261497947155474946480090444509648600945349151719652894406859079290641823833483761789993341105409051660170213759737524351399680301833624227295343594183720511845308784060566777428019401826917719526694719298564121769807789450521771381415872670194621650589745325994958322617850306838973260067952667144765994161660548188873814619726844782433253166741392940483875335949649152985917773515178150471948867953013989570197898669008699602173545701550323602589099096407028525323568115587544307399017327689980648269163526074464039811320499264741565518120763558507872590632983452225103401825722490372092218572538703652272650500248828157126839643302294511901240294998722316090617273563964845630701825480554114779134793377874151505349805493310155999418792951939769926646217441428957100569654915913932361041863908086596699598777305648666964164629257757514037023817513271829840797446741770781703254518601698019932829226609878065347360272356462506014343866543232580032431331911020721038691300248119108584809490781283584897223974106051207678689730405806661753733965913491608095574471054082221992205421879442539607450169205741713916479282819530466689832076208001170692318821917867082762914758437466011454383043999981665666393222547533198730607438344633984526584489273299925445676040415539298907894247401258152185172552182098310565421717994663459824023867608257798813523784781445236718579648237340343426682624549350660280916101423931409336471298276260442095421214626432294273661259167778436351932575319657892920329031588886070386966008927426027305040001659218207051676352400964913854348317799185146389484577475360502737844434332348686589000377107142218005496601947409144599689659882597306025769394851274437784462102083611220159498831735506346254490512734493885520219122940111397411776428024002242559370922713657479078826421904711295519717848010698285949795120236401242310161115810984630302389379887520459103135629760554931946556945125847197105247438120847729994171194982592014114303557646572383422922445631564270151257802080070637759343390111786913102302102918898007083283948445209373733461604886202991435852196402116203236598750650038564012482510607561001721500756545578421615099242728524392746511554040186080431537029371244462328210168328333401572210955554722184657117801202081901520638983382549807165572057052459681833343663252589681382170800629282841966785568186036388782849620464904609705233312396511562420205315096571674708134745396278146853742265783341632141509820646280474789569467434922574436187942771590089463717713933800278487357084522243344447205750616369360333449894907973129345564591097862306231294268274399500597292366039748982539198007277771769285689916693638802063880067785294824118072742131281188809877739495018531469614402843114431873165800859067674728570612636920367475707431665953689206643091653633517027587270824013671583753645225643483645182221742588008866915237363619617857625214924498246323969348667700706487969904070607026649425657989899722444716557350413010016295954317586536844651536004265391426748475426283958327221349524252205087834075804531035346338196725999428310602814925057223492455836537500081360502587587264580367899689124538354906905168287132998840826841392028247786196334672397552201729840687843988738471991905273809469399222781432568037789121920161356528915564083579149195699054498546329282911310874216776183403343184201501310191258905544741995871617731855967004574260365498288146122051955370429317706308226186706492301338240684521758028321855226966133083553045417201440752048061589393519121104465761015057243711259909189495527161556641696727613327410934642639682076316704549479633598736070691318359167500737327635048866493743354814529980670109938422570704472399761050298717062762671268157651408488797279312751986062737228182275494600666439379880180164497089589419986529481769676245065053798355990934593267008840660723290747938929553112851702788286046611775420314532223067101624146249334425129649101247224079388239738647843245271916202137181714608141791842819712198720310108719005475958640377114742445155994747469229557561771094244896714631957498248966293770858871843218621072853474589157646540773447234770150074267086715283172315731262526905748299912155730175758437709892538368726212469321349644728893732916975548012534033588427629423827934895679424124817482205470221624591048064564089033868574316010736703267945987685541950138862174873057912009771076884407552678093453489386635546228531610532484887621365244927839958509461903278494663831955904461047410879568856728978710427573665377205139351481128001629244558650445121219563280364942231987763433244148248962448818350348410860319730812696282967972106064203636033262451224266742919953899411771684612294292522234004632686941956802035320685879064841917979961431704737410601022517412114188360187545085054535661241004537077012568914082729346277551958483804124254657941613883961017160494727130307701221744101443151788828248224996769997420764961487084645839459376225430939688578208914595927150640314576325794693803605722750967854328914054310515149408999352723761689903241635556513093863628712491114253789854227181225773031216346295221566871104178967608740438940944797010782666156249057326927063723055935123302654178806600099460302811721337804837742021869702537948385488730417603285596152036499261298302960360372680661767590763236169236234236166189179630255585383447795434791680528265282868824328903165705192642283641306374509415021094394960815648514492231245032646656960887975764673165260545061656359578190000668270878570619946863100060495528449987482152779276151231820348938634116994989248271035699019470308851812591090943426608726160959067236365709174353962042541408131244016703625537037126792802729725761947406233021897633989853162614823775497242760981905131500503457398780662079252909175450001597887100529177769742685664628501567633333600123753672865872244091848328477696734020745610623825458898515432867883183796266255067671772107468095068782071991805573104605165598236133720952037479495696044842332817762382968545865499423223146678773016747925200278743978528212730107964272494020799694599712543787627663350971584136639671989683180556533067439041699976485087155402381421762978598578390212491798341492320619033042072433399250934610826541974361978678064388279028458931876957230563364990624373327951687857423484392696990364910009390509947352841215893187980050216599704854049786613176224184342263923816184494229395089190565764066505832254760249692265058093593511042671782263360176007378236994450683331857714526679185114365160177625896539820292605575060497110360552434053499308416420868227371495389185485698782004124534999053381912963427480490095917843614637944142510264586092636163184951850692719381217761801017190483461193462979790163159859389045719818184573249132167219264933814446555647823704739054105085774357021303789480702975894289752311237354708048989178404964837581770018127299444378092472923216261900521743100989484753212419112019538587072879540455188449491368132039718319216424021567437399703793596383522717027914782147449916149201404129185515859743518523492989342358883826664337861190752630601156932621852317977737030383890201166945426886780528553815242582748095101980238458473140572220166102408336650545052194612034524015526540238772381994006449238010256906162888505759657249944717024865335990549313611518997323530273864025943932180385990888933292795778788646832017300611133401713158705915004812413654189042305459638749337713671136772820445011500646999582173544727602647412064284256055109416082237969664692171308261811706447886929109510038517980199207237650392745489534376870210847791823344732317968439409723405619799251305146996803583193994700659719626421803717182184998240257735293944256808678462936163739973428939830436950834004153602819719277166092990062953203594274076161690698059795299737039878873714583988591000052915859166652592092817774721061633669120190254766218410745560180862209715697687306863746258618437545608951868296730670635321869213419827325643262625299694677969513343280415289947008153241153918532983065561476746556625868970923666879614139981371046227787006705884471500063431071907128768951196419905903744950979389298361239415596658236085782210073712960465965997847133709074810500127163353484821946394580593431279410424363916247132900844295620833314671411638955090250349553216090836418704649921001019369954902923934092170785497958425772534093222114365175039060173283276320516491510468655218663776387436504815620732426341488629096923602483230033974359223200196426491109373174394318452810798702260532239060357437557408059229925034360659899550869809593681129822737144545424276623655319500448483303429312507679691023873650058393073185996030492143536697691746742024437094443547659395305371698935966755903685894284281807874214170594024634096638718305904405201758915792412438604269009409288685774922977421252391422804607029571248103075243548159070623966570478327696674598775829188748617358713318514237943822639681195062107968191849087776119923413589059744041814230317529310437629407767376090941616557970761987647902136614640996586813270482722908492279400227419538816224689755351745189232092581350993340147540116635836828438953149331303326710305455433036185095522984795448438297152157011599746780628760910915713166419566037864180057263950206148480224831107099577376173006227937021643827996177072534605597692384419693371885210559190607008072188307383329790527883448677289627039657844886104206433131296182960713488383136463501541787307073836234109449150045296128668762195574574335812763233642531411292524950274461197204127557949060132594134754494489778931265472834800917550561435448111319363932221133908518692575685928309672822758245752090774077046215305608295127155935943846755833640939744386459046321648388059314066507988529687507426338485641086956116316495480592588125535936479154970684317605959233937060562923627824660628115255759284904818331516072248188836521309459644251674276004201302100056219146207043170897107014803133576687261274763127617035283969970474080359728652438864480454858901869375631363815624207786794531463894464449633989920326562953070925573733410185896698310149653784010304572268249911725084663907375415038052302227621556032340210038523252578382567043361448831634075056987409809243379569467053154666685471367214130099842856586623579846706541144532048800527932178742747715297477493785698192271528517990879985718887448610042832514402304814004714121861959592840850335011280503037349489022502312991570740580898174610830136359043627582955520167439025523347585442165376280730484210604739370016003444201237587678653302126906488373444669157869285074838765331912169332999029454703082216603459107510459120034077588302354335787658082203123686539155146105126771735860263363314367562162135181850867572777306824213829936138951236252234780332322148248671904381042437714997915876426002903230806429751670964674083766197843588742776163545079596303201398869799872335078826963943253878944949584557579624748544875138352645790140313678693788209573780335937971287391589461203379477374355714223698603890922055634924697675549637361126709550615674997599111125588809974809811489908699666546349190710408145329937922925427167852561454973965628564398280101945185108457868623702479313623141971215621370972800556225831159422833515334819609885387162528442502136870059438544834339074518117184048845771743728446688196942198221089747236971133579308821075048017351607067194494869496416689647047186647364419749402100562700615205628093519961102637732471786632110321209882746732867787699179916998962767164385119832908623582045031677525862542306036145144456602626407237211715801596356900564202544956255602415386447434674913769619744970270379099418820357396823097956948099908419361685064323709030639262318803198653166276313430412383804928650128188266455862514297346435100119735662984941276438478632970676859352320184645117833356077613122678052057604946201444659218058492121381202311445017910386991079858125828868537454440612539788551927014369076899006780182854872857224258699919923215445066525210167396099515737512427143301220505637323724948117754062935692980049863118584020092172844148593474149921285894103751267223646600951534785357013644434556583930205964974542031480947298512317668293502849064148726313376497210383641786477464535685570969574580745185292237599419119278216185761042687428159766651979579002105366181506802921540620904607668283558454898048975220189858072712350449134204551544048932678354095436675549568289464475125452628446628978701482208693214367782245741867769044314993024126719356037793119228576308778439779273614060078301150534528949031856251522075264815804918810771364670048734208062490738359542866699284643125688458154584134849505522546939420777523100463646057694530357720277393582457150051822941615011868153050167571356512781120115015435126710667157612268607982930255477941820527540828714952501172615827485492956812750668808131930181693775325094741620791093730222562416705360720972636050664273725369629953754505073886725448877132168243096586314654040028439935889067948519671105127770460992075605217250567335460486717728334423431763470060812802289514677520420597137562188371627542455294392499841336910124897719282009179894331529451114215728194734455794731516493151648441003836398932108664400404919266215506454560936418393921225708988345156571462687822597695506104339812735633021887753701579548825759815319224158536003245003736788406997297074761514200268645201666670918285222788589466420440243435601628890597454116001694798777209100895044463364164771759650854935233600796245284589383016448166128797248432374594215215579504627196962114073315515548990124816194635510282095300881978371351522972324016907609255681529572454133046451090905747689859946396735502590472284638978315196488355308654214469321958193478383541638831420214725532101371175155722059577750888266392588301065789942467615122017828026657199439790579797728819805375081001020570851697357284691024364123913908799046791615027085666030038410701709450650217106090146661127856707776575433508419181798322872170331282777223798101121613396266306088717654078957893931275619639700688965258704856336170600030721038559080486077319425933264563349942176953629701168932275420605300876066015009239276586100024247117625526852327634739501596716926662065245184357108178871543236099966633114749414838001391750258957440404473675999612889406722410236249793683973698832671921139566312914744316741197834098200960446002406268849038493873845247341153458555990139478045102257277803630140504190517310316941700438198498750748720640556108723138449688782010405298750170318900209021956530325195341401888417024640645633866207492715376587514738500858926992853470696436446407913749844568225117924830500470772496520573131171467341342085091113286578903504479944894621738692786692257043056089583285122677474421163929939706000515669637498465012079235697552749962863903360108623444582918282928673366739472996733227870305379822914567014854948019581831106293921376989193141624264232862219130938600652564491236310870701177017218035123842428864059781938523486352172386162891312126539767742322263489063211543483941933478852365586578739195529735841936202184125076091202819733452794343410527876344978484399913326867981599068296867190514418203802233797225360160060667565030421860292933129444114047737939616917962687960368681650910132303625313731289834301492395837397402626886847410618255306448342003325383058734504522016093780150665724486332380278696960944064703206055836161490514424028765593070612486879828417242496257866595845542068888218070821121190656877325306519512062814230776473299728850980230209988319465916556021970364993465431433826053437758364395760158623049294792633869508788158799118125296451219536309141711104423393248295100195444847746123870006747437045230966766343357529995388379917503372117828372619593510545622644449710572999230615158114610043676703938093169442624432639484415997050786098960469672671029463277000311164829226328962379505610731128018927897288425468042268925032064089007688466624149934815701335771033280265755882241041986353450011033162840211337670420007092280885215037380491633814169546092180208455042676869192848333470562480935961049962021201824553379912188075415864380104853676397277354026879483021277588512136109984315542579690996500273079894018063357334997922536193807949817897421824292587357368417789844658772383120812509726520282824395078182341483691895478401801555834080138074817889728789778804744278264267878359468304368469926719172883082179956867288831079805982510947076172190112159732298217403495680236173764094293514025357525500715152434090297041557996286982297904981054195927961451024098021657401349046605357311495104510152416480564042455846408773407138261603250242518271794102030928669796665257556711311849490411482219498294323060194259900809408117315431999754048729252815384959336694753917091075107307506989235459094854056286272086850523778661136551578647311386797032783171143926674281624877611878480263668838936938483028766028840965044291177418993975855168424010577726364926988603265051937649307751210396176700954332947612730881487298680461204213622374673280918907803782276824180825248247777198842567973848729563844050191525829182095731238142468310467926779384845217287852364188259824688580490771589404379317364640140461743967708774210817165975248481583129027159542145255665545849413439758304248430169492148736116322916631591453725998799379881921805294345867662739262408342125032381443694703504521964550489755772940473305438738673228696842933065198652428962117006166946603629238642768270755805485079728912373000164473911486646767240828040631477766513296555160742706675110399705172778855096630610393848883171587109251653303369945323190305474760679373401538760291593136133097537160135852374778238055085853697154191113266651142482890718702925036928002540207778758092612905839293652231867547269786775021711707402787605315628143067101330661652416848212438015128769299283464507718704599681183527293162268070439265996218728600555261764421673915250064003024526444442602955824327855225107231859992717081244742781050812006233414102678428902593244282167995460095198859327598527353707001065497965994767451125094092171843265657768144520327203611328645655032520146990548368492540904661722395808291098051480410265618891774804345156852722399918360130883025692982318828846482499725463032728525485139749584836295674737915387982983503061378208783656253806877474977384002241045750407201153911359024288923348707627707577770467444347829291120955309360873538107948045845182057265752249893103063457667047400419046276799009713797932086878012496319849704264443576824318329640613996024136776687383746928265624994115627287056771968116755604453849780454122373106739736991526920860780683076200050999607104888337883664578328959089450028479852035599567497547431030681687613062313366994083907379374896716663338206812773442939474828103916581590736779886551996507237739900319545828383437043453894730413158254589638552064818296407330849560237918917811598268239684495769058155650577170762487849563973357424191143258081316905760827457703456474765349014067096205347898870988443666644446190599665155652000288775616552485091240252450487972874635084142607808557686507635169498722907203130855892704125210528098923085386083267772477053199546574385422934762936793099813584256447543159293477841065337099658402313683721592196141019743420836946259704721966935759408698663202905025941012554390709574309357786770662546352796724884382571229323592272793844655779491588282830780722728867009854602072417562017975261746944686644441946681940041948099368292957873345045451961276611771305518950183302710401712658324403446823698100251808375918038366825715882089451256927710350896901300091614050669653147645191354068894698946008273654323759197668975355147539812184986741178237074084297559105705585143471675302463446175577050404767060298876691060270820653463697176935944607316894996916874844351395724456437403249124897543101304766656720778305909559708218452985676760046663116361822269467511975742002042663437699728105001850102599310160781518418080328063352154581395031676723201083256234153970395204975757278709371490890455074236919622926929865079821009194852688610871474308624858118931679637821644929606436987050289189564384153932498034105899198801752281858919644106115317468003109756700569402389886428422530454941845042393152912131706946369006911656446316133602483536894798631223154152156426405750132121333607860990407517801529339066225927576664031119570972285948385424638991925326657210002445431395643467184392815174196849163571424253017157990342084604129873210865951558684085957778836296227724950623822935612014731745451978934550342494357692485279610276859412939883828471522776617008720582592435235414245574229831584405923050224165707340263660471871670469211851758250540601599829096727916946720073101686421428160312139879789184692217554066662983417927080670611973657242166450850730382934321639773246998616873543286355972225280521230868888509674254140969984460195414558280583095533398279962285369343362329630242925884211932633428986334495429977287795464944366641762629860138720337660091736985142519272054805257437208033805157682642562931348959651016252423868340572687779126968276368400453487225844613099440286798285018172244446818322086450481120140016905844482030131109114964787887847000751639231218451561355616368193613711260931853312116876496136044413763169328163649001196065649037197039544106934521740139099571661830112507546152929166497667082009773855000424701655330905957019782637267569606707384461150398331853512874906085581828563026971788947098184318328649361080700352096254567291047135399864007385636638246394705251834458230493549191450900434658697364152748717808271287036608685043378508819361794980037740258206844371240369218156484840308991367319607661812303788336720031926808549046967537495139584313180109458004178524397433666639337789583690475139174446365086341645504354704193092020049058162255533559837746817517125939571296609247325325600478380904187074847174812172196320858365583563032439578312183436243817186526089103080296482113353557859990472386810682085195541827074472707598147025139029350920639986624044344349678303910926718937538343250930097250656155649194716315490073922352604646904244583906353205372918559047148831458071409903451962115867905081645059522765042705925832909764441184753393827231366967515164339755655879522509108922791422399677414753430740419794206066297649829605782404032836146334680617609016133513378842201134830478850154969813985925816402812361808874932628859676639634163717285377076594185829066877091120071455803344047987142103596188908387587138166279511444654829528018084156765002881164130192513055007360993796844100586095330093553416518219049369165589821267740270427836279339002687116790995670838026266309646638653023310620642058210140650843954094427182830313355773013739411032779401010138621429289205991726135884067977804408530255912404118957767509268348966836863295787180405821615608293705190521672889931715836379715327496319783951164574823996589664270680563652523600023568203675662700059845447431463708551619726486010891569197480308085135235787402101278906389002661333223010327149503803718219392055220956720965965938938871740717383257169931958737852286713298592100249984082898824266989538328273984192032073284221117680165545359707780862322766212621966718520594669762852247840395770481209222650815840525504752603306312504746801500388140325291930285180438787037357212637177674021522414305240837106340048010046063250479858447754021829911617502486442434944334816491662414473456921335117508085806788108492034793084561507153880511608769477522338662709301681423758421550667292562726341759415094189107998542319089945566619879715449654563796368072272789099922756655698155776794819783682970930243186250303425212382465111462060935763507441948532058655375648216437260821288479721935078433513960618240363500017216370819001899366985265232319873707284789761279576985802529978587551899311012711015538361321030121969210275997244028699753919159439915848564364289837841959481069969671045922759660345129879057964673012562399086517544644575532709117433762229266589694591938598093820940735495903647046770281635804844669344179795160584474246578118557011368171376620084249721038816383934392638319075725131105661162222587095593735779470324946925657784864918790713775297974029380467414360751076526554648212784935126418466473986256138023632709855801941125045707575714776140361889448066816145776162643555045179041652128722994095278252545272128617434952995320239117814087641923538449315827315771360133937484220995864587242167011833184513747492480080410769954518776675290409486113780394950607883036539553652074815060530650675957948623205376591973213006893527946871871399772310299504143075671914799655292047008168571222212644473561895137683495668166785298802582273387790348832464787787710014552624087050956385287265638247234257460506553484837837354558666457045365101694714781656581209642284667665743863791153824624233574714399402127741697050068579151951419550204388589382773152031754811675620927953116674505402167797698713320158759551945421473504051209474346256087359841550483239955812842538098000544957727699364870012953540231462044470067910432948176729407918466150135563432352534886032596295745651997841080939090898690140016480155834746635794058746588014700850841682505838637607175356272129502825806787483787600496874067500904765763408855916470722744599941925739042464143320308737626504273136251821305835087372467851237252749575176147386371063045242067849881590746182977179451821823385787860639609338417265579075318303921874798243175576090336111579727957853012127424677008165331904605373710254712213124429330613897481094633841616833552299609396805253478035256569605767280371464076055200692030723155560903011155320908027334033062787337838203547121142301076370816736990477648302874744768557943194088392914458953401790192803366475744034895772251311160783815295947572282266806490389430212661133887468950683321792830370936866769595510305570949198876309242688024688895675013879696157382604710051168619934162969704893915504103855621790862755714706307334237976546241649735215951997292394543184195579415573456545178906991171232523194321247973911020351375313439352960297115725144177684454422327573724649654984399811240819038735556594042942218815977340955057904953095111650051617362105790242390682788424181381357349740271702802710319463752052069262803444840010438440391952219030580291134720219620029046169507187070579135963800714789172721958196508864789822662196061088155591285528812356993748037343456798962599699063260765718590959933755607070894949098320503060073215427398909649137687344831161733426669321780316139741431880773090165452451135705675037669043818023666067931658973665145041315887318639311759103486092216338422823591823259166389853048784264630736283442029892781852009410266008713416564172883092357654841423549128981192496652394869861466195670141829452960912478551720583921161220046968051326161359444663254396404798166035071150884343116548562412333567577576421853570542457290519484224524361831547205024662090842811186376583268205427600557697469536796525115504857683609432293209811100321780780474448264629035682456463384861923052597957791575400964941535427267522554942806934395736535711774709488422504625402864789772282259101970213675378795533116303878591966401175608121005839786937107950457706247314247981703512112020726819790632769857648114613749669433924082441418217798619688506725769879401246388458067285878770987964085236247383241914559168001415524971384631480542242875455770194343241999320608492536293252840088239792445454539064200515820832565864466527972702401020721793566221334893959610556689806497777266232370700990085723610925996926438838337652040761221572437811863041146608768076216554943943349006745745631263786166885142405672225317306561258736558677921290494237874232446536161760322371727910157508663483226977153894806459188217232733002490178290416620255194219060209825092862096508279605935090995074020462597693002193961323952541286288947081158163226326335172121364319960780882392996468775960289476783262817152706618171467696684459652270000140384728710398868260654511755666503333103719796860691607076299212471332852111233357955237388604226419855777869836090937738357591053204808658719627175850192751585737623930622440693597220660730633677669327355484417448468009888768771556543205635913542827135812374637783110098532526451050776235066797639155070824836022545677053174167944843441909089500182683271714836269441037790762313952229763427913053914381628883680138266467922008204550088845711695514836367540262628562979900058893211790199986510400251044868934200538662768475804577346812714599361379099885345943276581134713632858067332604710329450405291589949416207472186500267220408870975869247696884077370857464762116726652216325407175979337572107418886235199119284182697972962914898628845298364320640243183149738779025814435204101854557589516518976885645690172614144748452504509883278264740487260026044911026683638786508690409607174684787184520119562692461057440983241710439681034316928288644307092874523269921470749497995501517831294414941011726222596795846269322493623956447591144033257600807840687394802231065650206942406422511145353197350868798576378740561515831289130315702234562764006216656326243419788901934439983207994396179621682725024240642719746648458480102256787356634792593279584700449381823749284922933264286753767548854043104968209912600564596215505374730754139701412648131073358215814560942556265640390059110292957891118236789756891108215669295411994225677296180864112467038066739844923684935464653713243867200276628238016877480930135295576984249280695530158935866826564181705629719630054838828677876574475642330173933742646668621888742219656074430993683154385532401364424072863898490849358575543794710477361355839366706128656562777979069238088937021223017127157581559131669213607309381827013716227216070452702224017755797634172463281404174538479613138239669551255552393098500405051427288785187918694964659883375533198812808701920222310474549776795187943686106888112016471802384447329602358680855686854075082607116070596525800723954472867598300123142539073406820949943100603326132763014719284530792091949722428196890122845144265534683641863038189670813461775848635835324441809011554448156541449214827022999104057712713382789051408469473313970688485531533126254927085218088481679118734181765780268315803641865804581502274203434375145249314090729992946276793121297237099903740661393814224230811971444951612011819543566430980069148101688695012583041810174734175214061526334416300670348964445081635108221523335089931376486612724857618196820767261146608359640074941998962251290923755819572622415504026585948360538254781769771530218063777937232890742276943432995475940858828469506524432072828693941404272235237345778461626888314590523682609417043444945319298797849603091166013942352519803804966996377051235071768992221282881543163825798661164574921367576768208804269856448752690167242160076654447280028083398009310264377495029409632509040570672173103562916261944099567781644397124617172597441888408093751554416358001202043400409490703564014373823764898009574534704024861547837979647820724156670507900391243435493921830491274440907545724103745967990577788818235894318646965141243332437078001900235284697828965143073846309895052703211205926606068933353166829053671205475882157500903253346290323979869998123476483205285492984871735089729898143888992021883368438004136652225608365551305187822408501669877337977272103137481066653282724464284939686902130408288298246279046776470654675813049960789201644055764668726124873320641529244777108661059427530936997354951034542084832084493864043184787876408238518914304925840007302239155743839953865126380094356453897126677530385445640356572697684084284057218024663051382731577660775859481178079247805020789738295667760969003705478754793655500510135508830082054849022095483961513190508069588458514565519634309782483775754844147371568550674319758125121825793833633674663518357468667669503182828911848536647775234990545594978860008739624142455106683760740516430986382467953785496194247465033961949032046922928316342899211730313993555182113862043928119414031881339686997041582066807060773358381034604451901620208256417518062955957740369845116960474961111875195305351328583637714974861992531298946880501372503072262393076871546857180861585566777495266679220822579549119013394179295000177473957172408252749654754648960532298626299654196950648066421440070057313543412602425609883349582781399111658358519567264764709032543101405402571129168868056580090081449368718941084932355155234176534878846060563744326726751242036604152763783213390130018297404642725468881884622144850694639152711838705559062853815424239191821589071900722837313285187664732055678278116039454015174694239157596726342921561185436284101184695973382366977110643013698774636440340318181357977048439949789515239218770979922200566808450760781863956352709270408201309542505995147422727191716516506816015545095991772574219980393798252734426134111323483408534054396725657945469829527815923830043345279245423146001284273602154362769389731123435403586912726312831776992595047896438327044835434321658794829685117856638492666669713205355045961911888965066212780510829347334875097436822409876509532965353410084671722010267546919774065346689386933674403374339090551178926258873862441230794748364914860909915494528810815195752068898562068197411582924523321903924513046739740555931659687221250106064786633144552668716375901295621837959397196287366696464919044416321390605587476902463867618848407499766836383926576817793058718387260986400435736712546455259049134800068277242009080356383699521356688733659740583427943988216883986298666970359086871853874102803184095367809592380018104453540427997627153065802106366161642987339449688608229237331888250761901570828367417738977813029528736585716656081024730090280601779390509021995526887463314550495487259570816889059598561172098852413480539585557535776384803881689158275882638491689162644573952834041356716485993035100829394597132141811307532281504164979302325739712798029687246437691186534088434666809197469419897060387217520038057205421646390241627308217606456988698870881383102750621898853714080805898623235002451372925430545092392761457429979910514052418757124087099194229490019625014386931070034009983069281114975376595996965934730508755942997434490160197372706008651533583523537170197458959580975133220592554374314089529023572251475418092856533409184543535478898583684555909023086817233830120908746307781630809799364029044185789196483334935211215890305156220078227342060947002471650375833432814193081849592455072238748394966270180964299400458798175753709360451452847325545441196757428172731488056001316898563497255780936674000660399515630136813928940578840210707892506022082771146046790580862702550991721408138637378907931371093872164846196244244253019001147794000294422608256535035553586884805772227049950789671750855994343900736090465041630575818363011317134892468731383010296685027270946915995747134622346138635978489449401253962386778124234897365707439123809110983012187453831555633715733396711270801192645687810000243064118001923740897602658875338807880458299258741485435735853005892113760620919680223082515368026088175444489815437153494655806381286185279981538818830119053929617729464766908712673079891955807710508572471803969710963100804779268981703234585133498153983570388142513225829923681799598110601591511335063576330723913548109080994896096188707126600057040048357823538305626906040616108284577479188315618753482226693577626196861559771814991196183355112671232972109151488891157225471325328385926190305563249098359309083381224438060045230733218410171728763942460458098875941354908159913180431137891415753666194457534672663420075643427078539601140508806918591989696007688327366911347500666603850360417680800584807387653756312302846968939626483513032330701255770869712124738891572222028330395786407726969187368577232449611308011201954137688101049593119722737859071890790274249977443980207117090002688166659285811819428062252172539300605037916398682944191276588309045092887960697916077380596057033432535291820451402070590012533327474026859937174384473917001449365268207209083685254606539354892293352690016930294948701833846477602020649953797222810701547177869451810139491543130442121191593433017306625277933917106077615796060585968988243730466907495351986871433320096065859097276500428718864088232808169271332703755201838896190788627554629858005210726777513159333172707100957472179939943733810840643051290862703907207851946900631359547355411061563159619738651914588034510917258305553009932708768731446879761469095007846324259273117486296433160886005662730037915183705926001876067681184534128554965858771941788762411762160389900954525860738737148853786472977371876410760530193857429086064567727554458816781428846795825550437134776660774948889958671746265220757918222457148083563201015758624386910608980829362308628431064715313056583469813415724435048440817704508737477264889857739486643051480219833819918546197499370039009685284234001943360992194469359779678242747668320124576243270971484026171703708721787647211769646955793401608596724768017509492938250594696043109466968334709147132772502137947420808361678874819274124986634217062623022932835139466337950550003438191472576822592707690303869743479452698253110045374227995124427719831458001355490739918779026381226476762384112155547247132768268088912126403555792034307056641644000294056419506833715326743496785279772897891370010979301110443830426999128228724102014747970414945376286947550443473508620305054842476514074124187052618742560532479155879608055130842869932509585117631770897951301477739466616107891374709877020766000693711717379365766949428355197749549931863091633452963085822193377544098805272788675306913261407222046352516390142304636441169476297567822254387091046727463767557984904674137177573731441930832716673195172151970063994349440860876306040478612532537850432128519162757064824009961967820846214604227049660777500058396992196752990511658188926016302384033705608832784926411591282824910008422438817022394328602030165853432368396401378995379192563992547642093335046866790216915217167324261861233654121664587375745263826839928187239119397093756410191183010544976197239608494116339375584058866273490500530067654125237659876723523350279221426971944122510123235425533254527311263256327457031948572245374678473589817473533606349870950959064690200639184853429230217462869823947359498731674970600597554564618421971970494825882685121571837029402303021588896926796453869831097463949205920102391193076930357316992920481897172204991176630275534372322599335792805495570895703133016599464911766271928188206862583626659634251930335831773184620354064637231333348277675981408047688379022581255199184554774646414936012316478581308313141850244477332094822635876288876111990874830388517095166501628958405128320652305757711556230308329701185548391806950407086514092177717079054587871980307582305041248322773541016633839704275727756871120020061457851795619544598502883316870905212655472244006649697362926538289643292755995455578218462664761113438536901977688397655464606935577283008803739259424940378237647318488419933156884411969410981589301135315430128854997137719921032526875286418285930299024820634391822994802618595847527942934999861970004844646417457455008690540099918894735257670423849419484780297036943593733316662129880436177936070611225239956359447510363096975277017216956048418148578217425945786927820843081540144860403364136286777901148130297302999321267986909137797957118644579981645492278609907710902764006720693781598163802986948433583137958852003992326450113384061883648769230166206158928625853941001726224968734416883288297149976624439327044306452399179218632884371233350013843085689598601784382239404035684165666199790055569857549816218369210313116971188800678913698941524450561760253559047213636331543614507692704163778610486082937982927576126293247159419541706054019279922331480939861089981646268553079333655007037088761699088383762776560520299960279771058346276302221711207157019543617388901330693180592877309253460656264792693807801456696085336480578386314792529059640892489546382164930761145801466426258827709909249165161964054862705186105104162329459956415211398615717683099748722925132536664035170456965689064126406686450343910826737893210739582818868246444722528756420159287564301977704067554355713128218669705323413768138731735709447864923145760699981712662309664471857376428562025016232142911465475832233721403752536681201961755644939323986238843730907946680565708190572441587696332450247716099674837396974121445875282369889592629206642287261884858088808458181496207591665216128089147451250221486770134975190162706486034151870330924673104448413961398298665263817194352287709873071026268151375950413465361169539903225305682736321821858297729635156350007641187572469182857440267004280707202437988890056161882784501953784515797502266559937974223561384170788991339921279890808799717723689582891896640112610595294510371805730365180336134067248075040804962264377701683756061154447967701984065385176269872827595139385075080515061473347268021469423688176202582558379182677033909756845003768688698083768913509211395654325844064815606018834903745676230340303629894998114536859893210800070515192169495649379562465088522158095628774356469924471699737403986923302937379486204242378043357530304462038503258242779731319398788615456131529185956791790810108701089636389276024786164060238865489475452143285495494304960816502198234505281742661016238305956422775968292897016777155202350262537792705638520367024191237133573247359826158240676409749170795763751630201268591998122889922801927221959422407340323882888824672649981618299839795147662943243881917405321560920488532075842361572083000556265795203165365376084960260562700884569645712339492683128881643485017475332097782893271918209878660981193423118264879207544259785280796263032398969538420595852684550286596206980006429868106168649948589548336280100605783631122900324808239344040501723546569142006793897102220284687769016729310360437597616481073430442515081609921842935002239525506950554626712403480044441706274930923542961524054559056055355721307827111686089774329201395406130620163496964221683999125500084843380951621862662329696218378423191155689838727380305336729422552536812179687128895074185936180096607542526525616663189382792168084929436941330192439987558606055275329948728224162838510292120497875851300696470863986109660396744524870826707448885542823305604348490151663392927173344851709878247785160622128711368590869577263625862774200795582325793829263291617257208993368575374263043380924728261462470960843461308643895399652657694139996294877665787218224683621703833078573864646695128210718105711436814504144956133817655909692670322709292850043025083221796918915675476446465833375641331953659294447444638203705642379336057615002666634160686158121772054586043854241697876375829532906379188943237215146079943416321429253679474741860143023909455482289345796679200512642196854985542318328760591763142392917500948043939707174663217991761245600543027625914185823264631719317607024046983583510266798646074925082281018430787820432316195621102462373700688069110975047424563544958408680359688357417803151719597244727825431911554025028111256186017429538068578722790900310478401553693299205952590133810873887865224676925522784671223951714001051581956900388952394578559951956741069090566319586353808248795923937881181599750600325914354973016297900350458207204457020356998334980834460231798590779377635776135123327852766277216858880019840147581246752742456865857303050361497102084880919805457035245426733376311020445117086142361588203421598548560095302667809693573090282194706128170908602628174274135562911355397583463296865592505632032560597504436103794234206368431225218825266740918554216528201567459009555446664004959150377590226227083228178136900325041855979225759627238084921198276100751364357296986848438201867507294377295198793523103015606612484001123271508448655344028168704499219166076214478535773851174827237044549090573825191890605690394233794080252660598644683976363839456165211267498362092501822360572279022354066108289483552999558252793138866814151471185272204026675019366901248458058505209554756712887608886130789849898182629999374189549389839633683974434399944505149951560848689305528817696620214686959387502481034026697643408530588608455118268611033773805449381067047194477351857216118509757554327293836848261033550874230539789053363808232428356265057872807025457781325443972450354378635846164318827502762799622747001074217824190625096823485313555887625182844278805070228875175018528689363459205221276237058478489187089417948046619562528389783253289353052897465271762679243263658140301764029493347644183107936175324395910590086233544440314281665835135550031965889691483058358604430928569945030008109647417517375355863021452634186083504299750786061170891391038114263780130587364256393509428375615896747724254145692153756204106882315300059220717183092456792836328848129108167102274473225001328218592647930375046765540155549334317051777514007069609636175820712102201451819377581818900264670383584013485969378657557365540999916713358641981925288578237793938279627374028773301251756139257902284114094174441776398537099366859855933619724402441113444062861746977900554258076998207420393084151722902028673515152112748987134566191944253537491127856346568414173623583406168730005150145683455812883002164738655750688994999952452161034960173859689758049819506418449763358721015613124823921535542706237494520379901072292198153017433652750507508091928768426930003386898011226749281414096010502488774731823574298158903950045680067199534353566234630745461098456226783245548839560060834106494868782155740046772476153680971157594904295334174689277425922706829056530840226126491772460402372462948901094096108588596957691751832640720164875019241123640048528560838097157245559522505165303383501676528038344065917796961051137513810149927264114499241740530937190136838730405625510436175684320833238836786578985038634986575484498882316970073578693449842611641343095500796317946332856886907039817048591554332182076613356349484011594089714939244010343217247343404819178007592764074767446977559081196333671916014968898142620357310854806145442729109951559752942971855846110524825350323150335830510245746610910911164076917904962971490487217038977772579951080205679503499154554186246712286590507083422207739365690688996640232660034317279292639816413305154100523794424669154180776958132652141190619558735622623494849664221384137998089678418549370131957149667469946819733694579075239468673874006563671538020434212675346034523613322503539805490192888304629103356388459062471117978895364209277358796497941985312895750014509641905676798962354531859743757273104446157716625077679298119761697006786478867562856846284168136697871881977764332764653169881355489093838596857695448998511559356446141088904422525493069743314672126486583826263026345872749470023881753134400559559139945438700673013866712175622860260489274640066636727807519893165328689000707568470108199182940710426007839953459406326678518580930647022743653152900343696558909154390156407733739617368195747024943291508774981551951038280340372460171606776224207212353950972269575265384715059633185896568899902578930615287497701406851541187968365201144697466928809988804563949362662379129313055328647579867679316828500635622633334296382983387395853731749264347466050593929401362841319809030933561666418233293101646605302557578802700689218609644965787899472643400471928080216216329806243244534621509808853077394121145712008168722902666234764571917013171297444119874120000811285984122661049051094085927317657226001184135353119645899856119705807456942688341771886055029525796347808969219613368236808326975066828383695467601074305353481143428069792726062555791678143537691027628831246998986924312919425664394010532109500812253365595834276477870652501632879621445827211257684080540586099584074199176238678568958169451304100608100062468755224088129531014748994829670785768373471433510794405023004151884351711832519328389000798006029153096680030945891148679863278913630122098605249798066892208563157106842594506504869544758852769705714463477992164371983086797931522554264380995440923988306134443676728500697935324783922591696698266454446803657203935381302949417506453201561427154680855825947936470070801381629295902264659580410176346749755219065188065651632707131789506677891198939730548083174170607088335047758435647412916641298207172524614586545804270627229548080657173341498639358918412504003246442551597390491021652928327951855266015297716743546020152050798311161027898466701554900099109677266689748257222974422231338440069219944421409854379361392267819977780806349674931965041439957288073930086720407480480870146348397640241848872556957789555743500205823574392304913411543533875115378392538914554294818965224813788235040995149394672885066139941951016908410009479686268338028791945310717761686440143371162227214568827645250363428705786514410708656223110362391018629981494512479748218244275685503807788095212395455481150752673054361709316324554917087970710114502984490660116156971871476550060252751677099216302748522105518579277146812544757103243508795309348147477040373772254157014477385049194111968183943285187844947906182579865275327261075141217896700041067763250956262575451206915912217202003717727003088581260458264341066201991319989147299224022947723945406737679245478277179788777396194927959945045502846683764321482434939663126061549486975413984956920678975888560390824154916187919185593338153538626901702682662498403858390073659726943033077828439439203332358140686668855468301459088683853928049860782813462532253843356289483264833864425105886341872799655831482231323812933551298713699909228831911646283109491663710402530394289292571750700030917466374035714438418434379511852410014244349980241403191085293267924422508918927823376648197597540511567463557443907022522229117434190882625208525502147188953784029102429640457758993610227720018835794807889311300965221046530516159552116210684501347857464475933819315773702102386570616903779014123091218153093219756059115285458330623041469246952932599786677385372812798624421973703152076537111249344460448997244635027403959992614272332219451126139070377139540332307155228592176632272264316591381230064624722878526241452282523303133439133763359064015915687512302968500852020783533874388628488381585939457778826633201975036510212827673077603260786069928103991001441365902370106288059413933401782959633008319276927772353222822275571019296434359395725965337181019003878858331810924805486793104720914348472754147012754207723892619673237315989588949145165992450218840701845658290385418206117658332160915465155472629059373839380342834213347118425900987533062737696220761354143671337797163427709751803412356657624200629949028860621516373288372902802737461328779836735933783385203732600244496565421335929762754327175802272093783467028678938358566226798509695048222797957458293785019370210203965515278680963486078249728030743775395813216655467489638379703075307327625143452696427408978569563047344592980356256393363551090713086663926888511816937852965969115427895953204164277132730960483362455560244236929131584981842917647681933442690359806320989999573458075805123870327743085812149664569607288657856787725701793406431407309696108772921910937178972808584992852385707843574356795517364795043216295006208572670259427181891995143693235721552211659769510590906904257999362840212967856221724720633720588060428461828767952361687422892147580626279478221535886812857971095735404229479477999141705166042238689157420617976676217800633256700730339184176732789261353217635568340097633893399533583100769235310284246726996981412199263779449196010267313458315925733648069951895669879304972187969784061958351983764258246592896499349910345907474881075547680261619545805649866306497893291960391525482054084450132515565125047603525908613195063494323968135687481377300476168448341678293009864611906940602985586781218229786557924807182771242429555256142583223437505609857239851517266704033173432217223055179310779555381899402017380010760848802891989915637816628236820805881956198795031728729565414168034985115663774598989416739391827793110721112818480980652478376551848955456290623549931521966466780224587251594327935938066333186315192432423107308930341283058914318047236448165165728842406135783679391003079110623066955472472482746392524264196296339977504861530519728921167203453147879522896873910888061900482290382052663439882646228518358455446986209944914450421887616109813660466551323479193423150497761889033482958131475191718602250189794877191502749204027706575275070307048493758233674921621750922327858629920759233555693984662015533441463678110542846449132604133595036187799807209916396738536213173359720669211960707977613586374010711645710902462043387929452157017582206232107632004161158770080887609865328455120792642041118530168253957085612434152186354814878863708231549807511190726462409526520354820523571218533267074270049342801651792866768151720561873501605510821222170974793805712039745177787967581710478913083402429899857475772817553883371019779122797760757291786297162266886210486264538680842169912777203742085502375709229424483727307845029460582277573023895030214926395413686787551038841142408687083879889541443372920255528297534937360930103414925825999719651422903601122865445206552635845289870719575713103988624162154898538291582560491529969914759135172124566404693125599440681814523707600976208824783582421944916058783289008794330547612773960769700435519111820194675962046952477040413466757342118849142847297831543093732858987660225218079064197993319876245909016344133331106988914122590065172442913443710408490220008508979032309665617007319963312982938628276894499381499447138694174748655143658805660164537015790597652753742735138285857927534689408284938337540233397088578585959935869151209168828051025301156982245303604040416382097398557877734314351042989424982593395771533150478563846753062154336972003705335027294851612848535469513293752810796891291454398604874195975700934007507953762218137224043702955195544711324521619664242196908243305629066985491536727329076023004832962560881043963114164379965561892393743305246630159395066268918738294534834544277225011825032966663584828590071904416755203356907496381238498766376648587881334673173641846243123287959315418014338313552791891904773148290391192574380560049514333459416746051692147062688588370998135204284571158089688565091290478378351051241813296026383530751485426617749144832607470609379888502792756866113808971849747998679250000836720466916078523521076512486596356634369692339753543992480983845542167614259119661728705265235061591725151786446007255180519260637500367612261547542900166192358998835503024468204970451956831569323302841978961292892720791076356426928137903251892989524847426312001394447259616462613707717224978247069184529923846914942599008465818131468122053737594617151253834453329321620987091613563283783029285463888014927277387985415372556480451237405456020808309196465660584716610660252857120938252109154759188004017087749248660630073374941469445664264954443845264210703672820991610199938629771477590248546166744778425813568323455170036672031245744169660685855365284180710325401790019706252775349744885148694653218797035994107548290301476878711336646917938068724822014064542099888663855407610160090040964918855613103493482180315020843529539112636296806160621074645180424463525233293855234456048619469785135364478623768132043708540610926340034081469586414629063953396142730881162420911791792253997647951012512169413025747660136241776096302478858336249408164196323389389284106043210460570950775288363520752858432242904486397560754198258728191261956772168039586646986236916112856125640157730601164370911022536273429565979204007219453957109676758956310468369785925450124273319530689871803552823516493486398850028625143001803027244375544272359917216200050799840173187673625557181580815204193015571047882192529957569252633636142684003825635077803840647646194654416252258357710160461418163300836168861767364977094168758389756586417396254408040936766265386939736703985631992904925784701424588187352219068565008642094581787340284136866548199027632877160077395636802609147927398681773147404231243084687633407034126206308297865772833379134781190101299447870491676776830004874981266671100677165333212224340298181505233631396530885338891701555683900891314387697695259505427546656842170043471621446240717695409639118596363732132780873272515002139070960121210978269791994448014260320391977005142365254683877189937020735240841700368909636320691327716732927528692887363159760582124528698652819195148364799667943954656666101922023181135894864125821685801758642073518929659428977068832239256771713427486764801149878401959368691329102948363681309075570828299345673934128925095960810668906694096886800719682111108593997998210383584649178804249014174154479591536534007828028586326561709575617107907430450594027848999940972200596395437184438081563945129320017485401759471684783768619588008575080298653853852416049611573434203018723362542668286771469259835812774025349605386117408724354808909518678782962187148288575349910183297402544617411969790497471324391563081047074515906935893302716883890584860583064450431171416822115155375181238343368833965156355950009966816011585622712017383147247444643221551309907972785757025296637762730189189868397216865521037304468010530394239186967583195297217030509290527615864965462873755237872680310210023181970367298120246663086207214959453429262095227485000200846233439534200568271340665257609189097083230797265052650970117308791105053237346474964981494991074710288634829840024352685481994657990557920926169321287586508673578985062794925848134721730675429031883767598391843778374534629478117918014974266565068455091012135309841871671611953526559336090493346320874272057658075482205715119049605659037994055164514515005309063777547506148326069039407774120972002470050568239527924144071816074664491303575619964081840358241038686136478783788133387223851991799214158872190012799458757772415985135742103967518122526172890822861655774907745696798550040522071948304086944951526641732219992924860875751099829349689315073569518463669872197328286392268376657912159664186276515868555163969002173423050136698142052973563464194591277927879322672138201527679623345046400809646985167550711581599537963302319744128377773184119607353833559332858901675378028426954871432085344002766466809277905021124750353421795633159307116403161018371515708664601679273895068785466215546082114014464626698898852700961242646846950216110890611322947746634577706128548707193236543705032777270744605599115969559192678789700793046158055213081652939168940671842607220430585543971664446733988959544907007615062615818270732807814687202963059150176754547642862706491972036829784569789299429932469914389581020686417076907858584356571748196584216513886614870084407826147375561711459827983620964033456148130289321343851912224566041182075780590943154749704533525971138748304036266346246927734175837124878983752987484761760562386082294787944783687564420471432371766176624001248872704229122384395148754604197920869217708929216153886438872642017620344445414032261300882968262829866298577026034430632787872302565805161948882033400570322819922314878608316101835481783382586314964633526799720360311194502431609485913902864524526085820431645621900384645982980183911404823216100994125278972242413769704237367152068144302262393716626359415953721358010582886844159136411904954222511209222543316576518503953062883909941605093805208556626849563833960219387752866243462233886622930073621257694881390415454350206706451296628770845036736507828215452899458532877052891870131579879836274737285303679487434283758834512450306990568057409692864272472163244442765007622965342167331144166814315305478433793684653380094635557489754308448878665139952207337139077014266150834096622313858966225059452555071483925505219018511141480010879462725109079233818505405128973055060765257681470639998883337478231428665088930088440020718055443392406205413109227774183217719020326005644579265055579692202757022260356206041003962026126586777183303740232295208342447347349948044513152819311344599363168306493637329125663028274600970888317732038720131193815316991849174608175169358784492242646424553860643443446393079841207047840345179417958546586630309921375405054403182596374826516627937310505830964270536866404623350343275790574605225124549455706901018769010754581023365279986259418650053414274568123159966646479755794804246827585334189452207202489135649399524383588993270916999366073894497057983269605682949858233723840265129954108156984264472851459011715060158542783870079741533187017565509012789156672473882163074317471439297386178821008790028015659809985117758987249286046934636003808588655584252772747028246459248455936016240882285536438555337508477995821919135128058542337235792738318806352677072306210350086828914814307788237596966534909080468928671814194994256782951188540980009780936616056967348179376230441962078055174410552892066410578593040434383627052170419859340373412698356579713788573246791473459098141399933197647360325960188806303730920257414089645759026265425277907630568509317921604071297404453143347300606477749960156928678751579595922094149933732802274218200569336168455720602545925125068949244662895765775878389148846220121367481802515285046679603999599799068637971968411389482937183584594520676409060091318618820961049386285086049306410800564797822744988689470046826403796686864514675033220180142234445615008629227164818623151657495030920118701025210452182038431916826272509228956199229948194147810304067440696206459132390794118732065755410320536481694985726204482178908763044299407016048811435926776826283206054535749783322117768521204920881864403625660015790703458814712339341157557820266541883231155464879842908128352603142419776758851042438476198230810636789852102070886398495237026087164926516171590864675023470771922957914049959608841299406467426181455498190743794989492260191877478614233246129161641366710692636758261493919898894191526794967270561741742739511885706151070101731014927138731859312707258877821387536029046374838416629220172560431247886679466398890928838228571713944440885131053735147051261116094129213426125399940964186200030202730981281906595181286103653682180717001203522137085682390915751187312999214612789961602603486818206605852111679720803010823299686983206441613366569941550610053514077226098604396141285818765742542055710520516012688900641233583123414444797336691610727068632291859295756850067569570396185377053358702667774763785165661536967812354804053905630778440645028020684405974018376829657427329757749346447592468744586972117200458064713673814067431158395964474142260952144820992312606724447408260858111617678885827331854619253632830773840474538589004716217652796557419112012558917361572415887999190971790462353719078444549372081949006013303125686962400453086190542991178477010582863222370269023008188032960651545421305274531371694579441599108476333150680633707497956309078886051265437144905991611449418526369073659195007014025238512781540120097116189839698156290295424170459959472293764145576645281503606154415548592349933003007950607167088691553359837727065987887728048133566126083466238498809522228457329430329862471451196846942378780536564604877347395604798408072619638457187726424902985429344584146719422380565858931527807034993559116217430106229710407876304489458249132632468897146081770112122662732393197069463578319876948884013184719060753600753879936908771912719780386089566145733732556879284107444660094093093293166174708367091495958400084766897069979516431618029620236873321878092276862765099315237746776736753985536287123324915688403428322464436797880133391543281458135334271735813577230772203892037254214351685478835462289579262729157958632254979425272067763756884207855703169849439481380586423022877238027220189251172749939658900819277189958724449324597754136169067282579100965436184716496367540137428184134911077705219791928455547211325150313497876090109182984546942200434813421810410423647389322705155880027098705847953226959426511418446072344508144755468279449182732514288407845107666228351915415265612072072356281983532631119947052476232758162237835812866166956377218339697499742614785664487929198836654975324516015740951290427430113942382597743356671705265245663623868897750420380238806640295249549689682263862263898347510046850755286178993507328629185143308801570504576779130875899014695944145067488734835987851942886307618361258309947403505630763095930966466038423089108097697906321613600482317608861725253186618957573997688570091596314262069067611045998930430224988789636990931459572039144230873148160215219692516570957917579017314566750386092969997293820111798517045101093009963105490471407260718975402355516563813550976959220827356700533395755086981534155094838859338522283971221111314736591499221634609061334272694455016243777671326934225305968690073769047101545917020855309052012412265944475156448491165349270394778139025915284492279608867728632366777132538671808532423231397038194859245351556439928579385882184042554460761454995076686616981500086476332834019362605002930875301426324565607990555851942293749469181647982861436084754979588209884269541339971846579753684211376422435997469324201886958020626272292323328268797671580901384108464219668133596687857186984769072070317240737768758359967825955071700323417692992415316873056397798022117708508969302026074388549665054055546616337287056304787515723543883013098904863960575273928680675598484810860469425822227186929889077808287438837624332494116637989303586271254719019542778272853273291835747642361311329169375787526250273419084607528947163625122919805657213768739588108014898666047161368444550868733288585787954058738673462084398183912558181501166012541597448975980399505654368248090918562587025682735588853454103017439116751120093094860951240042326792175194801490182291147336411049950203982861489946437393333599361295159992153879767984639136415695809080140496237635224459210273108846513988939017672744265653908568268142041150234074163755948350992627336453934188835822836215762539723848493796892268187856243553514235339556842252330644531049524049543426875410609612519378753802438046707487116121734889064762009241574413010978324014705713938785812218411379487803498425241543628542063056183529242436223684236646483256762039211075228018105927130653258493481053041866485669180799484612286473303070804788212588991768578139468359089080219815622931168828747514062348051752253401028636929428137458512547755659965800590866044172301087122876022081693535934952038363475174667525305101427057854928196882333483030985419175892573455562600627945403907260846821518318792616051280279936674079162388535846171204440577442833495275091037351987243805362930321398273879699643662375375883970485110345094899456644231479958202446388843653968211505325708233710096618731460944613953236317553460664396280955582844342759063558419225448039412112906612415607348717896127410931841691649134476564500180308012851375741916800929884876631012778875831510989540862880907122601092181014983734714744262872862731719716064994174619747340770268441696375398075221623197391244744731143362566241128680170741041029063645562566677829020551028760168927920578856928669990520046673297412274310659531224730925104471404613964600950342611385648289051590553981951521599891225814504842547340716573280546273269385844778649067881968149511233578848862155622016586438308796241216200799661401747401325570100539761655252836021069220787014540126749362996839239927150746186469877101121037234711897297050661258627438860782902184168272604324568117481190935210512057363901876923838706284236466871032039587702733468626916262050603129139459371698506796571077679187744764100437982781638530574305205552114341548646043252279456906596178178853108456740245444335619300014797184611337150531243576514736583618164290907184213677392093345418591196587790553584568126972870029485230060738558073780535165074051650519306325042882793557938121461866723042028551673822971030283501276395509467161675204135451812865232039390661703515310327067463498487394771199300908595848634803021128775861750579722810297127448849167972429228009388633256918492072433385461449881619884429641972034252641080926193459570247712689984662698024828626766824909497138088463208795771660950961252905478963263882629612548463052460931337554177135952459307969424182581654865438624637253425078095946645509996468769195954947951480464727151046189709095870727150806968564763441277557755644045421051135726956653772760053268720045913999580944495443577077786391153015728985844632039617895496754914287685583976893493592321096742368138241765815336637928123686934620357141236019426438221323060824223271720698204976698232121202362636147007561678413458751065564732098662040118350268876177365576766156491347605865060501240852718470489642387300168218517292158060744388877172581113488931674198258112782028206581121485907792062103903437855074562231710200487379408875851548813815769039945169131335761326363466168425859150826202838450562398165539691630197495657527702422278934189570644346205015003233121008786502652605841592090241967971888398127823286267042394581488677828055828148711732489586576655535157414256181192858561962414826172307718653058508127153104608460777945564764397894576358325140738474624711643989026272148409287943475608032427432091560073574180946948174912194652244923026694038000239031402515513117025625224288750309950404315972805896303207344903204342834494399093675367950488465246511890851637400991876962922801818923950803927888747618381608192347708965263587322390983644481856299987714396947348176889578160538935390197390527848559195364794954302299849581734605748212183681867259518342559056580677121370245715497420556371318673250151588781806424185194902052481053188965005256646202990088406866126279997900566280737117071301809104520888325225758068371311335427316852628223341841348194000604035234881693357003229218888000370114763243080302525974355475183648877160583177754287476776309315540265129016703912221590445234353027404903691631375531437381213642484052021009323227151683875350278530708988393919572494080729474918005324530936028915104857365322425388271471828604161851580711192387880892895478821986917537781712954756766386620116187572077949954182382566536802043046367889347802514282452991052255718669757802984308617210780656276927639746073979122523887689534371373875908551096659136571057667504330459556247758852599563434607909743023347460263928085131488215824838349507358912165352423055456492850363400089675789960624368889398392818837775331359262700683698185344224320099909799549195641691300601985799943735743182638092965680783922343640063338237077870402163153668233920384841447955997919952430514260035435946581898085832331354666529385933686500587686761223256533264246788479633960947034094844303754729468439210631349708711005495636421238153380563070878403968478421053783396287911058634974738583400521885351800552715554153731443319118430784850640745044514760097755283929123588611636844990289333391269408832717637410212427579884475806615315623210135674196948193571980256183438052451683910257458928858209041699053433195415112860943305031590589072275211644586911055311066409125566275641790434595494431356083902363646344190044356245006379037148051221527990362013312443156176066191102156444408408060845328076889960304621750626909544579109092118684645625735479750081759426288757913745469956204864878397952398890791206286412888810435457321772781426910081942317606746220033136145323059200352225951447759711545581122602222836915593099435573165360103664117381236990667723647841227913227681503666467095420010363169584209312714406547999175515503385687423345659414670686196366312160996345114793912722014553295229862975728458706984993654796163630249061223098479130741665658626005132485005320083790410464083893845242869011621026159368358013835712358338115743973952764093161357831051748999347510580064344651972212881833503240453370899825332232750732130998505160453893080877872666706933429312496753895612239527655703307566984982232123963482628148874613831241648236710790352560394285807321986848874327010086160779140761331497372453694708638116198894042437643539590472161998822177971744081000312259580510950925566719267794870477040141233999544906086818680102714167834122089787033392858774713994702718084329193544552685107820764893966733862521339835363532045913727584157147166619845602910438611359181322005491701405174801800116321366675042000526044527135921122735038119579869568893028169019533027258551182304199798048261070684411067453175094149356514303097737930589334680315892795407883127959229174689644614420404286689465575101438064762744629832920238881304088922036504274206717094583493123745506654599806376430082739838911446014590456327811468813663024000401343927833534355536484827718787968220345238767817236797714939289388061526573423119476865059632926095505564562396620253276887613833691326056887118591122187380114074435794516240951235704758304705753596671318562273246899478404742226873718305159831254610480002973895625204640415884547078049745525086703745537623508705777679735177161181222493771895210858235849673113840959382096748708537434822971327341811144278516446673500956560819084777276465395275923305081284820434345446418388780273995601620943486969042758319461773727580630026634018909620570258731072127603812177786196509616420728433254555085839239237565842495481581606241552682204563096107874816423835600158893238143259400382207905410983005009803444024311407614738456133408926657299570875589974552981453540897404744162005860795278980110394157971957921971170504228695407989345526773454334886426618257641704101465881225386803112045665339852837219864650011256268478136930390055323587680484153368717030411911905032060657512186165137906072239063986221113536178816918901805104318963576682823249421301020759444833790217538956121153013752367717631142643500096317279500407610019771136806028669752612182338832314301101808665929305499140450802057322920712631056418476837298798480409890929254397238992834068969101328357482060335578533763737410431426569315286342512544313279489307282937953924427553305464766125559149716575265198584138944082721226324999098341610863088958905963717010125174106832714197352783417859510887068234322900370674170865179180966349636849757290805146955912778210359458723679377328123806368753665274349340559960229154488000388228575367559300691870866591603908634660244879498560909761279395237442615561667955058990791901815921186933171696113034160178253151685458303194058796695186179467281967517237926922475904214809556810827054185470099407659417319604020708444355716763012846175727140286142531579941135932275443202969991732699219801551979318518607665578870115326174740441252608037143667046629301301875321398146366109016470553115604086517190193981616636955435862600181730568054903208329318654927905871654559839096628151076725380531648553327056160702827590374402866010630303030552278242905865013975288901931861887683217266250515066520924690943460098539523863874523606751909190041511928636126037960021356606525440864698853444878463572973565260624468515297802004106662467289777489291836575405102407307999751939988156064676235161605299732785934238222254087208305087217898336108803778989750372651195805637426147004427424670886636072608497826619750292913149715230869842768876856292516035355410990010074972673728698170826804219856405945066556460804943699631483385667438885612766995711075755426108501363496314705046291908526629692888523320903117637269761582112170031936895829187074610905837563540955423715783780703476234800556718119364997150085787324327751391962422040294975707884753444205727690417181415153182529507746999619340507981706616529929338678767272384215449401427697805802580711676185609160221400778649737612623821822134359399162839662529524993354612363083325780076286152918142001463476118039380509488536244458940226255720179885911450726265258235662242960817738637005232061075900918218413811369309391435311771718873175207074499324256303563263082136813287476513102078324619104005354768449953945596595492986260890680723796303022209668609264298733496129557452897471296358284475109100685709892310123376886226059453711807876671215935641164322163343519117510803060560122270008848362400338625039228471389866937568246772117175818534529984592851913946642636421853578333854503134341421643689604501117794482373539357346669370479592249186074796618345322914263683827282437038695064642908018427634167711472261762094077083639263064129366509677615709896796472952834073197928213295268044865953781079804981916142880576412654195489483914977180210741525170707312065385132739368431068633537557649688876753691119683674238705328529284898489486565274668600163591378972369690821051287807004956240194101833175991362904042964873880432829805066067274032425878937965420028188169281889071101513059579427444411042053944877668323853983994377727722988842925160735968573887185858031127122034028708897748339347603039864110654975007434896942468689597936045474604505777979703612746262098263511898753824039544688547184120174801947418863369928529579938806666956141616498209653343110978595794067535360767521756240771281210335053476058246393746516172831343314432053932976898153113545258836545257890207219252197538521731555079668229752739918496098128369179730131993668708753736074866611254198925647599979739989440239837529655893350124010621179586556573877308012787654810546255296219792257137669251293009056145868208922468888280991668764054276651710162313202370875418088217795582054838345287985048016363454225051981202869025415470498707615465910769069178379717037222592579003431779780866959351623771232430434251952852165317706806525825584498393213400043012008278340114804345383004843019940968920551430667663735007588828186225565046158829306549951939574623959770092981158792255705229320677572336158527663794827684226802932477080453339522917253759369996617284427371024658018315115811630333625305502847307003631761012163124610134168376088787325599325328596935922718610166829102925491384696993742905622875157143693720393691043390187357506908348229909604969490824623493929675778239671991483496888222902149683077994731771902170247755540043662547969093822549369059043038135171751731253889229689590925996539670167500254706898148274828586391725100519786595083302192884683784798044749931765479700810393632339061564562417974410695568096046505341267208479124356926826471419640352887042111057360328457712140861575831492094908630281147193842668469173909523049759755599526423143274310724141110063853119937065848581611005587090774062644158295873507181228344103233637503452148001599282385498910026739581867450577543204436554815388877078673675100541183294303780876057092480937987882242172224711591330038721526420545424571008423716842406525537361436587439240286087014106711556075989648386180996523644769921463793011576490511051384730170004865738369117961290666678412733804782912542714379953574032784621021547183016517415252336871163862975038668680157705621645723982267341447991745490195465952970854539964020054160378442439210336127222908844980539292312744293260783078678436514954761948957856442413161413671093084752726659730791949580104051714598152330753180878053270535621523026815396907225246976542125826638776172508509181869078528593024198605130028944669187335457680904181144519787703360602152132713035091371260739098974352432864409319849762304381370459588122618676324681303860430933927003207706800682291944221521474806287098254878107795454171804445222133481609433766152262165589567565835116785023224930276615330047947521219000140269601321722545674646611984845403848336931334685511970359643786002717395740451795627329954361227436609578828977877677498468636558267294361878155763966203586942162339966868590365677484844299065320796152813305000748645673795852096070859054922340310318762735488092918907231687342322367972905703168660930841866622889129778600067812254237556930127511789147390370852496428574961931284425556864804274979677952883537425637198870387873962369941862749010084069117065755679082742566779073079368022625981583921346404865910420514450978844830421896729115626201607667185381089976487056001964854042853994707977337129399773979463811755097019354808013640658353368413316327104921983532688858171698891587242276232989520870801486752553603221608627090003409716336583007031063236781449231390900261694387229405278491198864191983925327374032635694605995864068768574427501447025589832601826347464475512370468119102454862795292421996050025548103685186015093666540297997854645283936308369658194827651880748228236189881478574851690730249527375595705390523780241330781831693080371109926301230156270667413356219882408885783748666784657053593101889562122587900476847404057305789247879102258765247448315498471474087716754327030904048881898281760055771202288419054978564739475075422478989040802575455715013084415093874036128621975339196384568252971356806948546316724014615650152407888607792761902757571839556204466535819046570132858755070816355486887309457095133514729327388762234637129977564487510727511405794893375045018532001375572779114774812557922130982697726310070086720314170170441677858063534847468429976637758027358544559742830982624380625381028095923509664736758959184715476907902227914050283789488412808398484688569299293903713426374874120959945020132454353523847428200850780417807218928990489498389850452577190679093730061173216366165759476473227138856921847582265109645922603584210286820643122409800430761154672950971507349708356655166468251983252104259430881501546442650607719055581827638760789352052810526815673100984709668303383072572150573403196332319172702125197043197248710337305347912645609499420148523450475275109816287688216163945439387393416864850629210358812708191715491500742803426464843572459938973656775041912327246463579530017565955674790964202802308188795594401825149084996407528479325870464968307467446034708512398195652771312911854831508700608783201267334788093446688978292077770024884696056393810589978174946229808567042827234631687311823017711995045863534493277004178373188869141093377217368118545224066588949249677015607419651405326988675907894273214585455144930250706543615432323005171853806343718749233309435690275160007934102471501767184209868049367613741227324579046089546758792802277507470172324485744205883034973096553862951991500126088632520879501799069287573015885537581394463228725754334423579018884867588137101912385027208825117682289342905027233697112102006861879524796348798631973843539221767432159705687480729979210140155237545651202087849890738762666931856662668371020279610425599914738456542162687450310859724271921234778769542662742555046123536770974254723597260412028188736336065620661066523842948091536393530283900280597352853976341664253488189850184794606689010137914918388289601107889207679879403847171592366017891816613595833391143481838980738976033844337691914127284396024025907453971570358510230777186639147007622147470045804127059990103705263928991496782857463684285962496647016462883384702869452402026631497592975617073958080773013967044021941156335553513368846678881490218222686289049941316431962295817057417514199631840313113567923034461891595804562861215731420850387605956452895360770959471778003451074018306393116737775332343006192775032052513563525190006527164062232422255946794541670891282433502209466830403007387711966592199155470238224205452589974062090140194746212606130937845941118239724015542196586520991457234231375123467862053915366801184425560153926529865765903615587299401760424869325390358451521856459033772848639972759646299823041649516028995767571745834089035379686103175450014466358585650293910200468178752201315281761469341032577891208169476847562115527132545838335164852114424103277952063571592264475130767031468346130451741215181100536346880976259906963085112183040428682030228686476389499930315863506919199766676654174246926366282317775553637988841248221296932783859544830802018761244050582704818532266650424392477909789097562431017533801637470909299215966779087499783680286219640672124722102213224584422380460863688289410486327784295631843515315686060293351068019568792410973461937243213726175934747948899279207954726783556536588923371916225654357227787930901334141539065673453118919299840912986689661657003977213879142342834990349182649221837668997064985820613869701640993942238417130731084849494505236896549454176435747411051996966556524644959855986696844323770029568053514048044530617616404876260747151873717522512094872433777564370196352427366780545306065905992741596128998999984136560788320973152084765598348503009742423849949005470147104624482426716790134844634184495086028690597058529145380899739062145013156707525446233129618936503099955792822890335204818015718333053591800783838855835658513847063669252676948689152679103144335836121811324671630541451364763034564961972002245061803748763302381310107625576481672706647130555917338378014448677897242630564617347596818222533333541126616372646431244585805582940717440887625246778267423000480061491998843216877175723562427207587794925250762001589978178981365458887721966397343014519600991834160870234354603741794604285770553093919935072279813512176200406057901932914366543385422961122896044495543532467426407565997695975236519107333057126515310883362347604539934364971375101013974040335485633377874277695117461295242863492701149718160439826579246323063526060570102849227481402792108835121304442771081306553352919146584366165710938137108318579533555327807102693163264547603522035373995113062266423528050178712525024676996802600801174940211302703446581192111180891048864331260272791323167836053769467153185495313933904979716117332266685400281234001012068803893971008650097891037026618707178325911392481213708099282483950241787691648830475055584075104428224105567081973088538504144642977574842917818150707958483712379613917656961123626673876483504070456269457519417772706531739112658432922648919833060794341040010545420704530729466473508018587100703816572999510153421242273137198204914346191302366392229646302776347997898319575548794292117331450184587509360462639845903921073273034897461646533514681166895672253021852811225124854173618840648107100249161804000054242818472517548786849412410603609396486221525763318924992627689854665797720786640522834350354623821632159401510553096557062794332407139422057246866458312277874880691330496182276063606220130088366354410174994136711052533034883311273846621102543058613394394435574337283256899163254691980913092655489367418533392172400311733842414614391115796003819900046585062372347272990028542469585839750238508371033863223934623027318413186684716062299152051125682623542566692517920954400701300577570861118645314485359706994370423813115528126741417163864694297466904642276954959303413025853207267875392245658024803232699062594982202636295901256894806287558567790180548954311606295292131440164700844229738230797206389592464810338653414388375364086470463617729712119172085697930380601218179396995795974359674633580159403030654713633242269704889422342345384043465734850015926941553635985406291728256174569433631068374880688618325142341570545634548018770223483403250132867038535522361923036359203068984736705431199747225047233724942826690881172252661169486957864788085834968561141870102091092235125965901389889088394313888468114721885911078730002494706222746202509921211602492000442657072795895376313159274201764290090760017208687846854615430480799558962412291748479629993971572194814545775359957497160831092896972177685396792316746516329770117713309154375630126737740919454912891220480022488603615674837942118499028937039302403016297208635309370364819560293829802294537235485296564521955676215451321659312412601605788999879676801463040570199233832003772722314184342350836897015034940615110064752059027675977787556611276021652486599121222023570070138533561212986620351051001014687850377803105576903896170318047579993394346707982175772740792170859217057551161251344393975060173398333076767165557914007235070742730213216365464158285261517877379522362036362322318306323587623050501529787157831473332050588299641725188428913097845332875994815927962865837767896475296685262047746269730911360079983116547604286134018311962096695844539248668287402585477299592511870335404762685363417030294944789137955683589126038821747063518662437911464806898759310566213034666057107114792830412705076949483492099516198979901606593700445580787252248883940027689221012030308599028668224859571816129585224572162276130704045492268689198358724629370717378752662794148865914593872151542419217029541799049227923887857209160345213576565949125024910575070220614398762237503681287192666500210306589957257876024921056549895644038704845101064992112486303703062260729017025070439031507861121924231861227473443444563726094913369808731252280250407696868078635620371385951590376016607821299375411298344023536061673229724210611105843033345933094529923540792679657019844631709637830923823240836924924955846167205199308656128382671773547584388373103321796954069299547828449487808444984497111667895510315825229510535189603843331386636282217021043885425054376050124030043422096183412456177534857958063298515370168852715013727594739971632851488303774625480538827063401929609082062705727861735735809088686931324778784562253950570469902492136863056893408011361418060990033791697056329352644582338422448740685521337237310056155558339512615423172930244107680308307681637593741206406519845923044307430641445681687121468671341507250578415508360443357721005324581811206113258919238737799505137138942994430465313640113000434695044147534663799472299697559364864316405566757399113889802190511468756728937936875305545097287921513318709445817970850217303082037158666829577341370215554066071612151023311019354602076550756370622734808030191432359211831738369597624886478333672540643505646234863000788908360238077414238513235343414563588436049920777681722598341401807320741557140864377327501233446233640446616380775425787194378160294615441457661578611517377898195271447958301448333762582596387334000191057123208249816284422778272827110015205331565452177982012995021289792768490572077634244639225554370379972150477899164600080166845790482718148788986926847708848355177401069283911489767668471679719219009312165367743340410648232794639452719631405972150541032201522812305718867926272617457305501398634105873473090025651137327691864574832559726238652492179154301372974493200185759863809009285936889181670351746698997303044665243375694026507644794926484590352928003496557968073804357728830200371922717853075915948493565833211419787625020001915402310107930439677046060282756400638571670478461660190967003467324789722316480867372307778674186466685517544576911148135034828881107887515628693723166338305170841089003481610595719072601334301191746978151553758652162296332026465066293332851588500150583668644808272476275312930274644782526390272071061307840485058841393655115761430323679616209357466318343498699243270195576528013544351925224647547174631589230450378219294904151272632799920087270381219751245775784100715183906744392131556093123615313893467044964079095572410103427897785792242953248989421606995634747761735002038108926509162332248897017218890404322399868441152190424373421383167312580854225061255219098363131407511229696982321160902107853493312458909498689272378890971807139522855243610672426255556135454074631750758026401213791458266990192565448596414161709116162418282924012197596351052038612489922379060717442855267229870053001178967524482784372576784380370154788705830509617291992839552427878904911062312920666211094309644298234691305686266747781907024764812113095280493593422882721451396080996077112779859355619947173384822321557806809221532294122761442722764365462012661447530719934819019097476673148573812570763643610582938343868282080045123835654024187556095810782123649878716840642626986925434611494166359116732018471154263890367439113258893539637050211543984480704034548825052457005171625317065055618771083440886352263966536037441267119957199074284772623743687340739483295534572295424887293147195420650658188229023007781020309421639784024322932396484151843316437633556348809818680884136541206664102296060789748982334082784226042440081106309830049980431320639065878648406988254590346935111992678046412755977411070705990866909489579211255288242868210699622721658066023730242842105279922771027469854840122369849611348469393850232174242567035059607384829989857194495791100079673407709413354683859021057641741642824243712786066163810008525682887982513413881715271847919415371430204987142190505082710102320226078376701584724014567815690026330115328390450306301990812975736347066427413747977481614983513330691031509303440609935639389259045355510416235126500899757523331638393526794532367421802769028034627577505633461451670493086903134877170436745649927882349715181074869563888170638488562322066009278745501664973670371499304336730704071031644353463116971560457548544887624222757934483038157974438571179432164526264221038062418185029786185156169491551324664125482089005222372129028735249599252559966258346258367322615309374988536324401146699888806655711463625430512940948701150514164351306398006581376069443780020213689982174717922133813942448713757058350521224647420843546233299207549077772044712876762597951969805962843270009762314402923914017824955728549587144215618674554044809867444568654810627464583489158848486672676549287802095646838288837485575158482903173712055384001747842712614046820581893608264189308003156763977935469222788752133913644623120152229499906790294240169770224669831491871035035400887078894071632953089903238857217742058910288130124157644735474606783704732030719673377286660647598746453563248891741990597434390233701972416618865694624248410689545410424987234101594480372472490104515460274838990597286981238566027944643747865206672895108925924465079248172956003708816735910341943864931434567728578045000825339938482359151094241970247302409588255459367202544844944956359064641862031560502892634881675733403281218867963662523989648414622907017361929272622083494720913102246089666388677508540342325730450766721510489643024321570881421721731844679898464762861415990874300719077322025219052127267873094597727021847668730745872824634756656136501403660273734347963702115423746973472788968444254016274624253983926095205178977318161426908860106267174387504552731881542107113218318413097213468983361161875034415664830683752813389262782758597921486748866281596097818869480767563876251505784111227749212964007664538820314104734983783761297995187708593963188132326857492299794607505662585523662708205636454202222722507664097619313460927511873723585142224577647995819752626034869041415810895688847787202289138872653819722275299590838006390430514462777475764562190639473514973535813781798629632323418906619585254894978920819607770550331106419368332487796077674945504187429906941589276225846620579173668710435964844294723469861464347097708859033852160643212159846025542003071889050552588653853839263175427504850589747517870089944471675786237747087260013312278036210854178560424502878890921736556164209318030208997924987724623803887788493674469887937552374001240760204918123147306231111906256327788359783642634531009786460447303659126474053715574963318583999178688414830939461290539986910433756993904610124367290655248033523864757742340387584477960464207655491600884471145290995568798867688505273260257424373364788084900254274965859008883799842166499335574107537271446983284077424632191689292805788830547867831937257271053102244798076732398845768609483830163368222649923101761370733780007685434650638884682960678158658820602548774911327102992636995360236732643184019936154821993264976419293561840035720309585663244001053965691297624248912576721677303709007637103584602937761185360568923668099222132248059798021843644990716282764708079980082328496961228171547068096442316705936458233462621021014670970652767735721258733009194376138970611122792236355654005489809387722020664678696339921371131035950774963180975702327066643564765667182841116993665750150036416157598773556514618099725941783525521561167558798722062013823580171268791499104398281699763637323753247038760870072416075150779605346448054628621678532005216740943744932864448026318156531470281800675082854678315222644152678108204668079501369375290753889209449685715002404175732386028395689947755164970598299406994238405192969642820924681053668694498264022814121894808086026621978301993607301520404782547960085130381585887232155837505203086071639578459881673182828283861344643768788570455136193618498060646912918367687333002161863753947033409239535497322138832272236682754670675039718258200734088447933149086986444042239080543912400326654273454901938238906568369159207855655050678028503139780813231252049611498315381822496469150876140755972887240347640178190680895815692368390672126495663809603199670326083665279346240090537071632781611791701920491229419691204144538163791730803725461228428389742694854324464258358938519242027864802388048983751421282634266199038478959283746280432319584438264288859924123254184748640582174363685440255493201526167063451713918131520570212183216720644902660996323005875956598398252920371726219082205936966817538452775299267707155749355398012302301934120119451887989103623944753343341524567556857115030649050097862766404722312022024850100727826481705411260805183371403561386108912646810663786137568678618367240683698292011460887284860456132376586742737636096777716940362560928122530972937414260730596685401063044915173483710628425458966262034996592108347953541250774138982180283072455481487295719461710664915200236776730683475556718154551212158716141237282475885756791550507427443219505198601374814359937155523120677603349885626146803210520228514813764310256858844552243448830172372332306418508939446114981868755401977873351503280604048872745559655208923612009513617509665704738913069568671937995025410273907958817230898863005853311919015377954523221683368795183376584471660818988041886484579629492970599912961363862741156794551695887873063291842280516651948120824590246795443762796025664636862533024475633603801051287161847011415694530844477627396868974353342902654824929845510012386071720166566814315595583478680438547999186722484432275395892993262533582955478052609109028898667392137742163893780892626689439869839446790387332723787068078429533789921109064097877559780433902885536122253933742746408588177878970160693435614526835607592043300491472722472326038963471410722121088363679181972654793411718926314010277247674757230047071075678678034312134112311168445630666803741803179271323253187137287815974211053971857119093147888083579883570117630895229654606683361469922775850815853271745304304613032659534998729669297410178035042201096588391467031105995200402483178165598139806724989178846347285583659485191351544280709587289076973673493125380232206789734707143381265651719734738786914506906221663511505906499286273779226542241172225528731752281867499842887715049856594011118860357863007755305721389481473897282152553696368997607586219800071962265578791630568832614150838796018378616241333986051475151641783405213035179888905618194327227000112838673008562537778764757361210319637780813680100927199462588748727466478777822228089700649427602436150198989063347345613683468147780793308353559656836896263286547685953933867410147194412337409546686251114551333013885904980419097396607156718774158310054434405575299955532619300345497192196200817236016815074605473943035988603644978325622506382170726555861506230361560117796227236260787213692938887282240776790576939749675305419209898908590377465633492076666501530664233935234581147274539599279306019525650647573062971627434651519552545187179283408166104728593348569101792390978892676604455846695132682271397807700570490935259606061440408265706458464697857432368346719366540786286938963932113518148550685558088424915208367114905248207834864079744483533426774551978062936149034981302582479166480203505347284889575197681964642367030589345360567544315886646888211441018504821470926083974155308280734383528075246084454648669998982910549782791227683317311045372164733776706875776005328803521420871445454100507692423126816121883104038841703383484598587517188260925116888814917500087407090842033166246890674662814304207622291425900060762035617935952449639119802263537001069187780528658123629774193528755270872420326682011510485280526990247758058781968590974864027112801745802453378582618238143983347859117111351563867728289347308131449965123311349738292802267208741629948855836593344637385826484233347165756970392829373373184935640495927459246232612873390644680374878488949671217159624962042387663169534983878961889731319236128132083472332557383917669055504832956548728568159233134917147979330048949443356046910233090768524699533512349378204351971710987449458797454416994933234277949062073312335788068677098358828243707988415334904811603730534384917683277601156693122777311312154406683108070253944914534742529947910296533855853885705726288628815525849407444992624246219539844955446422233761971741214147157784924151873066145919146428141026383285544515877303206799301959455681192501742688461923720431156825882196967929765684035826171297850535367170195390156459454347921767486065520424062355672620143186386115187574820629337744270416431754639757659191498178307402811370710660598809798945678421022678598799278052012360197673242725763721153319398256970740783813625431086339620477197696447244276077295027770330553117648915339533167092063749504772889492718383643442905803400409042448904142268452217013243059511289512622191982739759758395895995217302479023086916274971222524953395550501704797542310968564699758678244517879210048949166262903129706907276539966950442040258767639968455680505114281400278872394482119130852892698408724765487483497131247657072112157387933728948118709026465598344066981357439361351836239789377104130050869203795125666831220173008078268750788427078290834656297213095797277768545419909857299946245319527359176329876899596793838186736145538880557471948210088265006134497340220352899392463890602059011802352566551961658436943188270857726736205370251898151857606497986384861607379181094328746409065771288820921223761733912293008734520959987595548329115992570742432723109724037741408237699102758410946382719187295436412777003453815205275620529125068669404375339284207550706741520757193244867230903716422729885677286556884624642637402328511856366207357213811869236660180236769103515378577836459283649131349620456270758114152661327376125493362882729328319527142003998387565824165904655748608751225464725075104701992296953835541415424411389111242749259813500861147288852411180301021745700449485362556806736001947350929352711652517408048542344665566499567159747023970367171003738390110356348467853802664504364443490666997002196249229000301725711071315526770924661810675111873094251295163833609170186831440049821717174046463597055049316551559048673821913467844631024298485906019784790575125802570663585475462485379733170152095642251714876069510382330045521430411993156480123723813638494108961206260822613289747886110915570579294140314288092563819262836491511527782718192235975292491595204427649572652941988387847356901243451505536413629870214769254381643082543825386609099309835210486354933577155347532139904859127181490337207940200526056496987074175985637943307132863063841872176853928126052396020515744266434524134013998846516561206698365632553367956421873827942221758414729781243946995693630670179843375855258617881675425808922743129442350928205862511402838940043665665627205827084952486082560898614437621970567181899897631719641729299361805166724275399233735530610624688077040197087477494697424416649530755996670738994869277522809026629489491309681998860755360176618690304072958247694222695365654597543714570915640932905965720543326168845254962023857406284218266443525288110655450466427294907420227702941314244601343281646511176567148323776643963319966602602594750982613946450655596832484089444431834555691165753768006318221891818717514078084305354832826811229962031309689446137669297299718068508698981010397005679821472101917443808694970954549907536735842353405459737996366959938733811366677255911798658620935566941304899558311580300085349483467075670385010151085470785286646639775568911933919630357750287903920064698524903236867023188646333026200243042916391486576617910635205799274022266929894847039045887758919303576586623336672023828035263376394111403936815764728609786289533309052983388838101605005140763857961634717934917155750067003113428570606518108460573463033007388795498482877223731471446041668912786877044759960143065712198346952504181388116649871059400803597450700001253281667601294381796419840628812756630179273188346170740832236632586619396130061255611045015618346590089875870865383229142385034330916469581806378597616301400578809372940316028702201893828675554673910742921365935334357343463195307582351356663620364115756600293949074463302458025278426726811244332957908059436247463145661669632705197195573791937377563023730222460770472625174469517244403786488950410170783894464726814858389067485439980620069216231159087900969143827401685036559400016227633668686817086946454409655246414232088528174064331490632391568255997887769096778041026722537787962218837059572942062470833057237626855585892030175760432432331885040356168450169312621739738064353866453652773524032890680645764124359648310949872497112506049945331455956299648721546584737634400143826182735530737006220995804400758573894103617947824068150461760262742395776598322379401578706152564133584590366036638368664585634775601236313566059961203256110438355018242642549430368368795893954108871285077571783207655070033688581828096753785217700245374039627084101006728728724349013895499711859414163087968606869223602601352272299124914284214385396209242159616053050656502729871412017778063228276945141544209541093756395644344617157492824596397924573265255823112169221873306500361985508031620585847975063296492348305324758470944843127604357196304622808414514784157782249956398215468694564638654016872878937230565030666924480468698434367926358493263951237285862137151471681200700360125718984452096080585160972685640151388909994349544816560933617085526485307863912187223949292259828069986219024620786747072922336642005506773776159995673984929598287515163789873931879674445695079463017104330401549325544164418331705304045038242707412332221155600244787797267705988395399563940321839722577052463754472020593170047212627428626828421192870809137684161795167379955156218117815508339336924994270621367354923341661603916878711207048870935294639436399102393903164465422862496284782178357748610550597969759625984506756473944688737482164648824819020529951591544920209201293146409344050051058099294130627160063411986091634804569253156214326071105239430609623679600040575568848110147255959619810788592898933096294240948024789539649534583214611411526217370876356256087599755811195390224872223996971760225893765218930318828957682025641928740140145298201755600313776633476882414616150798123691762607035082796744440822589814382697292469948621331526869553311875520126456715753051251302908603567446602414647594865433452556280363283284742115378514637383161779900708655217116845347753890847284640331999360677004194156010483121802440635871250892534781387530063313978614490298678938945233845395933411104050143811515954570807892877393728786329400719963356350037580427551458393405806791667234560977491113846980259654660451515332447309716874079547110817161566088125255407462316369789962690070928958453648627349156271716599864069764181068323632813971695101805356967045124924848861132161610217531223506743860455124756277333759353050966983131731486541869549017554692267349831363903508982681313595460468129071317241540014777012015647608392691486312284996069724931654736256774863968353292890875542785899433265896861669500343540231013556842248347187723468509620502314082865687163843627025960836763842882626901678475635637321203655397341368623314771023265949562029782884146114797326799819071823112729875717479740785820524795425482287763180309643771558849810087471497656259644791379766943894280786280695117818077074893372795325255790483612812091182728131119887061444414293398867799779623371022708400418352250207788242491602754253163670140083145875037993855114182150877726936897990849456974635074622271544528030469645176298171515335730076856476005930629979629012502734752195389940382278130642238731702328242159734550790064943913544910788331672206243812239689774919586459402477990647682385791019054909918177597113082322871360152888120553496353665065753862155481161744299915920790286445769371492272675499198902974159823960996959588458393367933618920578403161211910469026611706346564324472342330068482088264047387688768647832458932193917595969679534266212391914499283998097932878051313732512880371179612518945008717666060412200721623052816577927818419692357390753481241990065754623030471805664038645901329569579619684566022990754971911230594145594726084040325496410143366024121850272705720073991637699741646801267549771530724001521078394270088571970644727721771118204831264016188219297934949612008127196509883402062231618374914890231390557134052219957256560611819473899079691718347673912893261685935829851350459313489349011858745603427980549479498419188357065970765158416521011394206221979042029287473336936293445786229016749925494452378342551807993685856986087624128266543329495399806001921895374411699291292547772336311617174867792525181051453947192338755512815604263778785335364325285482847196904347873852510525955104980483079654328637651431033846821574563073712904230969723061592855682645220356200375124767839938255397637350137751583900921941577707644589011852981270902471234022501977741046626445605957336537825314979620144387667346871197206624163789821236421761407463970989852680752158804990221925173076862596665888759697756907779198033718897334682649917564699138104067178370600877670862380516373788661333293806155207067318161012832601473196135758174552244265288332407828657176663689274297425964589962470806018909851965023122047181252894381087056945709889953658292724727828386987456020611858561312921453434217762105791286799364121185791195241321311183995465009255544040315201915865550141210184947958981117020676163708791163315881809877130203759043895280019854492907676834729564912541147438212878405148242426200882091870279032834259581365443617595253936759186665138382406946771186441569209027378835355081416931665875856453478193967190991350632679586903496344222161312077128532052771198134740935824395087475492284681900295151840787268357628120168312411589962784733923644595709925100226892811099596289724334201612954346304240725265996282004941312323439917300046970454734955831986699363720411373503991837391852262833904752986691912365908974980472070134936481233421132272932501237032661227612145294544738475738370764816186105092509040177926412920330091080529906010785353656892502641122854728244288165238733846968818499730101118853016067959316144961526123194615832636887018515726441857463772242110667906335436381791940507844440075937499964940906615325487222356895177531644087171211799492291668606811803192007166814174913959284104443233978772741314846589671084274358331698739185588827984703774083179197671284830161385362844037624630500118428854180481247122397566815976521961325432339691456838078856304200558808751900977621151015340173435677230950803475579170713655306200082735459023940735561023055129712395932267130538162003291419033720686756667851980750579127595212973471416178441156407279965428330061970650707015946776391266530518411288956754619422927241595876433180927791970631848704230208700572966641951897719110893507247669570865092612642293060063655665999135083999839054904168705100818950617954924066372257606351438288269500810284093715508580217348325058493788649547943423028670019147289863614984651442144364980616043673719723273747206968500703305937602979460703331395842434473058454235281008098292525408995188227253508447659771851184293764898805488495151061318410784028387875372437678716695638783308400515771638211345412262834494100931946254746133321926614522985002100279847854699626266900512072536314900640538574581301370642518341586514721319697660243870221693880665610106825762128848818502815179173744910465595126555320965845386595608261335763470551885112208130185726300163197235482449469177544164071089988379087688898443938738440166727813243467168231020866180738443580918203153301691443917150188410526428604515395097798761285971925249002425529806801638376692840370148684662065397848414438159820811630588095524573819230709268579484488759790493032268310282511813990273243239565371400481880174154992382494851982527363499433307191862561305408817605363117902379209113303634422814615349167713960941458496375393447695882136703363717885238686311590420647174358482852298099175995622835569329958758067898631927753100092646914430411719209673327985575791603073864801681984192294651496653559166304406899348933245635079195119055980331029514539439491952243114229557373377552386605747124563476572035491455764900480872504329349754570947482771266633309037370930230517495253178444162441639046406175088058039560402788869688501698399491942312194993656031844301469382812146701663045350234818701632941798616510619819394524575007067933903769301096976561696007607782591700557473231704611023886180590042764766602514248438163359304819368288737191289783568662878571791739723618376892224704693417236229115693795720704042914367692929041974749482544547562033919011004559296785555733665487857460333083812415196587625471973241100427279650412132287882228054116889114005323615892349634651042987488143415678955136480001718030208262072821028404065574296217661174278748150994054189374936175462551251341000652254684441960182881489251926405060092002165376044353490915324384281257224990176232613393333146757643088400652722061837167325350555035783437347099261257358040451505893665025880880045185705119841903918750834392470204829119615581948188853073056685371140824192458786396466860740876266748910875263902041874915053061839530233276447854002264213432153339287328624876745674123764436137465042118219857928835891643966738939772102395558352162207113914819700509468660231620926565703813958563217180836613372108228831400827236480966509535895764209183002012422902212106387071855150916524100905541518703537126257474633677607003699111732369357990619458421103698576105974252097597097327652519321183509744758311910767051345350428141460323696703288489183532693999883672181627502982507820714264449581677289322008055580782382532077411638536159308858441851181110384934561626187913768733197135399338121645108714223459852696388057393442981173216367551626561424644247011200755713881783015022367009978279471501507400310281573672597946623141109735581633592036787971859259998609011252695405690081300511585901582883770192155009808135346587171320257011238175882320846743319136012056467878854515295803669243819399947880586364138116116454897624559977065029040827422015444459117660753255873901640900087890045502264431062703608070915726253204751498767053424444003302843007972679700754108306063793010551938718903528049551926584763905830660768766988436627148991507214534059673997936195858719523718522115358877151128878338420470831983848941088401891142673991519739854752470500469380456811047729010104506340676568203964365261970927447935763795102758615177242139535803571983432835119225190697576985699630373269740476258681251939284258215942084384901857303424697494970713597664466911820043904253637834824814678196533064815418432569044957614331543762001235394286970338058875102710932676642823413892566103801310101268936909969709685770789032591184509899783907325919619776150665498691721944027517209062248886816130846220446913344889417721134141013025214812172857665952962302409570948395698306376762009907680427293042488943439576665397821143510214053484426963809709344084981447354226453904541327292405480536615261209909600165812506631451570630648850276334332333180180905378833494074584530250954282577731599264100944477439911757236536522781337102119762648895483118854270639837399460728524292584667552677199961693235215404947954103867070700864337193544678022249767033294455849771521305079661332480755431509901990940797697224762075569575094530188665120546791715041174188886144947342064157951320882619811442270183689310811819443690180965805869857246851648376177491223888963704995906612191108601630852093813390747711370913030183240577391794240138656867471985087529831533307703608818292128527681528283117800327216998664765968942641431892198856951808844760708708779756845422862480457910314475714383250715205248587313691670985038022797351728479024923526941949176538103899630173588796062224301252279916916248108485401394761437710163434997749189187618519190762283265000554683618642396756905668929135880261145125569560066253987832809225117448170035402346114012280963324541838388022101149975525182087804910101131766104145325177528134442166667750419445272277151918404692845963824823304875458180266589768245989691266871471411862551224565832789661666056407757561699401833704051500415874660998118632955671338092966639286277516529527989378699413605663206806224282497591953171015654419875438449538904133451400472602322122644920670163459651182565686488217079231203452486541387210420413047449767909913967646305026183229320555167337842640498770174463075511971895435599837898779974017199495044045705002120437185771002159027908896010545414869000875097678588698194470869609407925499516444983478587776797114923634506166501100696376226524061914616661025699603171034355669403526040214292209146110718475496939013556508163907212555167975805013777290061768546917669753773523163740432198545389758116256301232145335762015467081540583614507194753768840462653519423752438367095608593565208168470699076092701111115190157071833879227515653368486905148813232708650513273734492797205624040404139999277834543448780320746373701755074927686231273292768031739546064903085742228833444239984326021090004886065833079541463636435881713446028139321826380663034116851723353308618566687856891801906140946292182702107627719561683244440468596263605419549199840902699687321100519253659598649120502342447328149539876879360850794189409445402542225405209355391129763140487623498907365020629225170582167994152516491774658111778111201706503883691238147709931277647541962437948128649524829985890208755933432640359356646417022812647075491981634291004524346369199116320548614482937667709823026365523187596792667967859683288247845549528946205095266040277593328353449728679222758174710626114486127888859869626063528212618994228417707294207268276467011909748947945784643091986958376279615228123800557958147328943123490294874217289156213722067313283345599591307502386712517009759073204026139478678611147138253318558631526625820657149001561459945329368635947766634776244308658695259210503796685823546594345889755849890303216451040810209583339663860468059167546480452699395900379182810204558320561290294022472224646907033276969710905187075275360192169331651103504105346730439770772315370750730796963661973279845023924210389411655711261930170270124561257395987014009878818336166645527072743025231047167680529656450609239841179365067154955044007513640833850692813211643924519973667008968989267213491964570981036763842566855817713109361719127468755591179047974306710985306833146034603991143503356970166062302340102304265038342484268058050899001665183027839494461919162804355868748799771096657159920176322626538118983564339114064833143108522866588305073731092431642901259409244693027114455986172047103741881135487104985030752839849110858531279362355471115328909395890639489637285579661294666697712611206768549710809635509694663191810508980107653015149524187791854842011275725325757307879724341200084233131459274019223808583984478036507234461420165155749096444316826871400082135582927920791646600735205826181103359483790098173060437135137469625819634483428220923511856041786969802213553318299556980876563020800982806569088571901623242879656494860300644177832334128219408276105097125841043518147984242858888625447734527761427605978759260137765712485944505956020969784172529470202771582162410737625347151721215335088559162906114229587592338125202061967411931878935820402601399920869633723026608484642647317093146211051837784272852331182501802961676593671514443828332770652106214999235354998091881830649994064623884282019795807243212067976014400772318026731740265405743161489244332982278288674374786339624324879762502684988248596769996655443837707960185055587167695638103077935333110196096543596360838056129589170774640669851561699718033044071088258889087366221722435516415303623917102978080201940466988521973841812813762281664390774674463320466359711876446488340424801963766319258319040785037411833338045206350435879191111658474286057378804264553408089874453164790699266013348989211313713837156383819036150088734302261808957361781213624652922407831209308006760734368964632802766395280080661877652538277746183962059153296465699098905778229875079634198866777494162001440968228897828481272107828946646823192316254971075286962135185900243843582231216432860242684558555324816932808853394471053109146533190559245858105999276412291563307556846939675598844742990894614935808414662161807942723280728737375029676645574843635845711903076180992345301358390411266678019007021002327418998567641216152690437870263477437311893686129881011261306221054148780649101223069317216555076878857178893533259768966343672199964203522871801746134927308335670816156388381542356243100373229191140853166935457521586402404608831181791775753322567268919305158319852273473851487444725105076408291346779951362937476500149809241520676256741056708765471141794900596722876202219226298126865327462118253366616972222403370536732081097915254417340678051970405497476749677627780374332930743149916396016905914851152831795460338684853626795029088154280547487218449419148103945539416418092223415913365326979698843164781204085397182960602831197460663279952719345202059415582402363444691733519990468663607057063184532734846314332981110788876526825524396986821431268494173225546521943726816756535750601700696706918198996290185499646205328978215804783822083746985824697502816000006786755810488102716336128348288712310766948765678670998272862374285373176025555010708200951319973874776872101304293847991467984514203430476621379782459113253286934506895634021205671496213958375401685554422566358463381573043711616127461476161198428708890728195671013648701829446634978179388655620662368903490967424985115309125549648500950007197613501260459414435237169524346631369871310658425655672005276722625990959692682471920850230277899379237490152344934038901170421965487787504017375294288827600493247091125593281371749620592510963310828143629820852722861362053503793150776452907437485161988792078068943953234289783213625962375251863302901994744801973365507968181556028604486642036545523835223598195874109460774521847295953053290210401589454244599734251732950358869340585471504744361960000654752679942666403429705799662867191195939701888260958496142700055667957696732912286537161889990519166951375902063168777804629948381368398411095467554249330669825609026966195103473809145024661639446498485590494676375192388161421357939697862494892196788619573047328388992911871902048007220742177198341243600679013915894007898927248080782214398580083298299270171863956089819172007921206039383949179243372590893050904508159565805985079392847520995429299552902241149298126884225631852903513224519105396056346697820201170019578241914760712877759382295071338490804895753315706396002926095060399909922808634879759816041878331228051185049890557776158980847920979217491697477032370116099769486842446982250505785033329229059798104898980192156617674997057313635635278430644829450331328521995148338616303749192264323939722918883257900654455189359874777983132942368919795513281900600446872970838439245819623336625752441749125332649231983771134467059598623770531707350616781280150340091097221050105590633084260728510359149080082648162794916106203787563608870453235067658501440601668849642316765467358542402117373347256561775232404017368838723754887023350357355603516617131061169026602355719148106200563026303056794678598419340097853262845522851775159920967252075601692312245120606377077049105108965788207036226849032843692038061572364528458670434057664676220680407658181546387078894133601301918185176526512079718036929951021523167321525649002284927790644049806408374819364230644103864078585729588536383713454961262253245367777273664439357247023735433766088918564617074934050441428581017898409614032482696892646322506997570574145077389043188659938051393333553263009218752873051440778594056812868636179814314405921840000945076842957989074364419281329457813122792997532911330177856951887223483499753081840316813786663564583533723250109140865185838221279789623072036644838494847939963500023097888634777927474702112994777218094449342727025501427172264937953636089362487412144011345127501963780867760297510691668202979415255073028029433254409468289800985345269919538922054466655172769089368975477545357258801740564954108925390470664239379772926845371182505191726328109491669209098416028065621582363703087033484656221134769104985178687152362178513404887617649069575153901650349246107705064353534917559735580399170696648206117059182102636356746135576450972203504558068685048425793439293848470650301613584199434934824476950996372553557855559952124086061990103161673522264233090087620289135752424829809024063934616752538037125911261071298616188235705651416631834407651913870929491904442958781358663286923464110567519653514909739533711565220814823648988558036340958151571110573652645985859761125264705603251380775945217738524032651864800156423717960385314313891004212889068326364465635085032475419634730115859388948256650628402654595842327725582459519788931235578507871600993638594589013175562350706732382200803396476705498361989293277028746394894825919283735613464752020353921705089057518799293244383999145822287064875089287972014520392974500492884565034552663511674798914408599598658035615094854656241313689277763734485213096259665561217123305394178787711822015290397823509926811696904952635667857756956548283337504862761683530645031792356404991167178223112489386287602121429161199123994430776657600001233559952694014829523850962593712268793974699231802112557466443631466797840280109263513577914328383456342688324938248145283492924117921627796303310689963127991209554745543787695875115942805110552715979187091441011815024173100993814104584899946073654574577342826174151465839838303537398212607435353684762760880955642497015327374104142703982071904453104501772199018985836153168197320574070688097304927387805034084205994249164478171178809806220424708993141835364867991740454117661652555934123868788645639756704037770990192879043255969149073824457882453372664593692568977128994145327410567922507145094560668396044051301948995842690068264578707896327482529556041896913521975731026416124565614331010868016714241949276590657064976590715669147613770069476407559904446145599035680932449429765446115985533217752346364688752904887447751573616213343901455606871430924735019006099162409828215009253448972194563911729237077140930654446006005131678816825645280315432877922764263678827256440506639076056864699978468486048553314812479827934106829587358204280331956240634057248178717401887307434231731187802640228915730435692794236209740267274446394715726811870297722371583937432148520258317224718156015240499338285955863439892312676955442241664702730012083477489806606307022774457651628503567048546440352457228821468428467930039463587020165500545582540663201057809565758107080573241530938208375452562073805762022513847212701807621748685859152230595979261752104746209144746661956863114498973430712555223882777381912462250773653326135666854971474056456424943463519272523027425618545114309144704517155498548718168295031722104653040746652755901099984555033135590997869511035919806582841690144523930730823764331905147252985535625603273262982908875750961288459205050918899419442992560420521437303650959124722500369129281176156754186132454883847447285066034179290929804332489217087683734232753482866034840424041032087958997480323736126038743855156055174699161089855263511247804260687239202540046515540874640834654855167199558695113754968678450912376188052822721943391082249361500231624791534439288820897170453884368433926174454859978513090580886762554249472785205262991626233845074138880608154178123889300771847465313278752967073664933760973096181442274650533064821293121499939146566824603400662377375343944734834638464098923560845062828717196347046862808203753718330410827393982241972901274595886996897117261349148037006829910437858949180091699227839292146808555047533361067014365023200540940926731088192074220630423963336243131460024979644411566206486826283640877171731133365252540749451449387277505167704113941069033095448331106747388623095741557742313107391997803261343129866514763258171773963490500341213973828583921986374562392538249181929223226498528294776610153591957084576801029430729212784827355094788301583483832238546948133031985186227547783197683785873700490658064755494625258764396628202759803475227674054884069098791536304225599344699184178929794271415298393938511137768145397037243964596188829248157642976533629351218141311904913206530543494412863188273335687067716578952984858336893112907126768929874823515706487192439198891412856308893516048067251686188807309083475471896050798559763567152473967522872184377556036866341374281846951949247846099585925011544836555337270651378250113704475881467133685759606720724919416303880074873306031269438996970169344458389501180461482737008450848914324557514230650004792234046418141260848231879355389297493791430467158111090963189196713348064907183284165860724615795434647512226184293694980193766313163203333161475032251598946381391752125246166726840300169121441875366973731534461097606997934981238599023962128616187890957783706152774035506399938979405415496123312672266452204707630420818008979113588216896126148293873546836070822525708483369682049395159560464491558344807840690624683458266178337615896439302625575806504413789261924614027266890739064085999614468865851389471028315034838199904178141143164425645695869856233563419532975042618728983187855154723696676486956899575177704757436686905017988129169164590928043807328002437027811890193472383491854490082784173758457166264989191605192913178935563126550960827649020224851900605460398347255022240964745116163387712607832702176820530032591345421151529359919260017934403057929454330778536193772083244778835025301412517770866384892731467600478708499864228565635510131590334445635824156865275692116367802140659380346848754555542212989754119565224642285614111516874018967549346062640545889733023592670645144199875741091295146194608682343423056341832530160092578253171253022965965855662971349530292157373956848497529512102544508013170708322805454007653237540343318062248427854209610119865138992648231796868121077697407619725092413522423526582751378119226778852322222897031257566383889510996738052846535521765267706110300543120994963776022014752988424772070839497786662268743108879886645580414281863768267474364895134401388565865517986542867663326671438470401429796257171487311789220946067005836770371612093070026165282235034295616105781008571443290010980849228819752417958772322904476936125069141168252944031358875601552207809307839671519053116371861225943586354790201348362219209282866247460852161871893738659739913883016678003634135157801459809644291244628209621221599615820069411136370955096123681219835940947233654321058815168538978565678507151416239897622349623917917058959285776806199385868407241573185985880139222746966762299471077466356342783700001478998742115363567460168052850255794897134087004073280188158697143831472899854575368416303381374056391860418193043150673512969294887867348961682780858549219274022600642369666402804107141680801818981317007436605082925150736349497327358785925725014425059743711802026804929445172938159403111460665129305061882855748076222188880266479798152517518354705784707696538789149649908902061237037013900793057860881066511126877382778620612497991355846372206178995923254131717050209228064894780717419722032977186764202194703423409293806122036584822191310249382409879171974663830171447378037660617771585433189523024625892339648812957354167685200641033997522914374351523378521263829197110707078465330894902132940223217393286929991784632674496176955059704849039205556806360254658912744691712195825116699882008991352103615758797806028638214301825154318991903681321042646630055719117327211672205190737499396780806944250319452613530436613983083240667290570537417641255872553989655112850677113411033999831354338631842780007354493010088692935046373529287410038886757065803646860784570916360613229684911586626858165635646317699205798004651692142121382145672845956639461422396833894068065913058755895966518903012292513453449610888161678877677600211721127420321793877978372491537185692329924966196123144450397843123801994783974774550973350423367929170295469442121125820811050550884634252523729393005560929028202805046048950258484107162262268253979419413031227962065362126855613768554924587472383417456350901204458860615551652901443254509410682865643456867677551605791509346800434440572984549232706794405384823814661668426299569505809522195811090770809046471675855047240627462761897122453972774217080518731819072971675120596216850554653396684090353366085814544862609648213223003235246321205200669206753711014480153382402730318240526937173767916755271333208461355384541815671459112523672294638526821928212249773653385404785855729751505500348694371897928002489722659671135480382096814761065406390532282707377910642695317189133018766933256783605364544383850075524424728542917375174901206078642514871401451795256949783578620944414283326160159446328202346902701599032268599349544411886183907891857054183705611429903949853230691071054447173258139264000794261065593190787288402583284309034972122459542180994650836594128027361483898914370719843843939101213012129766583129573202440178369756124247233223765367845522740777917515580899818517379061024941551053528330850090929101242806707162843025724860420664355010662493047444351417867587082797487387810459479319946955062413745607845602825434589499837637885097524169553045310067987497654616028680211685268680678682910369706961441052428140948175501801267973624750251138129338558844380137346989877717223696539533293280227702000341725219743318712647960547275235299504927361624313127212179119086876304119888541847169882398081164998213781731564510029266356373292998363959280906221373640556204165341230701101779215690106545513933582277758620846228499432127626586853223517387016284052987423648283038423821240125947632202647996673979785511157057245745439397783825348812773263907381232109605835553288148042405429371879545158662971774929468219585896182773071107890202243490549360787823048205928627825294726912201038257618691683516227791413754133964595512894103269101975681784464285165181755401204787381669846684597533655215094835484588309996558752258019264411225164545369812734523135431462829169105435556425152117101758071821174082085762169402794148300206238740258008547524318906555687099816750401391046368073079507055279956791743150560411275342939247632713608265333911043042263648146975708583499675491094660023152557898891601260840399136714599164495721139177779383508722170357647240778288219482111847633443844379386334037769842231831764149900253294669586303939327278521146154112841853654390836854886637255653494102900342372735209801591703754237251044879546852600970704505032793153613556358609668639302227913675752720587291004151365211079139960446543844364841345587153789923355650889477630633826991821388555246220230758511135268374684457166216313519208964970478171324194778164896044629487518003182892223493989609029390525298676937175816511430438306027799628470233519884010937311944840378672241552850620357531111538502137998350789509210708484116665011029277821868295269988214176067136449396213909882985056880053919419505477124744375077951634362710374897214800621904918241146246838674499808401362771895475943815655197546528923942947042001167964475569553135217305345528504920805808542116488940036147531170101968277484191116119028125708869931558509555612938517458862528889002308462419781868320853794094171667668712335581484881046583999514649051684474157364506666649899436619905410847611094490116008925010760047769771656079381408289096992184012739293317652355133473513763620878699332738359684174798239641456258671638559751475128985246257651410388405538339389239005084229911699696767194043773621508769344087635350239964333087199447666401855744736970052887699353791834397601788421554549441249757449549502645831742833677996160775483200798009382269509769187396862682230260104885421164126372931759142228749081452806794790184415994800735433458090778569395318210534390761897538347007806084757941413863856910547015752963604569447550489029515120993869937717843367802208314164191546902830907464058505396438868876778713299054481674741476937426894055076474465262669979625869924180785704396813647892585139226420475057139415634803041124208777365179061565546652862793089651929700391335439814327744311082332421262922260319688720669986709741678838561450064904823807837960584495207377423942739182168273583741852638405538016161516857673066805075729125207112151098619190123167412186245640936112594095069303599949914985331015142369081323118727932825719803664132241156956264304743509041215007832925690096432367273746913835955090663380724463310004750850897387948472282990669930235528780853436097469120614055816747073446929636051640323236300234721549101635763187172925757412660465561200229205202556774989808791624328671494889930303483190578070524796372222028703275464020364686707059144603564428144523423509400507966240158742335551965654364035063314991943666405028761376694573154334422719077352420990984508204337846119998873570639652343245073777927185536292928913669279667980159071654500119126973824928052016551847011232836479482614300847497405417690478803811248599082291428885963354414565205519159846797534433107226714040679924870813958762693870158467249981647070292775948069835457087060284042243140708843192440082788590603093323364714026249259864632276616665529188298730039231111623951091507178782622396391513740633436329135059582909485242459225865152799182699132734047606668598756817419082664423162474459168443467700046139620434206605917728103145135432372783578905673734097712524361668300981843017023220343144058666346100079657675746173581572803959253396365254397868905150124839346801263635149525320648775495260097601401639958139884853792216511456420336206257236396642095267882233848010691228449051032246874815108585210428408305091917160316213936548116137713055987122020442036046504452491829510433073172655834401099471005541770239431202469960081677749090174913063792056073112860729398335670623963361034746835105894898952873835911462274611968592633463033046612001050348098175213722249513912788881566796289637671133459294216072679652332161156883717427079527664320379838495417085053274498135060500610305421003301215218353674414267349211620051413453128707960618294484950283317681313602054038487176705825461777375737066794710002430359576001611456502762606068028079608453614012344873506209687342496910118019225643748350413262863066455790258508452776563820442084921247020634340125598265543479071543539667563644905647102712917860901791746537246180609042094457941156768724821107671316213757725399724234144007711338506942041593352510989006214462025886541162017713962834208542958202282862035361854688308302663843543740232614550713400380028159338224464827163576499171409991849249897999296371435747150426426332192649959498515813797959936773989704870607117345460738137096524597534259586326160252518645046865594350951284791814215131910520441475568945729737709984883571400162353477001399229381289304859292138394907659456284941253261195013787640546632730236474314084251470950911003162440541769763515893505762672180104298878457053475277137850388820452140953296248154951073540746115034943898023207862321552926372996835611432683254078844100791799889383816704134365137080986948697321488841688615512899404530702563629267855460688913073715740891907566249676201869607087662174766772504444747624328640888706865529987162061418083286065261039660872149066985844627692002262133553025730978191664707604089147848090118511101812488064230130371010228636674585229172278177241800081979988813193944872658874820378441940266904136559126758449777805935505289848380220209331827124004029054105507206587722351823518687772964800153425238718652517759884848685902342796198750346860594660407450222837042078759692042792660990674356279793671775491649076103991031054783604359742366834834334643181557716591022303575593377344176694403019914792481019602753496326078317203604103479094343418943843969201683819387781969335688546969195114655704929950774304168131349575701403008551401192114906397410534152545735856854861331172148576313305327192644976228470672751432387166666987927925607752112038825143545682278331331876575749259084053677933190352106741968883573010118584318812294295815503406664790051872534039645639305663041926968186256537602703018334249351121702911015112995080817679770841907992520183463566825332221561864847885129173649426142052502837412274633957684236786645189110050788673060519772273005270419969228055794005235520498473241822264783291646711525738222402125260974942303169619428857685534831206462057669333226975534155798560377381788790209266391986247586924602902731765265396280733180528304736531363411469219689897501095509956668931612787448234852010531672448680541177653278011714769013773928298533045687721076958390011341437321223698742519391953898636005908855052285445043800292599344935184191407815337870088344843385740709070051964039548724616332929140215843625721881890585906846730912563422700127134323644002812921050904565443994011944642379811947419005776312329781498230914593578154051637222178022868918178213264195732081366738841188058392211947282930788311448858625291822157784450545376546615205002781004173142963867951638349387673539409310074907873706616166204600959314478846635855894795223281212788229586163241082004283424160379821311015082711302458702896207756669673783223586481667497012415517179591828172318852660933340076619573058755357275466351311517025839614739164188758989177255862371767028040584335633426033137519720051624069620087047587693355032512191854998707895733185528032175112797759275877778332146070481332303993855990648680515862575555955622422400201401822291688608552702287956010656363804566360764597210949950143649810565187749675196933313538307593997436122533664137263842918273725546501968783534582336116872638085398744909513571277075245772644808458556687926508054336043965945375313612904255430824421394789549751694341989271248854454510575704494315490604489334754195577264044490301102592225998271343179392021500789478307390817124579771545639828405125160457396477270484596295967105712696132859348627953252826284335519910361076391830427645280198593785835872268367739207964575061367127656207663524343911618860107764550786887355531530151208881257993183063176202562231333884790871817355219110167842048536811960659736100466916415420662775141969793790565944939997164867013087756902769228689287401129015813367233664889458738676452433804321440841427498839571850110833674227256953264315948451457492029896509790929155866784566098396034419275536651666860341135480759286916178434066493364078797398277397812182236606788091226433936151102034274273480647393136852056738337849715446744129278391358579208097424658002162906351778946277506345075369517936590386883644408984476057197323691456571974028168493950806069305612643156254145068302347552898402393668517756718891970867647108369733600715985100735021749837614871915654448565218868305469110224312955259666221325069324890416222889268727680341931359060715494271158019361274002715088499216774884215180436401810658758094549198043429563149551403149452047793947438640640066640782505930132698515823396830270345794413020418926017594626720411413282708496638729317750332098605172537872499019433744487671125091393655713540882336330999024389926542884036133339672524317813459721896405877081218970754031184072121820252147135337047811443708568336741791261339346134292808611479194428518177010313042771575714419608077705959649909924395502562625710818688498907688819474929640982529801753776126764109080893018753922255443956891556735724379026278229952456139123570030683198566955303357456629307129158198118594645894898382313962242402839104519101870717709235336530653058547194665565076234209447289384099786754611581024376333362194348625666110041637671789791379152685669829125852073583401969914881249636709024429352478244625397550263510848344490077450002382535095804498487139047152669187052880246298844866180765001237130609661420384477395347666116112485458530927215671321625645147118239521820934824404608004558761506088653385124632413243119415452267827203050989878347618289723617363881582503527410919167030294248168856237087239680135409850498848155793003586449793029784164159326551973925216908641141920041805786669873104655636540544971190319654511401055182408152064474421846801890550504300222396593701523179658512206610260660312130180564925535543721647626247088239004804710920744639717861350553971544507085611908955591072316734318127454720425723627701592783343921059891060852460454847645534452194882681820693717141773966472837971267657387678617727382161889591439512773593714215301007689353235823934732987635413775733363701760145177854933297477490043425718339963896424269024902304879083750295054682719447638545937715247963181525459560036818588673468394307020029216619777684327006266218477183934812113956941303112638148969981868319261914637977949183030689954439361267688165923063074785658990521751160763898800737681144626927685667889976010035434070657239344367833361428243502790664106379025812077658596535755250143380562183229136392647329844368666880114340021367300263581170324863617540904798671695062849499472905673891055656913451135003393705561411372420359246321300948433075893512203726442689659318667877057000173269522937231525564618840265617277760369753665398696498519804866130337815890670972629111244514614298464044260393033852869267759025930875261527030878033679689126041720159370419143373354016890151384395774418228236109345823813043784432981705001040735407678579328345370382710675016562552968046242882687511976438028092600043952654327082073769031153877201573177190920028269587211689997212544457561464786470399656987665628239730208391541812256580478739085467667485011475508051776323270865501744405711353379354821496213256168259894989300297304485466513977395885889340914608243316496345049326481039345780131061574255286875802536348239071834880978096599199089596090915151377667059071608196860562329553295728858289033692663380700858575253478146155064443423811247596727850409031463184033236194841124984749932968318345028220697239365726308481111640447862950966491366877916753657505503968956392220902500244945115627806191304757403733528063171516357515930752650115583821793082890016863039711558998076697311917373307994189220456364863276634051227786957678367890182797034289587378342121771919014942048523838597507029582853938063198638188389471842609017547874677922349680401518326019026023736515455401212157802848151385036755641251308436443392112507221988901209632828574773960573386018133745446758616825367388316634039167614422520938577916627454065110403831776545795506838710713831312742270109247098792843721216928608212671249549861101289372059114587851959337170764633979168231891613292589755007346403596923223483752617051533818598449622358054938587605812100614455226113450598102459106672797234698841203215804024769156245956799321709031249625464762305264772160966833555960913912360701201255110268659431110782194606239237907691475650896811178289398647929906213590444912434459449973684453450949825137233550008790352990192293183392145411900959583530755095020892774511900254402122683647579668149342215834004372606888315986885332815665634182254848611586553056887621228795872439490130531009202526219855486714493194795886322568450326181933774249974542371958152645273025989431605001456065639329755280513365936196266335054454228945813605820974466275385385997641538604011046345014109126281221234992544939181070475247007191073588308367378057503485678477631228076554753425861183385608937894996150247523004876483011057692642404038494955183645897758577094181774337031969058289676550730235978114618460381830016250156573145705972544365811154862271299788367790056285902604015431962688978498530138951246359002003833317131142987276697675374967758128617562907965353004423413033756470515964237450746022016020069715673822723189916499895048415647635974530045081145273595525939927839725722578364931488152079716910660960544665395314982620843686250064763395056732964929309509036811464725187986004450572015229262063088421748515411722324344669186863375448242337192143180060695659541126704674437206110521154876574678350343195866088908395661033187046242825094571944728211606440560816073241929706914438002819013605165124438435769269361360906689484788693030388300290497386821609342961059122640812172173059106927743342816723866343956015371467420059030790317120743798329307587108461945457426433287601757674319142471055534179369298674498871778679485249878093429285418712112232674492467416614215471587659437604880099816627897705093883105446834778654299496899736403574330547099489067873769671067675365216037087285611232127024456396970301230628048901693316095971164330511137363661215380146834110729153719053837637161014517009228081523048853009061136457448417198845634705233447164599273372016592614430768183930058405889167275430087416375730581577095998784730227606453251357750993209385968344987592443008863953712317582784855038381096844321300109854449744352107049767198103761270771071162098744354481661561260719659587094195269531344300404842340222682691229399564404393259250068386037139479620687424374084471141141105495355745691669778947620717865237891396711649145057281385921614923628728875317646733740567110020635867492325447641261216355657626508299018500137913552514844506875177694619122736360081889958852885222994012908819548026669411124947714599799069878905264692938512492589915487489042034866246266184298001417814653881642509620236068386235526928533367257662298369309591471304981230541662441362543708362238009267947570976983338652636983420553266642130107004269340561320209607466367368649865665511385721092165159330700701256684916501923950680953776509796108203183236994512849856644401778841485734548742018511710240473277709799702782412005242766016074362795132353957006385056035139775727265528985749736291366606827801347817786234602848884419108140042999605034849213864827992781844090105282635577100415932851499247419088412793532820359600525727386843181746933295723286719032389506239103536885548411390974129178991539936243217245668181732747107899957223253787463373706884807455489674700879033791731394565480065355318008900092216446538549327297131505504796855079295292404368630704515440125701350887088964098606103997481887599516824687333031998146221034025718362447577314528611356559470756182597483732161938567265211588830178652054799131270496337248541587782155996743062584314479006393811053781819090689612415048673714246844532033766980852009892192414198709442427299499629986101738340465804381094569347082170908138260770801190218168654130773859215194559796535144061229238852563684365289834324744369171077134458895013333599256760985687940600129194787928108460191323807934870433740071832715977112700981946664347023098953551678306211049739664652632445653364074919455813863446634484600010636846283252023064761970787479057685369701432711049424594723765216265994939680151536049001957844477739668895690207256520781975131194084763079968485705278647215368985178364213876079326182845410777324239691979039485657554058205195801157215359401452871570568936789244814136314263262668940072647249302824395753426531453847146583285858284502351138075540870861730447154091537506025374129147491689722142722360115779257535864161428139601999625124600673126292305142478175512976128393309382944229689970523387852553372818777473036783374133445450936201059076561612479492345283486253018365330062580962479549181640020517705452927847811478843037601149723317912666986259476682745031873471123233328758484770530340359441789221711824904796002076999019648582209088151857585062593131930014735017899828525599468217332547351223099912208883221455963625827433996098616147293887079639806770556527051982908673091658553084563610396763414131592662612709446271786634945122143318385060161984471202787720833640900159575338899208623565493811627134679181377697499853709771130444288200860932990844977500470348692416154034406735628049805929362084827393420472035258704245840279835908789965772195037389566269773544046182790027613880257805462564269384510622860023565820110785835692277901717319495285333250272060670971771558575473653572169366080124470922978101862890281425697451022115272006760820598395935956288816821487729961348828723049503619961888630238362303817746396878222021417600617669368060870163364005377937012327337743351655333459589093109645064934141708354630747804199512438699721069098735996414665819885460603281772540093679960550670420549217252728766092528356490431308783202719899445717473081746788995144987805437303579869479881629173246376590223630776373530508326193357281906201868311022289066527756431376848902893893062616171731318091424790123125989516669863531943282666249626363606327909516408967471346030030271852694467606064935419045598867661875650602421258732462301861102586905834565543346771903961042098118412870886121360925294870485814095394544024027724469585773266967246184042019621638849686678096954038282820773384867015211067141959230123022467105781276908061845603993491799647088214541201155795643839237579828383721021197373628038340192780785843136442619714784159386037415454625973174698468315106563755485900138638975662429234932917934401390065799481904087308355189726967588713967878117303186978032010642992559725658367964887613957822497264004740085684218223125822086573578776008552878478541799116109604158573892720667266093483923646922374077940216842891159206238800445815688136251668200746042055558953653542313764076592249272614613064258070395631172071006123322691428961991466848508923662873779192103187973842500614721270141416070486986712134476145093232627555623575856041616840231449083951124877427609027199070520139522617088382057253796451830957002552003411927952397680970406854452177459994607440768917745793479734273957864761445506308660107853732098822735116240174073358552965645581310950135186800377161052938014988425380254546397533304650717236855552634658022150250262765578705900537153550221395627847336387017311628656058715572528211716140710024324921781349019521047571407931579812234422370054054511409928145939718378306036186233726159563228994512868125592020217296944718685330345331266884300093711045609178841963236141913625813683487719078590956093763123766632565733064730371679006887896207345161979105099739764245226617071860169818643570961712232392721851704256581813560153745228794684227482695114775012692054670779221047572947858752160579282381593893743120685211117023755054717268073793537457560602316479286439736185196515611394666292563424619096993794083308440488119608887456308803274572165684468129104676700249581830327984350382032563608523557214805588318305787280729056897955818535307085593232110990955088388085722803115512171468524403578601942566428389551997475727012844541022703803971949774390546516943173702915106385203274167605026761876773300836441450317741324083708522120398219464807010444196690040869824041758206813490926044466552416109712768266821496006668452444486559382851346309906127182408578548637753403371854108707328616555107880645710751721857772168461101387089295804180550810245062219438375999541043559710573736542199845945794737760372441494219758246672408733491021682774819463984182801000386349657975385776277279938569277217043869047916347768315852214771323960703722971006837824822257790258434730552477778022656957732420348885942504371195672902272187107984762846310350332166612267640091367908963147475422657902839628522136955738028210156643973652688214564066039384513766147425054281806374440866600010257224055411323446604708739617697494741563010912403020231472349564614046909457796195033824650958981539970963807095507421104998012655805061443629917073050979350786138890975826633819845716612062471583314284126708846906831944822126187821843036191712000052120323769672076984162840585124881581701271408692148918185439046338244094435601929023459691363931126427045321645266072091812309624076244568471569696158150430891635117132506182283970627599375516392211516598187348847779912047853589714219945307170082647451596724515373330146123113182719098829787132004997507828213190964093068049861505362670505550834348140949236043991569085065636081111416210259154087105796321411702897536309315239007508478520717043142155535450667344922992747987974781513199527207376604136785490100226427649940759242886636516753803573405266376389882574993730488937537088683438953573576735671220165395162080487526450251539134847812403344207720073044766527936423030453279615128721385983500913835495365329236159422344792099169703576572760383003811908588159373351140021745857539339905336053507985681958503795144418074850180214764485756466075994158099768624972294750908369115625837049958749317303221621936009627763088929739558606788462263370963962975333917317746199838850622548364523459040676647734914976274866294349498577999973453081150705222933405596298917295849630753201780116045778980423403339906213205234145625048174160717646519548721092495631481955402949397908590398901594153272427525240973000422201234840414761806415904464606321527564127590101875190052594744180301199365689050640260037636453667524053064191599834794682812335781633599252116809520057494094156215960110161918451819275813042280659676259084863799035822033937587050218461058445780576495141308640227882347418122735029124330766095533113966660716315326310814494148894942691969607472384012248280350572938006527792798309347584453599552586681463065861756921950355817307861363789976418609107334513541957606463720983493984315181432027262707355183966408500172848830969293503030685957258880269064655836413863878902181382685129017916804599264013440541626793038267480438838883656812255941454171789421518789324412665163395984142334876569776360848631382114926832215928886191625781550042720698637839739096906363022880194934347052416585814027261229332959122098145755971977039523172923304168024462170729077783443754410125798810714003423371555681983610066102669037607473769370146962030295324734419092304586881260736535659069928469899668378316368764520105591927392291997911501602187563306892089463573846597122500998324661820079915419479464734952511563614025008918412599380003192399673942823471258610997747216671321191608503244983162878305291127875504771892577039465778685710355952137274861956171206002409066711221907570545246893565627071519255857776806681960687395657637778326494217029196755552005725652795284520526305001071075660823072985474164201862168294665204090719730990427070919195756041285920834024769141304085452499682678816548302300108102819702681475448469318586926864587659281498267583049190276275848708470399115227090170806723663412810125147884605762105605966731601772632976939455405974644214299902542296955524501640665556993506774038062153442168730337214920307105623741119012301433029713526766442853392493013451705017497680919156696923013115944160614341173159355217716363877567133868580979646470173938059130158823767963958463391239294988324241498366625939123657548185224574063696111260664951687763217919139752112638236209791182242698050246900117376094557847641749977179942345394746496971687656981679901894601058775088446657732609500547022930100602828267542411510760983972760549391907909929988893585418737297533739003813232262850395630633872087791624795597206195980345481983475169396079370334892488606641619988305234016257178720552708016852715333165801807456396002927356600771068975307748336939060449739448349969476025381772385096887362046961870281470131330223848017233157445753310990482360202813815246985933044031905157850952464606036058966269241371112304021419504162169582330457992862917663439602702438942523141347685951797408887805909017698844480678640985699727195565346910170550526476244460396554641321740315075240467791063538365438595367517968863476950587859559199142206345600985470347429829687008024864301572066117092696530835380902311353753518546967360543252623723136965378501129635047743522002969665516873409597631117699664379822144140424522275211617424655777104151250522131415935436162170548032733040501788846241441784353220936398678470547523271482740123638494063647243974474928505701682631741128579990007774043131760393735845127302681387623282502632182738712991121798143504205337757396769154641377903309688271781254014333421985253965474113738913957375748745253520609075219342509520205076312517513137832906224637725673054179022281214719496406896690736358104090851941017365625479309283652146794590401590689766922821415348974660568944364842631544613845686603829102674002180911772394289986559831518890931018150276243460142506189022378008973651297481630320070963491236561491875593570604103650216306107250102663910387463761230134274049792009333817353498562823102272260414615365494473360227354104136682707511092303616336834592158328749731978455469622204521490050094458661290122477371829780994204009561230320992707390432774636317745483636203691390983941954760920799758414242938029353218462687880759482252173069349998898922130483698945596637213390080079729284529278473907129887780775069765633111526333207061578089379208336488562494046043349306620518454180372293766073111701150243994218403270567693463697199105543692754939091059927584854099708616613358387143796528369205222386283842432656983586129585676463399814800238599603731212680810424783174115809160514208956808867019222850526070113350401576190951805755748584254128378202385633890535678691034724547287601041276839923322198691011137612187474007703813288429651566658421957265367641895318150218462293160457521868926871074684678481134598131030468088451659615777441339921072781949689082924304880453191024958091891885056785527326958814908853826515322170556512308956846949001571341339985954882422149668907610540350218664129219404764266560676408629570206425598537036317606191231483263579539464618489000577976918602908578326460862669110994115968142980109716909974882763586486453557251142199101863420426717552966059613273214565702011278401747251346002234899169252448973598065216165964581973606699708522057683923177390186910812814656071032842159527474935977747696543576088216776991020218955257264347856507123916950895919162617157636355161397828308317162936797178993183338563752057199418004509650831373658189274955076830445436102054418254136372744253938346370183377492522071262483924352267987746024989976984756551799388045247774970327467888235401708190596822331771724912715774164445956363965299231092421764040000627357535034504327336949085959696069725889567813906178688489976130246691153462909083066398702895337534262479669813903400652505644236342577272167669795871068409414081316289890523224176005126612605077241856809845373794708868550469333295015402021561236800479739293610555944408196214219336536477861225846701971239427553777328784880821926341115691235845628502031758479317363079007161075691456900490122194086458597704696529665813278967042576672036770678789366214961336033511548828343141529877779154587330716174340297586830794280643077788108381806920071473000798587030210369512521129544925291904297901731641617424883244223047829123643956553428622568809139250892293776195412968840469314399690247853839744625266622360410702480977065978574414762690164565875544320557481432016360740598609164647320850063870961883365456149674435620027958848861942918016440116570830295724363391536254102489290106011772131703816901707968229491926553503739886809260860386797985728130759212467648197980127191102500218311943933968505301520335659355239530888455965745379984659014662155627492406839890929162206080030665618530269489668881407514993263311695000557618661586054193418084826052928453423046672285616861054615052725410378158699781646146769074153431841588004416163483715910633529123347597759205638030533972016799192090536949475406955072729130292249473327220091429815418687600500837003061495923446805568597511564906235456168927991603970864161033240268217056089476805514769401841669972687598519594522077968458382439186604486213980413662150565340028332120629176620870210662606497123501422575842808894052493393350300042140940318274994933631590513649534075638181803031653169002850829574054786564197617307931273194903629893462954249709188193835005329133095153145166815369562199013614232574236805054240248506543092519971147640910056556451001547745763104008889077182849465169346684060037810980603603205361712856748341120356925577187319650199441478416822397193413175850786366461869424860703174965583668811363701463071203062803041410095204217707163160306447654462819194327063537213157349661825637875614567694994549751035541759008587800289621546756630470468660318415039473032195726791593168727682985586333734848347878402452647987145268467751687920595892501331713538419395847013690111496629820984275586687523905720174467988807970250248946808184982928441068480574673520989477036714906481478023905878695225143856539855619062624046760167218997234477029492359833443168407761041121328351506221722572544668073058946923712222074803391290008917203009282327820350222646696458349623342943396206549685548683987901490034780467700801674837943318989754007319083839119086705672614933333828563873252511589427652898846301186743510306960323206965070996860313450526301459583073847562306683198343642282550613337712525675802165088249643418382718524169536833283750578200645086827121962563833016890160156436883668496411866888011517541525575294096150079134650791588829862051187874668838603058508136059398331748586165742862946131896495520134684061646779220193932362121526620714381281835782753009085079401900840497768004735034209686671702460048857473490728513536081299481127155507760591246194083241432244721714333740320310463249147291608135281421820951409075450372588101801048910343180532869550231522490053831855871674827895526112584371166408710697696152662570937672365088077104527612878960938186864325947136690974855351924738902885631866844457699774712548170709692266007700803049508637719092919622903508402982189561286585107213103955168042686376571178954521051604674705626673290218592067768997135069052712977538233731854770135747908894409390738508250913443918014779057717428487979425604192223732523082294879397244157112185484547203667654920075245474915868531037469437865770622063388280562425141052972841582405611993821222261051305801816213763279747063112041567663639220143929938495446107310508945082037228293267621728175972328583000694195725718984440674871489686172016385314900603408872033486705926577353467557726562490490529142038721259256271291737421840581428352245395806140863812753061910751980326317758403635724173324058557663634432217805028995276381697789465572645174089096698148000174230020632143392935798880709713392804650339852186121215787263003971246683169326874689857986191158588150328327439810214817589191214265210625187829665908651682378389131258700533137231247943114410773212238752605508991863840204742023209388454373076412465228801492183906802516099431457804128713486030480030376756439759382418640674540596998199564938493731423683694370679726511236134938278341459448525543033282297908206255962402016972683418818660980876429045724452935672170983692639735402356410278182096623524646192022449837663212892858275354266675538203068960050898026519026508079219186843392377261284233490280053377917142308991928951546434589743354093555609394509732600914855401794081634245120669669082177157354563664374751995026660918953584593199878493288606724977729676336080166918020488864554795401893203349514111880518028271219906290611463319225419211646661977821004915407905370717631770196832774728494440492850799412402932736603079723934830587679575851924067080226509983484733398695640806083930785443795127423325273183089873844742631905284220141400410880289598671645058323308254486979145630806976223744317648005828204365916084459486892713257983655403447118732732640298597451173232561277863249093179461508122358119669107711856847694985245552442006489233700052696849490498091307011386373551256632063144913847693095496595983763143255148381443889060356177574627621979910914580918617655993588375622182999372979487568291298975334065756392774710371505608525828008801628131204729654653239286226559534161684034508440345530504235763207903744369106129176208830715862730770507914390500395320853531515374249821040747840080583839475947823519018378414624722337094953926769615922294955851176780713565072479166746664152935126392237370645759368729651576207562396873782699391171489033291909131427540933049098081086113988494180181984818611877358334162889483928258231309473815386025773826798487686455423397559937974504871397956188649619775423866032716321976584463061387204832723258605879579130296620959380387176878166334099612110638403526246580895936585560520760579135941633647828105759707089664823389776226190732177556222641762678340374925227358676718498296053423061665561675100992784926687435661272838277339256290552959876536466905743834082279015938535618441785755447160101489845564733833075051062308550906949293946917886020478492198707152579205911515793443038757085036309698386266213292463664081576680567176283900779084670955526366043801275028048520600132324569339133910503095763333319962089546231734130966191638448300574672106118204980271653071467260244720370375374138927175894235990887026533726389226299168301673954672683065520480041525124339753274077260386129201659403459699084367334196496882129241658339221217753105612784570645752859076865429092690090411415845494169717632009436833939788720964193051264836356973919766753334510452644511478504574304065876905598779036051164153793284598815277835487429408217391102910653517871702640296638276630101830916497658363475564222862857987975137054326661928823989583555291645776994966411611963230270178676633470499650624063011570733298228330162411055805889327403809871951007945748702949238999331994508293676754483879056578373174117477950245056531834466478429503995028975699832532109166713909605975554000997005201605088570897832816777942582575007660476836746221245260984215975857086953851201337807062367116196053688481483150425854050693505519789084740609024212225974017113232164757074681549713844006664293317730536703425601905889155489666954461488403278629493796986617771389390009002195040026598067839084571459109598916092414206560466355335397324629536693985874717813027806582820413644083989238346628872545865671016806783786267249359864086786764910945038716247122683490696032521356397493545307780589153987592940828051329042951921763161308756210212434818669414183780635412292562172192599535642192134311238498686504797428098811984973832005379457723131420718126626602466105107503328073973732005763029822707545645978181831538396576851788509029761047671853237132028377968997051846193423147605149223876728433423503542432698370807909390757842920672913840015214930273362485997428002310805509114194171056726056128818868518111996486056500603176029976409809394123613838776333595800635784833023798187865771719508026976308727502102123873877812941028521545789610683982147115559690127895953222222624064286940416297758133163145789704494401411285858433957720672510167265832943038344983864527401424478075699469925631131294013278221164493595440189163408375969105950281490863249648531300444647870436546374475872156034466753194692701047385329898981710751505232509236056254302761130783103188654959699315533405969959289340647619052670584499593554173213386012928567839400167789634361442744793165924235237025972547219856015508016128266338568736364646469439404026585886519256166947158902761962630259828204565715204052292348600355670093979467123764030501093057145663266732686451683984900546806246397312167197746175220430124665046370255962613750364445961091922034091073679872157013105471545706885579479539581137463077187559740722347475924159133271203984898488180602760111443086894333609249994800204414436346491877210257313291539131381190299889437360698038162721540076722570711753035346580408131912956359341545986854638403123543522033867924212152094431190528900205750295434610749125574304273082044349722023814659101026341860778835296289306889113097036998207232437563532808471215652650089679290928974609208083211047796550349505112087843608262947845434397403411492547152230878450097833643144916951980550927241741363953909431851177417462949875288330152571016852082378967691288878825067464546479519203084535505670533495789241750459663284443711402501910657566158744005531809297736426277935894823560634904716509903946159901658680531900688160573219053649594814683203625627954976151740977230340547204804929084088679084934140929822517371810679406480811346642294116839532104496016052130124641226576388007704968677892011593535492431998267276246812472807723320608370426449070954717680630023709144031910571434451476886020584962566503318846708640057770800911853358953720045323787676139699784806288917098664861710013166984042607008352528071448321990204394757555032939724095027813528956490498743388554576732462092486458212616922515448922549188030509503833297089708768179635266367981204700695738994517798943556933885016929034638041378931932283626878723156407763234967375376069890316062111285279246793361792888625937333494075414941180997745790077105808707504422246390664060768596356325757318669493579148512424595900930390910267911004330583729579377079515144757033599839624745300483503114332205950547849562890815202338601059771318370817281058369656710707373318993721594189236949326616849155830683888465873495078278388840042418918521602368657598149783006190103710229909802095137423611048047231826340917824862365563525027628062703895033175071202929506374941140149334597650083580692089705071961834283853521980658289266763462411550845919888597328937028482375564219022141756705432725642569460110779094389608578779723775457313198963949148470424922240723241096396927730952476111542024410173338782786276944674522917863074099430066235721005512012235344156904464722288060949001897174815398289921048885721179027847569218531673503214302406266087140722502696915639397235354973165763015952092499934102902945923475768272619644967397251436511780650664527559502969609117417236712421684168825074848517476301885496534592325665030142613584667979730146844149127296137052980004727408391006120017026002507598399327525206673100642947157631647745200348672709303221910896923569415054692065569830939658116131939339601542280228728764607743835290630701651068277825958456849231453075028830095949812824063314361992394663278180208168968972835378338840737185284604560790327871220068011473918145079042814114658391495720397086554446374100109182612244997507717136114167797703237271303292433405775730754952799472918299104150291138786179160016458263984231172629598424121651923117228885626579608033241916108334300011002447288902004513900122285910072570935806035937836644678767877411873418483554226312187445550389729559097734326392219496135002916194094437195891718249973074029653566602314915178575835313193155207449536601945975847591802563504765370540293086614204799369728400327162085512601844605430822108431897774302086910955878877231338176466859675310979548351790147986790190375573255952201104343647926653710850977005496316364634841094791966255794979662763043081076022922090134739333554458271268952886495894460430680326418146624227957177978774771625090589374552913839550591901002460903590314095993731007355148955109757492111652273914886987635136186069018409347737115077035713755498484685026991502772803358671520212590269474704254663428440654462515001855545510362648502011800193559759179230755351211645318458560488801391664424935257048237764422008746289644742250425744434353718980402688207115518445241138835985087565813785949935095537514096440308027449314895364148365988236877977300309419748618313226478916894698589081230697754020385847965375752197673534049683156539370599378486909244818133180338656155381866555520744540400965318679774247238354932148997938997215607529459972854785986156976685324573626450704603770172940240030261591791087148053841175526301540198491609977258273557897568366720684663618089527076906373782844596215874338375462633490477275875920294142141506136913232913730471805228481389477273645280951429772175911801614409473791803789124233782148125677166203533216128500272025816886336212252504619376915705097580229388563814491049203195034372932328619128079201916714243222168346661702767198668216934767011236126371551474455620338905676027336883709235169631035569665305694280853929424634671445022716991947458246044424085715650915666751007977740897523704670882558990941266996690479104089297599930550533017587399649948292988437933359925855875279359660550432949279559716314488018383096011469773377593431417760858643876965825307499404249638597219471298715089202417209785413251125165015139620351981762560267530777713340317973647085325802630167860803459054155792606336860289162167206140716654375563957953046026915954424456987766229723217944441650317206013351386335760109818537028564887323684847558900215162709098465694033110909758826850621523973614384976875895823339051400363489794249932072968026810193629501945942241421670853942715845016910647119635580225929556115652839950053792242251417882046182222252503063992182734167944125721827130104088555912539025834014184244765915611621621264204193910151155626140604748463877992899473968685575787788925187752727401204279135040599137255237054958162962334973627266652358152599512095302235569362109249943280450261458727274324003045539965046133511691743350030717709657147430788926440045895310366547083335260403694825879152043740841083726429095973733868003841925445935769330881354132706219000970054576615023439883212416069832370487477060829163298289751520236278936096775520124092018198860950146721268517118416678750240522405678172346138605158148644126993705207607617372621303273616649139212755285448872743347177153503745725313708759881899550241789082482375737208759573106118051370082232326916230204782834895060064505788636607178242080033429245585740855613668870466126286182162757983579139523272429944538685976976040820631394992061131656993053532844497384701533801416847112093055877259243102302393123320087922104692251145833498993977763045166513586173011769244711532400381777633805720594874411310287707304321827911739325533054490286877289506675084781446337283378609668367045824448184812495853655750288173837485656134789817969206052461246468056842300266801764900182972082278976666243565895367105042763400051533373875400500331574531004356086835376032323511599031157730321865362623437093901588242016950928296847182876137226802035481486876340431720835029468820848865043465463807371123362542446866661210390794528843381041314862238839432520698799013021689472197052341666421247120603299840589147732471634579331787060011211262385987443439665409145557361554858611387827887167209592247289950235470008371195417431461494797260423583097810176446591341343509339367226691137589163852215644899948396033398124870671261862762167471847229554370751633505640933157272671113515962466662799727159811832821153837561455605456991851919010823071730490449896096099489367661087819522089033570404779277838301920185453863823370951381006843423341207605049825260636254192727894889339024245630466237012795229660458936091992465337977632934714394439683680640849214027729441799122746896445088626123400303995869391136232785294648761496741855559063648920988186754779712893331163619843629171320603888220162123257576474795506786021429776738000362675383608167790747786543655379002241965729894923465911459887729869180509609788969100130178411602666225628717552344466532427729940227927339562667212766052826292723266280624677370757177698027406712570829516942062491127936137974824660427948571743008912977862451503400483037363534793369502492016788097875399678449884998910871182472749440120411758319444292457155759168176885918464074205004129379900550574132285386739876970051156530614580930491272002568872583267789814767505173739654785196866534993769017710520998734362986375712825376318874547015522114944983665825953494666650588120006717203854901821589444045706515051209010828220553239205447487814254683300837564724012037457221854436125035328296724747573731818882253848180640780283255899817767374072753915938755041902399894488871612224146978976181742472586158260066925911716724952489058483442966834579664670309185486418516208216160343025351971293022167636680703323781428725095733895962392381223207989753720037967183065599679764306221504535494912145158128528419285353012284597343421582282844649323570113899555604631832736153590596473400181356004995879926607502568617199853435658444702181267087617060996803708617738762155209290036421986467963608923953262168708349401878699710971587342813018467600476702084497700034914961107063955181578085839943193811832764669797869328721521372998873313024496392404341974378721663863064073638455886802670941460022354870734641405217776165135047728510457599965231314463204756262773939070678957174005271585811975198139620136167289096677076697417542590071731489735941851689426781949828018026450547424819145159725510087708970819279684430619812444902605273436528141007949739200375990772741603774639773532483465901188662467826260415758870972443653620820729281649814769104535314991288153715058525819393810823009969858444166382106111417093750327107172757036882235663438282491036063173831508954787866867912815260054904874512075490535500505613414548522205716549740756846177197432608228168376984158791364168644415030964410391771845105720426116505760309132195628376970061636182753903886553563840410422120333615966032359020307308056607652969851066045508603657952701551589595223914988111039854208397315930850647530738225156316704056285500776037288795648405525857631119562912808519584159339085071452286408416236122228605889477985810611287955541962236967691653205218118135176501337327104991760612432977478923765260017309058332829024228360202801808480554612860054542448903234214694177929830445504355328364875113242208223327126700344344705675992070716497147047827896003204402381440647597384287566141899208650322382144758539758379766799193296001522212711352660332456958337031829459206435869827279677946307114245669130610633934616153556876331553089071566334764234432620839629105925219980111473872412460451291187064898159883305349450781847280545216343750676171004287488761312808777298107398709636097046782787260522716116695882085600076516066947307635092956748238400165817471910801891853374865340037625243426818581831413607143576495425896498052034550097676814486113844310185095806646553541187171401332419360907902005783782662253666843212960146830687660755964840185793803303755402482675822006186924259836633901831378417468138813542488168991434555471047087960832430212406922014945991449608992413031808035595989353997756760871863691653570012738928161961909064391760385653495188701656017974244646675376026446027770888317673672403784702436072992435177334592963261504615184785711169352074316341879512411427360702404623501722565544924545413082052826456918006887346181043681301902887102863185184387678153441991273856281113423354364044351510922531590291583227130081609813221840637445840684772129738615446558786574066710300809998037428735786102265697478417864978206574714805322019350057859778727368956232288158668374569932061747656244333967962542939846767808958327773212644985391720732271693761199159163311502563007867651297336135700787051478146661946730514726377538091153054250727810408901092897998028510465786981215764919350061810506339157874008042119306023471330170041595105492908471669632920960188450296596549172444674966162798575503377447894487582613418229394232428850765143147726728016558203482248933094355637026154189831185686391292236707903063428341820493979174662182129519362567517418410947163136571617523396036575484400882150681182178859091427178274603232602366437710737276456642959305686256038090707147296038661874544154066929891298008584285328412089252734925881335166451450323377080992618011650706249984326538707919553801117542724275363194839150007600378413466116220423519931677497117338492347021425107288911820804348055236507943673420873684233483736023505073866860810421084912363517684359105682302386084907054124372899487351792432150572546182254228638386326303428915975686976398683369203431118810946991120818837988397702789259850069404794797217957921946894089122781767511154334283115597116648648957724802469118712116737572219611003523010928540691610220219507910702957053053617091864424895118530586818238968011981811414179202611668622160461064390692961067873413538787543454472710600589964144401383355613685858661340639184866803682447504003183183721207724672068026482286833757503837394152160544691460951094958164343912282234531014616025589285369488250367362254025551033459782318219260310411825351702828302409794734043177154796164007162982047883821401051158788918250453823796009851537117240552348840342400303445173120194851191645904489182493011101518842300258830251860131123629436329690576553236545292069946781178610357087107674828313668243499171770136975640063128274313757610382398442782880675030611501890624583669477433533247092853260290251562779295292780459768190956181567787283598593660652255654510736802962257660025689045850730467250779971969816250568452553441932608310106322183173672863288102480161404502942182777487532318440226401411402272728792093260065413222662501162539091652287908942904074828121659342250822059558049410166214269107358675055781064644412678151887343052555682425961555437270750932935869371524349187522340443602811748844839286909900861202530240950383477226259557447336304065560014451039043271752589524200672408810703612681437302172130211310174855926587479072765663687953711999697902748503379436605491761601101887891577151175574305185418737050471187076130637052100225544006161742341911768248886874841118459723473110299531688652873391944495715954772370410773026808281982761777747171798642889952126622857196754669763834447504075337672048188850618341879562083825120107779131355887309575540407287356954939831511322467639545668576134306404904335241252763313597261753363813349805871063536509071854397870054406510672509885664051945787331780701903619148659882221206766394154091401275962155912482204652686024034138567409903675940418443331838856591052992783714968587040135150253806327320319211316310705064426710875058783402110921079484414776907605929451722015030327798726730309256411139731891021391083563406479841429188390644435563967713117297499332564866108125705822036506002467349134769305022510031550210987712745445718792083049511169529408554556800451685780781622115454031376899088679720867895910370809000178578769021828544779238752972158337422359928400809113487207326759156175378526727927042768215730038957169595939796060788855104416797690271060005879313699273560830265600000968825763666955577646240499590204848078294115801676616604636783284259031471658287428380350760536925231620012884399035022374273238606722064801864980831801513503605668856477669253484259978144506094914556229293313027839032034084361955105703630106668768476883211928046995041306157974444585176545289547789232023284700810764875952694588099825236346932641643766954740199868211756756232399985540588690694315588560231732819958078645120533371278432995453072663130686553004481142993216579604370076426333495226656756775819927911632189515213722353226256763886944839376971358306303641691326669792965566265597504112489419978465824059683578421808508667113079387747801510550090954520769486705454898673661885194641662034623993850371811294360985203323376498165238657251815810395608798247479646308615312676315540876466645031143018557923671242582722337160538872779309888999138342677680779870284407588065382030505414676798418410729971669705994483843785989909121548716095843553294168188649466123818917315170755167049065100024677413742118263289362714936987591295481749947663312424415407478196223124296049176463812855235090733942275788428963905320662524390899977200242908968161190948977835075804918134070161238038955018049744590611900486735020137975596941269910988687777547402801852666158129338499426616274814763728855040636685152781893257307294360897128413097196373578538915943704411820078268332907705581585411369862030947754496998788874407492350876813115618680505705283398374862148931503114527493050209336266952501119421842903775156604831748542497367023997064983837639744482277209119688648766428377852301569896867122886473696773691994317472678743251944418115450542079583985968101346924366460772230077367727505921797472319284278310490017093573122320672370710326424993454255339443298213990232033906820486917625971322442716704026021871689386757492039342626480991087082947346733181296887691527209441942451103396696372338308498116576795934721062276634671059654127254150092872249879745649874196872250286120169055882148201833877447801832951830569942417231086040004645439846248634322838949175573751249741586140759888369959775043263572998260866777600556642167896465508290085496966716484251597926326888000454292811004563182023806029260805603882614476760626539486158178923315551103073326364886252039861404721705902587120023747090518489812135898770254507906944016595300150603245660173382428919386554655258656661525201307264583202294489517750954342782013650736588742614185968676901375017014977386048137566560076776159465014784577869758372028481240515739166910374900203092096168892234113187396958474657367162502479281607974738164601248599076015348592232843692347114965804716222297387233128179507279383143664810929962149738913536389081433747616286578285412913101937900144212769400223058100389108725771636062902142191069037681034447783110034941268677109345917077106818810809789672096763605660020245630071029117114092057695702788111465541232944659017933263718343546612669167390278070477951024719817006735695870580986189671117596936538998519425311309498155689204644651329008526598379471887398827367621851653977713495421940142045472641573555840805995075720775372613060651827237511824374667455313065082640359237345976560185369698780417157183945623168218252833902647877161420536065479321424916619164745056689616348677148149989646548580805759827927363193308411394028231699801082078246885958757886451926929603953422314353157800910834543846173080373071986083032587270899779437778299833134594276235819182534352220008167878860175149021157153442755193768614982258310065753433161000245611011554883631900231586773425368475444003980574003039318617549981568005537111239235151331438537378804567634655924943974533216535040362315057930760488547874102728174133889286620753760050979761878482898103409156262075261884582014289557864669484237171373132352428398340948451547971710247269126628010746304974124961497225026130882867118054830108269280012057098016899367774384454466907390898556024845603846437011955124960867112787993757663164312025216808611863327035575270300602600301612684424842605191878817285342295810402040841709702879278407350390533703173829475042428301441528221849825313106057379507628328572754934398725081817948407978538650609518419544278909329082452764074028471085773878438251956701692669745769646699152919629120732558155045006507393660865468695561991667954585058675487679355515053666436160300176218515302776634275894415404323775152317792266441860676036829914923875631887455678010590556472460674962939649670574373118846043483807600046132086646789981565653282876156086088393662238195484272998027877136345496564212586971384082197347843171404334143073502438662908217883769391705772073538338872837963961971031148003278086581033512947820412271105161342994642866942193978392552619041526098435595905259751968655358454647948530009871459528825123828506509021100624379387050070304566071865471778085579114620186317455229089345324200033680200624914223663608218068298374794599504379483014439398523910190994100804522757247377231491001904329555730973748891962692372656317753357667394835024607086491461852041207212995081921606802345561633380143738849027752087813988762786208133280366032440268328929521074526112637438997084942864764959813113736305095523640146417220835561598544253801644978353891124326313284017162376901443715125673816814082502082926289634266869442979293847360937817976295949809827898759657881620612532965275740653390794426307178970144704754973788201451328801905172045075919970242745109631550877527673171948641905708684703454841310844210163520007509275047745723606713288830372400284777159639549188339568031332634384062434651129841719063860774907721659033274906039218656236673692639011681859541970579717543731507473577700962713797295826868297761358746174899649874070856057751756042782074237161528038562705274349708593111297501800797419772118489117135042195159381936297879522011770728947802510279660599661066363910224724167901136744600501087069423707276246299162140118787746175925174709116557476224244931164958420203395009245896548223274672175950541655968878978106244785131921036652947163895779818836718329156234454307800994337314263055326539402923677750452599619282324115733984782798136439053643362548111799675313873845887282248075644385320602970198385043491020964262983596950162466479489868855242037034303243361070536601093402451753706137258521437724266299166154401413305709011556915225160798970229091283635968984176711659975423193359308829201208605169701701101269862325039380295376804057049424227998778071772342138147238381508375669684075922213376510934707592777819015594107350191756482192962779077063939000077799337544769904919790031461188820542634450260252546746978637464711013072463666361701400108517469406392466123636402333083249096293257502749043288151955243382287097557841143688487639742610474838515558248625819490135960814127290482767656372941342446525236464279743850402365872831201531755685307873973738484106455535074680304481145732423640568388494937430453424786433579768986247574736925844333359607418859693235821001243477208653733206058008298086257660500007727614722467035096144232960183598984809160698633704934789846970684554406033372553727642016596302136707530697176106765569766368887208521505382803530871288523472922332941618762095590632477473023564357533237364144310881388579152738354792080275894758111914435691767298051253099044245045220172475549470254924159398118927553550377087971935927211209381821786534452782923975417924200314140464855993633819809535356726485910600020324711683916365777794474969491165841857740591582232146427369491996092051422285550607236967006062312550246979797838132941197552009813089287717426813226828519558327782382875648991917519970825350830809778238337501812471936374878932463806091116487694099447030123879277614717068893767405940073492548270098271400902035863035254710159161174781098570536609559392357523796633994764972612210616623648549565862095196096103709531382835613454225298003742206603779742878741572045019796228785082227387362614454012993890745484561936365366976724867882544247316441274737940932503814865628633518170447300412271855173824530857068272807899140404772731725203210789173150017076910464861052798985518319175265032257768297965607656309001284792052163966963604837856970149158793462532705677043753052833207019729389151392846087334204913134560962999248525840405898033338325040114054983087504959644157086098150490588712798575592396323186394543264834983640364300990520193034694687417118081861906794942963043810044671103786890345401893514231193282901564447168399200958962378005588452963712789717352601555610454478018533801442472097915260216643600078456387908345454349664234842691965668124921931611283256714556205910951426355137171427786852712956998243142915146336161729018216881126062302254460854526715066102338260365605453896889381774404094904384556697970614391191408947291841854582220838861330368663579568345977211948798971579406715849391726641544391667259788709687045110051829875568881498273794066567492287233530070085383376125895121341055482182002182714281178623441364157458158935168004005783691858791702867219502883148916512571126933419714604139345502988154209700632914108694565594576658675001242844220171094647689987685694425689467095721022556769483306835779233694588681423678775910928126792693562258254754333711194666079774758983540422154251443044118345779095477746641864336017600650432019605702063082942889059896656925736580122232367371102720567730359830666074443523753367347070742051617112519171453490540901904851947107016087831600307822481928454373413053198772072080740339490658107197157524685807431526156772551850832774797440065195661824596087859133104317161696095434102628679499197387974973612119057960442537330850566457400773015602675437031995123733553774813032854620145497284626021617933780918632713586025462883943972469091320236206651344169999938124437370859288596127865381481530738671489137102474005437394498811680562777064728671191820089628106549789799950843229459293054359292479710940682335004315038906657552496705506204458048642005648892287998870019100445692424816328279309878913344545715498045429475755472998613829276278168516864578070500340785955433539426892478249331772467149030418082200627554537231921185833741054395290310567137564984752719966811422514071101231266916941652438848257747266119053281820933195809465577726387843709278767794030785504283790590082599758482348784772862872189072863263981519086464720075245361374387930818954218744908463672854562818780659944280496361806810812909279658165715665061584888450773319150453521389801122202601570576320545606729492135685594965763366510559744361859689568679629472564205302054543335114615466573992381584225166342219649937493559575025886776379425585994128141883223390423402265781637476111057361290330132191340462303720375789426515955042972248327692287585706089320090023435451072951828774330267186165380248231425495583464272236716250944174018738606250996502471376213426529880812093757711297688832351774190678769960625462252770294848846654023078006706122424166440282134264912045877930288634942766147299763729688384093166963808394619805812945175180659113816109540621473397031807513937012097441126661702966848892658281791563703726374131956488252103722816940958327140136494520419503548239002345358032762107684447732009340654640709129234974280091763004144069683632775328490459278331990554377735768766489204850948892308077196138218509273854594869218369175820499610082042724669181832515577551848709499584607557441274723948285913247060946692571519773672373459065334995324784480501786659171371054775003149854271730950826720961577152970817600271732627003011314477964692997100298617734261225308688471879965479148674251128657576908162358842628009160714647816285946672849002228383090042403821274416419608362576099936356620652340716467080416629338581340197589403092589720877635604721783038468192009515831037260176378662301644955613691851893107662618940052654987414646116511615805376118245650647060806707781732307531227901644387361751750875194599174052094425179847448827734131470328434070049885760558998672406736362881665524580219574211392245460919695681404599366757481322269816512094943859305488263539215788091956004862697026375867143346241792822050324525573160425705399120914732225983798878289169061363619860456257020027791781308674525765265620083677191884747498963565133804411847333012990412693944008280241807914063193837996394829050256041011857760596273319547624842323965834165785913356965109882728992466847383626168245647555766053226036271238253380806741604336502205355670434478777169614703980415651074920350950812699647905225972617936161198248676267774299295703999203051012727637552746805429286719460312570886668842476058559322469713727943632574777516549335534072221369766387425144528671078307891169184750964330120444082755509039692826054877449387868796282316077037112087190835972248287836333456148579450177110742987648236810402943786835814665037452829201980949279987312249137821442553977883639663405085112805627806448781232384723131384279477668381935907317241267553489269480761253741059389801362896743977524423328522191644057000723157625806375185276160179113335391502898753865964735098654543585822809806128102077125865625207196618038388121720628241524352842174153003323019741499638688164498215201242365404896083579019249295659305821847835833090613298353906855886560108111423219239239889397181592511227424359720754815339978208784999958636205137824963549760216067262334504587307272871395150933509374993302491051643456754806742014932722911572375298576748041230818845823989096155842296709936747496408111359389160071570178769521761928604774833040763014055479552528034611676471658390035521353507319380527672882221806526619674548686357231034687871009219585306283182012641838663242727211810355421360746255227335154144948888080797053912017571665432662963029654983033793994545715087737615487582246695577714052813861245560860132185911008635096100421962145686465826750022503925155730659060297213177358112674090029821316342490839989091187571192652934667352143595047416760958947866110449726888166796032728068436520471349351151972749101659103950345035856109665643460392096232124395467468706437441321793166910425972806680665239822831019108083602400881973601009480899921522679947387055749076462496472686220316552946095030396929909349546336499757416200346869550001178989966163652056268462163987980164037379422775197570373686766257959763893935067731147507405979578559597995224179596042523832702067629277591018154567865796645747385725497568871091535252979305442501274375299936835997518992979405020308595071647131901389284604494795937424025055382884137154461957104402917013282064984363091100205743978653765352136249530022109715659177030868570026115504853659262226297221282892798851707012588231746651883429658371256431488951254088394813018704851175350839917416833354698638355473333583000245773146763821213976522419915663456546363703054848817538379081480389523872491325282844449197483053162142218091442045085891461754014168952095480807741424059760706524110538685515415327161476975219265634518242351659203229501263597263158557139562273069127330647442958809315911694635602755931346210173099209716985321951026756851146700292791109340174435875097513750124938389928991213392711797237216399678587203499510530575881086517413883372551824583512853526223772117635519078624027624903856922300907196944426495548464622104794334363506810955736109038763037537796127504741443727800118132169564804495950650522572218786331078709692840245053779036071018274284926712594230191213133428442691443273310595276542319092383144153038523682125845610253911528111423057287095807408875886180839746895648658069111676355774990737215685986708377312035747699405319999594785567880494436863902854329648097549075062125822587633892323455422187540084736457222147608760732113007952815881749208791470910851631115016781261596613004378180897347078704428011123002742745729759666740225073313884753013878019523724418063398166995671764241011344528447936177579877422288851179217134162989844280692421206561424568541547099807679589531866368710321857401561139545744661522238626240986226903956143953224667748041053237884127570329126855317687238566108976056682070820945413215193909561018108833268937161595433983032716021019832461787568878473828007171558955644500262010400766155685710672345382796445102296360696381634161357888540170038727425365511698094327750394572668651319628323680683902936379138401271110237442183062216047588598438125270802980833832030914358425252804109165213259833731363907978968057867703381334713499107471678850876577950167093089761790478439331175359161992818972566448288818079415698614404961257343134321467429334298974195799048088888475266253704804029763981631251541722853130421321401828006251024733301757748400863919993600637419401331244289649650312264186310005291181668038043006870680465965526874957716277763912212434373318991933837118066058003318175266021242545887369385804204260327306807767285858952035838516607401711224499296172399158789695990952958539361803967772218243228345207464600827347740416711855751494895200650493047022376250682224613471932325794693057152064736574713148898878833140327283600580917013576772862010725090354714149617565953382124504902761921896545304381223413558447740888969124932685187717080498604193297540157354059356876105767285774469474203594710537557402230754982312382930231116806708940367528325712001881603519234419310686479382822846793353436802805252294953665212019994747996249959383731632638502633962718386014693312257621547907462488399128062228272107424362892257180260840831038301479294865991715665639044364168594603601879122409095817548614239389782567000888144851633991310480708428032917597591004626275535630442425124369199338484981483872737455259200414248061934642914870390149559533379230577835906139000573684843899072943572830769475066417409980179345026949781548145304976102047575510874347831391522004169592633819849532618905600338655256121362199174529099333810179533708433387413382050955449828325026440552569954292205282277851941379926339894196201227639263116953067268345723077187621818001237436329407035998835176999256971059313699799463159060509133593436445373723465725700884933800820968836363054433743201250542104895965968636829050711617945155206210224420509807793693380589613015114459829779300253613776908476891193602211729717407814725074072934760360560606541716271687975619965342596218331028218583272709679122025398287499518434983014598317003341351235383684774456360348631515305779818689424878078200714033212674798933668299876206746047082044180397047954720926580546733732052266370856615706963999483476987941638715446762822199276255251857091484182386661984741680842265665104748798298899518262014007978240213093805434182966709469788974404652912400980880238418965753157774500107841728244560114287270341719801559428000930274583674422538950581096749327507449350307930749548041265570704197314670594638227462790193730442400387114429463049744736594155489710434094289241914094582117987436873637784762796193228220001929888048735842439079211189468509864377241812391114584574414900914324827966355448969997245350340798665141792255611411570777860353164541367843740710308700963355318500040583626590821834491089695928807650684604831000036708141978323371818722135864211072493708548993429163345957413282468879480191066979176439744571893654476648692896854518506330249606590382450332394762227225357753387473312036747143000850047528668558610571880202459071324860816112976109135018518838841390264590432410554974538172330501732324945857393751750938615589243297536685324833206014272341587011047158072378711966250290407061699673242592542920791710276191414622889362013763368641713664714127392860278978388193560834926111959139059474756316983226948514765749419630451038364896222088838003878392827878954606323723740322533095607899098585795026346274040070504224096181349011807339353678910000883658000575028679181932463697093595057107820716125427594398916723142146016994959013484122634192220826306320265421152549853082349972266657913370618745704109948340645913829584719885580586924706618286768544218400234528428630035584014406392520784945389003737613186809009444762152833911258037415748041088218794893416907158807508079391072443817213979307246628644899067614815011413096864071136725826310603144254094949648837726764117327458808610160233794446592155489775849282223754941178621313829646692177713269628199816454607841162596607377346292554592155669925931399109990333829174617027783629750683136793995782846848633017671794873853441989402391611175941460952206227151187076393694933295175888292474574618380507230687102382952038830916571268479858640948780638793768586166277467513871599278393684786810555466836978477963138465305967896859700847184111600452438857374280723487081617173094841108844174145509979751930495809573345173063908641709448820262809429856947845358169755261271014473315819152445550363739141647359753676101996636860790626161696868822357408562809744016614925440515575943255120847586389858269113710678931897921629836787525073929998929875434515562607506550293014855178519761471355406630813871802314900322136543086292860741319301219484791499853175939595310776304196357194420886247630558636878637871752692759483779713210858517114239536546831148748829913749756485635001494641744369137167351140419409353315302352581195091188380652795979843669143390807514162714750765022257327699073700531236086196070887274304846856986301765233299021034620913287691434955940754348057787036777543875009120197031472160218437179668752124644565860739029265379994958822848738482113070375780089595737947831608589499465375922874422006335144429899335848519730493602551263209681291412830817457431413840281956930954735861454887356232560646340562814134356417384903055474044435826653384017816629664264231022315211050270141798217953504285099199526618459972690337249901366784209585785328192413617260665014789774319835517062178851646877623239329330034813509732121264444499754615461554916421851398600155747267964603941825614560827011974409191621634065253559503404621573401054422546206293629057103786425601152167176384763853199488518579800564352470535851616201947890426119888426944280812652165757196576390246134866550753982717876707599517668165757596556556513631108105152300588215322593378455525493858207885728157841632488376972902856143544446810354399381838501286386410228682880108670051063208655868642878900948939735052422698476594527271301180225141481829411042359681223352636947247452374143230795409190236111426923900506334072422895443298994450194943179352725514159391344960215552627623894513058847256640832463641900355097699916219715222711895485558769887001632251883746037397880808940139785737768691429680446981586246331384353459634627500617313102176693873327288171315239827607154371424206891975746332406233124056491390846970069555405480519897514211364570930050384177723751803790807027930180240923312740214316304649819259754728985155164270185357444157435073677088854314061670957483383480520031696171271342182774387905549092578921762032595552989204473354472745757294551661329368224856220686853480121586077003616893725580394530683562641712337627449452860552068813041262607104797369121981138034964247035238297781148982397557714021444295918750680529575409619600829034334924042909342852917931992150734524341013410128014919617241464857426267139861163954594600281743184273142357579427012723471681260397970929714832150865582413795678893437939954110868851637441460719274016430440058937850246127890817276006411718213715116053265697221756249028611311602060357554053208015156248994900839061706003082107465836770757098616453615310634775569848548498192740998914271790731585130546232630569690301396547323287413065233800936135114858163036530713851771728467619877399785490410509235106852682762926768102759747134146999891166994335047508177707541984686705574410470986188645493144258613507934026704467435226635371317496690517068593944410562595846803761299255127539820533415043398006677479163874208732267759427829671213286385996757803835534830150856442096175662539720099075217421547021345338081431693350985078146037935916734763664191238969923397064944997655134975495568773657021915453725526825612822912307903332452779314134950774110485554602605669025092354941437490674865174742999480040993070190192989343296683961889049509585514105550300887743997423484446306674110135863659746040088880753529139111037810196167075695558871280236476805878388284627097805336201903437492376593430770954970930763102331599769852388250851777241647108078288185088335699059384710112492382537842412486225623177243322922781580805025035960657251225067866545450606750993306654482576461126825017410219263576655604510881796179447561982226373331731793787800625618553593847285961392604282688767383776927188136300175114104147391223934640625789886696169444667803565861629610258310907489752177861045000781328327311908098323360886314031467721053866805100175488465984780785690165480789480820023586458962517929430737101906923376599955755120365720372514769875428621240534857776158547761569525735367156465690668598905288033387362698607141305870417830508370409194788758616270130894049057779730730258538350010619718383233819479624821231640551140701830953227483107635291856472902180306944538446448502937885445858760993800911692628338446305002653105502355151544711639010264432447346963194947218199932958526548347075407787776056607848355060132166573033205168582282928097768547185573821928578755237102255426423444182952364002392596323311988204544704642126368324341985807062831697685555016902195908369070766665547374962125972604117208232551932395114230371477725415545086815488440938104211075425780433328185207451784583338971632676138546587481097311525947978611689688523973806578281226997668028826837585599296718592747982209406933369391124566026115879207668031291564155890019340650146220096121889777665910323924774518707069557168108205896433598846935256684493832423212395188337884235991895082618391373173310410673919047391226891538457158200787746515030604488581200287947969759640592705295178127744657746106233794203189876897489339049296844018994073766228697817552258953968613248977823483773913053647195977076429790277637726836472310109746246395339756506343311476857680562236286888126874209832911013705123319294702220416584573308154380786421278850875736796782952622542047472497874923253183922848277012598866903739237690990199964357108901648121404923643461482517956366791537643548115787753638896388536661535347968632359818748013539112693300411822396953733614865763114136582392317794813450763443116336172813846771174290926441621914380027257781870208517820976765784173605846378786023647706102383128091923893856479173808987661857940852160381427820915189016754962271781876216211150696111513313825502779280942728670587956571131308595304190998603937898156217352015788828820069473642656742278328341937428987865551016063408037840217337531532871675759162742744671247100096468420494988123371306664272252534532027523876792529220426442969569731557463210122598066960682067783919077638918997473142154426831306372447012565498926094830994688267204938685615583137458033938914269195829593759168984962148486189835145190807673053662285226289437207984139885608376140580357806000819341901349998860866682686480170190049338146442941194404668517422662743842511600793040356902800151383026781221216479963280060364469321773217363450053354984140978298775641181627586210475615713190478592491456574262384263607983519735326090531157553019292140685941551580165644429867388573815008965979179739212390795680128310693045422242173543355822275709771890617709276579036090696877097461078234372095364850814282859741338077711048548336282431986815544045124235582644477639990949796033349678980009485409380295368301317697713162875273627693030879355908564841864157975459875213031462957367079140497797468628512134100756314331523655194718870342906210887605194315575854706504779742835942126050527185331516407582002456705012358836025403204900535453100775557549016335161180615887567157415063535425260344233716874057115876996175619367553634208096662521900134738638154288738257312000059500366579743145668247236099353997941280139510995191808164218759974490978536643751676317899672300548936262473120083122439924159261251465675313893669108024628761475692372406376184423154272907345687555479931643849881783193522682463289049003115804871173473654029204614226538720701212781144609119492390467096644750856563199122144767680800330906192054590461127783559332165567156143093638936316120879243504645541707659279268988575101657845313389229174097075285428557527226910738674099341038437138289960337300346864096864866855091413683307735458509139109340152651614096394134613597509722837119162919211490198049114567747782269945814329046314653665784251924896768556856755659203859192432112060251093638639578548260253364019364314293279604184311294898061761620171828971594042558788587252409747852064217640296890663069328723247387477459077978732686331526762440337263785801916074606885170955537482441380655130733460454703074440979313741949007465966595223159133117724958609185991297634461555807218589164005214110208834080486535192833665364975603442413380401056926172376596521279396321251970481865881616332574666080691795482663359512355690250651680774893528686704081479715556009636051898326995135729678929661411216477031603628162994105360925271954935919483609944372247657816733839888007942232196657559946130692508950388708523719193150452981382397913260246633299332545061081228354561345779341079620396490112220706890689827264911772436643333634311160225220241767975326643857558384126459908085438086149481670460509966959473835579717989638676411158015839156439975385096730385129589959920190903212100983701136899408212299940664316703337019544218008231959591877990625062922034655613110960950421431204674999532148192149487151446690987111684214650650356050688190630718731029064377887338791638426913882009591043822028876679952256647891562186781834195472402713976270627863973724119889263722081570984325787156904599609733388619699968050569633501596802381095686573210329315813721735003469480210012466508449884536282333818987005073614991538401246125747093378610991710973235663992681218526362283631084325933400591079275247254351694118123727127431023867042360754218421766770485940305948788396822782809224822679634004970909885021389280038183850877539044816250733202693400890524291939671993152126587099697227570442967842793618175658008799137343494986737329798572382950449371022477496269012316572008220298041189507509590911262957963114833144524688645080025693673635466691167259645180192367260194468107837799460404999981325312486245387170345015849854366319064075425616125209844800503260631943253423493334979386641750175578629772377009594483284514030301867842556221110723304579319971411261540744319787729526944264456038689469266178357310725146899596274991324227872173788460112256862917081791433406326734184363715045197384938802133924445946534028548339632321658701692046980077341288107397007005294079726185368718813093129082516196379867590924698951574303886345391303452400871913248195472471450738327646480238734945120087856831204266508985844108830589927980351929274129757305572506647765184037930828010581404962713875264333299564293384288391428493694366830320767848024819720581085407421508965892177597963942507439535462843426917274028292850401672118421801772223007605103008160431756522095600386397000361138098776847886063881441494177145347680981694098227171875330816209241125353589172761594778611861238375768044786966113442468069690095774167788839381179658347020075665347792583106809341793902871972671467550795384114492826770818536839112662879328338812159636562505865487062989656628688306369617227665754338697420292252267549574017330028880041737652758276609673337596399329543230808678856507275669443868976726416772513602016607728875752313115202293535326649084517715029752538002480398985596569759747039734387149312726357837332611539772567226291784599852478154510992059737757688281041714951002806629204968986371183745476908496433071149201449961575744822362473993271258728671738445524428189323302008979229391665589346859163433101495736989255796365042619246544905903330324796879121852947035888686072307299910757281222750728386602490884747554618926288599081540327852772041223470148073695418682064524117194853272258579734230195979746091412657623924240685514588516545955855402935532504504789627083991014516926036242048085154111738290681711137195007354279463711998874736380551777244553457096147370999096086680065056754985471665143881280668266033947062454867340822711425236564654825545025175844529099117050090154047681374753262057676872437407184815254795415989557338222307644947408310825047304950263108971907911448056665978939694277700815380129538211015552655707602388862403762464204535887887936464842354855404386376336432540544595897660918126616460679347816211473115317331492492011109706721026121333246300881348324332758759812617688696141262360953073054638752610797828894103329495796625660847028977073448407498414031712662150525218256994338083847699949752554755599696523183821813347578985411122301250416707760097693291772644579974865837332158171521774023408040496240808976490479744578857793072107730433744578036839245647882671437666088684241792870863847524959738474964083631730398677830634368349741289220174580713332804694849774611251184814599160314532348048987929382430150679253803914397134556086868799550345097562831144588418329576311259813673482240115900888241605810228694839601329975043438481424717957026693154855796658698471737832243558002206080218391161204195904483714248086886714749021234729256461939868951204156528977539335008966827710070775704398114532447738302749925474178606454361531249886430005198092742097787826771149281545076718544807266964891308588728038875940432641869560721832546406083083827777495759169266167510938142562115614532194918851453613081049193407468204497766489260926404213478244624167747736422835597603498986738903331094629342055512407142664088744604253503001147927476277758246023249801093666864374173058009403140019470852298710889875944499575964991092293903148566600787231111468635545171286290796321675350177745733674554932901004787454923657744790473167288896749597822782927281417138156988145808469194236732322017988504311534575005725783497404618901292186205576917276741266095731095216468787191643490365322125125006174878963508192625114413025614320959261582677929645131110048614903186912238589364614192668401406770216266200764754831884238771748428598037955247541154296137445837069630577655375395515468841106334452661896379450471612363546926116799046806648522069530426950620807596705222544512350424309934129904809318931632574662383417965775023115411069117087543165257789459530172674398230826606868091918245834166092563808468376541661867608913585822912131974134945172520562846707386185547109598338332616709894596489833212499875802794050440396745952319517752447799953278315134597333438834492340000149352978839414376857219413919079521541852944474202446096963374173057052009263253127692025148176365709491317665193821962063920178050480797277522683968624258842067034966295399056577500693522096437887619352162522575442978224006822205983618539240485516700729504197290089014388038518210412466478664196709985861695818160568151352829734653326460408132215398258933826590388241216355340107346930098110917876251704494964846043016178424307078843559326520786773038143828069667823397645585030960563555738685620234326234358158669454005468915267123693290996225317358734706831361325677161479506124380270706725191294879361135487155856638135009874715473733228162829118323120697303492447458440155829457255610729329730360097887233787982943946788917193447665304357830822931453498601420833572396740629428235578386641852287381402676498089365953100704077744978662200839790166406382779967183013098291684093748875501568153289971514265995346281002509304774635145751516037755670659206179592522625449840509284871812480025956178614267546428530965389382146071855225214761178571935225923728472732734557248399248099226331102156406860786535805574648515264195335423668051031987536802428396645695589638200473213960425422654612772844671295781789705694556678881741538199607242950706835728555062723641820745517924647573532795572540123551202634249358018828489532466620553922972996744496142998460289871299069500749870064426467351823751770567004090974038532537917986195784862931044011138695189695460545794768944371298915488963496687311124982310428767150511783253262235011504929998357641288777925914402842519335327663455862963611446604080523610031399135142702661931640432639671749396700626574460950941333538742018363692604413380119368251206839288950862483919692809835529405543980991801644227810334483095241287837940859836000592852157549161712211919739620891763137803105887701735251460439214443876673267249454843457773553486254581144244166383363529606160927491091770865526431688684509811637735727321454616235374967341693305656935628063891208193949715375004279420142307943312506528714194432374976580459844955384049937938201560578201635521448216760275739548644850953025646238644903946168925406162821407409118848790121527164667832169524952261600815977038826712392683171815288556730765031866210726823335970119726924881168575565595704522156188184725035881084914093269926693409858688151130353867978173636468742858407095069880527045935545111005926755872746187503814762021819675024497954542857928093662353962337767003681511992959701997671373796404507652122803215658068359250418660136923676630303442330825466818418684667896875116727237445467369714287368885323368704132902681552472469024617034353027502618913357793276654406021596167437657786242382167658078263591371575862317577961531985992223048215762061290053674736853513821127545662336822501921393070626370052930759360160399311709691280689064811182996598171170700731130890134925895979686206859169899998982335575100746846368413043757256243725101087622006149021652827631761812741879547021812000151262898246624671848366601345290559581813302824997845179923883185066016313097611534855990248151761597816817715630234435037259237435766202392135433463295408978730216304793084192580989477227464067693523990022034342073502002386211136402755880872120995216996107685481068327645450591705291627620467330347705100012273807091474432990453965841141258608671851289038240009725123114611538515433705230634796726457721610264552426076647430412935026238128062653005920162253891499108333791514255679078069799894335687395526636687568497388595788453186818528409222754744910214685525634933057030032433375918967463581812388771696323606470347646954848603323776841414487630639290754159075097235277672484889680308489333803470004036531550494627915707327821366560926111491120695475613762034656205224689307054676440454804913514326169307697371860592517467342369326624852704640769645909530093348886024794185770931288597493460429852444856887655302003457402622980999963027553887401872230240346433560372152553197227209757309971138682226715712073242241600660569162775090120137032094558881584160019906525158682131248220621394518629619400233617477926983774558113846566215251070687696033097942829260962241844486482631813767489603570796229329866081945438327369440440912672951454491414651756078692102914617368872584556405006899341458956153369955229809400045209583682989898523438856425052273053089333803607011145007151152158330439965335378912399620326631681089687763354442259928837245219813664536544521768965176848853610664729160095366767537638948928591612689891868268956075637993498573151376622388542888861532578086718376144823551804847352906809429976514273412502920684050211901624986969441836297687653392620967289392860589130436779141799211202582302232665767601712326695881023400651395386885588990093770335374231926483063641137888567309567840492166125017205885074182820969326069493866468155198822731364810019346252165494603784129674360657336256260863931080551955150539346730046285021195947050701272650129199654983839931260359716580597037059911829024315420835223933094483703334013888271334188288751212737554260267241024416420746297751820050842451621696348656173502409312397513277332386886080584212230332820924490246031667477466126193039367975708188690900527645207939529216345742352911438436706957101015456243029509037968661178848480801299752141728008824210866633672270371783686390882723669100692970515193392702701928996357318373576707006128080621097879287754451332245757188913289222926496898406365439468742919718763469409155477587501726718527890582566526921294535842737913314813058468169324630318323920193120098557802249289788547003278421869263936981625329459522222832282249429671186070737702118461937726942591665852121943327260491102399152467895542905167389247932515770005137420740385386354597401973943636025547704087010811143255680322697727527269750399739244770546955570052984320543137482185784750011168869761323223737351815471123021376398995542267451106373704498851975002283494205518597533941266668543124227586343416771114558490847477883850229146028417796647554279954048392073749954802981753029123925484913931003090010113245291594516686339146127880927401308943464151124079424579786406364023799547728207102648390072546304600727666796853805622148171523070093080622801910357462028547578068050594625214956249225499007637543535651446014759149145017824236506487855244599538322576297332554276109127592726730003126851690071409851344259035775995335051580205088833586754807828981665933731539565443521739086784847473709695659986200540126647185535516398077539069170261306339966067709541705491674654008177413504827475580341682528264722749795696711451792755763059973787767858200744843174698801125266977142238900976307702606418600978423178763821746919527415354094018744365764689592564982255567085522232522999147797425927142933475341209859536506203115711626674332022604592726314319651005626267802128810600996333960915008934622447986464425814901749381805634457464339854701229277702375785132589865343391911862964897530965261084973007983315691244536116142201744204308045260092210531754722920413587807649946176289862137471992069148708765006040436894127656681209414031338466609084497112116876629972702755731417907997795362040223511937969526834475501476992695856224742306542611091071964008973576134407447256584155437166198437194055081409381754437571843105363951578292320193553283483025200235748355347292875693779830571088131930711996351817820610995324081286732263392132134835281643856882530940679760281992347414378701615337568513571295591200641535153667313687536530343732355537965662184450290009011659946161130570282111157358342969874923572381685481759951074002927862181673802572230110309022615268801870294992394996858383643710518577189816130389910455165618772253982595834985387628457740059927208150857524270930218512558605015901167496936137431028750063881965962988083955942667532502071186565016367739437714423720668592729932510456420448498755657963559538428036624565919910180885925787197073232844296574974198701900381420156412649958612242869307744701466133942949218098971011647177920173102728002268832257275201852560883049331827089833597969529951499467577431403539762058474345948234568999652284626854657687205049944696820138228596658784735595663079337391112390923333415020157551309945918389512599878493575956778581336365943536822449760644590954712785687689044169137816102957285143588545437186465694631596895169955542077680137665284395045396848432165688921479233050652062367182877432053609907562549881667419125382244264121023156611102528148086456549627049199061197377983163049417933045815763968247957234834725924904871782026655183472700506389165646948377796457580516644638505482038038567891354358558930950710986573756752837863109336844496749716334831005678221258483246381176231089727781040940774801816383828919058449659017432659731582957628047561293097090700620375849141641470512982181501887753662928040759076866883205397400625119926025039222147738723982850639777662321838449912275916423036466912781880989257661935499961988180594271417713229266252176514952410275270548584764555565720062730788605845587501665352549396805399503840109396754785114081389679789576988283978481837619934321080922219458045381163151352329987704499287032580369294674059387081478123422569566927377822965926055176973454916782857193580668868177481842930429872854919168187590736156952580178015362356287908936837124236809515332982737218921220624952491205751344976734618538826960019020289614784331698728309481979840729152337583332977216698354143484990019528883833414424283991175292700485706142790092473356760195215908972937426376213069982393820333164996532274112373172439708024860149090569597843784039623199188522292586789755322387542637234942529576170551494919898358222722970375157073647919097127160307976698576228811444686759560692227922570921377294308221525186414246546420249953945380260846616206219164265393234161706982036987154421689552086392526106638277991613853604757687105496381898191120749921755680444303167896362468879140055472653046441798280462573640357534768510655717598186945900937157179372516271589067046514142522099634792462490845771698697820484073027926170746906689517582949581031488037014337634292881589312529916471753321103982152732086589235066055705898501003361143066989178885954864964342448609354742308026759028415029065251965854583928006859465531111242406108317866650153908547032970921792790567798213251879158576584642203810518519790734308595520778600666157524174247015908173708406780646824843149248993636242951487944745585798613739817512697230909806442647166594958157488887894813631320925491257880330643786799573747997632698502717954399717384375874389460836491744302939733360077276389453326559406984386125447090038710848458337756078924635759829222467150801464047295488176303226609669173175571348539256433113444233378065026342617773998396667534562401655256100731472736519454835213732565322955626359049230044482275560847994985813271864049392928953646389954802781098188091419555446849529640361663850972923001227371637188919914064731727813824198669801411111151070403744022295646507364065063169998844210891133835066175810422918081377072671842822671129046507007986191682884558808486272723213669686434004846626495856004189166923366872248588776793033036847786824311213376706160227085911125890525178541888020448525345254633476357593735631738244068763741117365714585619511547981461855390167660684257524412364813650717213038527495556712422216393909411530194243253320357013861316216363366536433430731377863538748125734808702763753612889185104826395072998082810215831191740493280101611597007494646993913451515853533888066535297031582484258192727769650573193150344885252430272774183677659823874223070953518939068077450366389713790685853568285329878685134776595462708284047690730973649193045783510298777863638559740564872868840107824700022679069794603794362761669917524519226381466086796418205098421003166218715373617954369524669032499419341635216648284633706291883854320700312416862553498562854882125909899045367115311083903342754512008183311199425118093643571416994498281296869208910266642339362384705392526654715722337863869294900676156908840082724779179382623514556081265459182753945972637819519531919763279369554938028574119033953915919873090499292065720777488648701434793057105981046884996967995307861794158451721227862495152905015518374967515197504164329758235578977217906788144609712175792768111436794369660708811867587045018176143665274548327024234040162816463820754601385669498891386408748656472911355118181466019081235580064429916628652340568549371319683899173644143279683015671102557049043591240122781463020968432214361578052738576037962919021303932613190719403544641382728615136864666338384026142624951001449477252652211401309025583332993186644304031416468204329562791911768165310551707493249465282381355043166159072850890931300980679605894386436726490261566705146654850479172458470457760109548666772589460337268344261197249401597686568630163196156225182234004086137588770216610220514328840187287839537755210262824788349680987134247364115220587092290327331679514073406823287721737289191957897544992137454239012184188816632285473140238278308442921757763356311484161352418767089214131387283694689425216118064968248459851241403562495572815780377183700728440887663944812009872325772227961149761309379756511137959641345530421913356527026381691480000496540433108777404887094942001469706595559261408933754964213810194478229771884105144848512075492688504382978872017277392471695968178051801479940129708295943931555637276943227693040935529843619696893864944256674987898803212592014768968589163182043464693643160241272454479891108624609848431984689742862873382002690731931867577553696612278704314278420862519960804293690394763815034059737936366654334461430411594011195755485827761548187001719607924327485539520017489690092916681689525987889401295979685363598003731854076098498515040674679723729447736606245255565444733036929237498616693322235507233669551722675157909738493028777886273644597820687778733704725746920762968216504664912411623023620461403456834538963418975734032377204274608765649284582514758783412879648250076735112132895267357516738224197839615759134193037765115777664326862501259479557448450100943778390240586695092648068810142315969562358210475599967263927318610272439281216176548210816092758807758402589869151057224854068778587089477594003238761933819591273103424571590235605633541781764058911723272837557646652620763829990243489912871218266316813750286946850862082601006817710952824514575824640353367872290971908768125867423065626394977387367459743136146603687643763279018417473336572567637773496389238004774088750320929223558357810795402208660774615205325828053699771090463419610400431102812935251143001455170953042648807920210719905230173822753425516073552222606359481819066668610319840756477406996066327167497497009228595090422055181536322431926561273326237190625185530826807838914268365538155005467186351194939219544850213804516231388703261567797482000151032300384548609952855025233898538003613791743892901984948719845311299644716923760640347673517601311620703212691082900880721984057111554057619129158282486074062883761447348697497333762689377195871573085745629944853488091410704436069434854663711381098203522511504217822254974239125351936748369925282081551913750662501397785375643483287427214509235123811693081285841852726008569213517483335811790510351614003464478817971794143245720613147326179075430060395997099869228119931009637280472012656222657346284666188476221901014586657922838564729932472679106495857283001902762957299468237358311567835891836918594723891440292580119449916040868047355822955744690066209341019457990210401775201429527946420290962440947095597586065044833311474286201413075110194932891495409413227908848388846446281603896768850102706217288072338440210767755271808285051242824405698478118455100662452700021077065336941665303905810995403186410137994149065801016929663888661575443456009898155640271533819503066730306647504952633342144161850521730030657702416840020976383084813524249009041431274912271593508988787378409292160257139893397264272234755300057927886548574184826429320762628930149205032865391117651831442406901209576012642548256482916812730958949835735657830365935210596719948719205666136819514940575929981755963480537913173457731915267708897307945888253914078207873703057121460148835377733818996286140261909499843617045774524678538426844999866407372337858594699622572467192869248798730454922051880774994171898096679085682459242190622102087730132601708462638280491266758330030914716679492563068392934708936889459107192923957704269003351684355998665033241806957558338215340750974129508850264704665994947662292890738167611443017761127832001485999039366252282331069181367345839381083628687663960551387024326904561975426963164506678827488693374261633695527297104705096927199259797473775066801276342839509937095971090990879297101761250809167637015025292685756076471316214395240478227963409673214675836004652878195996179816823564614211822956836692915890518751722237835258562541869094837752696757534191113560457960516444687052955111287720113129619345211281281994910150989380173373474214559699513429983840351145706736148612513432550698511777440816110553615283550250609777337614076581865605499804050832360844669869254478100185227472976694089318538513873679948139956904558999234615128257532311675141032154570760199984085768795101122476336771403803909154890550212932970379033707514810439517428291048046336293330890005661700398993686492792427472322247985304734717385872598097137443685062179844787466518401294688812418085579955654134085278365779616475062722204391015739944127213516387572699782811658736556545601299025922931130795983762222661745653134559855387374904338581469712458587022820500110450876464892115275152081918569293578823965011310558936028807803169479570793196096913693023392714983137856009673358284097370306699788174610132910390317159171884226011795835836093103503559027253773095082212328371641727754218976989793309204811013422902994265540999513924625732152449235085786928490782052083684521717818687829828620859772512601974372957885637395341306457017619920281712780267245095014930386828144212287828827629889520400927519201174389491345642773091982210194492287633755682331713632972147098953471368548568289998936259494282728859118962728077698513629038684606128973216087303541630362370105050940818380518165437881677524813256002047900820804003688583571394383293816907766645236664693801603127005088713878312106288266915224831386918565734457757814275270621082954739796053487550394724993128741350011137894478961700521113453311937010147886508098608254215883375004484072831325543832124009032823408965696574956615017486105743388552116266500053135408662368412572965107616183015882499675388881639803831148499113274303928670226776980368710874724111980861263406943555008303198631858261987985921500175644383498787067629595748768945218905884411221302371404481482758585939543100262286458041872381896170184104190653263619839234639986388458537186766168225522724569238629697283447789161608566966256888175395697751768361197455778748856591925371116870685206776705687409005422991633767305874679755143707662535900607487118610538958042422496014698491359620600923847380290639749152594649157299768534330705564960577691715503170294380994677839903744187048416199632301909950938214185437752621097732525258407280296350976978416145098954838537631777052236370637093205700078651832739281768205457074066000942776484538456229514977091240465725649140326195027925268345077667173325423702099293920956646356919779008246859771467134064722973219220467982847215211116323599844108850353240466264072235628390843205653172715738347527137143614016855113403357983289621866405048090507136815125745011398409935407870899933396863781646784646321692162593061421932567758731019780748852316835039568873671290195745693702981728769950569228775981568922690553901851643436600597635881193036754369507970555608546721215818420153510574893200291782790552257149771953967026655071709877089777309097065010649249520963748223633956444003648458892918539884443177675994571294525186204638449961752539413027289875995663813024793229294601826181301496894461229311135277088245290903113577111406231363208166503557117747813332514666889481029555925674753542054896227685882240057588714771898539902599758980109324798324534244062359774992226679828101518908227485849269256739223557217090357034634199152246600320037052793832293870191442803776214504386079696561098961177750602628108504652845753151265775292529946278408984469554749358279837865933896904359931558519544349429640456886390758010472796952106860323174862151209475454481645395233892908225451264644301805492971140498402508078144576821302760763567653754025191895712881519127061111274268123641537919741913372686082410779124483005161186513510716714678804582737436836750837318467947821995223938580507627544182219223337557003500541714932481389478564524301494282950729554812314588297060737900777121165371641688296061634801265791688976138247369963935538116255522598828177714204768152785266218933796840148069501549215872828600232357776357604679432493957286464489616423475083764695336054100903693641474946474719814562813820106996793357669146666208509017729718335419147679370316637572995105660308234525188824025816047301651732297673086012719967308113062879295566373159190315783523281995538064750427147005638891085326833696645890587962837356817264784089948606151275876217382459300810972341326597028805473414307383982598030584229155286218201251585249967253090828600213598263975355776463683241475941837645091684416443055452966030079178143100857819027495435293776033703415153152771172578644684823540818475631526988447236554988788958357894384455185328204382230624791373855465995524750220571911188193291225186957946114475578522977784457098511525202372419214842397377544627301460818527507675467938580532667980654752582942027627374062891484707230456069081580983276119239540122230997725381477987899936994223284634909766697618052130639590523437817191468693664860843193061412097676288608280031510063750940469911676409264289713670289620048673730973411399190222548019713837131223716194303101744762897225890641282473761594210754240994012016570143572084839101396300696448616754510280928583347140629958521878433620788392527926814717628340825157008634004730214321355707056004151860679640125982295910349840780819996546522146811387230776051347779573202190340091385261881031873715622058261614783194213715192426976793094794077002026880190822005884615753071203871275717284844754460223461002284312415578775914090561137590576027915075481421892726114162218255955075665735996570502706291101307644847426113076567975400797520872762421708511980081990663606571266123591402786960475553175267554134983796149541038147426750333228617202560620227465888956498190972051510807401211646001500237246563768314290629082959717169984454081987437864462188535416091072862571396546193770298501762552508743492399205457708764498114273880364781685922384986508189609358083271527018370512791811427698046244651476293105108955543750364700529913475119020396218112601710312534783058538067111213367474909468616408011620102071728746482655307418509844161809098517232370364928757708647207419570859560880456130145800993437784462254042889302547443445817678133808491262267910334707681305489518275066751503099727156943004853662307288374433001470801089449181650501038279799262921311841283783451945542029018413554604368542077255888499153386495225866941418388300146567346801578022789956225500058935059919752446041748971178686545569496424724819966041381819463606765172007939652187453875077574079604168339333790991432553163138261681172589322710045259854966554339993872060692018472996592688222592760959425313050850962622914985995084725476149457320284995308143266220331349020932140151217690783687600116202087080927900740404091785148072619458293476995859640544207967522070844156502033578578220469127616328333843216905903358620438362787314943117748102449175422142227085595262167828804933752954333429436545384279439098260703757046902936834865733604707525399139668036905489431061673494693257581573944319668481151068809542030071134607344774136987428157780866247567279060588820879836757810673598696307615370228635542842340514902428629691475826747927934274455951526556347076286626697274859354279992575770622921572456188292260698792837276919566232376875242366943277145622587453027429795772388542170522350960665859687562617778731852664256677421704971514034401872711142207705976534127485147223411476208176429686599242933521348598608233934582736619484839359066275019651218037625426680437982938989973272132536196507478392515220885108291894049394918599921775423889883306780479586890482214402873075201610853870954564959318656290024097673066387779348903909554730934433031018385110528203857668596508937676222519337913755626113115797702989664180654747596190941692574829998590607902982727269498077246697473507001802363327677850037570433952625481652442324881383103068178186708421981767923697224254382886470015362108485344962688694171626285625680409071716751221959439048710920547100135057351338608437120147870491308939376835177404210701074492648268292602161674168953344644105798447119262400971301411383948914319502612899068574308176628718979869577079787828152434754199920083491097265047589658481081027546792157293084589017067264859422636549679208979355351964838428321296304210728163369628782172317466379464559282510432825753011446808149024584030466379929065027177047124891222760827965269092626733425125095071112096553810952329676969394473785000290364179445064521793983119513720856313986921667899145809036212097947089666837695349188151518547729062133803917242965499599608389424040240440538853492217875295420649563464387898075023674891737611936580719852667130912257064347616140383758209772861935745004779359309723818141191075550919159629015080464929272908111646823354401206392022560539549806822652921242875888383309281526908170322988580270707073820376621030142454931339824665597468540192288785469028611761557623733427289711006612470038709426406383163095887640878527632017834246274000589790134569003334563860284838036885080521472400179280576235230537324185195826235928634549245695542038097417321482319654024059085001868494725871212836213710576793082515603848731819578181628241806389107294953923646627363869135528506904113978996130240664916901724965035023112511183596861701407204947171550825561456899012728515202924998356816834277515359896045921027760373023473144489080640196120705604601528445940784959730457521840620342889590257466308394397744100265594632704410124621363251769509103165211711717142605556581972426907025742558519195593240021798340578472795118986191327400053255909878570134470114637192187670761059124320656381667583095612190526523257122960202900819322479573609101810106596141312349698019931738321308181841354491513856897258407791380452794505121428192588830025484636830532394083162318616530246182455890989977894890373273060565014283556357055366800493259010443078356561259362047231392525403487659422241867617418692798013574253437717955905232930773865322404491704676148204339175318093627927109328571964732417948465658590878835598845556299364652709316174509950552947315144733772778267866180950357537636941785408013885842892183395579285838462152359284896364005866846182772583508631816215003509032500774404870477350738289281140926433449976147400899960267852687993286533589734784505140151988698062328668581757339700703323164929568816067537238936194212109601164087907946778664970168205395841074350145423394457792487767278229827563748655973053241177600788437234962462858332751295663699757978970471996772360114929169917507745020982900253517914350435031981610776225034197242667853726549359084504400821705045535541952502013737571683367114017501239953923177583900398305230895427502648015531487033343021048651890852020560410590255008869419275642142960589934217616562295415077892272670065151823755089034976655222460477229535842514044037227857396549788658497045740428419064151485912736040892461357932581600782244634027435168959510832367158462669463433781793198368876610890371269672652311411990995328691341408304203286320883277976849882591601052695000408149696536891764524078734523143212879243155613220421348690721488968029152048193599738789528491071985913882569443492312886131714994483710455553167573189513012237756752894992694958237184369969926593725834098752002343823468096834994798333824868047792453822535171374965078481967636670857788026376821042014386229160128476055143736316573766888365743809836535542004877923561202400843693500296073479613131070813174206767476459276049602149074837383295125145791925915050068603047770347984608576504109443410676111297313454827192972428713160306172161512604614414675386355968057064135555344239070764597555595911745669539728853076236537731977628155577969971358732855936481475100785149136835497131520756946218197323382646545973313769478255177195984076767972608222073358681950334352599709646259996856943868298600711391105554184615563450148841589737239298979536959549826738460884507377494780660292942163027830301266429461848490984064414551517299737968513550550972075988275029781366927752117555175796428397151181060520581739729249875869315030849911807285635058224953802464951224225472916962117304873175150769865821385594084564643016675384387982198644371154732464840156624720373560524054803783749996566550420674212832999824468084917283208617651677304255719451612615640984803078761814782013911108319568006801673337068463082758561301736855671887058328886049595801480368378521078601041364904336684433029832550518719146522486155204140209713852278082657033389192423810845574803039386295292152174882357457123042415671932915291310170417473828413411685672264583771812238999540664516744270675107337922036647827522348334957503970678307836340938613058604530612165755082102132623208255230810650870649260294751254339086781826596016593400740328491090423755216656654853114135514278703828741651662741876113356596682349683186203423220901762043307629291864159593194998954340692119322915498956687293426081007947251809215156588532311608268052918735691188493681390992036564499379727757940736526621442161247089837936280285975507716607818849628036428329021786078047355040738747879855594684054158726497963983342525035391817462536309954008726093933564302687845196294223063319450754569914407899373290015225559758305014197707123557576829786801854450781204829849668675260763010641393535339249077924308861239669993747155301678230398927746339810236591527134538473650933878301978345209108126083791578430527699115063472524011588005194417414956531485577852649489337607623914465941558476788262641423368346591534688047341258982762674261445766906076224353599226085063740291551838601831660918225740451214210005915891204778347095932228917551452591581675718080795295551228100517317715517613627168933390223825697648053145690294009731294492522835535389706808199989024442976346828805233823124135467274640175595765349813710818978871679350927514130008714621600038563274023910976927624330465170976036462437201217780282842958102960792149321565310431187317912362369281676461779787796565071173519169812686476116615615186843595179989252363820298025285565934127582071313487898330166040500932568832635052009367155972181131098973931587140409628402209429878557216170431288199836159464214898089838713746491146484952598262190801325403403324934588420987252854655991617255768803202398655000111261518039023686138031903654904635212496745288472317370380198527920450443037474035722853823702972947639148303652325700879699293645250824149034728549619927405138208548228288917049507299655153127772232824051590570395903365908732626490349786735490404110145040009726815742280513919893207881886008293608449168136847706111868781521242380886734780674985698765743469876914631186989789778316802673674535765294990811992450227881887375739547588104960044470798707699219656125226009001580192481880118260301217052141819111122630910346853565842672020108894434541455103695227148013106735057077613988262524200864193384480466491923694346794615765852218561581491103962949003460997559731404883605576324170349180199062192706560910867803268721555698246091158373704003525876827971408953660068649649696455512482770930267339240564901771840489822270771761872279776467408183000757411211946715582174451189379512418586500752852079306832713207719907996874310096217349424029124315914517373785624624389539158694897259750360191904883030107037315654413377996170348556566323665495793090985900389300467641723243176337277385939686064061124978287403395090307325195089829729936971356964750816437464183644613282387005321368162267366225650792009972361497515334751957217673281730333433594975010777610413441112054657715343173444270223060927690589681952565864099443725511421763501232883685307902386557987720930165314507866849316978848111988789906620194086270684723124077295015283802872772538173877767848677976710348063420198093482475110938327408624613087162660132214700427896079589511534431926093261585193060823430639484490570418132392131502429539288296755001229484107196484656985550079914853181965341290977093557544548463400717953264676364009484435050560540975145100175518588894526901810800253401628188522355160567262687640750237541677634198466169384582685459683262745135167934440315226936851255322479193370184835139445683200322293272929333209758768744900829995775303282469290176700979103950025656481437345592125808151370758482368431995375271283647238948030045284440068897021042193364611699667110526829300905320823799821632359716493836598502979412442767349353867452826042948782227113519777516941548522921424232329027145922659562945285738177386296139246025786544633914765159568510592597296164393573672822756553264536812383636716950484829944245051362450043731579011180453713066180015713535313468083660411226865765199883238558447837878018989412419472458503180653144030836156719425442310945902295803948137915331213295684141003119956502875681919713281510931306293915965906240488945652986613357624777602687053038797598477933855909432265200635052250252213668383455943222702927359930857880559536320170208147471557942686959631329023535484953037004515373255240133672163305991821478713595780622390130546848871451404973876589036959038456980436793291750558874382040113515812615708315701326072852168972404571507272937874436746198516840106864018971063619867492927185950502057547658244845239431743059397678346210022738298768191598804445556829689110648426919243658859518712215914457691842997223018402997233683238245062541920099381053350757607632723896293596456841286987986392981887926658121909705062502500701717852705366332080194922266325594153144888905064768542009124168905314931580562987958089237362644440469706303470598960961743645457575068569383549652773285835576027163236093568178211933812720205702548084763116494521735839326521616571921511102797895294911561325601471366382748875097002099876949424209375985563589498509472617823599284920072835255666967256382616675038485511088957447406048762311933912436290926790674349927521167540614727009559021991604437263436004028485217338462078865043933763118555571990572854252030635089153481097899555359583826645360347431644344024921054699132465654953703387203804891628740214222432163334376111107421392148473203795839202781215827528044174280218560510482591601058246607553748490344158441755416978690416047575717388479789074640961933498215275168505239093465777387411771924101548791728123362727341773373322403498432679009444943103220378546044933423121451275929994448467702614062491478248115219972726609496014828359442152481740081544360269492763759717905216745381346581537466219435147866812458712206404026587319582181963439604779885263947191420623124490622592789530325766083104166275384216087009263577901473253340934150531625549100067976037968110706612747977716409190913158536183558740593769373409081936265897515500865072253770701159840422421405888660780435685142933841875303965382959049557571196922557424110973616804137139403209529547786018637912398507155774762901002371804333729268842342917283298111996368052809482157940001033157099354832855030608293195594447690390022934944754786419750082014570825146884172552238702186772049782179353818726903334243428156551121341241783744929478016703240488466086554856110450480733839051831820547976025154221299149186362339753695014473693400955797475458567278834954746700706005474102604815395568461232090863821919631533690250284451687479529373553937284303377736335602465351021103429800488057767330620597735821124057625525347607537439431042150541235197726535192439614794782100942618541926617777663195476840603704092276511547286465019994027575392959957664519084201806707083097855436017924485387701736446040155837152289252212258583283523773395724464008962758807174420967676450235208317100614244245432410702316765983908962107524663434529183292885710008614163296773829947265000134968207125728113248027891601172849933415352120585323134549339993627719041354016903877909511870541565840884577947498981326667197874550678584240467404358834904366031010056688599910973737101324288695346275434426043455466887619694521225790180417550537872737547252992587935652453845285362470352177115176663122540565675862497757035677801405289972903933997617503082721099034211290747392634006208712765107131301011596304867520580360357797761317873115104696474537521497875741374153351144728610836995904128455719578704152135113397253284359667359499871940027670819445607236237018441113431374552180834605285602434586743121798136898398757272825382797197163731407719707828430878484522095245061256576902603399594023505542767592728936805838618318362778987987556552216178489046977715587895153482574452133192198996206906061663061372903742804758516658504780271796605680733406161512664096254588160910035073434893764724343227914741695148660639832603416812536851244776917519698854230472240987434242521641291520430066371323132380988232984245372923571463675540433561794681264238656100662398881255410160713758163205450771957629709555626641391591064676037340607843688583082888151728176736342642224160908817410391481259488060235869861362997812835678247289497020130112331837007377891924498417080294235915158631162379456118540330857144921763294367156149205983809662785219951960115457027762226699280452163159838814841868529614062864075675124049215980182840866088503941142429974801726346826255624620932526290336822200368684177705323375088402754834044563625870870716803666722283278034942851496999306134069382771367717939503674000986077104903801244896111540628582152990991741889429739623416037026842342604888377107000878068100536457284297494477976483908503395610211691232226631030441671876230520876383073541211520405403899908259614805789036374995684766436188726848678664268843830643506163503905025649531331511720091194224804001134536184979317532018803636548589131347028957939816808229911934920100557752355422117982975855871878359534103214207731099503209021239022426126339287379782696891979710078727767629492072356741948485539218436801390638408746825209566881783055312623878103749775102653729344516022736635688856025334222928987478139306797428878029703779662041424782862206248474523899433522891505934296879505381840658453655326010373220284377085994028983450800863589108247459390790722765274883740096773527200371848905953636475942630572802459924470174842610539446429928197079711392076427864999831841813543218150496731711506269943512694259131266343938062712991081835945954187241155772827576234818283115147031278698500114777304277646173902935483619991223180160856405305541927336085026401371513946438325943831658048095597106029944375437555787088012151401582988061650727476929443579046651650319883832683111736855930394428661591540203449893742400671916065374054592704203297957918232791796572954654714534776954129010744407295766628135371018036804886651790830740303878024651898698026054843779381163113036808491113547153522195569445731800998827010070763230871081725705125341685472021743362242937349908360659984602208448983416396866182242321155896417144170993814057857724147389286212560101055655354176671688297494787818058408849377126495256071356845381175734189044239817156723451467608125215639868223695830545245544534586751213612293086619176316330884874047853648852987253816829053314087721025410156892913724389270780862819867747336797548639666913640575694741829344881365819174381464812561211984029925271187485706521022586888785358228586187013692117896836172433768779314165202406661250832121009315416066474457737915946009384081713256655776468516768032438346361073280257478444968202536777608322697664239689386534947291482768401339113915638215993820172660650090220836566905318971019974753728876755307835645393559261781689147976722095091420731914886295772580019102873284960003313631410588368324181341070993826874709558455688885351900504094707220467767342282236113588118481892330450067870091104167610258266103752906653119264838012522005451701686422848877052518883090077709307427168884872760564886102040225512249238919362530088512318757128381996956045710959177951156209491221786268319559912537079571452443455653241439280708684900037587998409470666264608377800259357724310870379935331701831899994983057337477875353240152224025533176813130834881633865531266113812290960838558705340171472505267131238136564500146677694108681619459544802670633157336516557991623029813244003675726377057052429007221251550233747684298311333269738706818728946015193432882015602448550577335381812452598276154429829521429115262578519025836888907232458961456868842593488157656002496329890588038657976114720085922538744806367570181136944201678515985028483870495031503874058234476995495915419089741307546329539962151203147459082000115456428021916620799563351099818614475529238595366135410175634666008892740330717518191433751283425842013634322749779769062988398121807391851719525633348211562171174600360431625337158004234333480679733597356169113375296064207037506604298536153327893724514984912477508054991155490745786252559770705325868840746266808947075696398478778980652105202730033897863501527279381963675486020930355514809546403426625485631450938519139461818995214475251362578989671027612239710149641221242755990281961829685292089271203279780117122515456821153053030898290523696066674889799027541386336944110956655532162354248356481191434838330009653656129732572021558954991914279332415278688283754733433853734458069845360317483031783127572835874457004667143168387321794880766599057602177534615802809973774480738562457738933086572425611990157816404756321983261355363723588918836780884828937775967195971066556010430403328706351615200112478149546366601093769819323430340951656282467644952230058938035284297931192512464654438891009486186562531395111343101235329840638319047627791368099577925199667642497383027003808930027007025211163057144470311225875741105054072142443157713641901514379309504164300535741169248270259915533215403646537601214845091915679317994624631747320459492361713942070057508514809282168304899767585946834531523344773003445870116911607940633056246921144525031604969213639388105455242453944622635164870789412737200209520132942209077462408455965466339021608821287703193480393881064685731870450908582065498952240039371027057222238106968081733219032849254245984321616906246091559526368837884247231065155867970247138071645691096106512590924557580716792745331097012227582885372652560470142268539068610763609235993973150226181040152563582308575541072840975703610271540381409650659453618179170585832423887152394215514807883630125292497510117825985847780453330584699302576940010688864969462612030271311556790667829494546582150976130717180441007856154688522184795039972130024818427611068494634441410896101391851669644487189593544668750936518993843935751699889669540158841312054975473593547469483952872456871649740763856898588103415357038012531926661519149661526726251898460047267663623286678017998646715932621982649424935010476822331358071480939854836695764500158060084611200783908785828946956664052208642610115956864058481281885333449607402029860822071088400575510790583816514145111743587244022791345957428243188053423292313221858496603472831737749485681742946154057365522871354917959451899024605469106225305198782579302205951852384897675306239572277266696679744398961860632318345711582856221649704046922474599033466542947459023974069929549037489122835707501298451356929082979176025229567818541337959903965921940781511574998817876583513777526377722558454091703270019003434308836284744873401545478104127928913896308013243553776472868212774114283397373242575650727692374656678549471779300343257844409136992217564731387423436269293782417051235288477669477641088995333956598329541125299429883321880289553183879644581846786116086464413266321194985400776430432027791067230850754280035541221499591705132356304591411826255985797538208317505706632748305678273849778237718477384411200133433258099058294884988569943749334609567207409174404214471384607870228994584418640418080009945991857710063045081570641201775964630117348003671336470328433068910673679030513981802168955850548710179960186801041610624084981425759561197000601975241841364550724236802297311111780310140325813726143863194042971642030127848629494451438931311334874570417221633146052437997785424528274104882874136667222605336783028194672072161253322329734772135498420122697697749903280489117096918944369045509702673417570393319433912614359748126850598299010174503702243471474888789004629162656705087215551729360101863192268122027383672735325479362673254971573408988751217410391318931806016362224592876213830084883109513857593642318742595723214296275646309333557418562258862977907590201560617860961309504376987751258976398057750819763905594176337061808526724205483976922017392136096081952541634688740319883565079718677677332979276752412013088569405735682783648658112453093158577178371019138665661660864464806964320399370437617946371932806699963401654143563269091384499820357719224640412698136266527368571286090544498955966219217818600292424035829995630317531285347876600885653669262535279939822318864028999762499596555697728572344198702896269481100340258088959520475829803760474215094640807524467580054224626970175249198640852415799257783850983564553824276752914544830299302960972312230864271695914215887374477236997538693390933387805577630202042662550986684327052908571340951680458778055404495175765963047309994349918592654586551944631946955846930588169755777301895502553597382676627928465901712166389251314470424890843067241984372887744574035942640861073260720198394117736255519146709051348089845593347439666513313976065133694099005511099976575728042384141324631691029830858693876837841182200050199267534341184284979988581535186205679444883283831756728185142299494713317730793417064644461829977080478775761734133181766553309987125775446103508279489205150852718287534750598091105169862620989758143496309911482995237144050202195315918519630213725679456603282557348012893164655622356988745775349866205219864325658793716998876231272973107044997161629260215046071426812760869287389815086519768411791583863218632366659946233376258414921811072231069718362935552680038366494323986421979545924007721051983202342021888824462910527702093526469380801992844560438556263675468597622465113462223255989713257980475094463339159157828111053114160654400160589754057887639454304874337647475797683224344032502511606470287024017251715224230857423324959404017776318257008205628665004980267008614974575481948261414335763444522941655131588209314146798952972306253442619970659865527191087202018231903524922378788900226937548716086678301541418246251961588804973726732910622886881382024447000396178461985446455630487623026138801923653922694046952953393511558179393090910038783517942174373115038353374046729967249100643507295259205369806940268933444358357508406160512486960816515159996191677551428327228070866479960520467248935169679057865988063061838771537749101254074290403122820586344833335091384188653905311932222625370911164121659816399907820469418329205279196276943809103249396309182360242808211573988356034261543250783324758461828959502285153147863213428607098666700125364450084026934044649486576045862743314822282133595375728508064955528176094066138467222295042327017010162928725656553501929639757794429452544194064951041554626850326880968024512485763338782140812415926379665407034370402551892434061264764300217503461548020555127925148768797372329698691845280736502534554678369693614996669324571841511605844801265076564574847070309208405385580680912960602518895101154475139839966298545237277828061227190800170447542168795955022190424856626399605262148902715022291736292948525826202747609463372301242639922092006149031722157962338050966276683953889179967716633287904862658994367843108331547928577906009845751658827997080811340079126099497078797799771660609798190896887999369388560666172592985382979646410655651536144762316135213038615681342335621399304717670523542999411353270508619481050435271183771390747537679289710528056683618925133971108444037762393017639553771405720941345769846077034562106867881012884433924474106031034167222066638876291182413803743572323712272135295050675808569312640517127055924785182776964276768345923617073532778305376980396831329226286458068360412727886570682671484320707542664465875813788750768065561997417719162183566655228263550183155279731153258739069117028482058706451312449707755180059594457273081659392198216168154258030551008844703513390991450726307403682446943691676610232242908506024228997847727682849136081607959834812636974170551595070026095650952408463973156432354436785287774017454170891047569339515440267364132770757170598022588505761811638149609155675127652689413505121199714992315606661365260780158248388071300445225564860769737605614756783413552849211189140345524796157925475995753857142130695647719611264932166923941788488668858029785872195399021652580334460746216357614239980685039592994014992251992381698093422466185328329749217088811415503070159051971129350996101075002638519904506559180087459788698856173080465216533864142030054948987752866415341670738258545135480712566323442361409895864419734605244521534278216805503802015871437287856976166427690347839084270670736827622136212740583501793873084713225814016240224035625954892612795613212223566461878022602909594587545499634010268842035282381122488588192957642008243212030182303348412010108232268825525927090631187012008684284023224204662362598035266346484550743445129790529737110746994563393726908908727474280105213314524655697669052739550373764292325228872701547860698762181989966101536746836749445972681438173535500366161497326095613646197177793593983278336252918006580282876370833855068692831998427260617477981293309716870076502380151978363983910917949823215711475302367749332575455729609692711038474914664480796187850680099627896324543976135311400644842778644876086782123528792973781635041164130990018773699991186805589848215078169056273586404956187379065541230124925898113370443211283190313799074475038609428757933699417015340993774249777906992376187517166547106482105323793164131928839438251768701928137011381351219746922774324961530741184796267633533993579544005655008812101044054231158950745781547018986739011667657339336730184706366310726853716594717897213543151396607924324085206154429164464149914238594495813508219241540434606574777525043269561156024177846227525764138784825525585865441739181188996594859060682604909979823851171865250178932425221444879480348853937916205880601170482592390914963194932125471570416964350203320780226728685905801836456161440479488054333358578012598067834060903121560551015143840621813501892927483732117828439814198205434453743993925943204244264097758240713750294407374429985684242196161199092150333201394549772914178648959669355315250260676097460998032764859684669933533603536689376469942669126048679708075473548964754846234078793790453153428877006597083385103572001394012946775877477487449380857589072061230745477889527699292976516195344723913911712507181514130802557088225427161585959314971530078832595288043253942678579558077230808665232604556449122781075185391751703244353794837900542865211357089731213385782172419943029794615389004423463337165649173720811726691507699639863532723676591782663135644075509651975034259396539533769511531584442061112401664507639908669917238296936611994429323784026955514000597807351104100329239507518368438850021481298463642936673784427512126426541439388503400376383855117114279874592963814165376816072516857039011822712095419971110225172591894468396103745320963104325061161360761326144695483369448996900494882058766972156482623115795838628761144278857386876093063864261662378702139539356713721905110151039372642762034454408473491622357251866520835796478926327970107467885909132874867932692086219162769970412109263975961995260758032095722143546930516210444700502513707713069329575683566144447709544274578129795559541017822011554650602430164298186193086142780393623188657759123734745458833304257052844075209559164530639642276859594816928683544315443018729705885998789184615781349228894405563158478325764735623888835550616344638704046861110876467320438362291373048660225015965422724415276660461939413615442002274887284183073447747045931943905879558937544731660863014031165550043699155095648638436963950985708777343896802487422988085143750485469257509266860446955866408377490025561955202774912874109728506885289919446232847971697739068908939875663376172723728688926824925810308262589043070305627242576538089474529475166473870840216821865746303313042816649891406445324627951468587211954543657861421349496411852963046104003393283210177856856586104762204339851261238041711284864566652155609290461767950644657697779525869457150485961008693646942076690646337252980331765597423154220127238336254655841106461004729536164187736859002772726643217483542852917807285940003800610178451786358159745951407118779139564182130564713147681346368395717763454655854530881412271997798328035121630255036135880729911374460608106247929718055882359891675766674887099427416808375201233526898488482052895470201705807907888187860767013197737942198150819729232252737155841501554547296916932161493820857619832548232442120157987603256924190237598919111644123149213617042951018306520341696894691362011983698073978554227711437543246552437849919701564387807510550461272924707625233293832209879848448404917926822446031333514393757621873424846328153380005613268318340051584985749914340653132279028747120495978659068196192938923295271103713835482099627118934554259112918736518240223385347417829675550257082584192468046458443656668648707432810256005660557833205265488023664603976567542911457637451061742904563982304799239203843581085918334672325004110419253301504858867216939827904535556047921359743095379268645410114206055955720194167861004443404599272244629703202277379385179578231183495904874883726163956880063514850005742738893349292171883763246507152233912019807308352461999989151461172573893130614445653921970752140012403802771896790759068439266366213260946948720442099181487697013596274357726711792101995647870823689191402943991723874383446778913060590608833302826452427965926733952423579821676223367371202310988595544385496916815539746593745544849386902201751017960637394167171872511809367684325323203276697539206384593510390580941613383799328104417153674569101724473959829915025768233720441940496887099596761408458505705335386780941317349966399494447272451547754287464716067820764477981644514097169998720930369081371920094926148351830306755400731607074610589692691302669426219913050229701705178850102769208478615955288697112287053917492301475417721481275817470430150088373958490980763582916377091088426584611628208276063426789943329138947793162631968180435619860896926729226530026083732156749046297880126822745943218602618454040512552406045202296443864853499761578270116179850539992114299172313282379482469999190487925886506117312629797541294921150109083311919277567424826260482154976723581463793255283389659511719773201936307536129183984976498810917416160642192069653546531695468661575982761184958849916075794865877191353158628501969329733388242646411454471481660031600206273063477225519031493857309988432879411056470694543675458385128626124291440267716970895516469733347232127089469330998614554440121248335305810695158774850126608862633533993384850415645615394041411996485808945561045101716429404477603909432316169984588095283263277856244526855523165220657505144871595991052047145991717261508805637259349205233387101269421114066134572905725302401072010613702886882554153546027703398934892355107976202597361482212614323136210404246834536456244230647639679549393907636330110861317137194280404541206663772420662809144047314807164518431403263881764875258220506653389859697379362766061183911423958120489365553807535796446789365852339397230678371808100274076211547541700622278414700899015218851308871922776574100869763775461142933908105284972766192154964866464083527687623039388513001733999018386879991557795977241714854849053014988916637060999090702687199845395732759929690428738031006358914438182089169108096630411449467809237691856364617223475973819915741179334774782211432496457406978387876338525107871063836214120253702495467441908772777712143983592084688791081961150001654901337252859549729942966517193507111352601154097363368227342596174027373084141687074990922702330597571255129941709853219081984701284417349930070415444367643920153666035323610837929940187565866246424863968553007074703476472738226001940424209885776517144044658323077586397077138191580032008053410983675391373940505153416174453084787501204787322129692387974651738182086886082323532884330289612017801860730231254058131686040758723074923938247147226048953776248036308157260067588364302917772870352765241710366753567717988233869853466020886018780306996013224007730783404830309102868190253899934999396870817467202883306336423070205964466542590414782914530164332629398544311075380474417721055775948799893348661404809807628817603395328601772212195256776046310462141339626093115325124490270376213961159360924253245598040579002168775751378044511933666096521000555677254027220466570593904740151816044181452003828447643447648918445254819530055312251015468935254250186307277058433744547669286767047130691259197256024927556070741122005847661714003438041673168950784786876052978886602053330011942999216138116614681893567680332418312958551157576417257906158930452249881490164340409922483960823717902079948798875626088080156665512313607220860865659978049942015250924216967588987186673564054590508673982807870228503421620552515384297607749580152207331846685992915038873293873653688238466982766340053793297916421291022517597179799097969287216575069682921783978814877514729059928917953349422977733998325408837993304182330582396019940480181393685569924821862736737709819266074297552362694358228781240284376054753554454286087626652002054205837080628686237047064111701582139934169197425622711354953517910084772923528021304367869542848316449957357040627599148394261911389812586719052122006275533311699498183775239021494801951331150607677615429418820406326114679586648716752063309742508424862563948855286205944333908978734918536527980895362347125069817051857780743893573339619122613478729029793347959246362833225030063768483953877570141498330097124238221281129706299255978518431433039706262353446434023643819365030434454687818269096372829497792103291276962273352527121317855141968278039274589869239336399584629558692607228726312814030387102662347072462241063466895647637780680019552109622162320465026161598693505040510875501237201367460984725183122807616863970603620320229779529955359451258413724449677040647983295817505736766952737856316298887906122159659795155850968567246070164862933105133588466282804519442253421776233727416824936341333175695348897666228434730501702095606933082998950034531810981193934132878387550315433766666344366932139798845192793961166505862877240490168420695483568241340564347981964220012043237285824056271706986639996688775522130702939891542278506106240894293730248535409936934759512253419354306876279594261812120597077065889810502836919696225711192555226722362917518989821166995740925761187547358390461744808857737316158395374379587091776777574339991322221575987751330101421299682172509889666802805192386577168884277579906158910125020445353601588450985902916720471944356417082399973305810273452349482760108327799701014108881759004220731713666932118400999003568861447610005984785884943139034891887642002928217187930997054136995721420161368832635120102733064661175960095059948421469412000544764232368670673419662341523275609520369443155555570122657352227809174850476691001020257782714337420443774551829137776563851315716826706793089276585377126199181048083986992855223997887767958854276845296990185489038592781191006492609907598469403260621351410758294990695513303852610049735693569832727674034843858039470949465016019716449742676346550951585365628082320927126124416248520533625109308525512514950403514972263650542798960711628357348527855065580503772766419048650233657681142747694740360967769223189059551514963912943555446958595008547953568363816191633423677948904103468678755770012770108704587755254851416783824502889666828319011672907974970602364417886755484543677463781365165532289705174461475685035292912667300755418908568198996699414815082416139254200859785533032671177444231166612656115201903044205339450244504796440742656385903712832828673018373094600510119836042003319098670269865105957531104996052400563684519132578275470329126969866714827548063928076153626541801728094545316359230140442153585745457606475424828069726503465041522616464801817703584270722143318870931266556896848564039776526627585260263692994799010558813728283547485475328943886347315534622548887379732215590741149049215294522144819405210655178615231350097970503210691061664542544680886647802672745114933739240710022441508584680396095686878929305230977546495965878093268310151787827177164805952715653201822919547679688871952388442719848274643680424239224875660296869681913716303520561618417040391331785353466338490599434433496010319306915117588296239805982607643493972825551617086722987445207581866939182544143138042836015613034886238466281931321118811183650962215346526270069524955012744438061600235931688406582053642348645423521913933813366254550427803569481032664233555177355662800387673399741459878817152727654552758710356530910508911061624934833097009833619448970737890893755037358511541433685863044814779202502345525248937827958106821538330432816718984829533866221152178935442643778105251130406077343646478617125384845271282058261664549639230314227940832229687574095350912843295478113999516386175722085739948259503094651067962293709091585000213977450327985314421256833277922247835665038703469021905975848659477090477665019978467273250759595010224362239838545345687311631258537223183881897370294846567614835324559621307655164800813075067543602161049640815894143036361330311997667310884004617848467717870708749462873172585373822606853139986764397120474504631965388917910106567159764777097478183165337268824869941840619899053026981479116018113400702923299270154418843504453985866670296079693447610002092292583111365630806719245937673401646110024507448673941107555738110803396369982387078995536995442182415506352749672909908687192664660266328060384768019616648382814959776508091677220033892814698969400074226966787038665984163696821547148000840827359256465976864415652436707080833596612553568568459652235642616871880969449802609781461985366375557791556613697733563837980817572929983168709643264815832064972913217195702327705481499261526777401530048536334966640272302947809508694966453369911286469534643823690973676032487713209990746953802886206494248995245544896401322215583799945232302348417762376622000406858703943368929803852530452324861062994323694637868784294408294322881359402892845259440792582218585913625159848589031036452461779468153199230313827591028020551367669670995888076900052017939973913950522672907366356729236703796883635352207110451749124090552626586148006550650540825832566007722534873267057306058216909221587608495627162011749534986261330506937437376753784242936571838468835314573120707052669594006985747866043196386684055981365361797668301691211674633461440087234256788258222141355815311438910279035969402286075600761029166979142694105590955227874891349823883423982385840747001697374143157088553651078956302395942631326625279909646909173580861310642270687287546505644993688819375718436676621436424269193966117145750109225700032897059569937255143794445695134077267845717887615705783818999312268416456235995993033399583977920933378745167545561137627104518346910421442246705970684034518574104397189459398079561606644711200778120455039837460766881668226509900450561723674325118534387720033431704937825673685645354910031225224718698341105921792712244638426056957328200278062372548234403552344277448467717740510953934173410465801376659382849064132154182743795816738634062953657174088805192245093582661956714444344595467050488796826356979998406447151761920875203771099864411745514544728939360087286564305570885411003396432227397527552063219939519547089617493762735849846248661544905403330061527263805028971597670926583681378169890005699329970762796478615002226899973266614885146801371375543548138275344814470336112673181099161100355016260821889363127671265236202790556794297773958310859266161836195804386577384603187415605142656412340845621795374597303718129611652957678901343511238047444566380001502177241718829570315491571264534464341299030377791367078672608606419695451939705782280458103153435023313034985103190926038195065580852616623965149083963197263482663124675760186386448767197455469307712931457231597610103049667979515824437125971591750543638840814228452074171238470169276686595138981293321250582942034636388588396774363481671748293815288490579171375282422643179855224278106205797115181621529103105554009312904608501761268957760263050036627674057880795431190359392143185503946479533956345975792159868954549125362121123097267160324045621770189554041308177358035549531494771699996896419879177711371991865537749256878634023876961480388869330164390328301268997316647758361834894171816597913948330833260274878185987335144557850211807144366999047011371828558891246159866596269141248034505567482330615628274846693432055052245322826582020649483813127366025567932481347625825234718725779334135285987748410886775314005279237191817983780823900514950189800192308929135194134118330445878636478753928632158640755612233613961377615452159030932910747302293593893825224549486262352946742272522983419018229876902161197591552967414652696590913736145404817770658379833875619062079857511590852564857041021172825784168341911132698160768453625165846989090896594976906750398574598622035521891982959149096567316913785892562870709486232928847850589283871828038956650174717137567468907125463131641747159878239134808113213223342849037096069550363839154674600308077626075602304187642936219932328107961755641613190318934621290069559635359965506614201380963255567621052034026727556109604820139736651434095989887156756814349726854594162961110615176274882005230459452500253762318119501945279723651464350118007995599015737817524377556417193379642896117803207336640334262092702210913465268229637071408538743138240127289880637444437825138197818988774701731684966285589550280825162088613897946238214088676899002645515748238193112579491735953617121855011485109811347696638914820587702734353975219079886199611469326687040755511218932373888522130955630967729466846265300122589603193812610848582393334524854661642111197231209709418699239771684633827051368979711411095611054965178664452867211390591508834577502503186236989655727570174533131678071903026964379360325517631599804774516577520787963752363237174684741304369240921333617141596963363313977238380263762833454175169462822828134406682354634320796231754534703850625803591395006940537574297735582366524851770497724798443599947456991806230930609466382756238951616300016010073308418723165180512624668301358831911709547609781684008128032925599451640966436394768101636211956472998231590901110003965470159848392117468834156799887895981069505579807029773122951150073755559533192470436922786357773350614543160097950067516309603954025411842999461422831359573313998867112598830811851199608285330975569582838795418251695952022244977245560975824298661200458759625135415781458877897308898396110930235873932810862778509816929510950229213016757970792270061886079174331191272568561512144228148837037765975801096716335015561945810926100471453128763511792312075314543331897115638287653339217662076541346541304721459330530615564074610648961761323297536796905527739717646889332010978312759786893282129197497261753335336818570938538397319594089010015000874152035967717643588220387826926773826616117942276084312722888829298615628815819290354627909929025420866868813974050019890653485333071148490416889030384316760644523189772131780611142534760063835974825358997986934034202875509419372101155968269905051452061361403032600727344347753895820500225876542804782527592363214466575962549422808376623088337661422191004248803231047305198161815431038953266370358100585682848657589873716305328315248824819914085062320355410903194638416879983519115446195933638896788231588388562270945834004287638158633118764650543497034135997659122107136335897284329399956234666907876948200275328875147309530717200775433606004699558001470520188986377881521322892547111769817487017913060728137699391968518060090294654059441040931175630716722703054927620136575980470147506731749104688460972186176806376503067369480205443964202170303053170543656328030517056886313903834633064130525793672014554646424464899090087337651001585402438901984534312800465388083400530093670593129769580373136076933322987812055801943204660259101009218017464077624792790368054102952966530733825970225057367763777822870183328229094234013877970824738391203673789094269819235703708909886762464043944688171565487439344569478515162526938436738712606656908884039723971232708923327139493910628967896844739369354136650565863384006461450148242292623587981227698850395206264971042709032804262779572441935306159752073355544404052751540041841822502065212326442663488258692637201770436862676948213963944096861295543304699727575720474609166972698129989617114226043847206753536481249683461378032652846564177234757574821593808430758787751167969200088131805908240677786229355396970045371814801387708577771182837968227673415200995827680064549619074530865568648400347731661866292762725900358011139453644291895620805888466575391915777648508875994736801926505915546440651608828792562477140553107701212953706478869467419993194189569322885059456967772419682804261120562017892386307272629955313873393350499267011106424379236025366833729930298867089538867367040617723656428679852576167756573060860593044408544155163124297609082799371150335906697240963644781276344104919927046685142402030360964658922428066048338493649034667601140551027534958914263426355797488830808860072007260567391459262752877798213266580054767393334226287261491902191800920936339440659201996993018391431792406403677952521639820013170825164965809490436773117374740559610871368670984314917646108193746146618932135927760201066279591588393615719183348995412162864210298033800830921620832882958634443068490343852706047821064282253441641852567088215235239984462054047585809102751062248560002432663495727888465500467505225380046134203991941747246044772160930035232461527586058230488657776180800165647728590780089233181008831136079898536481168502635166700755723347830259507698116356720426139016572154513237932722588116518724175886691533841523544604336776851608276461565022243798408047423776718321866976349100865214972914230301483043242389585279540134495609528287326597480047424026134121040572208676557822845623036219937389445178110039758514447355339021832818888416477607583804285398648756992710894012082711130052951046419229432494748696931553671927071509427062345900098173390337989489070639355665968776407162747552177765831072698771130866656058858479004090376558876816744942968401719621178064785551252679254104214391823668679125141620094734780138852401131868972809724122068690263462814912959276577496556863013803504421598245602665574161457475082725394499061975290518554826711574606071637860810165112135863877910700283131822863288130031082798402241226297218727654244401547651318917358467214161531285441814486745716212770928458172244780469889368819296754413517146854162106433264537308931436338792679013527999293273066395739049302870380212152219970258331495460911817955707128347005068129798226390147556278263395883196242786742048019323039085443756655000394068688960725633483000461120182801918426684532666887345315822937903263161579882257739122280325690049897977149643911823472924809467785658358139301901046893502878895495195533959033520766407973085120201869431772077383057976045943307264144817849381523500688239809077304278596672726487328272453997977057215305102529487396468991625861453944991753944389365102130801632940072378072445295353800023810401177906602634140564213002240180119174566805133589356852096641959078186342778656995831889825157377484074927922505211846416633466521833348672367057601263453454958079160841346434217130825384955633050016974913219662900959779245386993731113193821653272864394755544644606088761260601115628135813082701526309739829785369436974725409672159644988171120158042189267428069491246806441360815117932716118363288316306214893978723132763717900219763408825829530501787006766352492881875288702310131493547315469343676996877128068820368262082890834840193012094386160745846912719329978895037127150721211619777981573195323976679661245220649221422208941365701905764799806517085544000728059384902087043778780810569927171466306013032894650817402370615740184429426431953976982224058013604043376718032083513838107791569759922827776956954240116661263802462283808442603788161074086548415130133173605349193858531069250881531325633710287451642969884315115749567797814233406546880845423304598139453542476317908892765894299768552738862713930277768316645627191172505024274051715992426981815987262315712255259056755388116401449681103059592274947288647139090859233980822988774299658073607251931955769153574126229586246858823261676779771282489314795763990165773443515948703031403541364874651782265666552465185347749886295593840586707053460363335199569370424998583203077544920048584007536654374711902101265606833110739210915166142567501641892777340522343180703644763798711928279014271416493508499213950234344472947087203481276082541067469439566159843139071758732329628059080674670521870340038979137915354670919020797170799644849988577182536969239769663883559668340801954382594374653374967336447203179844698083145791297090358185566783732983999122645371501551467991237775046917641091622111780417237929776544766382562084935423835887464001665931124623497640368109005477163525924782914962965769925835727054856582422674499914530838474141144460140960886725788955285875428879021662761175173330071354366151652654370561440675663091306449222348707302724028786921963781127469463125487760513984120245681597538695133512252762540132950485139484471489035723762321027948764879848549000933335206804372812036759945361008785896225317251733464996897514233293631350380501063491666645892072874432284986948766795586193146410625429796302138061121381585074537526064189256555687377124216622576087194984210683963317560003464593439785292369994508584066947256294475504710358560471134439017131385298370374581043647548500175131846000327629912838836624002300098345560275077825780977876906962722460164004192731484982220469735190573368707654642724166316335275678667680231879935461711355541183639883350261941816476343222952149016618737505457970526807974324583491793669273578606112794323719410478884036844748081825781652097525500985808892372379103931681912990362327390126855127739681427492129466805828935381236141134128208485199116895424244542816765354951559533144107743581965946884678002015032935951933756308003752900700001997926583805244644056919525454540857858433345895985868863720856993044292152678876788303353827106541129823991744023771349663468089843045111477163516677880296896624811106550993396355447498131144857427705491324629771669307973066325028402405773946735963828576656139176926743017221121932434910132252709957564256209150118864100147360946888910380851675658907730115951096230274322519199727082281101911603272389953079085543159079165892851791896534034731494781294296577736348017551893314114266076308981597902224934998462318218904432105981255040239763645208039193556444874762008359781633503897387988183699100255857918732000550808524966375646223904322118091381271123695190629971274421631206752994795890082095312081382854849239094634952706446181207803189694132589831912890704624816571657994035666774038027361903472813504657407416432305172483933209938678525083065440632816992480228147174901160026132622362014032099771275110365098435567245156773938326353205934236769437545693333307469048860101325949102022132657212046516896016303440890916612897417408001073399550948936851369450163696913579834591797249855137502030319463538443500270785480687200102818826312245934889401549285928564442276210941508308395555635004158506477969266783125592528946341792469205902611421325610320079059807730169483732344169901938182075907621096840135942363711012659718202927406071800854669738114155202620748214448834843318902927768294737263033071146687588496911015174571390087034075350122254288748476645501069266206601438034342871258751524955826686628983280721632348575685525470160706946678456556352393768325602188451607097170865943476146886794869927375615935946924477012347452379198026379043984953344437792924286020388729899783563264786317870735273186591167728148479959375520747928569891161518164589263955121617515514699512623507494050186862232884276894886677268020046143400404196099842017538597131772737742694069576499919899866972230979707541850252129537242694889449415106636064355999887732821617328623456318117238411751030485792452331133087065032426726054532247989972424256722948476341616810198252810714457527366199397920315504361504236039532087359078925271002533105083164044339691028569229285284051842028875377175173133490861102430993025867706334036109617950527599538228559432333378098927059673363101071305587259994093312485256883463531001523782458952124462785460134320737954195871345185878068291386128691087720731820372586298906678588478047814009836658829034152454236384321528933845402010523901192249190469516169424763709012256643527558973197507209818205330066583132493197398774442760966630010589140034129026095070949982805124897527657716422499771035310414364494243805888326690421781762764044634668316579685005428881675684544372954695326599545485454606041212451391591414440365241383028899953132196922408430700995737329936433899981186771787586254334421655810812535593829865162091500763828747650944249579654432063667971253156897161751431959928950837816956447088565175141842422151992784484286000949597215743585936465542849357858189066849731559551401319529442408945047969708039268877368377225377220174572675327309618109569687620915337855923142800886399086568156541486307666714094123579171781941372057198244061577983666865792330424333772135804543511895302841171441785020382892812259020145399048658226685906595567214246927274728535653382737635712402941723619053102461049053137901729452102857047383990586053123882942093943077093551466379128767142575828267931554726655536034579530492746834501016765829088264326303596803083567085893428849688259397763661867921032869249393356773524598552697801325570489001385153532835215248622607274587438696473172021681775614171217972028043060468939685877697265918783956807702171396789501071642673176250940219575495951459566021601912358807987798465412095180385375936435230691189328090734452150468087291694155437637298910377881274010867545947316128331293697092462983165226718075342086494769660679621818363917151861488546939695214149294460609812956773971572856093458066058384705150315318976672213558151847145505628164349656874115822129115568433777151268495954575597252285090683483463069398518117373825808729987686490341323487852150014726247511850191370248438260152698327287705985927632236650849341060597707099524817576262080754733974971485087025533099496337073080747917953976849696047512905900664028856865566561676276955192039677277726928319613372249826209665275709048356046747489713798277291882812132732718630371708204094481643506956410380396672610676448885577318648592002913688939876596540234544560641196721186224572966238628445577261955835681681439852613769727961606350855014638931186767714873988484869520032014293957797657884745605851457106245554804199870954557637217443424571981742775234346104420685461258654841764311752472346278411005889080760457646110350916429343144698466019435961080736329635495613273026289922534090064012768435741966925037528531781083594666271589013496753392772215907974970287733793062313830069474409951968275505400497560207409151611563085263391995618802764829140856012499083154718865642903173077297781334307874564569657579217215506702749977506419565914824933656278095368850315893657482429756723293921063249458107888167432818460962645399567661278867323270727810041414791529769835680140908328986854130884087085713880296076239212417345880628184967580754051031447012309146240570087037296291023136298273175851851035885356837904170015702110611854370656646079634709961118596727949237641244704284212764366478463929058306124693272790183468149864834092260609835077992337473789522921538342676853177583692187074379317138760533512915914690579827942135140430001402694605365496055502309404956273961140342079104483655054416525075047720980529550641962990192048171801681623914146719013010038707538649941941703993979154078424335758487374391692715555990912542887425099086469119367514466922801209488014114996065204381773294217231595987430728899139997049713201233578836880058804379400093811886057532166545897742509363487770122532425908667773897327930059759826606282132606501721044696668225096405328385372383231996825960795126854250452372612623510046074076710272567350753092135546193079220867600817683599310992576412647682954252033974834960362555174322154412981296471645453964022871419494711260135708537753694207425956209397339672631362824010006284879068226467620046381294156905321947814929700561167112914893085349511210173024729471871359684517746646731838672575004726210172784086267474924615526623947629368922558362211446366890492961191763920914723761520873137654146289245279108477324722372902065005082208840813851558271336025171410195210904506337288140342621449871722191125108976539750021936324973070668874294167628750334794179638748246016981533093942084571607265598493802794224596749835859158086976056700019689419475551239447198157846208248517941678903410130630537194021657776368312242932648138114551408555330599725898972658200747178539902122554430689274736578723447258874319969082936961841161213339961930168058626737584096107119514010749197397097906699666997343080399762912675651226549177870737839280185614950218340015442122864027788361830405775484173231558316112225566499395018342617837713040870246800409339704427213955899250216950318760667722644599723802588558760370164267705029218451088738381166301226151662029558282682956735639511884082230728692927710180133692738809089783814251447068699344694508162534534612479069005473116892374056232552635895361803396789140248998975277167603539490089725531311951122909471991616984404199660160365350155137824595296362147281994047903523553411585068153026236991931919057817179430455279402126262290476966846237979225544571345819194836375687164562231076167793052366861006941582942202884968543652890113654411902903042546478525576623849452688893216193876025666469307287743746127923649388280794043137718907375212248959913922166371998333047446814936130749003341502415895953122026647146313276947703106420911299879995421988259924317111145445306171987824026531796678440461456339532784003618002821118648477592202349195900991890895397867648223663488156041678483670401525981555838296616948427324818131756097852267310110978894576672832190671250151078747717188940378358600795279910153548279114896856493412320060965501688479996903017427679893109504333125073022697909060346700251585620946111375942977916861564288130585072035977285658958706194384288635154227349246038776736006425499710085484779871134030998579625869320687201022390862362830817917487775628834414409624459225406218953115499439296321129135413038546364587044356800861012790567299487745200195322144709102060755873144967063915186581210188909611298041510911867086296338655873500510996155376314392615710817802985490743368419760560159727450328680694989684557770244036829435087519181725909794454222690422011615134573435688737736990935425373759285334275747902549708784969890163070426790897560397039586044320941960072557785743420844939270373253421474111769426316184532388728224444853052527356453397057750600228523450320492180792163654774029078026344236254967409743472065329955423323321731637139392783219803226398850755251111408305561546114382956619202989938023601257441795563446335729614810736728509726717052841505410506141343482035308477265298561053927010773747751897934948094560969671426830123166443626427318789342672766065394700631398248530533618953912177685502913043273357030374325691275944029371115150223312570450738727312287992862935062287539224454291764422797059794718764903221172577726746231710759129257803239885220375749495971179283461656745604279771315459644109042083426190315307687881477342380148619233329708156802980893459506193044713061378962115546988272403504616079412934812149556913177916585470489170930925318793690572080193512077747939051137364642267597710070316011239297879548794288403242413697462135938068189491597044121285693333178277676743937634319840397507238508232839844307959598659236799758568263432823305848918018939443608923814270884262674963487202392384443230167553254936076655981940414426397137536717953807722891230918424979991195272608989900949019176339712893180182702935241340264556486203277230900924521015159087834736844814379869431751107340158539963536548495242958575211125347135157124339412152835132680318908223319926864305174487297148571119585537140731701827644370222615526818464568906510020242418527509691152189206728357110069761404804159692191661341951345283903135093332827621460900814246388403478264463260587749215811241463237496901509514407178354680159800587363183884790378461229507441078603635413201276689859181810868788140991493210364240477399122651522384212734514935099317074209620615112263864432675693022084329162237271371668245258170540119432771817421901163183670666076158391818377413221937994962275196837956579849623431161333610879528228567286384860006929650990108593851677412315218574639658286350400716442131690283850609031895129544062316169479865599074749450830585144189842078055564650879396937744602898776286666688485281487918647346407041611926092543284643261262103553952620226336921424377818847315915402294152533377948644787076938453061893473782888031442552271914392908089231541432665501212386385300065818948439962741169985945501551729402283302391536280727297845416013540538015783196655735132540206505247134653902709846799364902103358688871282475317350066538975121965400236858861296824119693337754427777347972248891005591913822017803747796729733109142498667316736830888250233378684392218048081826521443011932217832639311223551793963762620176152373532630584408527134086901181193693538327267564966369599380420539778127763761206765348958004337847457991507765515944787202578122449673742745906527251993885236801990876112465341635176848460823540151188141356876157472573342842238803176629864141951774811294670426167594257770125794792121962973530129071259042573401309265155814706828426084398244784764594595346074631103933621584207899739368693976310758829113684854712846720839867451896472718142598260056831413181731538501050690460871397859849045200850090880171889952356489211049637510526088316100686165184745228953847084285023156002111101974495216828477579567692939862782380118299525991859700763592958095487637696046913583651275994598334398320923262657935886398078279660732313606477367107954937706119657106952418600558887210237141911741475335146640426614159300302948361418951151946199085358989977573539621939796248364399986451906330096856743499163716104169652157670309197180589319785947544210037443763105163285339859233768042554543107458601444334762303588392837964610127399620630289385561519784142227619822669556173064942647638728015832202453847135398431895017132185548213801605463150938876984354701740999088746157241939700734339533093753186661562995646583826207089415312109330242109933098401608292330208023634107429407938704248271832956352207369460728506610230660253622847210626305010223728247447791388940914326762728902890247115058462837993097954202274756398724108920087432784800387499949309303294959532329991305047813109573895218903915426837741571719055577499289549028793015814683276969780701880198557092768683645041065931634122299335804032075049499824153234660828421196259595086585317395933868516577589347268993553120861602566112041286877106578850848412426871530703412611148116611885958163765393427772669622922913219390652467694340755815694198257798996439213689447850730006099972200081981997764516112080754107919400090544434532405879270897903562738126901529629797366043220657060043510944316084563391049661512116294370106042613817607219516002358125938591680088309017478249804807115541251492667815397858392913257219958941514242704277588175316026678044213293576984451694406948454512087640317598802555286891712416911059420308030575146078533074001066155615563512776890095336043900993041154280688104470334976425539863568793560005470016075136790275042241950959098726510455869454385048003289959054668018014491425103079981604826204530667514900104693772965964439018970349640904247267115942838437660098310445943525709375936003675197829549259532160998731843530115060896057052864012390170068666037768786640100343656860028729035687679248270999203573036352989527267342733003621754552757484084028924845533076727501957948741811331877411609670405432640630379233877752428336836994864994692472177128519142337688972801490308221841762557833621130632640455600174203945773466176622892244843205525326885992097791321819531346148560119193481756960317009670156299734206669433292600102132521577923219054375333766546573677040253451375203168193749873754478659817362218739448536733265057577838297771861155139620163845093535837561070796471188347859614952703061068288001373067108940009228020540641262147668839806723721064772028615084244075027633547962371835413563002620939000000008426286194185282328197127715904834897966924698118166072859284119122953647822983632526704188414794914034073948597472228603764792923817914313963022577668061655111926590406401067835840003352368201853004780204723328798581283974059101217262898002803834256154664048899479127946667073940077247755709911766511280409452689348511026103818019696313346674195832280314612233850113254420241516820760293785295553912234177353352623654344742000380155673589633140748624854880898876169221334432873484768548664599859513321485505585724878806187870985204878400602403039831589910485135619538195071728900044645190957412225345825050611316431851734481659434710755194003952376629032798842077610871088638038043486201934936658097749842651974650134193523065704465167230005788921750479029161480217905820206492904526561260496459134446853966623549779014019534890951623321176659243436027083124469308608780327135643429555343356519416080265463065284238729857348359814967109771357511091467635485231308034578529233466662214688649103528657247409123669928629666750486279908936052693168100321806478321123614126261554894935222772178923068601072753279926105194699051361453382871163957623026103572988051078278595309244817732834232773757453983386566871804151009895397220644642369542862342405720721696806461437449158981657271760195070995685049008345919153360075905730846621343085553039324922722259739996279348003487345225724620647883993606245306330815489334890526763051462643772986946669498423470901951445741101394697605459159075067519874945159553707436235578738444883642179799234193114111391799366982970749547822675101350059826240590075241694888408858913885472445322748065860092397128238381361240268501433353679507183055839640701249320347455138641835457648720148435208678129293778396314872773849906478718907851269552055239775102648642852494353003918078421188346300651486636558627251493903342515561842324121127813810409856177500945689451738237957272342639322721100387819367483185976841903181077917572741458819868782234281922840754180080009699699898717480044368355560563450692825242488119551594784457217567816480442403314527869354038689298230449892167639274758605471142030997540356082009436915667417487056300534286498522521031412573442793855933849722201290941053168403183890479225759208477735254703519933375793705510225616692472278898120420810764851207359342182133904071440502033342373316021701329215156108202984123080026499101851697318970146774287732711053619361860886419976903244996682658885394589679191070451635538217907479743585093090830087472373298245419662289870121928112048614612049860362192179451122649692057163131940947160501919244947247563202545700712348116916948257227745337097914874738511646912733650951668945064533673577384839822150697759645426903098653661024047539855815374867301036476113747539714551306112623777917100202002499793109573563507988840448315768501905829604525498266114492158550298674669086303387316193649859801740007027900709101104984157301269498358879516827580301391501044434620796971580533725717814699191094064877138544058629250791679320986515093571515667214688717658233993088898290324277045191982013997372107284971359128306080239746533306503482761074195452411109504152747065406385018073686075666283290935360834342376164167355304782765545696065086266015000837059480234139482715512391770749746088770867790671519948779061820236370877848431325004868637835894445920134881057303783213755618569879521177360589120606883450729677414784897226445248454464104688235317032331638508985016498852645681041845632751555077715017682584594764141247612555851331984614537370755006617708473405612214962034962996729461542114793116115337841499408954900964725476115389026976683657957153234121584963964396346866590986097867861760140155487939043688247617860469609298055439920437317553798485924980981453367631507209036978344437425328031052296869230666065630778839854252019213376043902756717459625540425249571342768084590705813864375178566371331974784003303200086614413772068694598754740559815841304780050256740582936057200108353747419340648507986651373789930155640369477479259403285088747222433752992289569550625840230480972136084114274580249694134923080363792250920359027547908179604603050422215559286528121855903588733799416078283811136151764628924904058348216969487119294134147841136836847993260891446541090484448447588507338160867930192402911403872316544133348870275218658114918713643640276465444448086913876048780639574493864018925560438012509312758417774887544970654795977388647799365176433306260962404467172048737444161212507927441556775664047436667337804701827417124596288816364626529428066056333347410913863173598759419540014219958471060324451911382440208648099692776834919082249524714467421095615968058883353439316738955653887105669354748622197833406583631238159529727820783642736468055969069760602961289784432131093721454801133748020351922295955907609934696577170907607884984372573806116571477482782546669679093712195227980410343511156282900848924883406528486240321876307857883212313335394268458855903706298015442788457880271251347579790354482887292057850023765732889721832646067364837288337478978168716486152568924950532086177843759459483023422833272604403797339654570451495041433228898411514217143287090485118574234752313889654310065887938458340209569526537293024049651265650197145961047543355284280989612412315698097884075524639633064184958479587273058602580657561615387098747912735015116754314569124318967662504158503300060240665694443837749764090441253890505239514372968076988807787516441040767629081215285444243464097330837508302294067394725582633068251377953615412266158365543100470124975006637638313582355881431733457865702345700009218396201997643641966561443855582086670437161198783295445136231466810905281405095958539155223176312363577580813966089359753315716469864689838407402171110856358654305901070662075464173218231145066056133594176759917394477353855378347138244214813057516921874249010600307725792254394057279423955976235783643181280756363093306087816947313101339594505983374941812562713903798668399439235515374416258237827647513426502167658230437140317783899158209796253478865226560581279558968921581230527829841256336902921711172061356995114424956263317478366263425797896615833017693033615430671799720399184297905739548888099360837887430306674248033560497934493027889075404371425174295673647532228394533373795925516235550088361791773100637624324889332659540052044738166809204328765012559662982364470372790378604493347203877372506793414555017914271516865887039471481374482124575191147331773395216457748358950909953932991904039650120486206083136813455885414202912057851809550233447872891186802581505624383186660996335636187533084750110147181723934439363750913428982416978927162601230640247850583177812167288077718179864527470429434619315695748027395944111102482925602263092976275465707189852253978174539380135551873070760115929377826028547254303745932831566346468564907648713090364008405052136917000554984041260684201903546649757768686925270061229816421743574213475067411222204011073776640904611931952209477772078927209517164320777665671073690103440417604114688753179669594603380924594802979628580223330751531094089380699102499487986725869511033607740105731968413099859404500481407471240064178270175815941271458413507977165447169413941109456983944934664240287316244141863844882874432268055326939390876579487496123909590636808663516910081264278751209496261791794254323533925928115173595244625735559155652994499467807917359299590782352547738643762471898975457039540611365169461424744080099936214198306335486902281471091509916004932187073955764566272666630552871173697046650302430814826003834522288467476454469745073323356661740985881274472153777287025066754161275354102157610814544335128027454993859789456700200484276170076295933305333241439990915788406242871952889723057065701621608746780471636192905553341489360159988287683753013792754669598372134803346213382140088177722696515643856127401833039698533456473009726244021194240949658165352572542930508998807740745163463927215776429623814259597569754858348089175226380643625579181837851427897844777925247804068676803889507470395471943522245552986347744435462776297761007317000165240707054803231655868944253883348373478212748559395527959436347289925014214848348018159721077458008878213675934349998102484117320681169636021377103127633260372629204445261152156189259047340603620546021332081748379712019641066665466693553242082927488523690826014757340531999609463825706903984218220003964693007666730960003077210058241941821812822002530342930157621933616527921072361155507748651101419373489187262409063961896840449929761862344322981562895577109553514675018234722814343830032589008591921684631636973578051935014614139818289093787393887256239301261054054087915546314291496209722155900472726830311910636986462829694994666435975872552684848868420306610525357126213589657996241667968431049047445780104983830050227258913692724677729284931782339015236127698475779118168071110634335898961161752615118230137677990559957870099672479350011845011296084777919267182225566322523554457699231284883266891314827146724587957675317686903007465462233940087962436123608502518141099675293762174572497282682721752245061410251328626847680563945093504614482583915628145870601399937083417389808323595896933320388088147238611734023353520900945226691313645659669491937370939026354803651435765093383607216193703632888449863430129578534696668596185895805184847254481560191668424940032700518058221290471551436666526416031379465259591068881383931747423037142596011801973513101215414359226247639086639192795373703466533490323250627537534720384615135709749136323450639968124467786948150562518520772288662735304595889229328026000542717674133422860436598914325911484612128940071646468992096403843263447112132101334711274749249005666132530073019496453984783003211006039224029614006930308081721997299009369189445239778728366198866171500498085617385577024921286278196296954945449083128736731733633887383578373983310272917653957272421810282560349102200936240005443327848740508043474021132621036644402227366948630882385409439442160045461554786086829588787809800379086906156075553271217322312302474263967281612620732405623144222851760902622404505346774912956714330861698343208232173061353708085850888375438256427800517814810794381341205387726823309447865490673513610989867830668842723341109338027598286838584222662830944010666535951947121032242308700484089848008689323174448958523370614651260053279011748578531133049714330635016470182125573445336075135963271179462446336804894711337844198939019063518640461943306439122713945238801621717480786659132534790131960861710502821290350396338956345028468824059712299234337684517961023331613265877824627865425250227328626882158960838193445271077161148664288683294267137982153866846260845691212951650583402769429934139943879425406196496834663812291056854122662955232638680705272195407513952870717394816274316451641022002483837444666847856843485465937028162313704356880194921217938104032746267367789478448151281777701681999711680483100862955864640465081613534297521463509067333056806160142947816831677901832042680218726508980998474169262962468371133840978258792194334794213662222566571160136642320752629900920078744866182911527295445152421117155905223987638642776807636750800505767675798073944788453712189889537738536751534839998025132023779286815306671038537225743894843686412363268848691907554245024615222451797748797231709243812161403192083203254200805168697002166924030242348806900474412431951833448437648060708497588660999432091235408880019910283415545614245066059890622971576094511308022551073005461905332204694912331562456015258624227789119678354919700950287252286757176529286286631596017855264254125013444280460388945305415261532864420360911564535113844865963786773462228840912021050922941102270113556261873604878090978999099247514390789142196815029423259239649083234068150792767264094145715386374065935751778681386659120184801826635302236804091766951245251631897801161479126349879161965602833846657387126652167877157230191610863050649491126554014538652395325306802532081221561356758947209182060660053746361666338181577388394388192258152842676898387153723641531416647874570356134200730889588716816140385967878747320395434801979703813589545689233537553545358059423646630353043401749552358686388783600808820756642168704721334603821666021413947295491334247310486087693680215883344276695454603340835333715988216321147192028682123861458178979234316435108466784147767858428127833883329993322845423835759089024462911481265957329350961642732141827942292770096463297554485151435950955842684612749296424933232513572912889918584378136048573098592059997204653158145031512916119368156921457072189874133282837942343785685657017432437459038563844239508335503511869174945165954017479684514655031270899642477362562081327673509711914246740151931534509863067248328996360288666037458353435931942890324664910306023852489830722916352786539422764594251065407103408195767829479919229227172275585504694023286294222481198383312293033686806399245687353766042055871835701003308509314332040925873525964748085083711818536852950412171211459563591668714843416303066312137916521321375251981528225067507363056481972603809123866436654702741185727843864050116319763851280030445108340416946987398884784458113454556882836842639933844459669240404337393314103038396205642433786767708037105746486636664806012460275748048445596530123400539890275999046926037349754989313939867637352419418105405905738702375368430129964311131144565055684470304217647706146232844376468631527513589822158799790907081030394627063061909724779721984213259460777969302916536353002246344724616360472998598223832129941550735734528301115510425511729242625973125756097028838450454927524251651181339200197552023853770354660411550968044311684136867265035159608429898968942235346675630435800657943508370283463899141871438035087831362438955371366660614277982010548308150738814893228116566514309811255471604609038849545551247580384779186607142041473193792778538743636727674597609171405240564728169475277435039679275698982588039761967805333898001347640973131141574025920338438997197791017630839183828719460927578776929446989008279291981379306692088023169295756686156608743648878042802082072439617671400380341078424808179379611504494229732139993018723745734695628863473183708582450008384174460950687573327203401474098697516148301145924451348973016515462277393465132204115389254902569812010605365039553007664335607319299684872027236421997396902084881666737627631721548285643932008069173560653387197103890460447859655703727554993450485508791296478814116207260978871282617334489166317673516618891269000015415869437877876938565707942830045108376452519879978442107617871513426409788606832994589112827760999168908826099347077765197092294320748576857824365438035924988221372491625571930585108968512437140305963691871106245356380746312958782153842786356555766574316353388623425051266025318400586878616392535329234366114514215366600055767685043752738580637736797689010071331668359393570945463985081659828111489174406280539162513675393360003078795042724852973545259555598484548678442982179375439313902798664041076848344280365592346110040559369371651110087904969176043195667208055810156593358331343654795056177670630516857632226082872649567620998065553019567768859855530510148117189932366059988204436899366813883047213427679617679906578236465109514634951829623847998900055868416814102597026604376586536407270358415613220779759753985552686694631137832515073012738043934177800071920513215301253264525766467131728330707487954366690876460091353233163263399603634992250615429274019755153149542910830060015104343301780663819072221447320440460443909971254163468928974228155643823085680035315997973991084080912681737642636563508194185079366934812829127184919410632592021148729188393447944284765242226696368838492738467635187632149958851189709343188821130182558192779207686105730791824455378050355991127414966505908660231801637803025556909533472579906770153153951480748520139693213501896049491293272576976923502568619014188507475242562872231201784279201269526332626325214401665716185484255796790246234017516932743613063989584470669802856478292765641762153725937919912015938015760695563548162783557680981296619812769104282780927766183198544586937854349304631270469229156948931322744291364268672268611045230814734706486090869205442690202224033592433481257194056525472845038760307611293061544415511726475402647613579107395080271940315414916820213593631705951885489438199743597172522701343362910743017064594832732889613685578999809604036295434927915257405130761388780438894636000138540575514277672088007392284450295014821417469091714890641529191104075414179096042325069166854776691912509121772147687689015280719853733575622845142562889969965603817756391075261087487068248378141028389714587016947932669748608665326634305174287717978390883046898518969788941939950203738476936986551061091150564045460576235317327618785793489492739886835281569292283141218250201678895891416436685519702035866090147806835238438454299471329220088426727216385387712361027464787859879563016779981393131173976227124495161497521800064820565388779442545406225559446761879690617386472424294660117927487821139478524016362966404702486161996525924636671436542571744490307823180332774027742692433439253809874410540473567465633978885395119641743870709967292612488950178461430326269380569366753625743091121380524328358317643340611422592927493953052890099473318551224686299580295156345855695220861241843045548799427766479074896984148351644952043227554733334679331671599301345289900101109827336042267426613226959619434396542127728138674819883151948027938864182875651820851075934839136582597640873291097333850770290605876210152429940208560796690285019730344020720531102564550867039531393865326265550764004968933420480568225834761402323124883235151766517864356829155456240338698722341471827720153469153450511626762156802024970466554976876768719264800791822224935524097944188793733942083261983194524054838900815632192108694751820026571593256583707524061118729090928279149449183434884193984790107890053998371769313552980598321224929752910488260999312435747352611261507021206019681819510028379860233262906234548864304124674574060049981636418783417882574254384141182061903608734060043109975222813047014031067912208138285181445791001427143117333581069475060410433282928430391075929572117717639261640386206578172509802378404782799458126685453551448672695689995676549583956477150262038866185191732324684288045435630439119906135487935352262157056795318951501662430937395402547239372448750872144444746943513896054170295556589548764103454034953836386854501465634560663492827064787595954600749754002234979249107929222184879727717837678543226450451723877835363517193605177709525464506437740089902254850534433810935632859279620636350443165089651465454156039580539418978165179771072509317766005320516579426214013756396855706254354145454181601754654148028272152126576466818628019197613521876717938588122441461408869333554376711473300827477338919805889291016571815845957243015967160399277460144265467336317162925772213646106249718333250154551128756720190191837363887895967593193273630647987963870845912245445740635782878483044983645918531013008573949565734543235298890279250900348732259077854184608884602822252821646687989558384086778865124040615272916184470907475835903535257036720176970844479280554655142646978567617967761203923275083038947378589684090794097115510778423718986071046688608059579541178141484637068037878668409388221235354470715087765652503378047779992974308643313673092076819084779675555784029465459301647064661913192085916769764887655800106508604339044970483922068617711082334580662027221111879580842952355893696839926210023920405835930919355165290747193784862655465004239722170969474819506280999524197870604349152432658940829760256339513069700004049776253348414814684444628085478611327612528413581707264077488598698093347946781240186983981843934147170533178546770935606417378863440229728506042724551423784989743180509211890912809365977410108313375803095223152651473719687567291183989841713046284483393640141107727072725324363938768966788886839248758325948344372324691287627441647167678905402251279674366754838179119891138425198663089008587671939526761223867486315446879199917511572051991328710669787716482603925667297419549968018622034378577960279057771450677203785821444372169269529086229255545329681608092872251968352882714232515163751469806987292450126874900899586106899478399290781256490676954356477077787669955162596385085622369685995915141729426668611342334809137546303942520413003894872435341412693807464178472910006368989476169383845108184346121541312420238586034966377689972248478342909690937166981522751697073962681316383219123064229561105911767854127063515004983683588190689712043854358853448097591123048302591101501361315465307145586331309828589273840895053649087779196810240587629289631934203778109282987342286097633920426449184339158158284478397708600357694509413622870228313901783307178498604154013111004712997420701944844014449315852714205590973070952611660830858229220829625701483576403325029066496295573223977160291649090361567418359063082452109400984385318563978850294281131269076413450352625287190924005875753171731283697201457551553560201812799273973577912177762243747720064116146275235464259666694038984413044942910077031966176854678464458021607194291582846139226126674901378303744105555117845348270043950425714264455226867004360447933517120949640793974801912246514030763869053979913076555470540125679635752027497138125444811691442678502710216913934894934635616809299653418523920373839481258588443565677309564680893283792495697327537399272808061763978681092334531532967505441295379940539969206081843489838530623759457550989740527712554558129102539715989872787127473272220380304751686454666463058368510547768310032747418438950627193147143008844134025425809694784650373355762623795874496114986045855550470639248200881457027555341323772660159250392748007165944756502588843777113178566468250644945736302973471947092302529268494596517710778540688948921912524283792283563805566597565747571662317628476761842920005291808662981446902211642038092753179994083351366400599907130386116942244518465956929657673389368060381649187092373217910998139112290202481352619277288172348838215563728647610237795079968677620774726747264172546079413073329693395702727465296397696254804836195178288401736120230464936101256332622926509885626965180620973658848428343949022351172920955245649668903438945127995141690289396909628549618787953339388670653344943034865558374192252443914899825078738688038499134359308113294621825331160968675424374609065352906415937225931495606930195798203766795839269045048974450870440891595491470018475812857184203882443347017104695301253020650583727776179803536519228073954904318100276761290851799042814979708767800400433116720156548933670725822348618140455502357612950305117320577414196358833183830191283911378140685959906410256990243567863594670045204850710140337225523344015931384934881587210434612359495470046533754749655271099519077976065325741072539208621380986254521832878206130507055452908937788145012959384902348119198893727125516194992023940364092385299014756625860448680796662809076026022447339983233916984445186669473302940199193937769374361303042502653391891272536673366057866323902219241809968290652107561646060291818001753446489857201537740358939993659814187711354459163770506355565349333202612726366137074389932153638942246413439630706665512619385641000801872651344074102675035431020996781790795842447246751532470961758130626426369308910494958288864657756224485486126582508795756502742135768150120805722183483126284846377237591567650665255340827199279725350429873001711475678133055430790929728500931597192749401231204448785622619582810187082153782539505318115311739562597083685010537084871010076915219597155260360840108885646188353693928611797259708026373551404965908573483420525524505042459868236836447848895241387524248287034011052468931973162105074828932111528703142816383696439070548082395472873521307087952234026724636849565701033364252620276188417263130843865278629610076119510058620601357838212251574875458650150975780407160384045197091349156129301132937835477801953667693501162198558233733419726728270778409284262838101047017233710075027509989208398574916654179764304744017549508009967075766283965966055539128397328408092338800470306604196483589543751181131520562151815294931580194497369508203524889738429140119273010875455903680885998252203306458651206264640141463639590848542575379333407851548489246672442374666764255858708390903445972579523485438168111967862502710650843772677070110421179079868103604801673888532082007081802693816576092323528677377537226515655340815801960266550278092967478553229710351204753224056795867958770470692008001519017584892838970639852050704226388605996134033842498686578040311858945453566948991149806342798781345431221692545696594341615966156014608941540801115702245993190029504714654124628792305543015588766730716026918059407575492922393778691972957161837550950149477877109516684060627845951770984599250783666285147083837644713037963195841109150831146138090818328175478666513636929011023557726387230527013432873390282628898263621735261767291266109818447000005466257607386731881911353006014572673093901343152202330665206761667269282082528794021577278531725548193839657955777846535430656203079216661751092131667893372881359020398952094587729812746001867485384894395163178467728603706959126704343563547003115950491227422953780290948433094471768180398899369109985979925104525567778885697995654548053864523742181501207032349380474695650295549428284038204373886869805700783082077588637004834685086076112268943156292905288629469476428044559477362648911554557865149791754788687253283110560928563780468526177937148433202215642049851452765751656756157157753267135902926881956507918758958047477429788605840621071510130135560588625097658982603876886887284442515876876218705755622264867839845883639557005077450991949578674423700234996534093545038110135274298920121928089331664039425099308247474163270567836754317939575925490632635776193525567940772370970324098801464499291757903644286598183245384159605517923894156756447146480402722821771238586768544008929446741098679441451971011645252011313171879569391610335049459896789462596783639666276203719720105678877171151676287005081637824699475653669649875656069716703204055238149011795913611939161021743668401491458367226596341791297511702148818993600638365350905486548214918677863708915051046143199225101433706945178807645546447935796853197655403654175202427110384044515109391090639857762433204913861436246357709932010058393821837053526419342120291241671063290239642514553399137003560047070645651998612160769720504902625037508756487954514309723066661709371927456536683135967557168206459382003669256255881772086120937343567174586442283513766962867451561461830846590722629017547515385200736960745445372262963207994576713473893364324836947692779424590272663012452863790880122002167653736028784832658072135570392747920563539314434539662766567417246898767426281242803043187452127114292390938631772879760284849374673248539077636213454686210079664301741965832783541088590084195140862674765144721608855806073010226707257701623520841068334800906072267823666204265638796494676835992290003009391792173351701927276566839723107511711891531414362900985322583730011780246843438403203444878730825768486458482462102502893625727551772264251965184924170572197597027613462857689638038131632530024862555217776573037825777016933390821274587755526964249858308175494161260668394820149665794554130550864267153086062298768054288978287773414857233290751986049745757202395086779716365258416301065427763426615881897772243681294259769450176449710797196656195615655058686028676831558649535653434914642045255435802899539655040208527734629171189515112047591099169237651090595702817857479827110221955161828743412686757821281139651099877406067357409887274471435929027473147036568382861107839323928198818622054997918311464529239594922497649397764207574609567523427573567442177620951333925515805789096260528685651789956897257217098815718582066862822736373437276061606157218854246280409242513574079507374894814817564703564186355354465953699550794592973415045309167917746076498897742349065158082922818305390730524430969380451867691324159761296262211148607084257649843922499712583615082905078168005953532369973718906175038066574809859680545568130934449775925322880944320492275264102783906010053517467976462752941078358892357238437090735350324153690300074230333598130138947872804922030666411585664974056376741796563482564609496345923350506432839363796157149631575192239061245354456540610343998615636694993253393304614645206989113674943555707756999208327472647067334477722908217955353879113238416732797394399296504319750629752864258522080235833541118170566402649042202691197515321941520652301413606650379093913320380285425694735893167457660391703738771321784963319274903343800660850480525679591587100186845725267102057459072765589868293833973363804460261078625002878819755031014732849784506909493612620146867369792212342022171971648619641994047151912123082398996927103154666182769196914986381803082431961504756205131831084527993622485948409301371201171484633482929653399004620539212265597526890093371845864661447906548359773726146564209654106005064706100684132330939449990902286619759092089633390656009914398022424682002331034772455457515923497475796812116687680186798691579866985211074947058436896142317856049771849771073504043684212246517107455260847700756630103731379990854414267166485099089855290441329645734563517479485656373584466846627985703407807458692011102609202177819851906992168571147144759446873236474901096663888702149272909534032594614731945776081464958039148536484506826986773856504697649529964523882657666566260853154471210004608128642708969993032472232203795260273210316527794514091860562571643331975442732392408343755132250183959889758177688626691218853731065064073629801373734612054194087295171621823926831339171198079143802847312408885306618063576952442390148291261720417110311684904876956173309609756560301061377966012935516648311813559377962881746010094018875471379592263337594293270068405360081861536323043499813178035190608346732258638664061407706277365495552811466309321697365543651987341376942456841732976246960673761623489591687493081593977822462947119799746065270051228080547478971207444775088451028764686202387869739220993607104438973341055716725718664246755367762774586301310488594526744930596394021784574323152230811831068618265046757942863526674281135054489246279651659945800451139634711427409567279840510621300925718215660559953530107268593067104651809283909274387598578326253733783870049247585533811274212596198068881658547148256401137511269217601198326949061000994950617948859211531319669411464649479680260087330427785345855700079436958016097814477310214421355723569586001203803205306596038035378286254591506436097370956328567528592414286067458023450644427508741509586389761438535794856593668192104886747620653981868522635344798451647519539436868417570747236793192622001770601001094445414624385705596360765394377125530618439650734638463518712156017064514579730558927495933208784929132931483273536428703419289329179366332474050239882260031641445088469265860936800324921728878793123136589610225897811931282135383798637697911612109625637195720280051649700644653089962895063268202784145306137967044378418412704916085033466595842733273232949298490010741165152515418772806517096447064764751275615355640448050224744883366166039343113651048765567792584915606999007720385184255881623044696831583748902981091587496152956789971171729379896674483631643902638914688768319388776204133643071954631337034962061081849341259396713045457879280983706898512634631640547848662002084483917525726982889964720144207858580987532321206893976881295053942633949232640538867216818275563435029133366793353319599178136444270799489220537705771250762275297980481985481663556074245594758057215431500144672994668144905378911964443065699044449745561391254829394145866650030219915700376909622016533184649186096181974282115398750843359834008490541813396204647007616890274229835571417052468055116375457658780199702507351260100268130194348407442916387467585862194916891761673868544618973224435116923201411474352270276805246470602782290497699024879943675937368582416949008292103912049347399766176285698226403072519011177657202783167558789504050761211366643481338818951937165796646526561158640465635661912576882754260991220166704291143849002612171050358211648627001811040123772391325958329634870140293227473345412048959409551052780556922536142358210089005179394727737681936456289994949427986275199206822193745897699124532924394616904637779492877771542881137868251332379086963782048697188122910391659525759790752283845675416186241415700643608531134374554528294485353758787146496898499228382655008517086228275929217072521805838412002859473741113975373361349561209282237916691546234501049962391876593927783128196232008643728562637935904968964287883663398234751715694370390176889979886417158712786325528986248931056893369104538511854110992966568505956823735328860697334931857534778884151807731153676101615855750757051741154316118905176578755526732338884981821066625669162649250531635585328364002257079110361174866725409870115722691157786379979311943116736514091881264344126493550302209911307339784641993357211939612345337493025746153540031512453549470346899393307008033530752453704461957901912697739343176818158044156965846979095321499421278829022713474843986264456700583708418535012579621862111155394874329937920263460021120798756782384116630121148099205315327183118827946814639674214333634609021982140600843790936764016620968075786201193742015596008530179649396062271028854872501951586013532166971412434818504159841257924553464148846092239542372869217634141427251564278360334792729699799892927305314098863472747838216900670356356013244866689031612479028213523776229727963276859310006413289386397214308069769110456916013594094382414725629235257097259781278268206909020108695971489817239014617535635214818041027147329143465229662163772068921116620719542344983621173373204928564606013501540149310375495336437986316924620790975490757616943575753228172049199133882976968568230256903066650934038241743022189271361385412347522997016700842790062672618012629771423184189397157561041495860200474139199732344058938645666337313372470617286352885442049454937742535161691326984589103433717097097780503399566165330899957310509654040722768519846348643747050596108524658815368827491852435643913446307407458972405025614129162648064498391268344536569374283130120071869339507027445661306187163386809955213338207689441858194088110015218297815715652489721760379009232106092610210274834191338922953062859332153473098101755791276951510005417851262591249833553562127554006238086884668355140777456670645668811175806508740470636667781315480470830784176735996829377194652172598044932080015076590850846569203421734212801815106559178888706638457202262703827392640699447021164440814198967212034251918820045322997293530895422236177529171997655147818383620026914439773879900103978345117918696077136214557315725503661622261755902222156269568680107062304505793447643221947512889351526921963215590440859249861237086430380741454660171062676841596539320157783468011197458651325933402045297888797373940436962984887098850314720401632058684439863415379578602300042261971009830822116425172064746441706407500790109140943866077328492534955124447339299914170669827611345003796253273835122294266562333388951006028784082493437781805077218308835010296065639722174370819486844553904178856211815238038596103063923065317425573071180589315633448995819765469738279186073425431838022622920243476675838377271125420192318774003395866762830008490470134968848408736797231222019261802277450259801536727062547780104634379730112783312904994899704470451966630125151805781232728142998530717603479097515120471783304262947740573575800973366810873117950363971192017113841673814784101089011960226743842278045532125017695446680389670046813731356420051179047520599556252231917130955747026589178802166937448247032009208859327035318950242299156080328240534682702747149690223940860246483079429241302788900129968236674269049470767809021709044130111601670477416951473586792448493787617884859281430609472803068265179341552333434357300140526257912636234385343570370357654079399942255152772890356220257163331476408284629793597991509888156469222959489829225725444598656326478720857208581013446136404136217286950932527859879253379007822321110429184716027526426015388851078304437054512902661478821799527643544138158328657195918095638093084883222654119554250493017240979269149706365351620353123098953418576934659383799573160360960016372763817546594755769145941140559927316322194115231053218435555176023281371075448771520667690387422284490889429822313774460821662748067704904520054715455661371885673721992562346070413450382547949458927012536939539508045874055141337531649301466342992339102166615116619574888751934862797832637879766178729133800453187057539156822024662797493023346639095150443735016744746287731081712042985659935240220877461592922395568097088631110511970287192046977914952701963002133406937274455460751904510616719789849486219762450410666092284412039492159465951053871477438773901474490275040878739784364835522312316403662135759436579423807814606890807746169239884409607347114769298345750643767067935750951567007717100495319787241091072905809335103559879956704808617066734068170834488894278610504900494581332142567800917771692315267788105938517935058763416975932215892971333917172109533271945955478273076988221479740393863444065107025684712762520180005318662260719179904493293268807708556120387283974473795828332603555941630029617189561831988163916712931426721270618300218035194058116885558707487680187038965236768031243720399886227262021273839249650333302510858389567867274842974803310726014657867768364001353528519472098329676891193570263695984462393883971030700041886740790375163143166718768693103510199107460726838860800287651824234289089382708250530831650238123445151152159874801117560259669458629279248618326147549756150307955746781385900381052155759505949318322360331378654813587035897442747553368885421155796990893669219952880629851043418471912050593275392933972271813058687908658645137449998033958379995420763815682883584819618879289749260543845549980331299370218146582168742307420885100032885137527808358403526069828866305810894646874410832381259941522524983525972312706696296519251653973833621288127856717650063935250178849587690292592409958555358859008219895187957046010916983739745896068407860989888333593336459170162630663784837221202886835930732625673748959480129596194371941006073392490580637023017098039526706690676400741655379588652859908388929569239055619692703664448057063769053489745599185428728988105047533134426862618582747914382134964274755196673819345636734546869348585965141142479467665023657144001639389649936484151242509324682966956671152813941836799704218990929246925087130891408772082303871607838199636004054844715800111061371317885156927311529298873095870451760120373443665538372535689932029462166680317956106095876642653855746012098486863888525609549822828554852180015428375996365863418513295757307039580451585093264654071864554354949844779285282483614333663732050105716788477283275261346706905976854561088496710350891821267637232566951393722109923276734152843360759528439485854059945017850734224756978338240824397323931071178176469788822758688824699932236975278728035529760729779592856706159790766648707096268167869166528431002288535099668706924112923311425705047520015968490739833298430770808760204030814555823638440799690581518729121068814812389793764321818050051809567295821271023810915892338972264233130759029523635286351269126155469509404667929620785044670098508487788730404861528802338686901776288292835483530561982492150481021665340147456441715612265107176627754608100456342247844065477026090834483698438727022372313317594511911539373062399476878501712130145521802998261984917703991732982089048439153400859357698048328239937326661461809561049848590861873698836990105829374241614785882715014082133586475413890119135730503848793425309920991955962695587518812767871521249610773429055180597154178913827962074512442697218853938823409794153847896560735855970289854113279207357398209773157503666626234987717474703607659042705139088255356705806891733419947552395102656970431569045770453351707279980404397527705704527096516044599235238267277062683892169783874707085655203130370379179969530565750300099117838215603272804550350044899635598108851523621109352242414359108855806041351958024353395903152715167838315018109912184808986898798463574488482089635889510352380246193452349625827729417332433109505952026316454353726545617707982009513852629765613922903775365275202464132065053209002805678858161074777420735940638541406688411156675553623379950101679769811482393037174029461668445586765001102246277393261269312954059136292384162225030893207776769320915541699299557823045404777825721903469205371809125000158655315849001219968834202306711627701697455200703302176469410050602993066046168275458016504354431726028421533348040239878532185150157667369629726537092622331218641996785681166693144034410870083270158553872379810523288503325245036207584383706755492399100228303920915173197204860671485041926424590342059864086086834501629956471925429283329351656064255858431755961027720530476601778045337926921847785988160710540394346533806330725142055887276808246368842053147917813137710569366497962312884005126989676322022259364171163510169584595754546574829841423771612225943048686172316990560210734022251081318744326282347953748970478671505947824616210350095056257709085681543387077277303297868748981170971541047926062524157914371101932723878807388085958152098132440013925824495292187544565271102761708043429838921424120785425995622869182241970439556017530923048917032983199523809908135098431855425097420898281779669549660941605140648003210619525701496210342723620895985716045604890456484711000523500902308230585233996648019468167756468774820051953777414527288182157995438130660679164505458519915608786002847934423521579711822732359028334273722943119191806738790577264544850606640266049621508780631368255364518410723360030133119561520312414769018969736960221725313948869244342730246662573713466678755026540309174572911202097534208432408973108127932963961118502669079489724710615423477526499327320273252836991922424554225130819474611926950651100822267347397996869028274813450218906133772453455471566272839657075024151524570193938643993593140737694545470171705859734734204261590970770347219399922830983319229910920869844537561409278425965355882245062599921102921457256743876648733877590612240006789358352481282073757153046623569867533825873598754801827375892251232293103628126659290223113155919434033797007872318557873603107390123116174976540307226249465014346960812949096897132094706720952847060541526972381839365732790721009955174159171045900550127691079569083577151341129254213435774350984256057861945456967385253800233569676518090030007594969616762285368007942388407755126812371568168266658512964176464346552231235136057169593319256337220134102629217050422258074487269485342197052541844629502340740489446520865826705646987801545839494590349847775300334786240935943928589258842801730829998581281307794828674359802885129829413284289944513554235985445333792328603657297013945523908883229868745400191567248464929976604209980039018952595717752160620353946579521111929137486913566630616430982977868515798415663035285708406722270938828714268845773469089299892641452650138813498107136335894917899541838933542431124748853865559261006256580710997405799986354494402987431586179129270627073072515668382241383729907987807433494122862283196701378182251925824243508826285068670848418036002493857134458130851413053074214071211322668100982396995590276235614764095079687553269372818385718253758413273480172434052158190976039592304661509136651513317663311157041003553179474788530525841538701883734597407605817495296471351243410400397881457993548470107903237174830224591122878644905938647891540151392249699612559335344351123572189870397346862752659499611719744699486534674488921883609651910195098998484524711339887431150826034735804612475648444696352052112227551974342144664245435913727776977507163478650029730057099827556884575305136194587165694362635247023086756846877939425368760460809059408310038011184720910548220796929278406245581197902734094625666919248791472273913767539626593402256900657948682569801189387273237579680788055853122925260769931271565108925895718007248404028113688838743861417546347285641631501751981164652903685457216490088161149549402317780111715125474257329235030973458486850794241719104837880899900790747677198731231173500186196382681345058544997474816956803596767554033692481946240524895346563021466834003458680510535601500949820054924904060462886301894006182309720284347474466206987247983989217021237632177283311121715361729647139365577786320952568089175950510170353707180216464794874801825681342283209467044109770545585448000354061682834554293948293760049965035646389647707998707693198160458883307957839935889278056784404492370117405850851897805110223272217039710227975059547636124491910340191274059895107047696006604621834147646615106181461775187411431089339468497113999044216903774839370528230730553411376022782901267302529144644324013782689960514670704260966427999501607350954274754743407854812764679852466320267127695975039103942830919333813780724349273227336370824170405186122410973726725237543821915837358888792517833538200510162356414731117797171349855404006606273292576725109829653767650277817320624557000901862495986939399336052319265981302123833191167429946387108720679614949104911756465726790379454323454621952202169105640980860135612862198088743836280815994926287630501885111045001771956836488899967220478003066224636443957267251879525030465989384214565789126806699982737329230151368243522166155711681583449555069719029766949855916859700701065542912514055341546040943475052528255895997318745219854935207619157946446185619125053588632600190341016379743453699333872833138901020696110877720833250369989256820661072810173406704547750359282258777687633647743768719649395917227973431648937124530568454855810518771419527612559776773486427197949923178186035567615031814075445777136894102273920490930985379298987096989595442362487563610677052382746147009988705561803057357108712836027849638131335413060800168504016094456853403054297935178707932485082814351372975807929466348918739242825882875290178193833883044021564398026555727576005399854059711895096889630103693508865065106959396213391921048393036675227090875951588182943405890288158891131931008798148809262101136496309993202232306364668712806562891585979580769529423299167551404459010220660906186674902562677649746169683428942134304585317938217464521914045123542782752688750948172558475566674144733679839695280745069630042030499716929123146122746762571217167493709535329770297081746522825817813143688196448026117570466119973481577486625626590518860015060177621709140732213656324474577670606439518111291436900143192045945480550245724812858177118562695407291669717458481595163218459696457266273432015555791441791809602707854412444022453412275122786334119405877097100362701644549731417411343104959016282001497052880711697935885125845736897946195639811849730719250250464406325594275369599254171594578556800407834786454312860973757415177204229456373222419244680684362311474271288708754375704517781739628185393413406834209195629449405862350500472434861890072246914447614769403382378775726968705536018003282474727688820865497675036689232034830595594379977958479088873655602176252431772705852385252321895617817597394984934450526687004072793382941471389730735788838170673618722193161776273097455447932545523780848581377396864129619686291905864247417575940465095959111831383198106312142657723828011408763312180737131731219931425883304616998406155133750753526441040740909533931073907634112946208554712124431554002848304249035430579362420153595952698684712856369813093973886162782551231104251164773506528034142959480284548653485277784546960564056281549650892290625808281234332636437943513818079706847024207038701988048254090998131506101619099759947332956617504602985988728813567867093861770944414654665094598612816870073963385602678269443112646616189871164930089701648574462220597956517314669620513918425602142322670662642644991933559106665103465462800103543960586244764867633066828240527859314687676667791000310926208705208638943221643338438984007868794836191577335206569746239043419325231596090273525616636067219383503827620594917166838380606295673627434749695607397745981062299035578335404269718165802777745558880243166814459685655930541712442211174030425497921927408411576284990421916720261072783921346152269497820169500346559402584312019085904048108083133946306327514284759800720782127309732982935102061384600521465736738869674014224545162359040087487897591474741186218469230918721300165830245235898275685171529522228392773049714922508056842539196999157383286862191271099224437985214329745761004276144407550260904163979676390081399505383458584514820937855877872636007774602146058736973049341876116225229484575731889612517892292264251888424842109802741132661275916479032033994132606790884380011001763389256895216445531330547852640313138948235586916382344735509616086806979670285142066468254793001108443809011298861425066366228953871482961560728323376613074368161418325620665161191232082239192443948715616090747248465027128069803090576760949491042164151190188609137138243969580491263466011436452075580815001923380570699359643457518192009094520047548473401298325536285296705336746349631080642678953874955490010082885676465154802332684970759677372572774080664718972800910626651446606647914452353537927476241100787792425998620112274832957295487527389906072322971129844470298246662391462205225969434321759605712176604670409054983818888813419860103883831900563537008076150072035425062125765855935475341126545238669101478156577808097278615598570076117633542165825470549223806937682478190746735395570702145935901626920290652557144668233473683343100530880152132846381256406128410295134032691605584442818502959713484699470095651603759722928503604976021049795048856400208591170755503921577273971455023743706808532681749078703476631097995009906526868558886146178751094977278824972273840623613226343617610243729123542901973136283749973770502092257274036657371653818455920820103465121224694482889533413593750429210695544678876586650925848875807055097829995117081502233003291521959489123990551631954955504932672073326416012223619511141517945087714737663529697912471319353678970720038555834424640937977975605934448864798104907541658634041283926631263197014936185989036312769550546063244993838774378002160696924107195424900917342616559081887259475481015674115552352486346270319483518260811329118405493784760291981905260901523481659239048615903616974595865980845125563687332129907956257426609693324794036414246987523475785693477212017988818094128552863859176706444398699908887684506154351677314386754646722615856877014764156992505159985016726542141116339072157506406275228615328295981371374733493113393968151820823007733417382471461261789565827562608291756528235674287149404087061704297242013220212236305826096551917107347362170344154297559093392768917735826675883144688347907561494490472652832361808205118253574936828511620476561537156146518363219718291221204454993095859251290538228096628516555166364819431089817403142346573378725428787152749431639538813763604415525841172614033142641166728628829877038188419857441175896774871016777917602513389536573592105082116904436906146250831098665511305125776229799751385475879253159899760027725555992355238761330979759496658021186982945152114993108873389705534158034809447951744122222146917576821046650558454701217007001318963676786307518399737975172602039901964669242898567754211443534267333998879474688555167535391984112794550243539423623626325969245330234727151640543361362649822164863898149070484293868721622978683367149569463518932699592699340344425926922631149225002689645872184828070267002275966168212575553850513800860160254404493851124930932632721003741833354856332828495527259578986155193949915311432539061391163828410899703474422973938390465976240577631723985380149048417695889013771690549737609904710300338455795228858666514939831403364975714336966316242727735044020872567664959212827758181578931341782377311191124169616468058605230895377420243022295555593915137024331140474207784435182395185307818365423034043659671708916113202493563523037419423799161615412815101546290445713631864489797250655970991043791800545843470223871899804242140954639909738831009936799756836999955089564452049265009347927790793198861545670233484076489583793577908404970762679394092775889658105364626430133616767023190603574369105399561768053536499994768430457996583191096968686479025759205404967984418612720814935097086116220167345682088791253533623671814850653143439855837676613432897460388396868548794013917050846786498272720337696898221658421571722635265803693083063428714757620131282546721508242055884854794409130696949655966408064696155941864624116633826460675207337120683416072621034237965959274788073517059661538617033743882238994434364494812194047938310864782152216058115842587848943428675399727658481896372839102463384103109357837945554624098547192201511406409054963423753565579349624831941216973486286566002662736464417156332950262993333668792222955117077932649523219915954795959533519839929576115104675030730628483392072314444147088451481204292892784341836061089553219859931374583535459740241539361907005776553350346713315887852357950051581113100625045807326758349834739597477650685294046670269341007897485936659715257003748715516614598316854584384597589233107670403767805727249625798581958195264441065483713907988461037070226438308300546826541031744578113051825618680130798637056954506612101172849965439494081854584790676384945387059555904253580927011088860666956672576290654196971045008637743510148959249327400837578852335514378881522433631725005206964053272002106440382200126747707447248192263117365744981091790014917029569156850895971005330250934030536032129457425685591507012367052584473202884474875468215496836687428269109030146383222079615369891849387738807980786441809665982618107917251085828216871729663313691747678638510692117099241442702829020329780586923943744226416546863992344364210807391003429608543151448804606449200696049514680987545812599741119942255584836926793594334550275113985383346910188677727082390881539298359486329401594899649939763126264360229343336814187571517846321965444418099385440688172078715534163404253362227101684585220744380052972368201488806711190432126644131423572433868482271752507685508038755354386595754460991336106437662236765240549740539108628835703173663235474542294603238827773615324728261047675742925874072665545067347118641644797938808849763743181344071558846525677212061742472466892046126525574684235936954755803200680901899221877672103144533320290254853778379235256605553477173307065922032846976094723320697629744750176193843096398895702237593239338003796382066519320669391560338248137033226899687463518433714513866354879711608935546197079016661502360778976589890734184337571665765181988986661613194571837007630378774134669993845514048327348832079952558271315902932198942010117338305929995593352314294806195967242613148116894796315603658736872468046184225494503936318866128984655991982839041213019358801223349383325768242623648911599361003087558258062368390324631858223984870489624308343728663496302711181820578772344596695627973169244339829951128265496972546386599574201457021240690722169414879506929221194635806120343211202158016078724705315759298008640991527502242788191420432466291400720627556843553444111197824246701211178021304228187972825655794150749405749267573635418766630095632094470738810339455228161030989694975479700884647932528522206694467099986447674759456302670481721330116442388393391454009957641846339978612494925449998314013590461112424643757223861377168342304847709999920712945403458100087206770315295314291809387665662582928635799075509558677488914656955274826039940697366948602616278292460118025732653842870121623247761200103680698925549279379028086288556593606001052137955866271393275349589916119688064542369407591795878491477797337427564999352927238393424458552630777649023200650581003139308417805717915471430654307614548847032824725542505941720075914363771369762347013672082822551931035577193268875340422537666065565368724461852939884787793845854089357372781208864699704374134139975394086420042489728670344899000483600581419939052356620574442320521500618574762208178317744618080022911029690085665035912219156962528292617603093400042653903077357495826605650174951713435159897191815231926298142674060328464959209035121820631890975165346077030021006663069978400383904538168694709899338888534044452870102450875788458735284554863507144562323722783647907057772607033968042796313003975264238742550803153053441321480919499226638198118873634851104614303159754833429876971008787927646730919403201567608990033936194563436184284431753350441241650529394369793309295938715831940952417666607805914954262590162349819336253831974341288037648575897401100325397994651765079023690648382860480566562730435662664612619762322375480443011637194037679047364390367592298189714960055641900935514030350932532487974431121596492656720573884088640121929302718063223172290488512492027016130636511062478581206269041752064580708682901497774489015107702125965405554992669188650257179251837215720396179263112349250977025234464964689822141561963589121223096280410430170670698394323308593073222914312223110584829670781299141333397639966693884821304648742620493878879964542370631432997461532599956109402073058984298688474106494666167945669150342499083586454335438421066615570596768413535462714395979879010781929727271897748560777698770684286724804453074079987410992035741022523074283965385482364958328047433560387688100543226982438765413370954674309958273003146194648595494561970264154914811073765143863150804544996738278911878376281488653890732419244504389421271860285370920075101313651459660153158090098696902111860671530442351321628248423558839743716001165942634012450927732875132941570558995387530811818900805191060331538825117194023152274238825356198970287498593494674823605332624307493146366242405698646255429515179419896533476374710606790301456869770250479206657661974075932992332743944190803579797638026165149043513987904369704717368119116822126369897929288883063279390271389746053449232202390025748127373566057496807501162613580208334514529836876580840210732257828523159832041739613269893856962955234359237994707114139776278706702914428720971821313299116433761087706565239587189003918174368880731292814478766961882260761109438344186765750229886522211493570655303491955947281806687635717755458842067685348072284712640950233163362810726004909379912544995674769685344039184438242677902021827148415657377595206137990213158983918583189658420288215208770744674218760770013359729728108268219546538411153945864060891166976696906550214608283764768060207567075070585699730157152661515970174131633636215371299288380950521907971212376562150549104497703321607920094188037708494407616732854592364532248411295318359765509054779144830542364462168014762982820396877750732878069875182068867355512936238290177055776255046214793814471563515648375569537573033090108324010843223171799748216875954258102033274247659029638321919360810160492500693449408435817640761899015342178252162640949305639137610744597504462664601211152237604827814599658762848333661688026948914383942506411069880482851791658759103038031832072160497146207878432154191128730069429806985200274156308940802932788924771430951933490675381186325123582124047670855612094420641736891648748291921839855682462880116650924774498240334575067312389122250688773458534488692616914428484112278888665909284931257084618548116641465213615651781009757942231415115913610096387207051866040414251209766787404336353427915534238397139578742919293387886300095994474973886428994118986907925989187290692562706299880638448090287980706239189334228533365989875532501636956849402984236513055769781313348719101810234537408341909143036196364713524081794206782857966477177610771413277408047810680135856529462099415327100147544854526139453865066171911195837302278605088490242139221087008155786852649987478276080707574494629540404854755998507682171425206319954216642258328452723245560837606064263415631854395188913262131279586927362668008340789434808535428558230614780080327058607998316850312179241993655546209494195756204159459357323698487158196570891847382844681460524687658476013418283859068301355249352719565466468121117353738585139031687285625484956111434199249254406141170152046261252185461384936913733450692998175027294319200642137426819539547086737425381284065602117066988648780735500127742017181991715806153237074353017514905148794948193992100091011544820482857987724860304313829417438154096625223621592572615083421939694432608435720955729073861587824963749147840635964656892445685120961722045931386914787988352110463647232653105178282239359152273669651372269088005284032012812164194942960227207821924538854947941975897935261717879775064890753642026783620512857448996280403177377040573264046280397148243630707744983570542972291334332628340138855544884036736080144232284157620378114545190748242210401456398901934514978991271501922161744974836869890816096648474423040044901262955761688160086411865800052388720766299999496638632951793978101946371704205379651920958395597543835560686111213549989504332762120762096310673457054586793006362418768512503226174772082704430096765620529834656093865452316813415468537969055605575927159445169320091420916136949797429952416870426517783411107995244602363159495243481984050489599029858468450107135523181677850319977128958916528865038583233524905920885270411699766522887928482832136219196887164560598595695499004740661332170823664697978320736919420846484390933519272408589169722897367815512141660270539538932164242073245553056957203695412998427445016163994679362236628274104332568387352325445475597713079007580564948276349147341088367618333736888088129310804774682290932073863533490635200887265691285688087051914337837410035464179922458512788960518712547052073074848536746519876172188701219944869222079128904903064316821569751202273935305552956250988003680409104688330755798979285039690109369444092701445914875941397408476252947038445606953934081834649024895866705310550245768877910117043973528830563267344577959212089789377929716152228414985036336735423992005425864833380751687303449216025271416620388413466622114456687993628891025839850813844613163304747786332753834716094500158979293848730610303508784129131945084676024883223536954023079789473346439375476042038260863547827552234161302048345257846974496693024732483893214770516800523609688439952134119383491158789523191385510589110996616002035870080294257848383317821841364796711276139286571104233475060345556884493928854326779468293355777889274559850635792621974946013277763775590666738128405580415622528340685903597579026984956034665524099980855385804857152164457324443174087595745288222103923522215525777413769615661281978338477503308363042264608980154141066048121004687778995041059569692358904046085114047462739902852133355902803081962745178733681580252973516326149969659362649280504627945252247493157485894606174407559037475874992999264468978869051339123714667998189058725281823454457592222916237425679810972474102929733829964969922822593783537321337183748323812941783737249056644063076893815834167753408601811326290818801772590742211034663921535062854599944036733158291526718117924466737994186637498939799180996624369746621014244279468323269994525639822809366781085409901982179677673886261357530109382529565403792317421020489447722133406634924612874593186532708601259067003889773356858928839023689360778720110907580327221812843988300738152013982496412899713539447130181108811415167417248808620907218221010208076856487705224062353895049613183853577988075976737530848021728631974090616617083838742744587883270823326253321785511148087725549854833474348654044655277779895154498597784391524016501448212685827587170757873068655424064492106216170257465614324951129128361950955235489662851488110338709697238816043538269872023006124532329446327088275961361777893776996248660898071004582024587314350607859551691215970613614989308695886592407681871577599790982879102807140127952821529130747927817990973210087169664898417655267930164433391383140721831527809991867718636009176640039156392134847827632126121249485435638872466384348953364778328386008084660354724936186989471947791213852314634419230577734097243588886653812685999601180770873052863429023242501038570680135660313770609719889588344555533455932967510913854534872686269367686950742101112436415362624004525353824663025854839563761631687670007828940488220478337291711982984009986939460875564156364005530606176630255587397274159399436988726645841862283491155921596878065582419013299417555144321946789387683864606412776428948763924041587793702095401916068593945500796255083207757520535983666574253047762790220729425208247140021727478221410443943363496529840250795290300832948495860767192440349790267477166746485775497314923943309099463189389279708080297942981018843207894492155307891570025077276755826445564110023837101075022673652439647053096925896818826027691857296153396339372106776339180240946547830177559593846805801463870939034127658507471505551634201457678156850299775987218416258725793594398842188504021226157630883147305228336891540548441214175211661251927249317154478757890514353777523479541029454861926223787907111172502384734808866755124949985807714546331840756309778234226443658426002364592221367901123527742563550616444177108419280179966537303900143559338393282533751383815333485284143651874524941875049292766269928275801332300187818330150921714967443921345721421092356089537346760487514879402741760259505281115080154698852250996809529455809568099727113029981628377594988932315295558123584438879247966590865328229242275071652616511346965788870332132826042697197199570324996955135547037257314905936925239884064884262482618916926549443596668590360617985650174816858920413642460357850772539120741095213233269683906063521429631199631718914000266490329168326778603346411632903700127605384998117536139896488806361098390312333361650239406102528946256317391017570216095829277709997886527173491415395432925125151465003731495655224917431249534637494731111426092459004750123089013133815906456674890136560713015678285331491668107478890352760504579801442142817077455103660161974272562535547553844707967412756135161213109446393470948799718893783479105651199172232797068096366805483219713805711055320766419899464643184699503479906739210995434461970668814637710157494912231027521336961866154912794825628801642331309021442244253483333983395941637731618444496231294323310617826796234453197195415600246693042068240572149013830936232485109767811487571243580320806161394695092735363677025677687451647132180173437005654104687366132160467764442160045923864088984640723649313648954866079235047092253467980378473982317140286406412518237968345236384349777209519408870062753668168273458898898896869505213313092551478188547844591468746882963715894664958037506695463345844318917418473243151163890176153076581336141093757200128422454892961061489427037816222608332177845504037674542068335327390492396793558451159025695992554303193017690946167476949208255511572560570436638853433615458944306818597079730116957882485809865804677463132696139718224787538680747814132433976536974913804624071360050428976747816270201912162706235466666551266823174420122536362262428273263911964513420918961368384621789037984459684974575123179809552075782994697874797923415780626249534060553753423314880981188575013710092649814953269598660060206880650401420431503577908473294096185140536295197093255035725808975779617499278059759894821249955509612008650619057793299897245670175584936098262213400117423701278956378042793132155116616663043299206749671028881276256569076078575201645674524565226193308063187947599526973918322017379039593650831387215107407185241968176910300755545919349143412797298060725894314293615483723896319386437380832142062499154562263521201613762381825665458069728380161195176284432768945040255595307648768327941591997661912756859366347389891393006252913820423102511939674729380641813096193524219540552110650609782432927443119903921648553170043533077628138164307692400877231070980548595709656639768731709400744775971939468259942541224912750598247927476423479633935593167440817596992726915634242164286688943013266716934637466850128646467723167037972115684877080692199162893431382119386716502276048611543353964800028185089613126935794236567770243572022502098934143184129186630576256955514746534872179375406473863945021080829789141887106911329759926314054958001974902100798026226885902564503770302989516312576878911023825717398103209519024360708787971698060042508601443065400662348752450422217557432409037181885318532301750182506869382195267661620979446713121518360066345705000478880213336298049146928606620584836599612369833001188510725484968788785466771860815356562497253479019889153373499275520321381525931376106814756122983252716240318768057902868405598167167672896794588821349691456060235441486700956432937161849822222083400010280760883782040823964110385266390851516626946735218502652722589843716322772659884257953549839403750986128184017452648122529766971498478031936782199351337277054164301458747134785013379263664163130233423436497235398126465457787389361663316736531592496613109565006593398311349621376813889027759717203680352345841692939400092105197733575687461016257389971686379321106829215789176325803789741190665062117932492128899354327029941370444605865475752423602838849033292256161910375922919775228829103302297755621952024781623582712949200283122515634609226299398722887403682699857388826735068180340266809688680792798780062742394591227252511029421929422639101888742346514471291558933693960423406092331082365531309007476981903539980832464621767304635450520508390788962774485362780260393931848763238091333419578779895585840293256492340144160124165749953891941047901910300107994191510988536934992154841318954899256383644057162243249380478841739925212684700896415162480656023035776234873001037923221277424245246721578405506741773488134758473863879477515038792780119711226676727424973915367722756379941319574921852972071059264873768043920272241997599760106763320937298312007844866426715834921802240200329150289841129815810962888213103440922504496040680989204441308761675096264169181379782658331512549783514862517618824920896842048968321095107854761382834298223936573118359580274725614730987497322163198131554996304734693112944850297469676309976568836934286041846886326027756232875433404512846758519575600684681304109579598246071194072873471081241009708781491608054763620877015489987339071420239697896579247478412029680911885986541224942776452474913950149259812464120590847425548681728220472051524874072066162681864046800283995369246400592727549978870309271996429479906384797511261468024025843721400391255104802028178942548598425968823398433207803691173877262798222432647610749363501080302883501218516203137973565452896527574405033153812142393435704763837775768608285192210542132173034929260424099908176916281191382462592298849232656900540317860486252122772596478735786049193616830654754009072317205755745651447637888116329193374013563951824302374527276606619573261549417140338508677425413455170685504497756469775980251883104153680123713589390823144201506191993968125696690924673334530405156367397241082114810632469530911704509658261796062759502331676200298058704356503236885808765856125831454568363164147596176457962719247509033042997631915986158938787340262710559971296412930899023804668969513724605638542768409311054616980115426243155743467270782366237806503638587159313156394046972364194375961601814105080921688126524006669999575193587642832929064102038207403490561941201717042028487265289358576317719822975872844123015731865960609638275292471555801347324461405515671936456678003138985855703793171569859977166856053394746382533167973872179809083788554971817760585077675137156102303580848915833845368131690278209453081932554007993078491068205952579740963719057910136027390340027363580447012526831897124868359898998463013366028920620915323143304985979688093548601455333050040757293132919518376690335468517651875449956305619920122560207968424969280297704261627327410648093067077855932544124818241999660258010878852158747857199188092791798288356119717586178342983094266946932866312656982947532508989172140155727603059913497303251905635884202197174637143201329288877067276281939573161400360770581876919912068023404038168070722345789545986509428748790378959987335133208809512656009260901512318845994018098475186511350937882253938251500608619591859373941484000412033274713193892699234176748822970715121441070511764876286038205467277706524177998774536607624132688961237638373323591628364521457728528281584110087930158399251224525157604888350381494107370909261172317480971029290374298486059752873721000023137821546490765765695014060121518764324766702868276052322535227047046395286148392258796768106368252674775357340734329488250683979298597446524041889391970040685815496568954815665230703037707202204854053060095853932226873530353604217881874045439594080995638075044401132378162401901065257249331635208768205056929404835130712029379581710943399190544577564396612185754763383535287298059101486324608781959467052799564112602548679956861332861699324878053138507912905454354618124913280272282071233866995580471040709213845545666500250946252241027709280011397668539108843853803550583437323703847299552223439923911158469269798186696453043718119343453725835912543452695839703490826723042094879629245696784428162041367326400645791449770256175660448774150679443043435758570424078541276823414380462494214634137866978796743836748921002559483853568825035062576453611913861785664450006487865371220058453321053236832609310766300063047976410492485290503111206799722230372269124053796020996898823449070931968227039654776970162798520806284886477455682856155162293413853468689460230531515185302898112669551499421093883667903135005523377187276953348518098089409822652254786602391402301586439708499222204704219782119638881423420365739634175114893288012045342251143859668868440867038115522148053055500974199186300318399515223267638559723289651953015700544346146192066766563978185577210856625762344332247374848445722685423883590528742837014667250165535855064958457804808841258136229678124626429560497613091647121744746576028122718066758604462669596263927976978313583855122207596855013669282823724890453265475791916878585316165483271710486543004557202118119564501653974355042930823739380153272776349501887937440798800940156257942618237902866746343817548204356704449618468840054291707480028039572999292637347914837666862767144398859499359904752033455733282296471245902393708568486218859832397367510874507186539324795511493093316660020911018322058167093508804079467916802358788245587804031942733835101945993776894802081949729481524481018627464856945090947829997663267317856330559439901949774222583412496245826724077613244323845453308350789456584938636190093029866425558110428023264694788730074987092526407695182603526824710202140145078826920993369561301375378984082190059035159441559429081781736215528107048594402733215465358851765654971256014829178971578858850740942066548829366154048415577447284316150725631812562990270240428376947388015370421896826646340416135871012741846328263293328838638450684397149934179726880626707991871148189840154230172698731982026804261670393422010642795276129636077657743896842168332899390765992704991424453649045323924827020681659108172624159205024640764916010767108223421842298129266034531491077875959275776629941844302426916509493462680441551688184067909168425864717515890011539549457264702864965355233434371892738846680767024750699154224457083496577810839398023611187498214955632464434225368585165362440852380911879099355526577160672805259986485876871128786879836862893992621742240711133071770216793783899818676535618372869972253880984484501961420356585498550796320022735272608948351772935015753046038149522856517694761627316057130674029168724783364102154640222674655291105492029545980364338770128842130814553535105270302538499505137080551856944443940430324392317182989993031788589989785114386377574443229643301203010585127874625161263304096735633078051540280992606237174800953423854701905843039861093486919295837902841029617105158578789001967415646139814288242261823231292890883895575708758705823395464138749085995897047641841653782465122469299978307115749856975522606610936539018963289258077227907568643188098302437251745179166900969948585488252558974993660340486267275297390611013789758773440113968979763660809348966292982729734022194197684293791970375860147454140241703929599266821299177726873698414192892404712956695593315522752295089748707460885504794129896411931149501936286451023026942928846114002984414652422034718292163088951996409812791481192020692023617903556243540928576644166459306027764585950075072053538795922401481055655950939743150439464614240481233564158873532389607393255748821744000694743630508856464111040351862352238229714924452276017554931479465466361752238197318535091414161514654155711559574712540862982295077397216654725128180255494454000962212186997042569010109784922144323359039276040745469885358127443712512513607561269557093299802905299429075265587441215950434108303167654773653347659727723092639706799828146446798884736561469274696537305507270502569671669754303274851907799731880726411444239839588764389756817202616352794587291806784543367935816757501572905292247832616571221946159378607015036631750667982147873234489424643897211328576876971122008134990892435731456012146945511204941741891157667566864506412661391886218514506442818613929458702318245536400804146582128737808378973159985164180208095562831179842808673605996149648110595753438885135007851785371373978043289358591134197663814211093007297181437449741411523711114449929011297670006858969473669526354574960825417284879280902786135698317400826294839237639568266361702822409090724497931713728523117970987306390127251534802542360080293356763028791627421701923342422150371839356523713374018758738125059623620002962175023186351739615425842073178422576554518919962310371717843000120808485307916212210758514757587131079550052677891296425012739074948424147517919712430570952785946257574374256099567808618501926442800593402632290145259390862497271824519630707848084822376076474810831392441276180408165852236467610781360287739403072393739781924768566093730019558863647085732733293772563951214051392613717275489212052154994332565470764092146013703924994169741872487288010534722591286119471095722948467824901562766866512666242705105459630721033677769545127973625288552186356300619821045459095820473145420153902927438290977981318964031850277090400322566220111102036696336109396670672743213950961002318680083813477817187485393105427936271010605847644249499017628929506696103879186717736231119167877449261102911505624538650565211072990395089298008545565578456665657604071239223760335330072841970086392635442929943927728056027529828753594622483971947966529859566759915456101402813431552706755552188922410398367758832538089354593505514741190967647784095290373806768771424066729053670063348542556415298818758333510215489306737141134032619191902247707696203205874505269852156278711465616137150465432598085793715064610872760678006742808424443233083368815033599524560203335047439833360310078497551005022955361951740223354264480371095059191867090093494427618235400146275223061442662010128460165774350218196877323605192471774210096795480280210671594054320490166322461459035475375036395334655505457109295304047413122302088346764608637278539153925079769558597684532347058005576596708762698043316032522149687194832257118244614428546984527744023016029811641763306674506125862362761783155546843525031689933951929828579809581476836780934882351435288124975874313684229931842745549911938295238565860004012939908743335895256808332182451378215828554259057023443266616087059088095027493578303592039002383416400875241476066134637140532910812345243822481196034732116427351388543150178163196321004616208422329198339242733703208715345350919575160163396417133633719936751241960724178079083410366400923271057258390496999562994875797942031677360761466705035766807244754072846408492164391607797019648808254714570734063960710111690294793167500890048675916956306437418412632029871657080324061885392556255332306740700526308916128944337685710388862409737271882203680820294769656664573613292294414171774728007697494532808201466197851557062363636809334232368316882372358890727794982162817311763741572902028131378976082789049215910851326231956265887625399344441454715461057964084320526093905450981950477585071503120174495741329313949013119377749748271622901669766985458827489492488604528610951833032485924350874534896412914404188491740174480833348266793503922825878154404112543821466972170687068391467823898840415784925161772355080930160245887568936029215344964485620226544414129400287107791312706838237509233428520529071640431101586662843413455774812201551816234881587400764141919969531192195191189976501414540088306573199373792293354585631423812218140614019387513726894362807355986667172268039245900015358138261941192666649768565147262286732075826034025398753754588713466198455585082002326815838944017292340148093703173087383746978078020953094719168764842526655153761859332211646252492545317163155891597171177408252304549559066650538459142925296877861304998688235242564480269943810314857306900989250967811208214989668837461672445111258238610343324664582782414807857930409823143427736336855629163718469611438426989607915370428986294481167449585007718811100409732840724243077734870676126380389955635291254888986107341511631314344325670572415447709836048229263843892101654852138976371838875120837655661429818304066172118945062060892476259096760125938838963019702313379457918663671990222123431573848417236144453774729490608125349612725076186330628305002884348404018681965304313820871064356219002028054278366221830719309671815515778445122605489404729585009448098154709763879608295781413208275427536971197687262457266124907681174322625998131942651336404203761152524365023748028942269385233072886768552633034574033105458254161614131169631231604146762271450168019683447695780246239902726661423333924797100888519837796853082777321809932158136234551510580245508036429947910421525439736981698622287340806826635076891439174762864731476137334751586918324064477778595266693660950595915087116916862198473452736505526839446769297407530840221720010379869564574412353663585085575529062794390414968929202994453288768633438079251960077820813104082900373646316039058376965488348098829174193836468354694316468403644448526845029134182239016221448964624763130821587114134878055431817305310442022226914789170066263621425163756190321278538264808319007481869793440106523353013298331669413230854179971255714025225045900030939368556923838793702123747950549015751626751043140988705758524146261736553140645802763473096073440618614444679667132690168462979953737027008628716463101977579086998526977586323455769084697771778697193625774911663317837014395791604916144678596796096544904240542704353707556022565833827781919741153292300993257915211188658822411008362852882402439216554072678069566496756069353266990739967363525391980496458759232346547917299377088805591360340044799596862240006875346846634720387545043417576947435286649268650062784278878823337356243550349262363933734026408536598276343803398064084597711579895082138182715356657408518427027445327187121707240730751274105422871840735522054719743811396351397444698794625740179622928922643737152545961733478932400052461035660111365533796239380466942194807590142439186264039546197690941569780672732392101889219424471403437094804174052468237021067953699639456832947951707065121322261013135427631038482132847675873160575561300940701590902289320020098152394843546366565809002036286360245142206285329267860661875099092110767389303934383231466118962323880503441422161930711391866710145719946551933247945914454902857300449827931950108051277928008279497290044112375314240874183815861299025583627566510898486733187816312830932331355620499370102155378978239573787214837784930913580652399880839774279622422280889759349602876235172996435189356531593279431233046259742788445262927174360653733447500943692785670783019811458625446277220219532627750090453886699636096720621229622629880436274186182645894497191374105382536869687184258426879474964829235850934805952523767640357342965343747691626605162648861128571835211119986230880466321083578775211509022543494659030808236521396219342516837861712961579289866473101635308014052479321611562136952275729428805601836866106546919531625740011045874607643706170729543091430864359688185817288191604542388717675373386157810341408838803743593945561334732454271392647758487644970457407743659284573050424500635172409023988224402762867681614293086565462491147466539795204052411308650729732921913699231599094852372842182607009912036788920876213524597451385082602510185593522621297020320983205208315001583078611223452192677516208673866984497282038736033713699510226328404204129028829546002034731713284523657365105089897880521043622751146468072993314525800434473070196389475589006607414287904371485976445505881299796600013091601334939033901067654034854095130509539361453425121071072677028662771252446292996514327058918627187659165913120153501289529942118072590051696345960852237995909757502841844052995905591542366093465730131654256762738958419123858744733016529598111901310833175099032113454894112260765982200765423512111400000686920772256648902687033603667723847761206522673087269761535925766787188189320074099410695754371237337085699277560704738581696202536529163416155860165103875624796914866901213358135936153357343445078883408890063908235088839446452822636534351121929241579183215582549212450300684388926974338384250817501170374643171909825062414072493623428338864178863747839281543870883329658832532710290375748085250358867317485126152656746439583539334717423841421562061342230554264487153533650939867233803477914637895767974419884246983956371515861704562823756656587602239578272506682736955882306093618452275068120710219089213091069699523665648944301158848659593637169214127476085359286148308353764937763681224057124255242060529364085198391088009360911190687177662319636021610921811799526319390095584663022705014244299050670456889227756442750255561942053656503487319888886749370981689454090130712013886021926426079117644399825934285245475517364538227057965512963537434457685129083480719032881493347353521622878815087754437197437650833560020259934698520910661523211056085363203467830113460334501867392974017145897408086587573854545940940059737104115855242339059381422390923946306265075853700427322197033005788509876579038640357033179786689246529957960914712031472973199523952111619102891458525271109634319397854350567476148327744283463497614645559552687251258299578393915322723021036289489994600761398580977837247477697363301114256543533039050875274141926996716600932521857536139147809444106323298698627231578677851084402016519603764957954841619384685873521768290434059982731128324295500589875662834099584246325334644007182037361521221022781560244304824776857784785224227489611985256105123193885839363175597848596923262160783660840997452399908546711816096081636505663058275776884821224561323826575652979636757531945621020537741292975213297205080695521329900130623783268346548015799573759662707533301272851941503437300873129021890907435636871075338227395768925135689338949825969728573272278719364795129864216689488087242864547704643033567673096282773554262229741250544897930583307837453137917715909318613554117127559990056373567059108071398088971429728739571168146839422638039616864904852303659921547059987018606626809396643430390505580107028450958988002853039118109840766531675173517303839610766207045391283172647853412238351062325459811069097864117260148160748584891849431977610144321234282167012325011801219429765872218873319042696397054792392743333366146751475892912430999552790941744208962521910037575525228264508647038019243426214491210951465695139826568052140568909657797110953652395147713678677472283979605080004958067605047542871175453250522131099782495036119915950992802268411391515831103175711465696438526240950409675860446806479782678119073321040817398993693557791392546101672759286121346784198897064700493262635672500691037683328086202509615584129253406307318242023048937565993673689409757582427739003529819309605026675932725034924218170270414438599666946332842038845742247145394039290458163471822654296961269693004963989378747907462541727527767074578153391483240899975664027812545690500806325183001698141687521577090052809503198382513748792891253626415156691139163930410692474072313163670634696051484876931939862686372016429073219708446314196961366808839658151628431087363777426660904944187360926843512109602697289778283638635101437770439221216612612110080519254702864329024802400377020176700476439708929316269460703696437233477188557767762276993419462427940439392941514767267770212845334979715964589973092061433011289967419199986152677738680275561108681348624276440910697979407896900499174518290358495309063837892640924737600556314106607653030104350429690731821359670380616362487252587671797125450491068977521425908993346906818946321671053959526611256900045526018193786330582526031260136553346754807500902804822247470230779613403828768472220105003946325928269909821074340563325922490518145738765912042131741134881650018065954920744904402788930645235985930428199508060812926753319907637326919734210075961424838570369232662020291424226213277793210630035224971488105225702474850052816554332939406948892246989519028698738237566121373207125465512520776109843099316377761675522657702761021937005274795188745245405331301462464048035813762478896709620981672731030574040148411069908771128132170153992561274970269478894764078432637801094377251708762768536991746308675638918384362352924212271385695541979873563832982299015985305198847947576736603220017860914386292790754689374032545009591888423249236939411509947840488686186294827339434072443419999476478565966585054310672101783892430969785134007111636192190384214999915084712754391629506321486207007909746792970731313593299926376444650524610177962990799495699691840067510746879872387182358347268054800088068797987090032577083897612291848601903960673573824058658873706239025753495218364073642320696349914110666715673699734756094184491161301310496646931849443277127941800902441653750492022906838071997936324763051296039579947371084619916788627038557211817619448262049921311803623768306153155197025482469770319398012806337512171516492382626743815562528443211242210248464064474595066498414663903396728311405759738404596482378494209829753848182706533276113180156241868507644649856727077049789189780492555027037414124378552619239149801591784657502090943211566403328942540632146891078102459053025727707878155642771001582599263841266271739517814859825196361888415996580549896921450207044366204170832005516666678243964890605271229394279217254621567477346011428645855347555818097224156602446478851770541882013905910350907922764982986071148369546370036360534361773399410467942501994106541869850355599135444630272834733618047344748605312277143108642925157700581460953080148081689360794596834771154193794613276236028228658333391066094250294844799052733580161914407521385488604915884212761118788885249323662823090184805894010344328195314781159381891490764638730589527334689313698249229279255489836798325921040867505608584981792605546418848613670069837832136369595150678607828159475816672594320951461385653574999812239732120459447485451949164303644258084879442628415822786170670557267264504823515072067607099748898216327930727692428899095705154772357286910944525880672714539282209986768628614538684300844311039364769582694889690648342405406703256606905405245615355502303135054542273709867119780101422560822915708504011977654596304386503921542154666712524169773078571978477393669061327819251257572128752855328049769891831044852640273229072555237841795649973888493556205910056266802346902356748721711329055126469128955228315893771590754206542470932085328650617691797438133835167058102212971912938407540769726122655418058353467948847579569930106317925319407970460300548231402689959148070528806381122203642566736174013102586814218792232041711383006474487639519365479147256615851493820057800033113433187543817166708696337695418751821411913227402725774031878818593012338546015344497112444993600969934164980226424660654817793497978865395784406029554599947449283411143628171842311155221156123725695930411035651590744167687328110782916144238122490622810917017318704212724203260541441446002885761414396799823766744668123502081945430726346488915269269114854094034187338362759341510829726290939708499401065704994222781644640420484947793796621759746340277882235716396058917333078879910353044636097198151279119748264041518246376832926097722258299257486448184597168275233109605819527225629262731836304367104242711824918818570205617537260726514195403640953173606035676777327512286202391006154863890678334509558972640423414819430114675263132927378619421286459723694305453929481484516466912057524582701570485404339896259552524679285919492615255656408352052545550249405085745830393160703869191607191105377407798837916382485523987385261140814263453053358626724714948589032717696878379751085447633824873599096008600459802123854833596393332960909219459654688932847539173470027008106087415567958907025565743557845912479926060520105920799356650854804882577280817949512432816860445238374286106450667147319628103483790005009702992650587725223727898125759540231718688383549539934132578939789720525373705170126740750532680416863770658552803531533619300527834631992086640274903091345726337660453991182606600984445403627262520848789449480818457746552788801326352674518424586381930448213089502953159122903869921809340321810004124382201219398630159124933637263937202235919120171407527875768697368218034420754405137053282048023542885452211971368835735717725725935432539912556954670830957281167799456386894052451623937499731122756273777133291195453302612452103443073617740344913839658356925242893130773494169625224752699412834182329133672804870425020718101652067255561331181532633227846922948311356188986458878194917514541873194229801888199727103520449688626694456294377278669521249614688180412166497452608812309663826734475422784442923777089392316305802829927669937313518521008466290896284717282386843566887052306121252969895740894592615372810346321249104541079468774197440126081091863168614355473725147741399650510486776184274730178815865073695148766873120986088715990386536663837546144962584618140895459844906941104829813094230649591799156842987694633256657994910650409058614676639471089970563170992971963459957586132287119410007395581679703685302972149255614202311788886879915945704391859790636274845814285913916754348037737774281063857197414564773867281377886815554820946346862008083099472911616527654601345640157904825367507524852721311851761484847138334228809515862223927072546067246931822846814133044058144668227836655887964773279032378312269010260560827756297161813375785366990471189682785738162196937837404339519989343203857638252072391037012957993849765833458499693759195530710321211729538397107929892964478848591603049444876988558681591845047630705006838360346481998334635921198494190930469070069827193808858953085210461542895752522137442716668432277086355804128741175182241496827644701153319782526365587327436477167062975854259053277650434690886409913538969161902446010892975223105714813773457144637541930305928680237853142909505592072030429610670922622177695641248061687388694385118119908146972200904195283419494054072452638485085014940897519324048791325854258711155213784471091824450974745559679894075896032409324651629338639759387645730412126349988596569957371593436706978332093468753159875556333453819137335620796483641681271868596055063190303416239058233046689508790731864235487801992121501959621712790180454598134169281771050262285231094059315152085706853559924944246972402283171437093256796929776946827353648206161784879360926701302744187604813016365267333913073061811250566366404304040065461505279502231751400366242556427453774023395646563517624249727056440433058187680815299484043262577387837031825439769561091086164254502811999447400185031474333497577027633025466815231777221994791959918064826215830106308183873236468397517980556962976803674707163946072557826356662052227682357653752612247898353721382676791670404560057647249621025814344190935946741049439817393708760403660769434511566204126375188658699237677732623809609733823753385867668145885315589664970776762293912212534022480560027743015323942971954101492707180240010770475704339195328673554812032916191635384831011574837944265537250655129054454333785288050477214679002948810768683263028812445589249868227609538040178892955608653901921075832552910689775483139753116333884497604526267023544021210200527590922586634529566513364173254918483956198623574751602403930960315652322408079957365148095567913764930423785659239399190346453828332355374834465963200816730271903412103932180091110485630651936143439871411887921037491622455471329163928794807578662505802327671337748471406169997336495732355214960734947685732070629583580317457993098325873270698432340773757313289579443332589610378676351162201546112912357370640852068648037266197121769416116453120995515885017586765196801722262357410760300965879550020565971602791531807121566284036472200496473040980195102294411053460594758581746791560585260778438740461497413566437323882673823401001354898204546613023091756068727536310257633066117767606203858580457624082298829720700301277072643655610268262919364138378616661266401243178514938564517060272652006265262092540290509338295811373183253729450037979347079341151559459100843379395339628571450157849205995125520553287662526162995212468821954769581056539147688484272872694283453491017977244906854462337302873049622926419598970779903754133178489069540292967399233264747187351854321997736191318142155851408181728751810863380331458994838367320394539778707978819152895425380287195400566378635605837802271770012486395241842405415787264691294314889350137118282457168368424502520235917206848435110906945440172641415483823051446211120798083236614740512243317418944693679676548161984260618115197728855710352090607982976025619206317411074428641808082237426986162089569822281753419253937706296195386690392943033404980334827676277299684819698002629817047662763477151742559209120464535991683887046670641753161180563629214216868848487674412868876521379711127891006965738458650693722500767927991330419790433511714407648363224234390160770625657185498924927280553821458157439262530191192564942098974210082620372910395871014351504387530408172581447120339367444617098043453044990461640319833845842001880720995305666071497689199976357226028168743410102309168434826747007308427827076387593411845146214443492761461812495676157721964673706746271771115393515493125630145875698686535718592553546772820357133484350312610165707119157828373741360098925999915498885283548062376229733594502663306890552914468390474655882772199782222130495253304749077817883171367352756543002769849954507454520111725406555033134046103781531664963348094609204986366369290068409799796213944896929350182319005185691669344677465648024546590167858455550987149862193187267163679091396835825901355461114806645287798912579097720418925684070671869396397722935081875671726780981516284109803745464634828253502268203063518646663394831617636957267229585471137047532307349210027009794498732094730864890269884484258321082402440486218148409005339247292466594139936245105727099721037219875554284086851413619473073988908333961530260501265709474873605386167894831374120965504952847329558397556973456669784882119483473209497206590294603606072478681013406187781747346111967877114188370466445438260763065850453267684507611020954738945117227154984626323352251619787188576977990536303738225923034234274716911504151199172078217111371703075446418221364073215719078825445821317129763831384502658491704409247552924930035200788151297785818513287204935853307315304434103552555032782037866827380662894804123884843566401409203961032920808646365070401312336973725486741674495921790770506390393419946644662504058712938951555915043217797843820484160516320471398128605949712445074069004530054853928192057069369143623027969235365710510923507821934393794914058802262022051683643106659228633731224755519273509736233491463059229501442710815111364981140233915312628502717704373665019700772701828977026948625192774429058805176209875305823534575945071122440020596156570348308216631430160710017257323373366872888904473639164939867321590835167171488745474632294535222752798720181407440355156761512558091219851058279202279968339936332821056374395992341477533248859758773096401497228580885022678467527543270996728190023682085879621618711533704672950233915829606717337626261800473154135366410559060710877696054216249221906101820633806808974074051699884483732579726315265233146258185356319307060956317374754616966430560350726175735530945355399982928363645445806013509608841037368608409252216991637819359968087557619373834881715342186227330265951111046614770128705489778312096472565968474627474067088263520111329825319096041764940241801608752096266029311799610435719873093304434217860365582335278423877411293140607287989179594392156028028716160043588755628346909288112733085518515806694638764838058394211039166785250439215987754416142456755385547764752198234453100828888111666184221061919922118843266223224940347062727936266633578123167461734772336421997050948368472549046841052431996257415433352037315744512693754496793071736514869863730159321049741885746756639366762522159892497683209031600232222940505647366061906833558253727276065551745092803312708971294439004253280214333807437334905289356304977814867869203189452066008378390432304875392667909820883873353977387406675210627183935278360500661781126274132255438253282455346760296713603800708482006314809938852847626339607731424412650466076869573149992230781724012330865091477390132283187939237212634044995154521664199259816463023470787971711776532140100891695069549877807362695920874783920032486123616612955607364465387321667660109989268571079792067780120603335014165936595103341165715497455147076561952233591239473448186511029954944038354656295264751155865315416104007752718832253745303828289178124493568879603156274948696029532769725220680984666919261652364744262141786171005742471647045782353867992941776987356158575555703646693695852160068011925015818821154637988593676249415775502593442993470236079417732435698348028739257849021698847483643133443417695311375921948789072302375214176920352237152765693715169753787183012097467492118986241100175596380744194329479322809675111058000991269328598683968478227406003645020372082249710309792582652184976805788161640096793851105447019039053909120508396994807403183345040864663891862935420627240093457335779840816322126895972518867046215726599076999369684535339326015358608146280781110017799130100181656030225183875506335454238752515491029232855992511865228599405368616044511085250854690225609470124101083422262293615380947524600578523415778083973789982503695728040382689152479015237005525890209133763087449017783515736095128334156405545751970470365735513236273376110287991876112077840541441137750917678129451730605050135483885344856123746895554445889629404456714889445289618157291347606718127841417086903397590805280849254226463628441048564098100829099727566895580919406622064630575162307686349915920990798776896478048652411322224520486308501868542463676291790189138596061072126581503425594855671655467048364142826225752171472314069747312075147502110677254357420699399374780733211570733596288221647185304241986810419147776466890006512268439747489668416115607366512312850718618670970765156615962796978332756564366011288930029650498753675981918263766695494838792731407042482028838355938875542058508669025226927367929103411711795875383268448303481379565170100877592006182782332374267705703692800069498616244092228315997916843302522295155546623371300152910819861453464516998872277014868375389480854554940438093264875386802542412455076314774310793808060209644970703380009213927571744205036791003528923567173783491886778125354842761761430348308335314180478719501001207818507753012184473588991864610480737284690489207685759624626000572452510693732225441304327357868324126784035181981152451402068067302807821613901118241473878288416014602039470731063845147390031436431434222302911262827487235804195970444485317942570814029115839390653806041620266878825183446211938730906164119459294238156975077844141452009435348324005914245986526992824091475923297772673314058110372495646010622838460394376254208098882445140139482054608866371672408469914296478417332128243802909304294958707995716205303632301559692823318759724350276383025204141426211367175908800334728065112334795396162310693008821759689347084388503474709425647248603201886150785386635696741532774421783184065480835551263664069020982418801309827466762983325134389291482514341433344450801661061538505371996772472299899512181551281489437808022767555909633212150381461910848458252133938181271354380198653472787605122793097485556447026671038136240535097912940882233321966797002774316318315881338288547651543172447825804348447279897329043504075317121408042411943167287875135058280082565886951762688718187157187185920540575827908944668982240719983399066780249365221082513193343623336711994491931562611821725217712045764745511099055124520247659002468820358131232774446730460536650427662149068394305711315022905260103611779172926085762520752893633172520530795195293545595579836445861261199930295844289146365000291911791909841601858352616952394737018959083713847645748555351899995819499068169186762309767003721943887030323071500794605718196748124496813435587115381474688895314231619711191307893126292326030399281894201280020652052223056722401900505840918743248475280793154775095895466207552082744966062559691663491958863995464640845565902967581210337949622575370758955725874632802589227213418488342596173579624130805211465240780887018649385894100888469829330487190939426938523732733415793567931987962982799636365585816082172946334803947080266378030326900893454756579400107836320603052141400953303685955250333517558950497211218079744861976028174587595694253700358924043030641631416115567419122164622652536124877786258445625952968613721551616469744570507106318790494292318730858855333513325271899090924044483854009037682933299930847738935011060801169871498198815688873041200636904307949720335476404668351782448154884193101006792180653694937574816031691380633522071032888742166551139311087954212828811186563527232201788711633340098838678571934678985081606189474931165375655593633904867950715869888855919439219802692029919656478332617378316677529895237140823434290520602337922322418508531263837408924057746377144524029764971954551802643510607502576543179274836411034956680409510596673551272723127076260267715442071240244650734562284477160064588888697790490255914496727649852885061795540206655884124127651364436203065637124634704479846089984650919126258539658083771023196118112544325733344033546365410929845855134720553717846522575618540783823998298928995625393663863405272353783822537540153417742273823034340060659387460049263651329246672725267049029441900665123328220961839623896458060066745623602030114041093386319305244642748887929148840902857185987037346928166458756986848422653774186049955605902992551548210010860203673066846260686135926085250411641691306250349474914543330860351824450331119629950010128119598255787703113439412974633995875594277954789271922837769005574538631467605936866233772772524709495751109438775270462743279564275047659914171333255179630934390756774962885261948485712933261213727668002259733388093051245286205749531010468228325474663136272241179095527291832083586471844611788315121555634564213510742127126109816681518366033777979328334604001545072078200460325352884294363815842378249073723474463437643982130650029529614106684189911970987510520095501725644958131949209743143943786260641957220931652358614250386423974076846430720965391104502954783746556948322617165355574756942192959254675377862465071837014527546881173522620147204031803925096302865870273818381553949076500595459521471470134270333822512330253379723998480369643580782108435043507970306115261019107410941988684050063003808232563975018139930727743499598110091758333241509274062637628943312053300225057977784285989478347762822126932117404065937485642793221585840689631736096322755043615753561547881455990424240937229686773031908877406062436864397183334007221422799062199903350227755711284126616200411114378710455851903359300344466468623426880535571598684118052700643572950140388272022715588422772469271316274244860690813647206589873377721999538533376111428194944039022638838728074546497426147234542044765651384494266904889882169110175606857539429238322126074651210383993263666710075879386526961971753622325359688605928130896915841432496680870117912362608095074033135692809116631944063246189788453777120511995274745312390450815048999883633469699955469147481353181040485529991817780850702746612261573462543889194744363313786171693011436287154832173921190076330085027775688963012452519086160729063177992591645251437017365661854377906211096255468368054234895442688258120178911138973936915294355768144069469376927033177483871676364410490499879298288874577198606623664348509871719774605933542644220306956809390301232723768672506353417288833228705158825095994479831975913596333871070081301863311586622358961673304606419560659432612501718695917430546177458107493072301303002574618540352457975643063394841603888256606457280501294448201804017223610852280773921370700660943287026225310749335831871446944601546849754798478598666646789763559202235933841531118132882742147537425093193112547712596402925468514815510712038718127054687638347404319215804331558679822412324170483931625104753192279083756692572641069803675493827638474144291880421517987348839352451594021428422690122835427238585424393531284084296519443523987967883194123789960041925073765030219835908076826250260293985808286568878396061210660266933512308454259788746053376552410538905644473345727275012732007762577293252189830829547581734261064124935573233121307791810459265723400632135199400253543458035567644595214997600637067483830434165581700047342265052926875983579431837043249955401550164201227019293167077371630669018797512494705264023057652729929134545121731518063349028538353249941999822268892333814660901061144995396584380221337497945089059643954391459875249343198157384944579665058414931407975376693763630266724445249852308396157895812383071682486317548823578249903002359764660475524080104675816598491962879384530278654485890413558845431799061848728161762451253852871768006047274621061184370107813413650084523180864805194634516838534498892211795838443982783657656370127624029989423428619043195779375671087197827765509653421392943249144965856534513100124031047164153139288492089744881627478824971752734182464123989495810163899072604465225748893147944253439364399286625578183014351220628427602623282089184818237321384370360015940268724550639200839652569955568751576466132787333118396855870042862274853219783248222026973248084611647083424169791417445246605071018961167834526539555260313358505071167113414048191166970109446243696057701467795783970320512353364447998534586008879098888919227605483387022771656058949761102393612655845228920706876205393036138892124765369916539742971366883253154870475771453113935378341028027114778186383759707048545329628910892102902000999343720735468461258121045873738209775327624436342317253344341720638837121179695789148267296132375601090804299929165034543913906467814120011500652943415388144205013262615035926992106307867564967773307194749851649675815068561790501506140496162040724206927925830335937673209248712758351977448685313935787381062908643137577874797430977670314075409988143686840784862594513802200755606235146493400876196353992816371862054426836060967632545669777693808276744283662759998377708243097676862697913755403074227781206462104451491782072843204862879670465636564894776650739566614184612061875444792198910285331440686179527294682485072622427687363178604834951458283596522964118072519823979095484349593557466202909542676906678944774101005554443689660546364410508789934739371249653511328304003602546636002954185316461818597853048706686371008787080605595133327136435575144953964792334844792237887223262215362094822369549080591367195374533935677355041716263797129417774215610900250885988388778362188113285305391800925151191214568425039873573509280167740411260617333838808868755547933283060381365438973952211269074037577988978910844894280810535402013644000411777331449062629249239144614341956139071949994374250890854800976155840323827722002733808336893261957874174412115850376284155506589848067593944581438446044333249303808733206198402641552303627836911821065445073168525419164054180756028753374954969680243395126761826281890257464850783134828148047755690242167449925023850690238339080004850155839964577240757577979439931788774141267022866537324584683402296567217575633445507487138437848597876285711642073739521756201943676467069672970795983234549950667073766002667717401371084702150924644632623808418427028923563120681776263118642203605336686109527940491313549025129317769685161051409637702773113491178963720864588367135463782184658150003456542958416053092535652879282245137812033531977412531685230574161596506044809135061344064978831165544194071843453157444705790616908431078994408249688893343465551942334538606325184390025068918410219163805046907267053456076143957283104770263032985214251593301222573088792837246027675653709312893496311332081008256918911610045664134352915112026901156467727931551623282153677124316230889440885066090363648853910525357564946545419899492086571321901968771802148814242241558803748731222474063816043994016452845336024575891248412280454052936534826625973707830001634569230104416875888327195432939884339804573767726181002607896095172802133233375129115940522433938666237850125336050592167833101500835402481292671846046995560896779532893170582882795330902211355469706181406669866979209116535023197245941392861857461971487309916367460894890972493517742067322194617941040566056784966219841063641200943570682246621441920877171799775955489588726161278747649832486905864844644604828686930460989374013425514872687327184278229201756550862595415496029126855159708740875910776245538159946592679334202184691005285122842050930310878440239391369313426571628271442909680411864033934577854287397610360104058543991259431232689026431333530609735333704650598760256696641727633804899317666577250377370456540683161373319492257688480053739587643774847416609214279040637280608694865077805483275782212689343198328116192715152306509796797805783645202829460856472788303988045451685645469560071951633405116611238865530265413997284792911673478609956847728263062409611228825814692677060255480190875738538432728270870169576548398340738514711962941405164774801683993349789537687695317068630318761811758242380005410018997091135802816883701807135642967230191520175025415986083854582487302496827640338603960789352348649810142826896384692293993329044653818381900719395378015168004743716896096156427265420050235386612457351388080839532512227544833992047229455889360064425085197291883808049539064213563869108838365297584398912193283252698453118609733664470905347110329312211575816831671607633885510510874149916876780224335681634883798977433869760126155038707241617696001974171623962194416052115440306323252881708029671341066727153733854839750072178136257640933180424031645275856540351279487285574843780013166102827871277831019351722654607902764417469194679811269559631216630497283024793344140357377868533745346037027974303773607125377673697688131365028989343081576535882805075925378537028282764617886523152409917604665721840632939585759026975574589405419983468880082962185800695634723966178791252512895373332121281336693308568597380611325376669152142943884832257669152227160888891861580591390160106103887346124340397485085670447907798565679815608011795652077410678877367393176870468651272975465055776771731419324375304826134660762792063245486025090025158150631597130210702011746578501892854252828264042268381112461178602524205689468574334192725068654530958296141113471906050357037002536663476853268124750307426223032642578920604189821236666937699624056336892539779112553350413915997991782706398898802648707782775448350411046950301104719332912651610414101518920372539561439685450790590979105395977494466480467923495614323331365834238174679219424453753912633604872217983308843867105546451378638253357127124089587379221450837893400826272016448506976241833631391320547285168031781686173582198259015719528981149187956472719279754138984828167988936136871953632884791837540301374088792571876640051782339752975881144349431637244443634496224421344673807557902294403430363196189906713376417205443024608890460851649356535202509530560319813375948857463285623007865383365163890722513333047621437979522930028311675401650681697241777919401475168654695008159472370279578687626046746400000641253801588623232724627475391044265844198152142763141937630812778475378409150685487481207375280737698850884764968018948435913422511733039757397906795161345799833203535535608255709148087405277905020755369635392542326758811333622601815070065423185148754753315662205037475592279036995037099219126568176766628627156585133799877928763599178820880370128763106173505122919899523510680520813360299948389772920594903415989352972328266637532849302997227009306268488669684794386317820293743220215946456665028060449582827067009716788035196120255554425068361480748982126769657310443285667363010646050112545931002243272755942186212206612231025279389487239038891875364130733397521112380420794200778956804108023201314532838274909598754009304480520303281147743128642427130838754692820819974404779538566257537335501950234805746369707135185321748645677029349542011251134940833497254973707785956478173661491141962117527606868192453977175183120692677392386957898999704559547824483204321499690029619978282428136557947315380939284226882109682855693163757547295672647474180062194048780648880573418294451895184478562666006116400316984571043535560324945410758013269246799066826340954360350723628941957787745551473804379038659881536890444407335381362185479333783411257519623778684054275308972623686168964024347827646186583582842082828310264886704751362548680022839517534729614602834853825088977251823780912108262469162863335959220307318274619602588881303546467723260715047103397765242704647234365258222029353015288032925664015717801544008529385006158590480749186793888167203669364086551097941771818724639406178988087100524320239746949640199241300683425139358498059038109235705205510418273316320761951628604134943312047176019408271114455612171276507760947019394060546410909439293023762280975318837571082730303709314239707465492835638819388026687885056180515231410374203000312814840309574346948292633350024273666913056717178965694558623534543968817559971022878527677111737523609338029456860062026597371219865798547300717408259737013977505501395721292424753369662961571348229522083987905324766459757852285615696254878569050223108572208311413447778572119184437024643608135299257197318529574169226019658400138947222553402124556893226047085124751666759713606597706465985373553202292258922055040096406135722964892906571193453587837586843071012901746047945539227841617212858103343589475895840003676482549350576502709231375347997385908051468681072660272739980023146803153309443410206479287903227110193674228455415960820404743254048337510949722366350547272814166067264706297691194402454629521371889692743847224567963209765494120722108511098083429990245461307246776686775400599869611864731061403679499519113194381282749282228501164244612862961820301198080803715749661403473019367561451423145696535087150313534649583082371053468172561362648936563965372045402424415895283905586384840759815155212922841855482691105531852180797974970993775883538758813560615049585556471456022625702320403006652446280007755427330587401425238471964968733210166699296129866637743489533151420320088953670142706360330828212795934095053892675578460980665077234877750217852718565884259260094791955564284583867439264179018649652745606650192086557321517531347387962973808964133651738608881452638146209907974760504089936739274438279557872737746988860926192601497203426457504981388183438506613728600128383730827796214350457236666297230943160868331264154465192738162869549031133511761384358661774735256703251400360451564234860294675882789459105719645451869367377228373080511674437094481630902428835856317764299794514811036261188476021175016360218607639722491868485790590436552215747882278316460952447386028661231070668827899814673742943337138794589626217413405438609115401000047069941983216280648712980530411553742399443641525264960964253887268610815341739317583436091971768774294618082343526235240202169618363054015115512832511681743199295977522616308090357338738295737865771799867571627006243825917103739164153563448407511745836972775470591375770720040843275518377573617007126084170677204130286670618319242017476042578377966962877927729510579107318519891828541151572743097219017213020767085665404727621275571214361146100949188496300640840732941353054807339600844711224333093291801776109185188574794247782976789331252412402635887889914125945542021282287317600828957945785904366482257441809739193963600517871561091074616917496434081876038969851705381149800375301006769671596625427367702854950362911322237091481409913545566508434653352943763253163275313844190407909355479782503343091172720605467396283681675391678664987868306750760157848301119773273709289075542975215681167264448218710399238895873278922457740669694450683249909188555393331893846377445849573991306872054431354350063438272107230184747680151382386586348488098939141815476896945114107527262480052439240190720806869040931361461214245079404104753520603805281351440255928258245351540257708444267376177518730141442753244873803817431615111574490435025579314941145708631115503749554010379847633156484669925401808662877662317160643886109384567520972385477023167707412478277937504597973493272883470983673483745268160886082542129703861084838679844003537507249024162307593435084354354192605551155820238893864170137076748238341094143225592932591133056524661503789845393798048910422086715741576729797401016675167122311862388476627595706272906282910312772880663368504944199908625973088880692445102890617492413116280473278209682835877076703390068210495859986507785334272876034699776981552537561761431335602377756779300669560629823153982065216971005193363854714657657007614521359349583092206765719339742908369881832311151024424995100972926049844876621088539240726900621166993675561587821218050622812129076648493917383893025334567758966015278796263088958162528776216129678284590406791380266656301634696277942257552293394294462979450524102224583335752594154084485694471733325454187838691538315815572297855776636717892846821811949079653053645298011971137483393427514215498966497514499948005723520986849180572205889711569889579972144665290147020148728278362887147014000504909487711950271857760022378829063434956770142735617623196372766056571138837696747994183097321114872608331516253863438520122577826804143476827673296375162675901397920823945982934594194197402676597283420886934977455974454450410328050929560547330015912350221346300167743566376647142927612910829631820513161918104566963792625350569798594876594528415798830291613116806735325886194214639946233254579762524596093700489637709146835064193961971361460306097657784335643658074401920778399205691837939321145678914430268322824148609753356283216272646897984887454928455077702940940210305751794637620778649603446978757019738138133713640753390595968516431581194771181044370189569479836208894925285612138608741401082331906833041940490295950922168984354610201527793659403457976096967852519346820072377307972607663950202595835000651377053074234766009503226983071739765425912443085793050793352852341288803859945216335859706362378443119665967804383827599369227599295130609048255215682417639006492000573152355101062783219518370751746058864650682787111574686091662189580622064923624725175676805272934298375670626114369122972620516859824442601168503903929188532801135971117446729924071495401912364941714512488662866328607939047314972268454152307281570965225167615626202940615821647908326924351377317640445876739138446448457838834584623302661871194727734446055068676081832482717139428755832612170767807036140043168619681287830568828408196470533328664714499587591031910614691466584203070704992987723130690492653368140363006587227808135244978488100294419993982792811464294767444165543645162964699103935009508170116949841311719198048737723583950077903975042235196945557804839224948799585341384477263829007282705972837833365861536569869180593298910244293070798364021101142945002248265981698192030270235020436581969025174727922340565228914813927979966834535598889599560713284827283481763043790904436940491216914413260985467856383858126752742906066158776068285771507778995865683592808659060506008257524362898316869099033968995549959491653399811838799983020919688344524272681839434940256630302601744446436790447135056135042322192428065265282378640392795350391681259102481295858566953406996589116774901392912421678905797935231360076540219675541626335484733487056217380113706594636711834251122469733329847924281633232747534727793343808787143034086837100725247677128082104716246916069356619093762622601337802312023337700929956450048789230542372386507774703124928012578840598105359812690748737392779440011219104482771761830925978667132865565329055010036121196302005497332635943137906370381852170002373903795494918939349043305310275027308608759846036195026454208133104528922776750720774937355780153334468662404553751160127182370885391830241616930845243049832443931559473486547705130665866340385244930353921335139773203764112193101455837831994184824355437756067023860272671450988418119668388437268561090388125848652120262933396699810605652794639481498930896169616967930059269421488724347138790055037982598399765227207755981175311381658170716849593571122408636181738209666200272050500966474360863955379861984556840615346563843633489013521581456387401682010819434003341440564636740379757003532547570395510049431303157306204111325063507472196023714910525463732984599114995049932519707281078403747607174897735537767611907034197167728240244131042113686800839439706660116992759875299779032173981606650064095872010856862048182440129552233772596412386813136828867117059545870725147615027143963319055585630837469848015725928301529218309055574205653913388797994216538087916454982866191562580749086570623166184757927016528182715239177757535742041854630373142429899138690697935613910448741408302209891074302170040842915559531202292194629583190549979811911510039921543746148835243115595544613655614470205652328644858664788680847032473477559993038862384827739930254920877424919813928068234154453478420147625322446210254034657395281074663691457372451013141891593529940965656772959606193651528585456498534142966800136799946403447314393373248937399608961530106815439885967456097885866126667426168749250161866110123044124580535647703235526989744150834018872000855883149846199429900861597819571825566073117277333340508564295450254559556506321896748792697788599592690933335548550182130123591039748467087304606730298092993115541095942507962024751427256791299611066175108497240079929210899442131255968039225554703799851222979075347534668820946720513193787090724539378324333230149659398198639203226118413459447589935752917592246149918831376088548621733555100360955293491297653144612086915458405204405662055468718398636893412004953247574901421585682111763365809666418522605635893210117275815033258937251145021291481017052192512232537228765946007248020014516804551932741656029887511309814916714469773024822528772710954268252399658508682695181793839466731198150191667335931583102197929569407722941776775895346168243349955600208596298844589820235172894224510177195242265076063805046212314241316040462992393182231090966172548871051359592740247048271850129123226704586579675660181654379927086726144202092186158039525261299268435797378042803908608247724698332466044459601601888703929484665447664923516915573481134617081008179225477475034412571040493979847633589375278554310505833826733449065309662815095796973001625305592230780452022757213420241690145081962877862416709549768299118012076147300179981229169109912445358451507073599773339861239727379162158597106485369337218740841421022171772744357267488777098910909531776441106975515825773067344034476301063668825183963414642170281378847262219932060522134681158426171243755951790015679331467504372710742166811304527568362072865461339911980252926865994778812761721641112380771748811584852516987966289939614235877692573405413138712567296574958892805521572938693357478764667327051817008878740974180188209051083127588429843215905623634128664920277700012174584227047408648897437944631151536691722115831033811357897571196619428221498437580227383129755761192925866772617879206145769825122242488483054630235107529023580753094296716246142337320840954762839022470524867493605352560871436671743969575318573464168942354856301220697552584574893623505319730530119478708020493014589122546593129865019238608965743187554624396790568072598388757473124378441238782703078132347830747647629115695654283954921783876495139235046552031446583703357309035709119152002257189994057578740339327112424775255863543299384672535532400830636168442898430857706456495278225582099461648796974409296960011037830768751823175009039983996779088748983296629830466788722431554824695709558776697960738001220140520619184703134353965510662192235181075102633923563354065060924978411551537287197459280831885064647194874378203595555678797595678079880575769772086293953069667495353668473279449048377101994706405387100137981600932272697022358918681928788457841206250391963769802698997354720963746929182430450187164457455456384198220977752977982450575872723082910590365165770295223574818014117772807067401331208170036587957419674053425493567973696670846934965976271282221520344218136669664204859541896692753112911482511668144220285297027646301516519124211497880052554662082437967170989703797621172698008027617133802282372843149208800758787140945851754499377571664308877694336498250991946894585405164369371955694315156779273622833282119797297670095505866007258034732559968594088608547934869777839383779659018619861392244510726287658010021780194720135125181439531853986866773136751610243074343658826311349198251347375037303487053611406504993663342640819549816266113746236781186035177177096566122814262209246975134584140469934135981620078226437682087087411809289393045977612718476573601769861069726128598817335075271703364327818754771280126057772365617277159187469722351193323542731778302367480804579312086111041410008652804641338016047964128737048512843818507547009829348906001580605089315813157685377177188457302049678950947547727382403490069436772610482078915386426822843430608188439100089869332977608252143548910009250000256799835411846760731789364951258772064802624649028615183375554730017582602091631281577507817397407108454201649740434633231422381483860304077272195103823602864746752822256137344565788687645210237337358726016261092423752792362168480892156468049071932706935810127814136577728002160414429337120749616418905857432046628737778581824635478479717963404310620807709930278062959062534457619840716832512898816753030209124707590357049093329447580923788482938612572565016831508792113085660408764359931694474242779389380600195761932412024575946947897197072173752651466066731732527982148052015539178030881453894176196662562986100129608324263191662716625845098481410735339375636517716870637034652198295982200586598577565270222584977447529756693101620050458019592941940872349960503414063854582344081668723650501030340929140060868981308248801322368103079409883267396687222615446994327779541029619314750008581084753358414130925604475288260386272204662162049651791739107335618599417790593839890174352566730215416134573854115811703217317968556550816508102117578324245699405815898849099025694547332267655238859365399935449926743763532761503801696280110119661686588867977879250563612884398296713777183175613923933530561404868097734036784378664289131562739610197663770218270599110373644733309707054001404489866991530361486972770358237328613188000929464119565414538299246972549971754050313024104571629026870595572548126859838095466022003088839057290544471807195769293183029440887252936424797844777501730051529300938310542208350926683074093622091179934456128644805196912597333432364837448493864771786064653997131062857892514270913685997812652419364268436962071464902526419941092911393418996566157341363079807418444587329486704992474858477464079684162793823032008030354471609390040040846561058836848103941441991182115102489649159916832872788411699211136694392741105348710559969302090652577595648683582252643950815894985711609955237882001787136064847438499373397825608265984577352576993830079876624893473665113946739822115990378206611944794324640674130423091774255963495970967778116233628021019005538544210497904176330094699486894354600287662390601972124411933686744759123715066333729764082868837341178391542738999586183762017089486469780358072633980170018347121816106314569045684831470865721075732687150235969805600623551387487026808084960259770946672380803136362029856759313301481838391743655317730582300328197188714261279133236020708740510348762552083379823196826099302677179404440918621927199539490254245020244439800624030149060393208754711768660075955119328318142865790668922562400795201352557546709604530894130015317787155683112502192821025882841066165755227743511364220922672852405781151185706659573707385089053352538064254771679915680135359931802142654896248898498477534107145217789913748911808648878192244897656313291153148983205494576146469910663265470780356611102659180556706836717177418902220446178396385010961010416437639685378064167110386527682842262888209834595458410245582559046700340664595226779520941081268742116745180727029848452606978143705507052348092134472391313049533474142669500022745878449663692196878680763361800854014357320501942655615751107875254990346511555101659356937254816417302152335009905116226356265163321925574520693750694495923995625514725976386995571181948709424670130795655187562197451183185989722145531385736435593311373431972395865675262330197295302950212732398541437699174351987891782641565593320304774050610836638618398741149487122328851345025186592457148257721333049772120100915632299471700727207550971175701996738351021390706299178339106434973993505967665968616989887871109229353698964653430264291099910665003108303551836431787930378216128660066741724913164124856399222525505876821932361115503584170311981965223947759667327854089316680980250409297428890668841920272199330821424533492182076675151311139401842306622682785833127205944827052650962299678168355744154814042998921037644961232004733153467551987132173106453026084175329426063492953409841846410156484600886097493046269831555717135974027803168731469169450348725640925884865453520829396401403781523107052670729442925236631454170471786003605604695468539489857074604601023020199960471197339168430380404504967354014586122300174716483844460221663935125796179680122111397930091461412517424275410555148350103978868366830662640883176475493550629244158952893529726368676505902863717532219628917500222587348995264043857922194326648829790403408299044758918571876826085048749314864982363517542904582737681652297357047661485981797180852275045169496368817795714490975425587794866471798331185345465251470172488377133285288272329098631215224374843888014985374455416584608454299119016472582388028854282994215592808197898136839226281926914987273079370993097592093813184827325759619363190658156641619018554077412624491505417556017926841945367333643653309167804356444115503895577000511180791408386852879710058991279866310200313705285148439315950408413567921019757456557692781760680180953982536723175276274081376806352446423851683218388330699438621067042182993814476484530518997385331475866225031883867766324331013004650437707748891456465189416684312673985865815157341186285186365482583908520134210493684833663804497113794097090716348524974104047694674897938297873039095298872866387027255053117585141669555662089744734530294353845594026726568252600372417203183983977552281626221458883690496996482446015808294146534455582755895799163157490865305044876154081047449757656043529665026256625929561275258973492232351407958002669523714146370503526968405245030859513626353930032907151245477889397641475396269979702858352504824141399839395034830117360348245432834567451988013529187352972627849432779389474645187370194927451296626450917241075032126055669061604875922861979944974173174192807597029206780814172964504999490842187681940521108293349388701201687425741325570784694919244380758719033841335679173164353329678300611137669851659166040127431799086374629260293859361105408114227064351161323107471550020091764905229404353931460341388065706001096957250139638812380597978404851588799608924233224103170628889073216234917458131569759944724702363849591515874020747301989442759830940453393505065418671011457345311957645848512502164374684348115987142393645245209084445335870949588646440893483162554254487599785875348243714335394140670198089139729642065325897584984952442452412873190114327991219698602859744979416741650025731110701678127480777456877730608438375820377642358646763222706547300327661848022336503826321236990876546423455249444783481614314271511124670298575510372023581366355826288141272417696801400409190529119553731885718762606896084972052090174419480241583266935378496457700134215431546736034281249763137153041953532580831348645780775691120318186663210971417494975641651216617239708928327078110549248567915940004299917601444896213399465372660659815637182888094754465084867589995870579824949306362484251697974163878708414931460500942733494912954005987944775407917762925053643158269688322606164705406387907358084042841762491781240486330825235861849553823544778243773557007083413935387646702184986081540832955457307629145929802590701204580088582003118846606796172607900072425110898317500958166727846395603653611941580973727266895658618556410659458075136793098443253448161104888526176049505858563433179937281092937316383166996349709620987008873502444297975575913285562028890943446010915238602288271394318328790147746090864055466078228657023637541891987174629498783874480037218768614931409482884851374847811725427844912374478739661478988176138524329736730874847807904218761080233999200449704323027301816149981695063408372595965812900347914989441332132795178568364784929134363200702870651312864740990332853535250315032380974147998158005758849159217382775360272226654359520341755797525221875627128480008961584971640466643959351054861883847657810831231328616167817675362681357253879111011538967660875547256466255662697547756798363230932466737274024842348504293076178560850096028152842868570922109400707262439460772541734271456257150751879958824358041686493281087117679783384922372157267929757962337557473560127783517167174663592082814285858036368112944025971092687963730362768229791415424550347562136272970518867366471641536570365842911436852850484971921220715910517713847176140462484124370847038866404186391079723422405795786849331482387991226563717183898684279847808170805154864283329649126883051014830670912912657635865540155980140937048297898228010151416010407461021194553209902732341489856682342626031430850446032864324623939333407797145566601896617691844842720276887838731907749215299434882229724591681358599729567803977899037526068035802772534599447228158307044607037174331885338636127766684659349551337864510627604775828020549927636410613870626350176662394498367697327060659381975396743580172029464029845209433375599241727894216638645086811207898020441507967569084786821338547001979169016144615868158909978527617079444962757321471919079291371109589018605743691919443073210715424856721056382489394497660647320689975303526136746968783182367329069235765425152568814025366523984886330470879734443171771142250750124494448636759738895368552230910108541538188131188429311043680208096888236906463060273557753732842119116447237855510701757401534732981873983441394325830578533880640801901817156142576672036878335899494246150304027435603765200470718878883123280605635410776006525891588091190574744048284181649915542098227207974283182567939784276168625681980230159685567949393804423937687861294092354589818075058153725072687324484498339757921722764798165521253062460944728793940659923670445736785449374984200617589408500598663744337096302794551588187730413383805966333818379457142176199921628482819283590610264680357554849579227352733582531576127886631626003087103238913901762635830820048072487529744068648570734070315835477985042313680465981500161406566970865792320250469202873226626191582715325914879251001532374302227985753754173564637321032437893954194305718974895143021926200389570750860531804988163027186195266490905946320835291003248854262190123393085788751442997321419675675169877399743424900967348922472521835792041588107208032724488184454692917496163383113561341044521661363864446003983864449436737797753728024792465620959477550997688953770380191555007182728392593259186442562990561161807280067494359215356102708736528292277967132760316696948254655652085673612738230307158173447863874266893780565970426592887530074053784248804204722686510992750717182221946702036700205985513415010244718502489051542490214349799373616856265395518900632449788774670216634607685143541012102496808059091675450011155724952570686616497468579126587821536324068671183855610532767712591589016568130092819309545353512385213559289635663247368049975166638525929236914557727333815625494177689253171800508297886288580871422558190835272114017488710077501080268330312611152455983493639077535906592086669976781656635583970353441429269015697538006098401458947562866429741878828607917590646918062688710818623648112607632298534780657378632904235672923732566755369548848754105059878775811834217837325561058692164153452552986837848045170633790412054819270007184087700293708393541077638367893503308318879533745680351750029494685138762121357500598510602516778444795323752945797985593397222360137935763594401774904726140570781326540322190890424072010797640842530572721854606705991985664818536230656560647507488077937622870223802336565910036961843169507090110783460241567564822381609428083539351443206409264079143235368766884941236329232434125664197499318304753979855417652470565366040230164107306786531899360950066463958566207729239045957053477579197577052593158189446421905143380685503145662621549948143440598152573450161909381347888603794518174508283807399127647546747468801622524686607604883794599269271874615604585447034774955478188856695608663357502574086375877222314063354502077774257207364764252569264009328745773275317830411970657846655417918115386951575784906144719506662951652289608480429015857496451341260530868209075084241533221511736730598808515125902008616829798374046351978716513991056865725017684022352331041742451773103036304654550216571641352426137467743497824338679565391326973864378945267578223235425064496788793353355785832795934434574034883523915784249768403444071045696953003034052694633265298251821986302851012185120944244048634220508511919007724674491732298143928973664128118637604184750165358404655873237663113763756667073077317114125395822670684550689309820694299661239917492757918432996723568547686064752202923563212698661109669210393065870403010840160731824621406670876696036300224521321992253210684021224865138912582721018021474509545633908805649926122406528851206556450878054881753239463283299879322405210484687196698329687026376056951210200817496487559389319489682765322744381982651249246842771216776804866272332300247764189301247889652238439927668448267025569381307302333162344353167555704521438618794315560324295263810084333717818067339563503716546827711013411153908289671277229779044890264158330700822802533361777682173104733322500553476159228650515743994903605766442599187349213703868280144350638069081682502843080901988320435853678192034569050284210433087230078584696381576217257413665852475234944482779957920737036406368380820458210777120822573920353733261062457884078756334308834613398419628451360142868066911734844943849579484049075548179984060638625078041872635743810702108602791544062043684332837536163590094904830146471210682121516279665508396886831623303897677123420796572961206147538495326597874533803301750301598252243874528189078547111423529337275832028398949408453931737044560771932114610854722491160465728686323109778966953981759492671623636355189144222257702821734559580324476103834025968651706325081301633034060074461165932577715179916306241140629639942702136132793979745208288567800653084574703754890216938620386172608961785853569615680044983554594619025995175889067155312563596292170304101128670075358074810364262219250541177032467270395956569477163133582010891115044369724098313849839761788475843331818391949095460167563455415091634052165715549998611414041858057976335699367796023550255163012696689207767878347614327036141196495590730321402932246269407220732047334432434710061336856696729456121450575875151056074690000911538147889298408887616083964669580807972328160070978836276682838106788540868611128182287990407684640705918669361743922075295663872089774778995760347772763797848269769931385268048449110761165751112559700022780011302327882343279427518069074624889127244463706632386310459693973545905567141531884047108979756052693154745280975215310868695178967238282201783280337995930510971708628574666758605393383201086434175571361138005406936659963565975541751196686456498113615874200483820758109690544945662492271844176768973921254560077336936743594986657392775705790103668095117515970777688048382534321056363469836849919704386473620358970121692232893847312678975535765743972393928676992866494301662989630533365776695444526995435904174349865592554871213095218014103104401092251346336357913038347360558129380874966608403004790843798735055658225132463911268576210978254745785796023625160784883732715828767715302076002730227181151577734517940835482384798954431852834887520190521043333268777180985805262905482704612960533377648622747735925132704036425949016408142902093492889210538622172918840166418927776660620819506779436515283905712282083220532296076724224992017640719851328986915981173946543093747389880515658110121459698477884769872504684587861554332957286510649539121630228115350998393237265202175519170391800447496545933193771250043640065460834677376005114736403983463143659562889313492133201732575141818966339286861976184259025566259264051994421067165890617813237260516109275411088782940315266665328606710266103266753054262444527354030976224705135337777736960621751437025170330832319518293919035458899831444730201940987191303074074066764977265170983521645586582448820240614984215721473238044397392012127688055730942486685585458375446774971863063967948180380191319745336486029096354872840775766084079966239009994847569503786742250001238176522020767068381245468551797978183355964682687639612197306785336999288571740050062841129303196488399990461746115133990139133960999894792039088463074346657765600427441674196454982021483044703599322330460563119792669584364936773562404881975193226368710490057829937448824349654441488484019537606236181291614184215281727932606511012718279650438616807321881739897227829722869568452177855717627709365587223829530207410242096021257308473931764068021615485981976762310219659729313412015662206389055144820544790101459351546485980742031431316476028684388256637418042243124907445577295352277703064363973622150835398309218517320375729117105984485694995726697911874614033059051116737183104488242563571848563896941909668761878433026881304335235970485820270935928491728333160968183146134074485539243785065839359875094304466863595015429123124505895208407781662007114580369448528976850828005799488087633877322420445766995205313263746611245497132441930058196917130145342697353015492383478736206153954709302206166505499090151695369390009515803641507038967653673181855375528940814199662322587264808340076081185371730940000400044543445378588633273137764477869271344943482132724189786041930309102272078017406126934096652301805862917621514609846327143796941095377466151614117310410197009216293016270635718343288926072769826620275910059758223548132357927234230270553839243102404134393929203902826151148384808293631981330504659097226633331483128623341861221067509138003979602634691711655969186426473650633861857117316332406784891058261625131229132243560318491160894077433300022770662653474629414417820948806568984680101722638972350906329489994551301763521078202168230958520410707726993540077724825383269344077666812075843880460646353949700586309201067884224181356576500893008801221222319768670028496677322127858460743343300629062204792478658646706516009190852219388729351038111392332041352170108981132809774861559521691552947930071482684806939259604839293350046907825370019486298809574418235985578958559091385287508066176855028462483308514378613594861747984912309130415090986548497763220851225388522978783161435329949389516168765346808273369146080052019419792057646731726649081916322281830112010654936793837981799418566373674060946285640592736486149167304278946591891152933580241345677507281690174351119674952623134207382928537386421309151026959128722728245665468808306032579273657736579272332600497476822285975342309325959901832447766265758652739486471303643902329335325997543570861068206524302397116301397057528576350202172438614197826550921118886733907659004553495345757336504541483685525606333321355842484904803064802778459542316622442036019850166261232315309125689770633921313516739655990375386794491232346080345346783825783598554993322159934008698841719172190076890624447389121088875354916040411975630126337902106764290886514362113045114901951790510053548607593820302874429018340792719843606694507255442500350051280450847747598238341929227645501507068087298424754613593470588808078400934598918048933560494046048486201969341119642216066684199090340060382668532255945770770783142563223562382109367150124477251572328179908832991309287819624606676060803829666135742742347416816627802269405127480101860654448192508711558419860136581219412263908539973039870851543316164881627606605775416942562775375852604233820306380822572709186131414137380165200485100514898501792720136821373264778948933310913680476389322399192796847044309555952163517623900800523698941374103068529866359693283446321680891028908725123210496250617687059002142739301445693143617797386967728955667335054571842420358937410142197199660021913002393755012053447164342464223907930339641467318057498114063207544019402284528959505887029751887541031303517790042240114584467458094341793627471446784308134845964351371015053974096057043634793574778051189912009081808373844055617957389034580563764900806150725177368224281755019329307914000418065662406918754324068689981405962708165723176138449129301179533513579378255013628423093776969323929520740291438567059468092873328976950070203282042256572655604169115316722597236173718031906926583266766108975458745489415789072752788413181981009403855791833937807592455782566641036648584589887107309087665322107796446533232666035595605081880055407980270879417352739054884375674081438146061921600410158563393990434814492396191553522206618196478113275877210114665313502581940734222470845498052294671446280222704548234065582356341137146055854610038488850884563685092217919620499760135561988705285268929650222501602482125187537112292096943460851158274743588665481993329307008679380790418490545280513098579061463317736719940743344390558678166211589593799209795079464557942852708608137951663431982131600874280370159715648678486157185743225382185656899941956905668244661560880711086189127812993648652655201044215253677920186595506847232806233111154987395127367889206141752386538733616070090215650446880662671538435621196074858788034067082910160623510659558242518404640409426031685729992867046818785807813824608121575053410570326986973261468296622838000519069423020267264273072917695714550484544696213432007374115322791612042727489191645244033303625826430365941570035360580843533536326178735466430323343344413889367540173986401588172347091480561590884214071381520217439229361057817089302048356769565110307290378596566177598624872463681989556251329430102211205379662995402147425184365440861989513806069722955086781756440337179441494922902333302734491536652936382248963038192768315975872252746449018725129796877122684175744882770188663844646919939724545750887733942033678742808724770832988417670638249601747581629893852490755784698478985023999587008071714179452384299228168089130346143172731991114290793696642788160208530250879831316369439375609765742486456709861277157208458213690732781932494296473324849654116978916067038164582035633826826889777842558324528212096795514816513848024156167154008981121254930412316649862999830611586109625216114678892932528256319076242103509465603506044196224152646010986250785573123090449630121015915475731976668340183733238042888876873324666249180369277146670522331852734386178618180775833517695927116228723916932361759018849146879950761875933898663678108568137160841902133985517501685757538142753272058671238994159799298526924795454265341027004630619927395267748598060449318346308968906544008673073756412255593266856320660484045670028095125705063204858436719202446167222279680012869142774533819230403286441379696199265220371352537991317699397956731727250656540512824211475675698252539298543045410129849800362241155927638671980099320404360416377527995059903535809056066507024690830542295235411255367407360235896642804098155150285219460605819346795171408179946015146204099695481093300795898078676168510419580248099260682734440812953172589495250813034797702078902412244237612296784424194803455616246130055775790648386839522844048450330347991534553277498935766980601783394090561361430962926472665131079765566302672250764785719401077332608251613915584391163964268255000285510319443853573167905054479951658840735335141892728929016627863827914171731777755535707024109142092482693726470903370444743244885036281959461583105551081088785778497668201528908882119774296144893780097678121417904866677650603090669811503980767488726714313741547432515873171108609702015581883318032417334791640884899934398280098169350956243402280697009264328566530473290063088081624295999350886336238939800234782816145880679052715126919143631149646851462878955604383121902074286145913438566139550916221824888964460663992932586943899993099162857959065189181350275988218334280923046936045219972290222748573275573190897597353081054286576512771421290537999006342106036578720353548667268669297635036837655858328744677531776496003087151302626224878294798079468174422481804128968404643951846706457644065337060947525543732220029205840244342928579909469160983009649741473211237143502681373316539677842334998451803153229318378745538214116294746358998435190054654303518800580123352244672850203746994739350800907094743852472749002682161282952392289845582227632501042887422219790739854520619642583227768798164684974199804667918183472374274579045856114910749307744182969303580147117960350719887564097268707399430532568854715606790996093261888944447586792491166280041666340895167006501804646023521029648010421072440515064113938731781303711210088754476573802278951537522634641468520719239297434420394786086264274457643042943458043523578656716021471281895447243297739732313029080681702262442780387818584881275586544403632657103460321068632233100474478787636305327241943706477059683757205575628858360263115450709115882892072249841577193316400572249176750202340067684275359446889924014246777558578307848111457736118905233780926318272479498956809405891455317033999456138380843757499264274484816111946726205426032423446234578579224414267185038543211049630427438666302155198843479817727384687182561114960457379525463268875050490801684879007549067960016935207202649236762108700148867762632308327493310220643519965125079387931253790536427579647524315166780424701561460447414476129453185265435116350367728074652006909753673001477368230701128729238635742013846805946171296002855530854832428366420175640467763649272490696428013580164867437014317003637819997319362041491009486448644303383201681596786781303813151323054305642569853951638610069813792927548505389661730184455131683052875754372551174758395669836759190711591623825020986598297827075075250684651280596690501245962993412482628664850828897786738989551518109728476676283916363573684212815413309228297241365007700322780517779243040788259445457549885477822582965467777726289420186390399903646950268947372717265931175742643170202528249588150918267072730935152598987783276036931422726515563034338608737684335205742036583718417666115062659159436062604010931535709983243257976314035202742799561478400042138449794588010154679198796516055319176715312101410327729773398901046593152201284359738078547884677338450738697523795090941392739990236479567827068872799599232765175440229333784254915060296935312443118227271937168712480193618647414625081705871489137175057735386626670618938644553368577788432036868746036544184137947611767879015265509818706110266406838965664095231642332069284578900796332087165957175472349081671829568792858541536620354929712792291899542352569203511536739754924368798061916155466190880536950064113656201503819452271836631202668874884583937033336347860561386929376265104293238226178417506563278875314736629602933431514509258203115063026164597320031508711851284438692783013941306805542890983038630820186505180067378343751296467538224401253302604229105978112461709390699504072429624288741194918221423583719757533991898975779335883108070481060092131801215276539385814840481014222020335710974632432851936648822079926810266701044351945096717545487077161597843012909220859884273963920116640093017268917312249201294935653779823955028430893142068635499998243540399360369602108025714616245423820774815185934354884933171558541128970694864508826050448158468351501899199524628060198707375336876512270288687448211316226175268514568314908074070782176581185876081149408984344206564539535183363256261709102945619930356157438578783064052831975997385268091287582711956573385052250092506655931548190714107681099710552941806595223287415731344561238765262041083323604378062864776178538243313072982220384035930656746080704552038796800487065180787661808805288410374987986499910558203718299713071142854369196969352012194363548108480420543781167691234746983143975874098918167400849228925828727300155215352897619774850715998353488496181429923792661542838576029671934441713288063246472742890933023916682625392081067170782455102400991526022539293330479506990792465814773611441638819734062059168340372192517913619473021672101041112188661442415780359732690506794526576372393819121015875299483589341056685706340891978107241979186780614068552263130939979885972563142022092714294638189313938774838687630137070681456976350086621317559287587876933118786983457763048834351023311061873652585401645560027586763417288861055971474018974704207038916413947764725280264140094562425925459904991983509156036207779718713507336736027658607361802237795810387275075094675088969343781370406388015260737029327351865021222038515925205121544666053562055163484544727517266346274834398954643380174572334807597617724345590461117390675128335848348709136325202465518652285204792056214546102315395070059238209390561264978204661551312843996796032912247853202516763115558050934953942433547984839071998177564794438087804808415085495870261861711652371674034559722740781006289415334043957673235257422912158531514214021419899426512559914934164521223214605571881235516640074819563809913956024924079227447023439736240167537790393820002044792773255383323029985081006731705904412819893931948205576842603423611792576021023929139199582636042009571301620715297196049579329729662227869669441991697863304737682282439461335803476958169529460741882809144329715972291790301323400845156611220798771131570751866515658843345936535518671358919519755859302991373162460889281630823396882636104624363080173059484737730743855215391450693480665530410388734480147134414214755869526098970401736328871162270770159279006019383218983047988648697905048862913692627168107426189804346939741072139892218161745058589097430639563706119229175297828349550451267729637585851154605501599722027674341339123784227620454510219266766116089990216411576136555551861523241119382675603315740342912419858303956170551175920049690164905914176271431328838826288499354304808288282237179473309956126393914630871353537071703615485529102434998538071069810667167424523397046536715273076266889205215134883832979829526924764966941442227046500623190954482139302883136760163442067733162882394289677497571124582004247100671607254781773612026657593695858483408725709304442705245810065394479254263605566023082918871042314844706509166378455664104668475024338054411220434898473929793890058762465107508535727732459600887347152671387580964954674411405785269094878855165206868679698789626013408392651219756582588702137817360283698590772828750464868468529789437652872533206493078539367378906784457226769640371827156956607141367999952522127435237836826366417914595331890952749475018991485903206070574899819358783076000270326712692657908268471913691081941260753216110148471325375537147062247317395933891948686820279275363971979581666493884047387652437812070680982158722352127418535072515265259544431094387684528942142523645127800561936744488195709885325729507917678379423824768815731521113955726835462831671450830636321963618109550450968771984212952468017504453440445352898522436537915821459319806145887463344736013323959719073525187647921852552409831929330624948430342684208130930126905707403519281606988994229090761502449829443607104210781224419604749484511585680349306714677219398711866460582587574908144062920306488900705973425214577754400627589216071192466320695291592603488402502893678936259960064273013706722273037240899333325311535667122678953607346752562557757085754077798625252069567282600718953465199028287247686746326603280424871207829005407798642759758450645160189515457791936722284175459656056974019523991935955675744650019113116479559353029042092435169139421770093098778005825221227980997524980788632308285294291310535239924912289221062621090026571392041951462893587430137756151985061551683571525657098465667600744163465580599748997023881985262762662370900787396571859771105778250574022359512793280508809804172633249605054994012430100835955628950151931007625941817761511363783959061029866361761008228435377987788926524605538605892007290437304082124053133302352608988489322904987921730083458152945104201521631013439166062415359416026694639298036862332080978422002520258510987572765650120006161707821618507240187708415216842120488335501015470379775054957478661675148391518077924782334464154442902465741847097970703843270803270200277557740209735048191205170809794461116178841989338675819655669552373378122424355642783251660547229638099870662637223005939994617340736976507524599294372019860098371067454184247447655663607770768173834152011127994970529646279375876050573844118923149631664384666757281128473103729994673513647218814445700246229172130217858377236814754261424461039385309568819710133019735794465293326483433642937081631458392151383922360272431166795981965615290429083466272967236416871991718377272129310019955587748734545509455348856017670862759736740246660590168251547205760366733627000126188896647138952080605599014125219247146639593162125643470470970485118960209143374772327220817842495759384757293126188961315256270096202042387629483103629601687318070042280719175769281927538705796953956343338124096565862826460356101225866224665421342889059193111308438741024777033608241279797206206835128541655885232320003779764561004936063717433225826388281010613742257905849425505013673152734973649745949583021314522580894683384349037750103548863158314988401436932571072032182894531521786963733698165377879106244862193599916268140352276940295358099033066737311493721569007479429835738101186614485610555998823006618684583601846998364572257000516285315313777276908704677106540796545905559901274528233017324656779065790137188757490735370428074455323178572774927121683793843644273876279682787699640296752748208279681241534246926215037671650574857529650509903525037089108819192154072140071025287381839723270983828878573811451892630292693497988140020678591292926938197060163005481458334194035850495702896137446943573614222503622157429124932639177378546692001476826786430206550084028398171145210089210763106033630165573486883226825858249077686175950099157606379065583934393681241559290896747925570958346062951001987614767713883156679039598330338873438961900805036059157776731995537082857717374829718565296375147062319121460626099478113857664872818467368945012684426950269801144635417947987710390969325017746709380951798589218293834496722314338478738018094862472760112921150260515313901183520863970154052786952327144356776472343385519322318920991038523856270412762930561739317965884107415512087930855986584802536327898749566627607356156456251098924609563658472080206679613437364137672823414223330520137935997148545193680481339679489191988227173341732002789601455001090903286718222359269559585701249082085165814698962175187176867010285608333997675337302947105249346914026954234776983043786430148226031334891314217989309900136898664000570461097790860355264039298807590458551017436367086059245434922416945958203954101176346712249045304645149105351760915758323847550257003653422584114236422426791958434750090646406337978956624982856890721421759893354154860488321057966194126198174585194485966116801269069045634449477213441569104620125168935898099240324771745621857814962436113935259912518153906854220817836139754178574481937803468319570675597286779994416057628615713125081494626209777849064929747920915737091651422842226544490885610259794587226625185295043283558502262234113001047581899829339113932460406741612713673842098043626848845937286791083655611349168574521582938570014822113897611061898094935106205451900949167315161093106692564922172581404614302149316126183233051000084110561314945996047657932677486531193357841370402271473154935173478547192444538778843673001697074990084782858125119715905317620504398864321377202463711382927545922073488060022241118218867753117935432564405719771873440952555990408036819794560844725821550389112037517653961179141451288187301617778195325609737827961225111271801723063840294857923516067251300950045750941618300698807779684220634526522627437248937332341620257176796265222358041908368177351979222699485003932226111849582705013396071597470848289556294043188289640055875724138411545397162227581938254995349661197366453959297874789312629435617385569620533678017478651375313120914228153769419205617104760542425984699541159186375986989297444454511728046364499165667255880551187034895037505124848539291641662662794327953835713304153142046730994555593561691174325525053505093379005681269806248847183492340220117998385092269573443915467788001289388656803935210033554430379544358494670037935754421141849808732512995754698863838655279057649808353363052639291090584727613113531680647311668918197619755687917224135588220000649074261358118104489847797964557188029393531966721373692633891010020120505684463288031682176860881647639082356258302478120174541296354663841258776222353767300822711383863272941373891999006913964373925526040656305622490633491175134307709293007899261842823424286779377648810158376378139491061616574563813496001394675294673177110668082181655008873189216487623955622209525430831082570378105843944958589956934480784511882144075364931620108291960130018794673443102306701527266947513877785596538193480929618767678134556514452326627684361474471535331764049865197532925129600278403585364995855370026322599416107554123860608229672520343919001904818320067975079593500586165373255018507644553742175930402434987621085891755542347592438025364684839328424694225797679929501137081125991197801636613112691384591326758239726478192282845398503603411753281774590929127965990453644770003776166406683019352453358357629966243916653093759903224779121665300512427980539621518273552635056578126697011963684140819556994852417389907888006683153584537772041074736433152188511881358505370798679630167470542642931554778514464580175579045017559997145169034550661600267846609225663432212305362886898577879247767819177499289402077810866030057200926256845959915411802170044503813219738937532109366182723266882628676756988958385528626528271032208846540490961694984020831677197512892820658949976046346064952745987129602258425249056174288970889335219431010369957487450243941444147789947700463299916264850215555992125333456676460408560976913601051008190386291322184690962633471728195035954244496795105579977418756471156534096912067220617752101131651845000023674599972934372094072558333613130932894878904529709958959633866811091595759040251117425051311252557830990150293447002488062727977944508158084378603354295949534694961997397298295528404328731743098031626126229013080722349367632978561440027215915874616656745644455506526034856584327234194168072087629542658631986105523974648483022386218212878226918293683244886641460821558528105449984211660260170805451280695498095790213880617862319085337790469568270366697826961444384745693216063012277201744509664201782075208555834246762209856420386882999151343390864691414962185288623158989006319603143056313920379059633931345066675242090684951740472970428961101258783397515793044009945523533565132731703613006109488945780580080048982970568032138863197000211999968233313774948932764524630454058456170542176820672647520891752284547954464985191868178022365564090666948027836060888094755643656176218563435418726722351722913706194699907675450634773571788411963287236804171022054660718880138071509034554850019352858028259216867163473443139937636712604210848583771010262955792285607263090689325891626965610036746581269217159959028857107361903864363181244301362406656273016551623763123280864622131829381924040703666956056939896665021318508071955814994156395622351398317965476121129819743938343235214035915675502541280246741862067455566884695939914112050497146156528900824659438552159935319798147616856661695906266953884988367880310994973883782175864802156295449962366245754371706867228923845139563023766296722587623075359917687775931908644014480578879016607253326168130981891656252223974379199126728193128682737727213659137615306131018937056650381538796128545114945331322883320148171221077368940560652162005135770069509074556437787843653802088418819916421792261142724944341762975463526070767748074528409888240382002184768360181319811953341066617918391337366271710080092433463083396736816543246178879096716820324738141503759022858474336300506050614797432606169594196971092392649877229046939497706681766756927978739856244844986058849022344775843172497504170697888963505717550049727000302431118536963000704844596724704683830265558201867420935980861023611939647539400802680117818357060257169812838530817430066114230957285875218027116622789548569145631005997815865960454441298596805943121005097004534974102517211349726093881984428417207332639936997178240646930928249418579946264617903012006985703707818241398447322725970675510522604969102148060038103137998297976173351470746333345601650901284315025958260416811523252589140297498653965959506579181737915292919654587752077091164557563858821290943411863845365947181562834243797007619258012234073393233265512961615866379531063717410205091335904234873344663636031288377091253400086583686133706064578059505016413177637609917180637449545886773324744978739452098701148232668927864739156479028253558788922519870380021447786482139932183470434539810888709691924935544591299629922010101205717127301506800013888765438764750364476916142565077172061800355556838473213835424938067873932333502323237632985571016173675710359351347427989458624102724228563552759602829391793884103799166770220754516531233610644575173057444397367786488422553982495296570521973297359419358385413725830302026202948504245926067133362373574140676290124150044631629261211944832608962259939504896111445672645495765240236872910972215336130082850430188432401373240519801543911019027304516191389813603068542677242045793619750918635005291897540892607099699299683481586600807453807982040600696742393794406292604135333968602411107686219146588727865142886413872599595783327720615141159414471959858683227498838142216253476415130715557924836769775583607904433709935114303822316910823833919806869480712464819592001487757271448322259628572371539986655095501401398152957333719078494907021048743173105588400271276321947075153451051035347418776811112534470836331069793409397279271908686691143542831820265156296174494010916227971341793578415606628619237864725984171422310265130611189544384046191917594340393070093902251105401038773029042136049024654614843468378268234443091736106804012043441761048844833301964687257692633893847234388896567637832581502631613287006555074429953261421338702845433151905330253330961992097327021802396095620493889725530012851428909680061686109073497654462276719097449174613338064206011783794814803156558456619669881059573804157570090225742924954261532153513106690169573259179386263020759506714044127379773677475684783999068259395114779970278978463205882898681560752658381373863605115923542113016295107557626991780788673482084770564476578256782653420422416551066969707987433462022692574022705550800316161698254289947489068869938117172207613189538119782605353288689364759803657843234426342793093164935599097727346993550685040610931756600660927212603086021546007214232422875497946056769037881124581944652792051816191776509895808659206037753292687316481082650336036128436818997502084092705058945105889598393904821742942349820260709397115575686100752998429181833837071414604496373891458616358049785774247633335394226489606328962959687773870770006386679933580633549422340446555020494764546721727222088222658534154594079577888886133821349603209593636388740708766151799791814151206959271931524632052494478907466576801314341972138905860398600283142297265214409064545461861421610565931485774225682756518316144140271626750757177526575394740742762112241795629041661747982376510503232140147232742567416048465025567816267643129443261105553107572598616716951434517510096829891128683806051636170524047954974526835301126906256138371940420357349802262257895203989036310141372539655695847125643510162632389136379911396237642431447321004785734495531530169693968129657240783237110040227524269631044585257680037283353527149502930867140490501972080648563212278611204383873556034871284913468593889502820625796380494571626088958874673260300270116801063066269771069332925368495342697054109626076780730115337529982141941783760880943695337282670389639780059521472738266447658005997938502036272951244960552114591051134166136438973787271094542691518959474830028631359027056668650668415988155799980193191159929365877507069069452203671058727015398643115606568812369571043226527544468659087057791523695995599577247193713570116106215025277731956006840193390017554354247712219135696036609557258786698247882323141488032805581113148400950108699879911203920201943762279832925779888722736289296594488039682808790069072993493441164881015421611694942424555811151814840450534472669759701629736140553874777739782707437210107179622807030626801642086971620117981763242701949404298521801514965341118770710765584017614413545621113104509236504791378210895782148243603725078706126106738233384957626002120503515556333516746709854660133484355768989297674332446238458230073974912501904003694650694467027525789847386888615145541969372030305348971302992963257007971182495217741628204747764986386394858086771347033763389555668837039919365224733915767181812873841682838506094837435662215869323987972762341386266310666454236442549578701015194192769535590282531645810288966826352196806514002213308020239558319591431948096874882562551067755230652343945301596422824424851209651330999475732571945604908169596697454385397290581808322173356216532352543618315282317184183208005653657564360192792053380432509059052559718356254114782901044811561140031835726342513979008769875548962843673672020927186444774806888394985300569579925467885955580897230651653164079607355636308938586249337560370905004770150402790893224409336247610816222198819855116854624475300887159813934621733095867987157746354746694752878223818615331137688510640877584646753671148596936838312919852392731646718797026131469021778935617029199659690555985047009668745567859445551836823896603976270798576259181161005354081614930201792138122183301284343214043423721592220265700759167077526218694204509475183664720905787279598483536367263891767852473249812962853291499741603690156861581038282826384371363530949296680464369824710709818563920361748715895026409946286958347600781651184209147425058336007909777571108975229219835336960360984962471181747187665342185205939801562222388273229202475541639863569067913394573325062371037872650863715290419231767781055428678517829545370498883917346090672719575974421860003381714585600040695146290900424337914490405681425555189449439115221596850815318400705300866011599656165303149745212774861790692280520666682151377416510633470956529823086501491900340886037353074472758509460445779163821921112962436826108844558879373039527739693306241420051095830423104510044222630248844540651816756481524126375994633186110986871761306403624263913961667899586743188215562721072443577958909238974772890240523573710891437764199372670333283885989853801208786941797996886350587995052994676257918885845041798136339148000258973124670547644151978413498297622901594966801327862847569802016091342807216492008626472624915137870356465449583786350047332179208400612936146862610764641852841689911105441147764814255493916283174256426697657800131171115483236335700254797927642698352413694536234001971254730895906269758523727700810265406345967863314004729354954728462423380344317805787761771625863274781117146092680781297104961236200967235000490405346621466261688415061372943128492822747763431865009276011652802127910115524320147008107049843539724371813896388767811537738862753792211314349621063890287254701874984100932822287875602435432330977860667395704634194277819925704307743891994954367049858859677977635820540676220223324946401279211996167555942167601514593714254134593196809768641938027901705557429542765809728269213021058764759372520525950408544286572636774633003178272889892112066052936744706152107742551700372276310729414494973330088596412637788982551433908306451560356951343511904117547504557274697745414694398784588908204501313412047049276942436114854075475856958983278560120793444801876569176627751837393045919922394389775373203555375104394752130969694690287277403540465003103595895671305343332349059977803153775942713685319583109914814425021847074453751297158487974956908610800638260262555680326062001152143758205215809792378360447575340500030146624400091931138020093454062821939741678117856548209104064515002671322003048429070177892914376071589438946295917038787749400791691363597799190470237359276415199569077525701829688962400499721463114018901180191808809852319790810965021790073870319256360985854532194837999463139026973210933710576760965831220777703255225556431029040625221875587569822193135825315047758667364044997859517855553573567868246345257097935045042007771104998784536744390277544204634702536905990720880158707301934291317914028840417917857669965824334481069079052170764849373426347522765793691727987193709207123773282297075446184071852014498787505890238235713284944476984672508306352470777550099163329559481157189634278900352815190925508306147020085102916538848716957015819778709071697788752372758738289828847263414780887751214415259130761988501867919606978143461777117549393294682117920385066348784134259716126481567030326063011977034109552039542537257311601181764825004469318652127474217342553715843169512175304969776690204869736449560709467659135608799701863033567729294753948922521085521282025909959426177883243727480868759786624781695694271282925965862829366130426403990072105042842975143669901601494645910189634557355766847675338417886838715868795448591711022026331143234764927832084017676518398121722913538219263047154431180306779967288368444657965783747643640103543440022664392688328177353668422569288679015014637736079899660119782706522209690185983454371925396701733153909635345888826290839928967407744904158370696244641037856286635458308632623250365827411805619618465678401734556054903559659018054006995903985672398220210033073992683107745094735686790456804733215171060664801553958338638197128047952878988888194610843140690756792235996438420103450785228600118912959817779400945717551317888779670536463834838642822676264408477885070176854982986014645380683401249216919429061494738008667500610851089739106799926705395399439798212588648231332442450684442533120920926907113392941787071501471928873209847563475877464480233960368312715088460749841446455810992004818714260059090332129559790148038243529452240050542882295593223198906623858353802614922182424566019578884491328898513952053958089155454998869321414141487481512563736954167372614679908717174490575169191091392903148168675610654468385627786673760240306130544091040733577573983187605793617628883751380519691608976357680349928195393536005195257814501302296508691386824233968770113340098216300605284589171457050297960739091895056633189450528953142903246528147870849016729612780749034015292500919873924445908109150614091107253166994158427617652619686347724224807995236999225198807866913532531935859066988185434310672257788263724321620985318128692981467765935036121800048212096952924877028510342961380868394879566638562047174747523164480086493217940448570050315398733396168343389080674458624154113412196092404486670501637867284714501817088349968589543958038298620425874575441862074755735955492018795271234906845756461061135726000574398209825428714080126045058246015651945643422662611991841962655240778526132125389608032324564757116312164165476235124521725862485873657654889843369647263367925620606898701166726665951768073304733923524665571288596343669101232109465247533165373526705021224341770443166467262857115853716322183453973236655902729355725473950719649420175930965350718748936313348458787954946264877602952938407153610527846199257346719511699766781629201295001642207242710352480409535521671755036872946133116736761457385350637944181560087210419468228311079737369374163250576556139393630839629545248884436393939050091723809414445700878078099176877309687736764047488753073024547755806724578301629747182631722266097562060310786612662758857301283710704559032810344893266336915270943016403512322020923262357096257830442918927017910300393888927880703054809788674552644381111287447883936191881640049774387171856191997575063318736872650761705239444145578933893126406274069598476824947977008695513376639628747666668057889724198539659110036046358901747257964464962726391402017292455594419132839328753000341636909572989925743122421891969219434267862974743952457285285708358057281822723835875955758396286188797122171650062525256303513429142125414997651758982749043145346925917068829442921631990713728306260620337155994578805325194730791042851295747105239101629005243504953997362627259859593280370591764734369656093994713773807750985603234189547308991416876563375151608203988905576075212416066119374717047673699466017098133469381887578922519510600763607624533597703439382851245467600134640721727079432245433205242466917694737121682024330214874526070044525718005753706342646468957526491274111991432298362634166118205781572481227920804232297841393197426149806555018121062079646045422550893925428093557297295041313435730917997012184423738681534907363062044843092880102137705430532436845462144546132331193298123816622889247882525346298606691981060915681173545400283573695032837459172085465922122286386165260827122143326654987202019876342662742362281515048836316404310973968017840537594082022060723280513599538206185045101129021925945838766892587568379338213357535198936266417135717907234399058669597321436364494314486928823377136928234824342189417227746761142280018663110537418521027311011909554521269823321426120785059931097411647629466059071648907157366744026519953343926681396808671710738385740139411895397455667599535798684445785090718984191568922943105644798013268965562033956428204580447762126430925134939737245334764616701516539740852062896791760474467903800343138796938670084333668318488657698285408614879739056194236183167853404141323158419215140815863630917357291721336513128390874248552139156909716020100632551265123300540409000174770317669572152469143384196830149770195654469312875386781776720139831279739808270934074339671411702689630182141348270590970907887105536358145522396651743592210019196480125372393062759084534090729865536617375773342054964324852643954452526562457641309254968222062462408272500469011594575313627344463140031844684550181965671420090540655281185651479064127262504803240280670672193199781446135961031870080227343379953576827321746414954240140963510619440105055054311935135768743184489272179544907441366559905832331415727305093342452234839710696714610613509847849720954619621572495306926346996578990720357412423397057710672733531918789389737380959527265662074148303339109462139515931714374590105785652732728049004090934287278959924560138613261695549896638634253032108523449464630058794293620484344814714295813105065466646341830632206672259729754365387942941836484983629359315102319086170017717381110981887571535425740257135995460979451311088362167644297415879201582727757946839244566391619984219437683282118907287148123931093230485587185019268566012987658660976565719098974125742207015120813647415404080514715390353691867794418045997019913486280570923356806978123285483855132332344150340749318920220336041318750080437238627242865700349321337602906137806016110443510282547360963721228634838247175631200896082545736518608033312181698658934496699049990392995268432109355874499440992093123255095028212086485227622574879751257269608603368834463494183832588249531974529299728614879999975868236211759613540257613782289927862713939334613519974139920968308491499724459407194949258667843885787357395347077664912296632352007077426605022679161926011169998294442818598225899298265773942765269642352073785757895435942993604729278700800964655641091540896864221421917040866587833898116809997059846719661355058585238487099536741409650220787439631894390532150276704648662034797469293964834004737322099695097723894799380477768000422035474449989984813269421223678779081029192536009437187039606245000739784442885661557089170605470000755858258617707105513494521274381263889670558473088134000257251997255944534370407596240044604812528984293038849452540923181590996670735763727090318830075940310532447742409191345419247150519304966271916304922818894889246188223096236562510156986920296897412050014779336935027894147633144511246195344615129392603317466781281049558688682528971645850999336058723121828921503397118457129058552480887710646971015814336633910491026236532693049374851239169346905684605166494165397966032785963942140164385156128406368779444697877611758635501129014113477808503761644102220453355411510831885702907519405812456439117880636246193959386846285842402880691089564563870886069444668481945587575739921412175094074419822545515915633733646006135025337220628037715596895800165191327879581533409328039380256064776069812882435163866602189655388050351146905625227229319451833144283271844533858524856693037514546860407375966903938987180711095020322959136950395684204350249657179184133602386309539628122838656900965663242637891352932435194003800012467229542452859672330381860410320524703741330611648028045194713019764784412434670535753790969521017049258870934727463295135365308833925764890518879764760766415172716038708904624296910403321455424731221827666450675516739319189791931053251823677703157823979981307009280058539577556904117035291197261177826453195006380332279039550982355894800515917188006209138770790371715094914674981220836927205783706059767390795179474831448923216968202958059504587627207867135843967792857301097819516233950566794315521276561533751396417656031933315335637365099664715463564804258637899876974125623933616430439856156328360970526238346897962447255727204302996085026512891834629059989113749621415016105231364534373052360951927877184077092700017043830930483083182446358163810160734988192524495554676052608729258674580912618785410732398359252560737413110161747875670311553914330347452317404969000115797417946275747700653189546501670133924691772701214387570887136832809054095164700553313594125281909359423553153877223550176818777623280434810819984353226371303323972203299644621642967991638580848990302499680229996868334651335579369974722837982678385613026929124390656654511024478709619719975153341793040683485063303566654342520963245133500084836310539778380296380212478484614682589928164875698003451784146448598320502675803351774129544291263110475345670765144660134860250293193213436157472155032801620344018836349048818942938772732709670685046736742789581031880851465631338851078664898735280154251173947801056708650979797517846554438886839304518735500740497220855011239491841263138467801690804368799501579974914715903958438777338445375426151252533182467590297981060537668099778545168537356700300876998055401774767023585336954332567276087617835482461545656971562741086108684499860399652412340248963072638552404552971574379164679065496518189631741542866465813204086121922565594611564399704632048804076171732157329657998834800832416206158057923572839848118628602648973646994352614833543603762615525822249607668225097610693588562960304475174052798145879196140157815218737266926035357258613718277986250519913327927151081040526237776182427138539362116210950225752378731892977009558110758374014975665669450430165024955351122106565177097003876202860631414900090230840935868075938076731772662243608904911923974939198233970874797461768280283952049757738570840646222729971875350240884387348189883699912606501579240956221941692328323995575930728883215724840887116420106066154253490362306519514803763134290752912955450460753478363243899201622262267822895028538064562228953200372712540427470756371712610299413958962615111588276829725052609956375047704432482324313199980768622619490794822198394277436486056608285496057617352613240056132744814009697436776758210922765206401514841473048546746830497212806337990684790711376311617051035291234935064754974479254434139691743701493724644701991671959147842294706606727847095433521375474651119799750595576010657368127480138599280845896156510736206348617330107546585643100923638636544096218821548249894497893397552145019766816355906769498110674650953658295123161078906943790493576516380609505230970484363160023991869293001799992640986917361598790300994498352203215098399422839542060589888636445072377991866081514821566774234995323370748959181317590209632561047847217765608882021266335705085921260204997527566883064672403702203490255535884896735562655223692438021044582477251686204082278663302521163634946825014550982477285736635790618461292822338367686637765645826641118399338338282402699302834865993212585703843011957611606307520566242321544637439031549160671721757266232127487663450418520891738558974113209315591219791234032242641205056424957112504881361061958142450703363972847407657610819462464430228337237548256269670507515786325296705480845801685344796683781882980716583775400137728863456728656416779713917946763814604373018902222093297958827331359019599813548123430929147319488408493455207996441823916972540482280424170627466460801746089071901903432922092542608959368352821031579278663076076799438167564376980403896487397804421977277135076215712440946237083044451024873324224726744007827477881504322542373295135546105121861311547973554423121162547100110422722413615776033020460132559443808338591945298301724056323278639723927248277183456082135536995655750402566407575154495972079706636159184511053160247149357861866583324569453452905226971464563898043106786548753494183164190269629170850587646167505722032559869944925549690810750077104203030495527988543408777741454792915746154368477063568309026961355539966083529167817820526128039333906065389314833229931742088440725016136458981516829330069796910948003980460059386844235453471802384311201313013110161789990040413573830630641994170941287190619368148679885863094766552910963357561406956646344933397549935355264470970236007016300185523418350037033881953992371200468136207796415907091109201269951349098258174649169378005339845428145154533663025662410671234787185768852771534030853345879255136243388032852509579732507826935119998274796975848358849284564063313819492886987526897257667078513300204216338640477858330049994797846945265731883709765098543526610966936085793959874050361482394550865181923316529295588019522439613016508599860810907059613643261236891393018497217336493622929000703446934498160665137734870926222626992483462242358330970520550765264402394879086694416022543673514198375340733276258805498977334991439693169357561915647269536592796272688241619474293735603073565590293989500952741591144695970779731647883681475252043614440759206200712891071892095872872262765850507495500140893517093960414158692578849455167198240809487414431893807739189280120269197515951123158710507554201008399955156748049031652709704408069604100198146777243293840871572680920861400400281722027169761046367729473090303424027926784949856255363796925029335108695333604812470988127207928311255208801015032173098178680726477666060227164931150372512308935844789415178984748496342702593341602131674275016753064032629862516276267464371928477744599025636207245439195646925640935709522364748873791040087127362440714983334540282604390122201027857490149180279643437792136419077746080471690901339442428714735858864638431198974626682969059932366589005376025367237374918903050743048067396295958881556444213669166239879060689053806864354691665964139165501657149451423737556865048166439978220293407434871230970995003873541982075181858306925428017740248228338595161249209777893304798552874614022294631012315662443466255527035116561041492751703031670073207666636656176190079798656607874624811284184905408839554212516445347835397110945178406482710573902185854224170539125846935916134934834579468758769768116761877176850327159986334992201053998464909960925504615815047642405452305382760734669261960589311996906950609782228721609288501648558939357023044854009795110335967410484018647052414014846624812318295896768048825045279276439041666123604294022543416115952485313961973623286928614573867546273238133520806054539976708825364525545786712777646858638728878546956461786777946459309287961122942484927455475104973615918924101136486100690799069087228509132037055142618156580175314939247308171649289804272291474819603880155332564482464746304160216819408608049777777423694793907164242348015381109990564231971808944984927557396712491877570295865663783129236251062190544611747167128657344239528903969916560738478298075253115969644337494519842231807100465507352838582574292597113614237888817607150644817945805489153073871706319027110937431052257349854214420032865700764529905248422640649744818493787890646072878036208630375470355078209086887620070555839729644447914303860952074380292951998743989207896494164395259773283927706496212002800772402276823373177218010270030633197589427462293340215147884020572603120140597055770859504999014790813953933888936024173829933750761295325832482099852094431103092085137608111695788526154374439332066807868360573093121490426064585810447660248491084706867319666230319453306457052553487660947132633658268162495592326782246414472329426389831251801690513637061563490819000056302690759720512027776181506511441215338229385870444639525961346783185276599454995627510365148401847939123739059270062251452453977315014772693569873094222532288363575877470234208853807034332814317897912761019970042844524213543154287632307188817381182173988629782251670774276498741407892987577275692392401099111599666595759949988354203433974261074900629273235406398340102153507772715154173133189201649860937639441619197978918363845709900553946216120083983441968118030441921513780237351247219318186962189293644299856267873711703514582607411622971320230880356006691954885430951619781937657434988349534622081444755610689564822939463071860600810131023009963873649261492385319285505981055064137526146975300165116981012414001773474459701181296651080354903779175172661505575458684781747268672121111430329581350735520257618624114761122811391489377428529488919141028474752484651570208358169462985738408948878686241137196204404613842622527686673810388015042168977464781160226756257525282303946242813926590469480746240124497634703807701262647070710402812712903982493747414833163451410085390137230643753340474403238648785801848621753577165159243696700611069770511967832127143848439469604508701700071056274908609835593695776766163854973681684411778152621099584455783197977813909118031247319750734310013772863850043157496546531007284040942092644498005276309974856491273385921039370323611726608011382394417597212613154404484239439555635394916190184227576468376126850509216179811213404073176864212765023741108053710403749923735398970697677914242348836638726036318625878690668700339171930102543142149703948466340704749242926271261760267450718953253688171715799293392085821677165198844054921750765840903507360015374020408812584847335945454600046789026221450461036501796545297671588695245583161037222187001377737342280327085014821025346694445099918115048153609147541231155262374825306457112710003631474302583809736892795456852039759447824828138217271583943330117798231458991223264785484910231438791964696055075808600820582600161810787244067682776944603735594549242021044725387625465681822463988215163039904445222767674030033924405477703768627161042585023750441120766052385276542088459369286599963092850425215293912080163225781785859047731276683738419821159380623982179949207590404994599369194071017454803497414259511799896217602069873904545389873287288460484226331596390881780285751171892986323214969220244685893714749413207987399250868191188509915964606056758857066884048581940770492242665381736657264376822063193897693135255383012413656184148422176421081504156793249582129613865817152920006564063291094626297300605483513550865042304582250087006589019317827100197727476352304260576839331695416186353068385497862858922943958305197297864875802559498269867285148562374769897239234423362451853531624863400679401858905717877452401012291317498962250137369499217015496549743640436715864031449476305813919950459172020440742572297983109983415723939285551498207350311123513005044857615025611961002460305857185632582430952012975619852039796434231152890396242603296728747169885869207062779923053674092641836273972191958116576013824696411571659517616104725005349986205649101211576326407861901543445670292938711260992614614156053270225992760717401907966249261085355976244172231105373486202667431135362741635739969546395139285095483268844785315237578793645875251882302945499985500587976528603771391156570801926710210951151198909248375177037363788073833675250172501407373739969582362415071882290952514108609155661122147209205445525774976775915017897303352343827802242274215469017911803683014515947846807877036811079450314873694487382559856412293795167544737391365563544484965188578361902155683978220719081313433246847908099027888424960888767601839101363247597657267966215786953879669531947240509932409572589369609558181298526171213026957869242620249852474053112506239063973871964512663752852228461049139649525146511363555192498905195286466732085742431941024676860414062177939359098841967796264774158916383693410156380771385662740998150092832922823610628242353466961671696841171660426929894154765533268602205781792281093408411327881690481517747739814177547618939549431991514548716993713867559625071441796678092385485759656181889145951033928500943202701608722963181094850613701116466048981795396266485555029529730021602859774783843457484339033749209350177284158637886665981714144855773420154237692176368526484010879030019499016571071111221714666576809554791378680986048743756013677134942319398463537790593443680031146625819872673047448023125612356167742802731412148905247398997604499796052630627381271217912799265781580411110505802757056552604701915186193657485997932324636725326081918153426028082991950737189157176582094481241971117974897103780592438017497017487700572572991629759933355335899320098843716872439256249658425449492813194844943673786869400603002912827192363920598756170100669538667301606123599109755324170770847859341407520841048848786443467309235770245716026061451471938339004243478342162135796170881076809966820746922575715745312991292059396543081598622961422358717525841165321615679284783011373682687237148362182235092648675046556345623382622587418998350560101789115784826951577176880825678827766131099155137488651070727719042622629088856281724105883529187425450503490703811381752084400246398958386865353011685805620351654715713595864857831011791858947060007500440172933231619858027799004347165284610530585123108345903574614822124031436911333036101573662577377689822593466978501260351612261344373019787499140831038187851408769934918130961329880002461284052520701138100942379769355594439013096941279308168627907821776056316389866232688026018718868152301343224009573347898888896396650463539832069030501209816638080276732323146768871409619882831215441415488731033294141697099274630473302256387407272626209345073935720470618858634235972153742146101933124425823975393926306489751042385448676283609014786135020620572239361744608444478048379466611559653352817000402496901639486681772500256570297745276286013728697563813339609218234518452490999254103977246838534172318784380910022703821199062728853450245096148433357582289865605301718643621129584088803921640133435512626690894287232207857211233379558392011928385153771774368697092539654512354362053430298519584483983800223679084195986747904346602378390849538361135942634898752110067733386567671846732326788901199617781440340816627003365840574175220004913968579609007881667374856466487670344992473805612070366673073295281718840099125208887659814214913084381221262172789335838655369773903723428746105728795700769032660960507891750294905513585179861572939963422663578404201321584714883397171461507386112365891081018311451932221463540677888142644624011376248352855871416159502018911615577501815496280161432544343128010652317926159247349896208962461691447936794054383182721279018576455805653986850143255103974805768910267238316887057553910527362446437948051726356453025808473590152124267076897685316125735965062753388984129080530258242345817427019519008217704288228949439425741096038889916327793638805552164214395861152429370422441069407345695542528284692656614259627543628920669945072086313631819028574778818247666326131664237509630234772686686508893732078061672017926731071302929556234205053345890571518756163448137872673480907582509332720303195099345588882040923917676577185689163890558018332995842169028858533047600064490014661661491151227605345958754914180521534725990711857683978183901313836572582927330294853694135527623179416628027955483938962573140039301274775125460746772394178857842559089040440175556227018882998211116534491921111967108079300179968219882108934504704475987909640265732462534445913150172059996719336441088367024862547519211552997087989855443394003777204366780345478013283737877983622011772210529568392049540904706683357926501547931063224376223122591872373615773024430029988552694274138613380388114511525730329864932989665585475014927912668437451586468723184664051385761535000156078821301431180737034531944667933299334649750694895001475534053899463403709238562804966482992973818808340948769140832477290816525628796015832054989040238200641277731131282138995906050974410275636680615127881151953113759745445214217385295418857785393190212105376306916303569284290707363653852721928101046098948526561207800230821131040654504574199587428581122743906954818446592937313025443373101124228391388493896624097193687171845303773394690237206181274625373669479317665939342333952814958421720692422744956918778386890023855125504455507037819273778035967163316670233835077584840181413264250150449430453367550120596759661065592943267383729434704702981808260555627773986460902974753819472632911144240033700073321959062075425717699953873568512488004545255841728133230361645338184636907291849552397722146565878233362416046876778688756459004570333062629509698120947174733916179458557723707296580653526645199522444714287256669873814278858153452823214321133228595399562816394329326383718393307677221075949545589195953104672057076219082335814853281588363828422783273738408756009244280565907049530909478150291945647018851939881199059721219339819180612799897690055811644667225211384987952678843542654781772395660164652882030962904441009387117347964989506254419040231344094712072425697943175473209315831059579645439730624048735181836333741707740736082940361114194725486917791975268021774780375220699107515686956083627495021347611618496266663612944639558959835314708006984070583330185172380031458699865206136626306713798936877124891707409412512139586378328853147052833264528483545055031679475142655002097364030914889948230743123535613217205547113362690980767238626699788584982510471452976529929134390491235347523084789404438641243114829513261476985334210452109920254766586464057294500867583538224080251699409018560355429045938846974877711763512009056968314630915611790977650720974446171350432127080658785013775160780759670206051225745281978460065224133159661807460935037869320549856001437713481904204563402617438653558487237357072012033220433741240852326663578211326792861296779866371877632248755268776317217401932068968989359711755407740159705182198292131521094569695774873896070875706585445395555466542667368844791758605856234794728276474955054052902648712275278261678935000517717147724386534598471977691981408097325274423843818535724849565550089177763077966574269838351183715582018640815788842305478990708427117405196135041669908226157659164067312096770573681764824846017637556886605545339277331020380587710374890136252519178203471510150358753866049944640630000712750517981731529739933064741006694860090372758507463176888863731753631579293602349356009627232148429174264412886607541986982092993855477105484186170222371822273789228199838217296056101573601393319851399895422977506317561929585863314101066136170317695476407355340225752265303147218275386641178749764108191203782343956169994338792535234192430614801031692114677208417420060425493760414073042025338027367402269738560417880030446669638985417466091677291816625520383254413199188659412721116168370940432259434657757588030436123941873627436342195365829678544840869003985565209987941901530346892177936290430438248501879987113841155118837512338919355555848684705856670612340177499672639619709558019043884589702205017368770816841495429347048956129647990650066680354708301652392043013626182787240965721836900693762394165781369734104334235496548241460261107607470362286355718558320230732756487631497208896572970051595445110120281479895943607941910900388460894321805057924049110811277095238041574775929317511287687754064525442588353064310814554359846302532380991828823615969549286879069897784515224841634021869903358100912574677062557881222032743129957570449092879057256457276133275563497879982578882445776169768635251678783677486564624157908367285526186232899825679927079462572032651743019418229907798742931402423639297237337032714082971101127341568329011659326403160985485141753759784699030666111049653388821303679529851023437266672157932931087052083179155761055224366528677333812659985445444695775837472386251383235592683027351786123657218325098326023712287315558035209412690185607907994075630768647097254573110110596329127298068420253283206790316995138737164351326885035449974037686172373797920127884054154531039715606132513869088078384520038272801597184494157875103576920560915311519934542196314819601883626206341103315537257823234845423330784435906075424609834431204454233207084842167912529450640932297835709040384984132839466690520071617088606394428013681026618734086199216190665908704722860690283010321430452412275927350825122639116732857200806204212145443993325966637850216931852348153536835340431641874460919089167560416697864959180319785022718078654268462820404611968767541979075404211214550939553379441948878389699740733572479834374344389762631547230955205981324405162778617346757683171814208052196174684426575132495743112551775758443476556898766339930526463705170351680140475545434586133084206404036981534423790227250192711067572669877814151980428264609443976298301048525108766168384428648805578299647970627133869708354635152826295414490314646418426987732988327749563545709327963267107776807373924220183691973987758446771579547419029287460138626907434102667292495214270314303775397931404630611610066595187719734296056270078543039078178162687492338694521648397199527625431210348226524829812256362901003910468458109538932847662146179321675072297443921671265632480400381258351500352933103511976358319896441124825822566095938207138598861965028497683051943215593522026850086634193395277451976848349169515412607007882026866047676293641951059060087035848002000907605222055563886075785232511060448031141735019497280354542013332237034978103877083602231496605497637923350107251518132071537955606412173066218977337179602425488046089743908298793686687939253231352863783213738405112750175085397078910646658109865968183496633485508043664864451049255351324350545801693032643238252102697187561968409005858166272492040280537017826278090048994733055424649586244639648434423141791260820185178398257360134502815005126820779449370574893144056687697998880375296959363524837027512377597466785607851105827597189719077276227208202635956892397404957843342164816527221207276044460695659898112462113191707626460002353679906569589097554189484070491156907037258229766165099741064184393903600438399890607623662393833319805164134121936069855874079176965981253679117792929033037788844558021401832082758591704053107293904745070520783550711954812671255102477113717675539747428142239924673202960129309625251241081244045466009134242939217135704107481184278394927259898495101285480692992954570585687200081294888934272999162745179828874965967664193328436314897647477650295335830254138467283095522780863529699511483173751062163404306379211781243054519016093768154784155715811712208062574434179966265583598787712125721190318072728549336755165218545933692905899850320033558594112777853594658806061720376526128840523512346153145661609374894718206167973687919268830367771188288299085184317052767068539965236302947705434645640075286235868134312987460535752108254840272938768747182527972875897552332619479828894626059239178650458624083701722019021927365273158765018246207622878929617619924056672565707559724217403689541858804822169613153387768698622716437123207226995077045605487795123614750804001390286687330181429439574042625145241984844446658237625838943660376962175122661430578339424988321925643218144983159271926187634773066454815072438352665411930238399742779309002068027810310946913140299995075014176429907808203738329689478708032237999719772031335279599466498381360632025420649212100312982185926240711392961214966560391613933434214900075032914954163568730025893383167521132024267751063040021638596514897633672421134620284091958370799046503848972154733740713167671485717312841886052923918452966778101672002795502458093651728680750382494161388628817009885402432380221927238247626390311693967216967156679941881143913139399273464067949055260460929100099675212248151475157528335028295880791716534504785427619108995955696912468788194819139688616365216274212391800653665135764357835252327818230890750041121493674827521569200878474722129031242306202649175281556900820752714179770956398401338726091469468418426052455259179825966872846861433301015681174294213256817075514119140910768765525567182152509094398732354862661156623713182994465738115783236756552640422766415869884348563072307202225178863370920042710223358060642052926012484738669480794211332842210147671727621535325648667995211931463305544475369132637080249719248060603054432242094738699330060225921472639742245767753347296111536094357517635458944935360657737624006160500352958503870526487365794489038938908247382281765998647939011781844851439508468521681482804082218641616901175576050421401476133416357060283816069769320215559660376438522927413545742610087379875985733517245891410657923701562992844225592615767764324655320065918041721240859230973105192950763456180387235129005927454642752934687091350447509092823127421566241819995264771174594823794875654727159332601346393150700479710224071592798656271517511586162533031254244609213609985906463786570858386183561182138198626875940151605363335541272675517969480084773311111750455082171313666379691942198224964532174139473118731830174360165494352047658336746794375245964541491439040824810921949490168732056076564157310117759760348260092058946392011947995255140414755358378799905359630120297315328175460194355609233294786637206700862304895417940747837191663581148367214128031643051955924292625053888812668625516949912196311514004809636404812244551083933122380857973812472958913884606772761533389132867400820922145313972190421696869251671318195345812230033725483669646704348972806067182091395733060554732799635886200454914828471073695088061615921933413373862861214213281147438806214772652792611413560798239020186102990591440644121368185315774202138230320514842550997209302468165675358221345772194052869120856185790801675182336427550654104431908806943053279998140384271259047972686019335605139582692759320952282503891163035672951686262109378057029217174330659529498474500292626271056350796381728194855580946618859893474370053294310716599153452564415614759471082564997054002628158753384579166294386918910544498617772770023939866509862823298162177974107931288854373446292342738000836254197515475852879990754029697354061867845569186327367626024904114990144991798529807395534562269673151372928636050537216759294550384240212803008416124948147703369929893403080411000275342391748483265413238271993173149324198714410900350873128560742012201253406734197358406792804666819931853191491634877396920092673495749980405794634925112291407072600912487917511509543419925077261164703782299947882933090829573846975262838209822342670737054561117419434305585593345186699990090151337378156922464742019624308561384366633819071175521413350545967529473391621600260708731706322483107443957363829862909499992354505111973760651097677263738455778725865828804432304033422170283511470153806051870140745916905937747191473083893267831427905519122153114074437287335537115525613121964686178605987686618929700925457802922245483532118037280065828863184788062711181282705326253569669342652164451674086702186814218659622572315251230235968455712397571726529045158644434617299379034392806532417229285944668231190012021484303993199742787892777666670579715142869976817493213593401181539901712260841387881502351928054842524039747328770859884402013455454015779027252470133874534770105305392208326140193963594587483495040547127852676617847981638633468808384292032984763985536407816715784951638991161948942593270963889016456570470894296923236382499525826964213807176977452009667257952925964132297123999347312130567669421343220163706040546868381181352813672972779381399633456807525060427715329142185950437827278547823764179928690336055340803013091038261649838613797941475507988067377223000418187034469956660034003069358522428374754091487274628324115633243607322153028260504605456222748716321587668116284636695737851864649207519340137358226493848178744103943360230492418193702837736423487385834053627856064893851511329929638428977239144179643458599560332691575682555019126908491085554984980214342937692770668516440527256900168537864714826352530691422118179592825751165921701539341160439613475499355949098287395260213482832154208052894701579577316177074722562077172048200394084207577709828133877776082193470212703657906550055163597414101124055070801048742751134877923424050346275529545599327777523856814035514236398495005143227148156759287045867564854517268616493024761039068465739554407349468753670783160065365498938665917838252345429701887610742525592125209650638112730368270796616125511693773325472860928392743898366879820525395727940487761913299176325220564840234648129035473917377540418320843950330605128647404140167350744293239335246095698756839729241107929171062549682303620454540325023696169234902705304428904367395596015390590839874147345208586199966751569537981962298990512204511942940229813811136759058458350216927364232126090174032895037804587679275807866582456148203195550130598612120647876504984868537147856990280381317853347173334886155324942480700097023989209117910323202804902407269715168130394457130921523569822422889241890207254811602274499363405508980058726652780400537508436489602531721220464809921803408233854719977364007144898070728946695094724479728571483842458822048677722985940155624402948293554251826791394068827468443349471510802708937131411490575805110796611500851454344166663079538931199924419633888846765226629617775765714777684639845105933450811570892496441709015464158698461990404007635804927948233528527321420566524801202460233578528138264474318990918922753884703349624444298419685901811207131848879762768005860174738663778136346518818608778824303839871830985064036224632376282142340734934980175497645638270959418913622205634605040456697264521810915064547413127960850022257499116445814250601865219464132801971192757987975814080759413622793732827034622364113200970999977607521200725295632453797904224433635057178320352295910015070331067036443366680219677701395768287117432526205651603223127429242484472391154904974575908806639918493861047101856910077505068710530166000036788709510456491126672323736965316952915139883160847862992452721587717271766439071409020457867605283452820656070972379282659527016624493510550118800853360401833521520478781151059026583847178117985686222877638881933014201192372879352848733069840356901593050482147114552625186362730299725452387861420310377296044257412975881632417319551551332730209831120032883967945813370741076135936499320700681451702259758681421087196922934778660840452967096099127788143196130186954880918575473940156471525100630801056334768012906968158488613285252357342540725052271185661837398610018081354553459112926899071602189794143372035933592039902278185505440515931148627254508652306906868961892311521783561339807891357019162569012884166843199534338076113917206840726569313816184719561295279450726021232203067682662776439482039493065789346806403899421945487003798650531137209785946766911244176478706766826326528401976556330222165858937113111957070498921118224462738110761187438129998797325338863699676745082769398506466611336606071087460057619557061775148971881894081330096909927727337374926983652135166586240703915562371133400351990504055136258390460979619737429984988014909856107184146495288484799903950640012263260570888584248537439899705640263681781705247654522173800271215504535952017462232646902228655144459519327879872880548581021715673622576774872427543988489501281915387554383550227848040426632348558100585233458692169286357203806037746695636906489280247304717517150764552978610789185404409395468637231483110229476735779525878189150312337166538188630264246355986274901191371111556827132226303554286951148678073041451059560214534154923214790913304325122380244030455775895253441327311782914558082705812758635821798192267075770092230760259786770403865536073137044441075353002890338357255369571249052366244634351278336310664325153689401667012735550856438404043910545218249900994283690695847974383275522919989708561368315911601866564955520313028610929489325066427807223929650950097481700153619102072408183639266332454332024327175281254672321778886686076929900236422780627670332166029790259391129888527365656643022692420819380352165399609822041216889189752509758596490973182181130365776961736576128068373417644649187189222151633882910027354031745342527649064156387653247114447105275547055958629470749459161186982649585579904059667526973032106068488233778070309528662793829915839602874104125455706514880716131635390625681338818937491221203859031230373241761712176030552386100189849698796367350180535156621058272266723029704781026591176126981860799656686835534630076875596833454755830680718331001758959667619870894667177839640201375940903901470786398027531044516644797018870645692764606526322953275910372483814546581631593374042428948360770983216806003778795444020452890070722296498280885286816912109213905611188911497412406609129274413047885381988535597984799591678791520152711211422533800397656244075240720591345768658381158043203649944926092986042538766897672329370979566037609519398797457397387276139946976517796480769392247176315707869013475915327240800192955197973900571158530012108977117298807663424398949489739920240855140566036717975470625182707766311802028556836022391735265613126909126396591354055419826474042481676497712126953399381033200747488240714215491182070214266472813074514278742168311124435872501439142119475773652877575858250848363170719660747154750841688786337097057841907252725539574807000197378367173182237277202449263530035708228365553296947938255231103753614415053334795523936950514251454336822471236304856666953405318602717999105156658111811896830001174059289281461538691803417962745112358689440280462846211983541193516050732626485294123296565320703110629545819702779762018430858406428384003136547728522669472998198732867581230909611310322184954543491238063222330552230739478753098380077783843730938766846805152488276154008310842842943716160342205453627313609401456043459322829304266950155254647496046231108048547092805477979113102677616773546461696196651555807457935881943900798628316114090964834856487352399462822397025494467478483938206911229054443125561030574467568842458349721910709307482369100393526037291752330023624959529164325746802233470938277442389425661193445374811531872491404791897875449744022433729851603717224750422612646188904999170078220317825229207268400243296307233493899080214179112760386438118694995755940347712597223003717161386238039502442015593041997676388019866615075836003177636115532754839294302496171319395052875373329944805525279652220426721512359346974571938002327179167039438701756417946818974504898835125247093509095402437780375740356238674644356390649979184603840676091251897648948562018536989740871673070866130044320810556732657973010761696667934600247875098697952343869069004881705480783235217037244932426587996105721232276805573906997156314852723053083006199898925250448488286828599746097070124783419081271156743474457559261606408447622693626627435303017331036128402218321149791626808472618877686265011613519163690989232612329782779872373824715424494230113871934917442041711412811704062903373594801106083235078032614125494844048090647420773573632413587166519127629706868823198244597872477287939314139952292909525357815069890781168115370412097156921603987197572452237791630523703754140144937196289894055670129683944336869600938106591435989210367115844605622000896805698603144743359329998088606698650315354910084853883405313096344397177067098499512539552745517822841325013402864679861328699861282338658586420459082632649371418794621291191152892368134502674596712478735277289227684519817740401723328432635587711109207289877311975650274140647698395491149385712067740572151039694812953114291199855225875229131782096538739730732954829406729585277629100105058698682415936208278019134990156813075006099821776413971190848791633477678613442081653543190189580138505543563256465886924648565098728443340404126345562991417307164253582000625881674622066263709692099009631177869232991121530643013571478043161846694724299238525160388721968971050267908882473255080290425844871167437625909864947559631915036385558563838918940159518098290511306702934221691096817908267465944738434176041059617404273877883627832728378829312469083997588884832675371071781048041675029910628360153776129039574408408852100309945397251326973802222771494684445105938374331887472439220980805833140549878824401540742739578977106547217637126769150642331948877444225526049319758388177654096028105261525836481513249923117650280404345228318024555094086329939406103557281606083092610073659155608685210350482746305082936594727766522122289258734937414483554892060572890819894646873697423961722766200048431948825188809919006917600291687045661996955151123295431423770495820053643072549427744661487360369315030810139749940401129668858233682020030170315189328291470283246401341250499951412415933661456883309860389312076032889203592379032779240858039322740760467031443274756552941755854346607450645134671056514314714353770603023682532435618519982157151496676420473151748583018379168218964811491986322359364017646915863377674594204799287886325814289095196808120193343007540784624280892967828724245302993029548064238590234540455657760883403940987195361261341374398200494035509108590997528512360867993421160100505940373007472507597925227474161498423725271676415102940327841657927304074338471912313426760336270004066220284020800385458910588385416838744076719992405928876148838704014797533230770233172005552926997146345473829932614869305276081249807038707337976514304812970057308010275701657423402124379121129055772925563914311033449419431252845395833552822508276315143481860587754174275954409859747548487433935981785881811638693634931733806333481406593651172995195421300280183168054292790790412455333953222998459616307582884073135843114229689316716686822023400653441095160527011065770112506610860194195095505238785165923691088569954398009786472811932230969754310751654620089006717653778790178032186918930212947993204833231168281955219473525740886248642281817041917285261415014623480941241310808199784196430957191082440181924541753537627795214112402712347030774297318792298961016827839698420977164991040146568126199896036670065514120835306765851489665528719757269511506139318048905432024683318888279670439451596543739734592439298751351620246949550256219026938808484726832789829404327714723729511193759392113755605481997723798062809277657871977449242809436093077737056629463625476226050174833100719159012224968954892184276055438505905929458875769068825232435374405348218227181929961855222323918711721570041993837964576762294062841631944027375742851670653852115815447369269720605797635435216250330241058387125865720862365869166871777691144545315268902244369414122965893265680569753230326214073152306145404507573162685497113980256060790718450159276249548984448903429185284379193090832373437858171427874504306329298295087420288753715879671974677102617361831614577773867651902572207069267019554988372897845397048971067756609478629084191762192557133225064905686895767554089645475865792732319974338369492849593727428399692129996955304175152179850573549053944639816403833951273817918156595812213549907729644636619839796141450174359098361690117583254905263286919868029237947042405241142297322001790050951262382804740542148410259745713661955363705763661761757582722119393683748981693436885502595056738273586226847196967195157840079976969155625525386758087975248614153192533604650375382250621619586347987991205377653401857265742365451508186033256763151757668146613615894604929877935958769276460943064130252682898555056627764818460043492085528358386434750931703316722203746359776783444142793634096254102060828488035218120380673506426385196667664121137457004706459983072043114616421733495108646847344193453170221685089838479125963768183109544939806379473547828592219700370460632724665396637126825612465326753503358259264211195204117794308624750055050373932830907737012273620192640039141296107405589891291286497095951031999150181009540439670517178334772321590440456792223810608471383842723004290276873700423763397771142565145573446133636427699823848921143380983011474071325655572785907975266888484931078122249604759245748216939097960163973475970562722642011541154526233687426846276143601319482592721597801983813630465846881478602196821056730458056439093056660556999465097969216274086981340469694975119773933079277258376482856054187497167509714804265301953217810727486523794936443967705931452446935327944562780247859507323187235764998872678244809487163203425789028959657241661137790908553165194224517834472334640878963823667383532171949387545907792952788817013129098570255540333521765006023330773300716434932929246573034139897774693567067505309566072206845324252510620103740180311048652222444508931917439699326669883733514518295524260599830246725209457877044604752830510875202394950212362398825841234303346946762428901823994808392703808755472090378943075506392973642587318091648979834768959739269897976828476891494148321354920864502874925858085583957490385375428497531575960366318615892105275802477041660436667393457098717433961603337324918770898882481148472256069243980055418051665329670093427999860211877060420295839098867745875824748003060098384739283170916208633276638135994543480404637809760953621714722058974591526200259748532278359681681447790117820011446312112416075942035130979175647070491256382578950920110446591743478325089800740329094924685930214233390160821213634695625011056133278752182548156278368564938621254417670104018987826370191511695910957216591743476730934033403687044829402126368686975110023221839091212429878088240804816892115748353633433079896739808336802992233916113514323108743710724799907971210723559663928724024764698901018887039265324103723938776022337551865231358979259349000949419149834299720917778076801239831977481239101222232396859574898292439049649337710546503191554174367512671158877709886382492642094679423980858400665618321987284220181509909976704023116135424853142183817431849154531577814409542012236444674663306073630545656292690766013726891053614136240070379795637008635184089094034765169838890093368975976498017334491760436805510430897857570998386027397289870828456961679197683891288408622837228391744075997415794529764166144937786396003155388979964077086862485784948944875859067802020151667138970000253049438527999115673545209905176338245738890849463478903467376712469243837544432265103481695851449297557251996396058402621017648688230019686314599418797218585575859589671434402036732659560472956582651744902745260774810987930948115205847102081041870814789575336741327406978460873853925313062010354490557385978331819020956309449211173987867575651617757307486576928106872561203093894434752365843065080827294239494656912657765919607402825198799507018606490092096321643545016553692326729911022650399822010005385598273760622870010099508165592347213157975942461674304348943278137922052528443834157839439575630670622484721678761525237042132246765375038759349711274647664318171756735347790027163966443651399070484707611005779199867592217612963707273424463557886251905935766976064910065018046234264694263135321746673129696658282762007784220054584778155913684150208834369897188531761493913599023824795400818903805009293208234820259380881518697385519433313763177642289782556777555350965250054223340057150625197300818762084257047410312314915249456401891278451613145381710951825097902949366657096459173121096142251858984815085028317385645366515423830960737081765549281537339148998679574911359141108946477738401191694352985758671949547525916948928118804239461327722312760089454650963406568793112475384935617611930888619039743199780758440577091515488922427965695588360935002280696990131387578127851588262178878240914185223080297550609901822250944032364207403771341683267073415289442955712879262592809904635894043851881266482818789546418963910459318203971435512298589243812992051436354379695711245243298919104281820424520591185112049204570994772712314306098021012743879019001315990495934840107443696261951937640345598909820649355989066090519947738029560431666073132804826287092132331584349057093219651595293999465235186199007276530110447504462809380715698035060321799483992226954958805591235374439474837316970974337157227741684118756325246094996828728479137694194378520552179816660193399575369208314011582860389717739424942890803406669577816391879605919579679388876078950552918308809728866969974578527125076389465350714796193697464543467524567097058931333611683565730642511334850802576114571445459696125575154704168925198255161336370320560564114302921106434458824202633596047458960602079549545743126814001012732237109476916716217318594621727896102548077122441357635858004900020576969039207840368095387429346048092460316398624572837572883234191616862726344547709657505714602677522272360267905275416336980765381822112223816968369164756597536553028922484457394536426132739680905499721729947151046634281997958141602107963864401829433750980611525671004846707911588971658712033918147102274539145523145627992510045921618415931594012573592758766001917072975227451907768433849476310386632894543058239686064910306012623992320132177620438904191639724272633546167485994958288488715549197049942781881666496087556399035034323262738167528185835302037830868184100953733932030520497332773019140532325031739586924640995588803470745670453780609728784036843247304878242280015682434669520293840803870288620376951154450265201454357656550473377590230320264034516644600450922246359002940367947425002670550406810590554428639475292333041263800680188809181627085222271381765896460705403985062073124041144551588372916073797095727047501750516386496893414886768584994562966142552965600915919804547928750621131367130388513491967839615294885249047059733348230668786910322529429988021616827032054738165683120456404726883111659771358668804313704385320855968003623117814230417208629834297035946881327992982733244220047267368630200125239157650479230616569882135457823599482218867663513564549687031361060193962776470333223708159354685038768564531342911338375929409573727556576851275464706617427172434704798559789769714324189721272954592375095635479879801593899550027838747609908641040313196114907948780703084641076643155793629726452015577267555871532633595728381282276982855672667057235103581821917856332189901198167810142317073701266248037013378851758034664759187310647362816799221731210969294398845719299464657111930371870801348326114079431624041141090821811520495435225646439669053273561246317000672635854115719148013521452074377470147789924765644727133222813703075842562710987213659015270120931292831458742931364835029277301344017072171178306680406892039447594288766990143712367211357160645082317977281254112600567071326006295754155619802987406817665505547137020985210179650492632204618711647490705528749298324400289308812573490398163417609860524606493397493984653665575434590466905195457699318686701748169865174613827958362981641042414559508873984500730898220935082047000160303262608482355101403417040913514301084836402363611665684642223576188035016501939479990160180310012469972733645737699860723512618620616595431826407159320715488275031590815508479746589653988478287327495728593677356119803355269072619588861179396271781295265556906188760356990210355479205492198996514928263459202088795624146286485211704951196164544563243202757952034017186580239586398504083119139352627049401967367161733971211720657384060926187401004413353833542704985178040224721286454864832382666875370036960438320641913894682246304607206636232682418065894914018373735896161249588086903082155572355473429166153045381446683454754665576819539009904017843350193190484653983868083637859164080656716121903500214238224966288537403820515159672007473878476169506700963385326490395327439047887195285499741390178584372041375859518298461694028033561729853499358212672306918871424479632897881889661996928565853950932073800811487406181006601901223558834170035295756984432105534694256241453711790703110288018564882044156193966140918199453276039812853327566984631710667361478740786743021888548663225849789271722738705035879164485904741697549839537992497353598665209484167758187989507430424939193546934359043406037375262156120245074450593878712030758225389079058533593700814072360104571422230975885635460002331903420241950038595783649448438020413658446073707344207670538104628059827263716510988893983083081220694064698135717672268923742995288146936548123781342509303559657798237364548006271206694247106866675673360714409183084894763610781564725441591871482991686652755040108617449635430854802851984694852899880962119826421090446644947545422083680592234607204972434226471879674212326824273605295191841337920415140324858156192314770372978760820657249164277312655044430930197187796014202532597442338142731110250111105834567886913513550191898869134926936020223741090693837230789017067179838684997547776096849824623233214558727827513168070554890844087791456429285659585794897918982816319519309568136063299388556393867244211027141557349036048901432354130589597536769408148681549766259487850336194847767186609213122855308234667306947498679206283177288180101623145212505986338046694887057604041274647347582388840475103929113322588887167558653863946693251717170764655372945411308355689325778840511156746923090522891464958847185148424806240378506173959147042346767126107498997115746977588353168196927220988003280732001113749842823799713192369979715866090847022621798179956852184378002931475490665155361196817183698945140009150378209198827772706168143234605011295201382656439763270695097460313528644062744036880861162217101697007263769295714862491177904628236243314193217464854120130851826382201865100793664308825844932731389429144389429707963477122697640275442783205438572489536483254403518030535673060878798425411812052504811033042118779568944475590736685713142196868260424351744134592827857963143101734270077647887572521544621635772698872779579029815503841241217489853145081023202469066315244234877487472428099038778143174219192332119840347123889194326522692324827194267755165654484559763343299238284327360092100447047876152179522138705244480630384483197394433824798360488669765343288617541088964963805921394549454658066686602986400711177736560868142413865361045451255060628508585300098718302150571644280818298605006949799336006967204520017311384083050430670315949362672798861931710123977444956820158600186811048295858273514553835433701327086187042758680672324134686326837250299007761003009300290085373534747227814401470018702434975915665443036321286926503812736680251923751293697205443434649061326610701460233225714078275545138194174186191257524899982709388361482566464743086657971627066489621727926073018078900554601005553995062327653797362107297355984641305250629398200773724813765334203723594701150161209544368967372142277673414380569421894298073004420902681790945563714242533244622988910024387030062950740672863062788879213060555571431568973622176163801914475477087881124285719524705332814842623382093671706004833533518438607499966286170166492715078380014237475440557126993240596736159654045339415242200849650755577609615380705306849445118723933313080716696899210879174223514514456596208494948608394922258789302259702877265719597953575561963842854297255034587150207062795772123834091782616962970197640578193805405788443679745824639679266240354804966170690436134699201252419687698936252103477690130859107047985380893896944761882764488113957875869819317459868204895604387220727409414248230129279599443549776115612633869405330444606855828376151050554153750042334998911434066811059701076722433391383959733223277631146305233726155848568509575753793487930476742545203516286805390650109326904614456507944727196898011086854940633039491936852345462731410103955461154186159072247548451413902218898989442823860743634004104531220991724852543237806628950027518353646708265912586506134440991278265075920120561154861070543181567308557190981367725677934973641672053624099407244143598086006343948156814385796277718107499431963196171042392529801457286426816414649299455436976199810647725999569996945592287239833210558588234476550743479330325746460939683308681772993553858033204904923104649512924698044724487448607328515645744520672737017280374933396985670422028684653457214608534119416143095350747275642789860356312811144836086655513083127247214795126913823811466997440404372169654801240812632369552691299219313702100459205650019909681125769666742844498772961257745420597913366501226084658012785526554634196036476250754056056831824549195070440477833550773398931058590609408545482435321229609128075200561016487074872479639756759107047101477681378388329881858264949288590388243307278117818524829479560964610039063382033740433512354823183264183293304742607358037994497592106552859096200938350666786161404543339322921307184331454258266017863729268830298245076631655352003606565341478222716467544834705369525504621516978234264880513732341368336736522567448131373636107416963200477098477870614099679202789240244477065053239675007738787794463753724206201304326247456419754894301922764735540232608767239911360928164263999468069550095876382542563361131390098675033471743559029143954310260820653849283993641710453104075462888026001905346665877908559427312236744659581470363326954808162843155839027544206859484185044695358822344096387807744617977018208512019754596307153640394405571097480443984364970875374622095074523794689925434610541056092055330974405338704922434590798264775469984220801616877064592657461949165797607852979026414198032984222896611931788927456916823143712681377630247204284012095630120367222757083649801490851075551345066342696716504332595868433424728728229756791129060073854083796682626533653381970082305377298114728362952882396455402493441802456254816846761413408808295530231849764859388943085086446200425382641660301194085580486022485237972744908767484683213086453617088489847991907622795671891723491216988530034167920079733850188697185953644158024909071889000125231469429392237445067109573263321512842141036424663871500918009007847464908597729418505754369800130293101992448065305652204794362074052117758660266465414607771798011638527617997664904403733082292273940457869544812003410106119941111486030972364618122294017493872960417575823973904818164491506420604127822842257236901127196463009315364594987697010018007108106991635941883321910035873516059792914294829646773053971219020908334183835956014544226519725830310364147747673346165095879791956191554930533075612713120113030382792916997294879772122366416821440487300298290354349964014781204066042475608832607771677460461012010185105471859652395359223192527358480651722864726424067049964676009802407045194763032758058379616915773638054813805643506504421084110367313758942794395937589123146130426944866594604768001028348176553413347153714034204901905142963054906328885412073717473047922746037351988489419333084458571006811852401936402989044336561233600231990696410651557129578344542628384990684512485519164901147147034727820572764662242662157872091288001380771901330251014626688846792992711012485428526831528175528025463016185193941645230358479356830738663963721904008265504858381011239883672285612914973342970224135862176144680257375221888310280057159059886488746469001120394995522885851366168445268884176423384274101969655163063558322313459636565445403067629897833629089390986704700427193864423550126196469474750174279464312741872881225470211207584711539054313163602390677206541445546094663711748668469980813853342681396960719713033530227849421462334981914698172690474984477866103444233480348328626932656455688821252787361647999956401017753314956009069816467321627853506329627474999159870603017303719713064601647218338443105502252642264327431777499187125606946363119077241260512982828223672770510734835435506500585051878191671612631558067503740683023548648453673748262548181220592856725047860158075519178150906607983648625094664623568882143755426828554553742181735851225643660379160799554499493097918501787332166839239138964568273078157281072339589210246022019025656010139324326651164616080783512299476242189826122885860925554516064845914793277685633167702934792397826305682686474618740096344101580298798232342260086099292061281740538329527160367576058387216241918109087675391004993077616179706693240048825559122254787882397699753249645422895350873979023590350920449653851679630824814083408963468802621079274043287946184719133912026525992976205474860273413600226455704984118255373333054189812919652437121589756852855142736515026164143789255443201290769213605751751991530228218295181002539712475923914495949604754182251715089993733962603064448904475690827568247704337847140251558207184117315668488289607178606350865318133485499264301644506397364338804163104539238921561398534869726833809690051039553811956759550623996126599385486632836565097065115013596328323781911409520964060851756653030557730313236193855715264591915243671269163610960149406602815096933173291255703428065471161829143479973772093459649627247739361766141472427570329776718585954593048562661780884002780199141190236022019714214008370314849814834530044571117265437292928778386142005228536116301374499490198669087102768988978907688659247965050153446185775471696199997523733116033582973362941417883725810934098482838561369836764496999679385878922114259328816956674474914101273509559559131290410827769839221341350613790321524966304615397028942870511602586967840280985832079765247968772156593323494417897939347530886538952168276576816071677346005761311981812998077237455527258031086669231222967120432676050745788948279699599318754268124721353180229065909958260194330935525233723872932797421316031520351372986264047530321636641747723567231234983186830363758356726666877078975318516104150425480954848530250164507032352024268043819162528594488057246742798397252141427849689222101371253865246909370010636623682759645141276371490596922751850299242629808323593761846356418474824507595589361221646264997929532195986536665564715421156978833241304360871267617434649103159551158799198325966796900903830076729788873388458522732652602434431837018279782102391244844520395259893795937016930262816871583085371184984023290204809650729296011534964114023257193947034584260610653585572988130059228816850749039067034310099974775377868742978139556746690301712650963249255420549423705953316577682573717768337520877913394274311612470133593860326896736707291566930565951161200510555824249825275585383149191358533310619056600465341861308142026441964255862281198771499488086059406110959131497201338607057720449070124684884861584873073185537637410648155164380649773809076919553599808421461206011820046928014958511750902200548855382456431579822616467084820429759978884142099964325842709082733478666903261259573705133310652938190370858434918216717888795608865342195863363263233029539968168162781554727245241580526238151076845868492266250853517916414618251639053762780067347325437540500563763401396138019421372517969079345723106490485520194679435561851231180607490661333651603755981220834859279647938428531105622703722737598980964675302003627753167766766250753763098018090262351571630801349997237222350523582207164287891567007266256972349081596956875755864859249867292740331020416370672529455640315873265651694614135451998381803586863481717693069220171069962860756575438708908609129222556817149884010207434034336130129987259027382925413084310826999394681093966822677831023940926155525708829927228260367958225291658727635928374051934873435527942610098353532239943799997017906284941244214429811845053691504705856311260054100095972186264893837006027660839332383959826600073088213522513737051192756247397292261165209276062636062750316826768774101743504942124830905536494768080494842940214032526589118417803359583467897342745976619375553083301002658200626076840180320344621627436394450351601880935666547077585704009714623981479936381111247648500207219361956093286786529215270287338762104866718243803565585317581741137472587724766097274171028774628580205138837215093071694731430873229701213019381754941450424869028984759807741546701218477260024345116396192421934981255016741065222358323810424802270468118109071221594297085259443699545321379528642455265439040184797885853354002325223909363215604856935167897768660141860593022163006399190804438200099857865799757862222743316784369836481807769374321118238162754301099688480202166491173784941305866834117734017401247003249342168319738195482576391180479622071905597259343540020062606553974244685832777779475116411774362223288451963959193061029597876210591600773643692807454286832850678834450600822287829990452992317552706378716054517885229388151631266109827243048291620252231938235664066904812906366554149753851791789981738510577646878181854039976954916163621544957573056449575765491961025376688645178503848017286770076643869187530569988670729758501923574027006352505143713144958486687107504107274655234725748937295112095558307559544636164540458825830296739310842752454544095514873555070195167875606202040550137555387933513510000985610774139289578706604237526655358555792902912370253901449411980158397886499380657302080439507995404222569574858871199097669959214944783141382101308662783143820915788116477793459786677994049263949037678338915465402136309479604650859344268888769348298449446355685694755395719740900296840066255659863270560942415810850728206163301765523328226719292114468557490976742315332099137380926157977086042139801846487718316443209613520335394573129512732260036293523797284463465308247618456423504132638363305803663453667419927513445637227903363376794063565461817232605786448784506690963279862848507012028925415601287840613984581137891659270519944470260005221357568797381737156870471183462651330270609107027784309048946497592729727188464798054066267139650566671209242746371809801604509178391372888687856083513255055418700541855260070091813016167650413547862676833111007725518980094470645001806289508370118168528438755379983774824960695395080016641617748024325109250827704904819270905884260207945805533207248898319395734278753261521516458094230227890943278625822363677176018285245909622168562432811756285461034503989428977071428181794041923903381648284730823432052207580830062551113372301161923662316587415527993080487479545319004425335132673469181822603718455002888877459583079441136871783163937016960456201669517233382645987213161911221994764635999031385338259392723580754413990453211800507526164854437853372378593439396381814488811786804030630684269383129368263036097092560032504617283927563303934904308816215933558276922610613952966051619280116996347684951686592945126431249446466957289656504207798412553681600578784863078059359529267415830098808109363130563912557063758299397970848676303793468505323943096488356456014226160589830402474688640614020011716869485140433846630002230325524108650737264010696899764081499073097931334014517531481177247644486791554265029527726977175171982395847932102391897559399364865411619130083163350211874798545968681660277594477801486007925312483720402239716826568587115202628684937407437390560682571223022188395923947556694296673549615197183591522158145631897327254718781969425443463472917965484924238468328356740388070617711112603579629107787097610075766290830718358263843137232939197450504181978124826799950786280664418921736588563780643122747020115674336433067554404763062925214700211265064721888356751999213649122725902834254553641860612415535045712803270848675278823629851208159747178464138677521636553601643665180200190064657356062628344622243697963119760013219283965450366596336830622146909294839864441741296085759098381434949388560181117618658498429957084363038854179204020238922516930724314821784043253815894478227095062952421081743472032220893768543624056345290484678912815836493424682713832821921178267417292699354614749269455410859912378726419293141715431746787332729366515572922817635911829808224400078881160909850823264452006114488148822341816354618421277001061143063323046263668784103228696209580445359731381404738379646725662126012920618233952581028724769168643511080478238649509534229403846464407447410809670855657612453277060598649990319236128639075575936116853892117065728404694845121729514363545315169589692205140910874519677382004827481850115145224306639073074504352364501178857233456750990282032720260111897771597761788633603420610775087649216404478858935996149748699812215622604343520004013062126980388319396434307308526667166383033297865262103366170862017591970540249342263982156284176852433404976861241960879999798460230979148461464094500869922100276572697569021187782509607633819174873581622871747234480225008868060189104581115494372487147909948564548585259753476735368779752241588410303401259542230112974679673020404726383291114699794333403399274693716509276795010456517825910155396189081691563252037897130332059828084463263346253171974014228505398415566363907206079184701019850742930866557197664667772003548131334991025376368698179554836117329613622311406877162734841818624514256673094577454813336601193593021351503327161392267961007951651722937799175129766040590608468021395078053003226539577842925146854662418200238786033871950458209412374487608215810054955977050066770381652990217868357036989003202767767606830064039345061763894311122176501366259136845629413132715008099725169526109564923676836162732224785764243408189392418780718118602960514720733902865137271362702870061220101363303706620730063638766530304751979862370005029066038143126729745558122707352508939934903242580058770963731526699078933856699306750473349372356365953622171765652929992163589855362606405373465543843540081376097562955384271851191172597754531212274328896858000626210260846494070494549190366496353403892683952504122382314636721295653512130766209223602105571666070810883482713830332111486519971262528266855006351270093743445736991043684906358402782174831576270232825082445777089762550204167774075623793114660954717458910251528264707026273007191636235982910684380271965660156530298070324074177949532016670296681669287071628583518443367208210571786170636345703546054083935585323117981658920242836055471301307151385304753784260612845993770990217467802003197070785287187630816583820585709101019239817956538323153928554218818126010973918567828397683393872474445590256134287434869670372922524455931993617497881109628133050411618198266860617472129815346127311487215244641812559642463544147951399459100219638178917452808773350330998360122339512370889333793497995449152285019205316639631599819836587307600446829906169225449192556974109713983785356039013447062968148574994529138616737657955997288787033124790585075270876431322230036168619260573537462352822316471830555563069502003161236145314817512137089510736669306763890679076831683735084332151014094455213385896514141036103778640424394912019391062629035891920675426506179124375014522661398955367765170398999368049882820445394190721970699500617611518796599134973815518796034742253022067549767674343814040532690658534328475637667560478235490981367179056329118947192156461519303471556341383700751503825331817441055817408039298362967718579614621311101010865277996011111780130955383316450415717969418861026113047761998329295021057454857293086181946880240209501666810229903852460339235477353561206380939782773738734726672609962280828293912405283846870393946083739212801800506009180828956412780354622359829861839441475264580712352739005611488446349405322864631330960462471708694508974302107887028359342966185455879149242541979755393106895302378583508736426295680730264516739109683597899747210897794514098687489303940469797855058436097199366288930374828625630112383864885824510447369943805377506431496483792303289412987212414688125221245437473615391152230384793132425554856640063818833654139384927076672718206130722061972690918120873590605244352348555722132966133413224217985002607520623974871580703934650392513032665992722641705534113148698301754425181215814724853676386016698525166470974722461655786362591062803654485993676991349754913738823697551350025332478357141200810687281345722046382121616220429016090714128681125146884945589749789377322409730743602991779571936420857985358058892238831440366981307063545364531742398887007283495377361998242028433233125047475584202148409515094574640641328425440969902618688523466881134556312805503967387937194583550907237167586708896348774153599427890004793238228521024861343804140018836456947236204117610509239893356600600263079603181660097150895909425817856970981472181084073507053137309812212866625689025586211572873973497890975120475222093404052416931706614558035576258041255990097422083137824715123004170913538694590841565087038463822409888136697677179332203206892641267184771732180812495795534023304010952237636870456502566528202811960117372175318737349698335165225417714156828984784161597558555307568390009992913609322556227528682028315838962454335305135603126011884090414705487960185792719838240293359325545928552217868974302414863206184618510669190449275807392013373805480960060393173310573833184051168813069148040379173122791912439219916751564768629024676971553211551264520158583498738202823261937775464027488485200360872812193308356832853909071185770825474728124764165302427357815088174833683534613299511513469410840931209486036063272916263582350739755463242152558597851005777290357572199899957164353642986552485533060052198452391924822904497208269149013836631309612850583345550357184647312354649207288423117367338015882971448695124683324166306496124648159896186598712646332006444380158034874939131929147700227759055283009288103769640897157947597901621243826904628427514979646002984056591943159406583028924621509110741803809036079546977579438671240654476444430346048772975841796532029805002147262035781682631850914722286951328926978455445704025660871984324781329767894679229304616071366203735134853000302519050245232441645039879912439507637904080127135493653974197216489033008118675058847679053792791437919435653049759005284145190216882395288262757351647789784785547497341376224935314075313417127332412470881560248110551818286149546695689686955980780173258797952218614290214665941968900797861772351569761880706720691825666482292921274433123881340298387010626753797209970103473362123543635603367887764987376573056795918219470976698754979081287813958021777619922845196787093528169265332630852237796566711765830989061848462776909526631815863276604564930402979704922386776911172864980437069246551807939867209528674138188760703778010473047880706410830407368203810732521843258124467925197777295495053432383015783389496632390933704545342970912326222744656374266383112928580289137296186640041643843106340391591633399631336562271812032667464540692930689784712677429929380003633318864432299625057191871330528510940221148501814267125685255594516591142781920263171638762533511926581737006778035771045497720715280146491045638388722766068240117464357203702964369784153926360517096892307007486774351625566855828637120904685840868701768793449693058749451918330094105854735189604204129884050162473667249271195365309853857035472001365162895794284253587475892334872111972188499759953331106286084383438420470955673317646629425256200414749031490953655716624922089488636795804626026760581863035386206734219765859012484722307995369221647578349668243244688110354791780891666599445564017248536955240691386649052265245178115604217513136401941734256890076614153270740341280470217033745592860077677529200719324115636742637623116115577437848254147595473567013921334262267862099265814953133525947154638048448759126215462922521368107163470913314173964746440831945816444760213370711378416898546318853457188259332907098959521971534401191127171821456456937718569967385770766734447578659670338722798250774435266022609830289118711836361126569892504590879608637300288316932206200280265753580829439918468351888651395998753301025977178838328536860057308057105859984044613020609287243995369144471979621624538215155396014519513841553711212736482352272360061815304675063776647828175894944593756058648942007425797841456781430272052406247295066832859789938523490909168262002525196347821192807126506944863802118120102527011530205413318055499547441893667644714090313862312009377091275378572993702736835899087566045889595228512958895609806738909879827004464436202156542310412795482814863141710242632086952506784104732134710182795137740919208367378084050733717788856387092920498800111597243719037504246741346884952059271690346955554464752054099917993880824832617578600138307888589989079018439084694529051931475745333052113677690676142919422083080958871188398240993187130829879071001261804822290027699106033039308093596305494730434714057423875926366248948322194298190880781507460806339123091159496148675943066236607220505651714690382332748563198634242657327036309667364057130653248824305710134470346397955657277742873003230362717702232765352508497882551718256746705250741381853585739275544002849968497437824590867264284176020818376803157303077835986455812065139017614409187292754638949619565125417820486262879631614861660301415806377461009872635275533564206034523702721229268708630312447536267927715915480395580102846758328638392091287090541371905954571077920966747643822313902459035523366575873101993974716960840505345133379199535550804017719647638809528249232931175893280309627736255025467178740315659324153866488930259352918023505395007897239481849889283705739679966248494024195035343282706933477608312669547264202471142966953742042696091543322754100476201516191708510010721218968217557755214582637902463521600567176226201081346722987112221820616734061125276172611593761809624739393317352872048114959919385882208692898227405908753913857457629476430924544514005866770625103091858165857340203659171158232834497649727562583999012198464920684038052613296467373671319392879053022250839021333696425717123133136244822134223170000150163807840794353635769529544785052905573208250732204226334642723083886831862179019007040731864036970805009153783231113305704047444795538985862981905256897107817947947071536736144958758879220703641754223522259524525378643594625184570069931826376356195370913643455413481112949057029912471048115190581498558693932537939735101267595977881258150273055318346029498518597797509951156055745537120186580557737670542267717643933787571482192515979512757831175659284242607381039607523987308127014126351649240179727242391000654265670084959666555415594188949638518909570663360107243921104472685316747290189093482433064275032458593287422084125640290691773453548207332677904609352816871552530914666302815403233566333607010460210273827533415451465620341539131942747748454322043766586026095556597157080734559931884846844335974552271767546201299489081654709834999882244106511067185924100093850963424085316430594043804254895069755057137650830215172662672638639632819837108986368106896708867064220789330923611019197839924311852677188926861852952825246329139544085876679699331639906850854727107387977462415024423522556117371550428151823194582080862139848710138787065679140235938413829384484021876178257044694540395108415298436415049799130301313939760099950480152278483244837328324130462392985507387864456964476674502267012144231066684592891170634311967463699814130727371724824630132708515750168354023808636436732011175274135499725961703816109777405983440353838059521456407628081812938511485753615341643656217503694606592700333861668113166927946653143922785696440025262305218466241598973885277023120057111364641976959968043039412388289185991530176315592816652307349262791321284831643961019956288037698215677040060649217140912957371445737737065628158082043117706053637838967634123903161747808754551041414301832533902242522577165532145338198384131428860147342641774094577964233856798615032855886348967362563510936351687600045120464612970906864544983622807992197562356508874552122726844421450934692810163584045234902660947142351191671859413044227297786575259642856634582279269209622681658730413007410890207013889951664077185951358765761657881111179563434504980576997623146383134372866042664253810646632218978537789246996702242240570371292456061354421763605681614293605171002567987475272518885917352356172722587998852144903044305412249989262074492640568678341295560317983917691725058930602186083109504103986744155521342152075090559082452302573964591875774830692158087606952122561522485953321750992551234107183989898036486052127628713265051527472709527716645029959914399516376344397591875981580173805219483899212634034160552473077314087527304208875504957614006770701384303986490952040416257199502008075951121712471687771868861161167632652119691024959610142230512260301255800220257365896481711983288872631505829959299837480154181996093533132135467538846683349401382315582664868128718351053332129848330865378102287940426083986179918221909275725693967765248580048512385628478334492132609777435000834270804299706860815488436993333086796283635727164041251788970338766318046966032410781491262162220997546957793295059287764243905525398472736783671267550956599838304147774550649131473786432671039344500980401094395627165056453001098248867681950343473823169873947035354743141510168408585653859543210865991547625881862280170214929365738922797389562322598983028181480417983773037772952352912847373180559442831605178069932404419902302277224287044617472916735620503339469713927727683808246608900330867904457147533876604270180916561819944558447871628500835082022648662955086601673565308632313339518733849074091792793708962192740110127497777074203696697343590071800077422299784904201026446679309727675058091375067186388736001070086042002651940681504570893094510769844886664056325200394688753238289042563658962271356560121319919379493208805751878264036964864009102948159555082745429184756211521702676726285410042167422290402789365984607376290793979434947170054493376740209263015169834269972994281414809434612133715676570369472270240949969994262578557001281819409588787013752770004544863004146991174245798956003097232673184584868040025341231471927643270475910565440517836662765733658738175899327872870559347811308882332812641323305564557357304956039734007970585014127891556784246277891845425796087295597925362615376400050223745100386936811971457338418213929019841991961181821070588927312436752203880876334562276178979056414088547459326711805589553328076876013604885004979753025313462984068121591226332933605683094984681077915225433510541059681056179301242631005763550883561019281093445909131050612541715538099209030592793646844352021280739090641440988659482991644565544487448800527852211208516552805995723408920527563848500885639559113467199585573479623625359609623564834620201643079005475534931642923523026921884921660664556945849943320835139999884457822311873257636791495813379332829347918025259660604062410718111409771226376538070619674005128355517632757347701802955428192862321321824264819627850684169980244687983368647496642237949381233374155776398416523908820090746949341633526775334620952489708601255397093239073841098446246727373289285511759821541296748100024254019860864437158928708456007800458934148238810126490757642322069843407930220524363710926092087023278196282218005979017486016572693475171698946306427218293893712468076107039072276586196654343593318484435343138152624806737205278638742301145578655025915745429916869340479919898145512068680218132492512479752191226219689261842469081902622194214709996035036377040267122056790132861798768083308812173479030063765580281782837992733358541418874869620014736996504481101498887810966482402659842067300955061649966847036293840962213980415106969474901469105490002492064553655309159610359498725896588374596152151939839190097950615865388049783978001326533719955343574344566820194516961912966224704767653699204924112520075273037625679791593429035504913964812120258023859658773653853632828772305746278046925682306877063701447254416576071633665678274252956045241478165820609882822141593232632208715817525559373661835571088379527869962955626090895377321254579073233521519408845546297589855300005303529703360532355737247062762632607933213298628258872153130475288209703619618970661199266266819573083044588282240621318542289640800723720148319611394712151844667072527840684323959690096293090265595890523696373155537139005443279298968108859188570514307287479673317864966523115146886481882119714098736611138934275705984266565190485078569497675250337221622963172433037079117510756892101909023874790728248977028243448450232439267702181794692322357652524289098682762237262516351316430344383412018150076416285302989423454684631650631365261127658056186873425299629365216167005281136039616130297849214006406969241323833030128162556655349578601149119144805528539498700896250599511887239853888594271406767895822987563673351405495690125575220497111941636684824499510589496049029709462233145474590375171750865876096256164336390116194968090994566744915741394409857907465578027015779937051991096149844688283510987514342564789245628925109091278026130648284483235790834193830201268239404407904788520377023012180528768732434064486860303601056150936925495545846427612089061166523341025021619802653085157042076910921544738190581112428653300112190257158408713952710858996230460639561099324266979901328300428504894588298902184312749474909500757857586007678946408989717900105119882664341213790118023727730395336320563307834363077558915559882472359937975129222883437112181762162702285934953621241911719676528793540411815196967620140836986126737069254005368022396231142885998412419142847643213103720110501239471620200729446605352819207473056251872548603161674415239737943291425909286555280776440696349673384391593915408032956496893812804509867895569659453586697925229303682843134869247784918869029684255766105476811561687507971339569478645335987586299222222642124791653406762309258772116282561833717301577770841114927938354932842893263579048959347435844328275259922451273874496292765396447590543471447684238157948006364578952743268838853564038355855129340638784458715851631592037563086400559675819595641820838691302496367165575618243626273001079433709190236904833022087466373483234240363921334655370245753915540422843458925144000312287341953350282171034743322002664024579947961449055858481405102690442682640167155741416088428738685303124756058273757343770252663604423519790488549198492101097469886968412089413803161548720909145109536424221161187231372356018860737380131574104046005665360803188015349083561483463678959807404627816183667886152209604704515270501383059225555183532912545379437134263994431861181972709055619031934156903669694450316213260936013918463683654023482538457099631368782546632424203610146217883151016476629385991712922813258755613885095854237548326119220240840872906463068801046482756438527512667432513501583017049956553501839466411472348002316604672271730070044610956364757556642696959419853388835576867082861337010290108157701087810926302271661732211195247186633627580272827387626568581334980262655487158976784087664887283100172961595490213613925516934357345782750532612106694595938491670098441729119719322685482636560580008881595503953617675047673169867308886536789586210967591864714745752924521034839680059568504844352904958330907538586094861381846801080014000722811382064159258186294531212444496951370858441876564898602414092413319193439008293949889195510485078976390751825109723611374832141880079175342642229622489970973732066866144651707321194696490941113782515882192070226233221879345257942604083576662994343959042316281814990973000978907434304102176766945844536611629266205417285282463219663679710659345221525898987322249847024580406998232868733797215206198303003559276039977187712035672858619920474445739211504876941346148650949219790795082930751188041293478495365197815637077962408502164848833723936437624636565686089795802700013114633885827772087350778420046115161283252280527698094650210735179256738353003113565473171593090004360559040276051329896087148406848674344999898813410248696235388511292556505529527652237010477740998578139463966741593732259331963879147297210350313658444264211573978958002432129631969990452453355555013942768546398062495758689316213779115970977544581619573928632053330904195731328352662241109795547308906334539911934531127051343092331391147139294290212280832002476844768111805598282624828948469995201064756247787768895042276051645361390103720937333245624199942594819651188214014713388398180639018228651776445732434382631227831593239524144438237091218797822595900276635714725594070683349232494844121577494747581585696189157715568401144554795251135944863232033944834018349561100793567522245935360202273560456841584938397607335715892773858409113205451296909720385008559462131241973705262072367673080133971254137728071432101142716445866407452547687730346610140037474568894799984067860135418504530631181170434388469226578165266841654270341155205829983408460778802395209118506018953940838914356290787016082984968255593502474604340431702180364311194913551375121907894854662138297361730924956236232227523246295241218645596629629170910767504307001692396005963441082823081967462863628450704860361539219428058994671367220760040621334671459647175828749833103327941443345547169158967622292384977935990925132565892166884226274871077191330651998517860979605352114695302489314578299677974906272244944218995136811930653885006080434352703197416855883254364283466831175536036036395546352838553541737394367595236041571151426454359305654537384974184986518361959660425996346734265869359307155835141918607850162598158951820819940698636873494194307386890854453109132894286525913435203845989880930975336719027288189270160667975504147641745738713567169007634939353922984970796473829157332544781630170284758423781761343349390894560468706740760789339398462216348187293303014838135095514284262362732260608291727736376766812736567389512778937848893988345818285139216634016727450993243967408564035500056375860544205310874750153642151742595880186048188550363180684166423995242106648390281904329875133559784400719604342443714286718840190269313796145968048828583534252833277438687295417359866081751621655958273719002125220285445198721897485177758442952209332829914259064323868250389986142671730254504267469551492156796593307868829581278845285429649039116889254285184305179079585276592382431057165892210336747973269538027179427957207335263071931816664585391332034066610187140408495398870850529791959854478092766856483648971338896530372246841734861099831700226673548388260915850328826951153197251099282920632870474517452003876834242953546351865501471822849679886115099361816724175421356369652169000433055494652993624379539101722496681997769219263843033642395190222661514466177757501725141273260523798567615044831245451977487036317942867954607676687243465757657577624252754438457346483120656588024405505595629730685515030549621677364352486917481030105313454233321878697625376526598635817500792313736605072647408383686072741857396320020676287578458515680437577589926215566769062424259254999401557925248332843773908479564624462381042038142006998202291362186736247553228410193454688551393772898034217538643225972603216189005178736914361901440817091211003185144424952440476192398059283750827805326861978341518317123855340038511328225768919611609192104159204640161938182165269281154565900114479916408376602258704069349025697767271792909255976941138810731254032489902197612916342444507687825264192849061821147960397347641646584805723992719397692579521227212722496409441429881570073284564178583520090898967779724335238423605858562009261609712521620487602972080004741355290660712549917867469628892385627541446964658336249572440430174782086216411386413869727514302715114623996503381102890832466533951642377956518267110589043901066346412741985065471177934598871011711953896681436380605251785290842542190540845334557444343944986200285501315239701923810957280494911914881069788897220393765933812497336772062240979339204947530018066239556535498897252120935801883997695268780904058253146405003776973872823942087461901179136571097173967789681433153354081290097210792857844096275772732145399827927640636064827219516880609860620435096180801280132350501374792726033358441574753428807942034507819996822769307604904909774850697372788334793676599064084112971721738565989112598096157877366173099882218905185243800834567418588507676995956683814120716356796528027149288572026829377216578507437221994601925244530005020224416460020147095236715013174955261493542244766938332024196598460812349521130754767249068278179285342429750974614347368564464223826257623055330052742066098234893165757376140087102462379279569285354422249578549028273903648549597069396221314459914934690788670929562123550764719647552608695877115002807174611515110948353690605328638299565272880437390919018455607069270829266152464843979037997873581921575549682773436724149355484572577334269782262803215285914347827092856557103808906643408170075244700092376298628840547080962304889440514248033465502920679105141400222206505206108663883750284625229032673538470962527756363940312467635054796877699087135481499308593309447058038798504741701751316918199375741495133828338337550722710176479910331424828057614867780009056739318358255870071715503673419657504338568217989015305344009497465321189831334561898027622450330424083936711476874989862617942585658615405004942020675684254978220190274080906967604866525038259288483823612326015336744471183475302129897183399243657068034199474750492285020065816474901162042984038159744021938463459278364852143119780646256172675213292507876728812933637792080250880645815210061277330799711809353632291025634844369829511848491882218766730013903007244443862360115088827369677104043215903402999185356361230791110405348496005724780659238419146836993115305100925541292677577626983024504163015171498135274971858992963988115080191082835139681161845083824587359277235256905957721920543203150135207328704841242771699094174870209883194672344542300005949487756488440713330642512256004729537875979586565030491021384626416108171238369159958334029962962388423973137860983253098814826411415488386579895925387989472530934919786176368315726334963252478827485896960384270122015957870619942984649183917730816591417548295410071077925243081619282613053021364458110326306474724311212362652052153288611829799109713888620717588814251208581564556407022218642353374957149779971842048360009238200339722279868968825377845262160587713054142466191277682899462532526364075996702972577138510540219656387447262789271820574984126663475042620625013855515350379871707529616677013044685577882852986139790758137931030204532906879938296211979958813144229164926964228951186332047169530141861719150237061824147889477936055184043665177929499264851883787330460614010383828054408413176838567822411573332208911275341414330235557571991655621249463834530206068337831923823331719911701456302253943188549632431719165674250010384390643016006935915503840524023737284155595885132878584388885149406306935762507326962599453388711446598121199006879356752963231484868915906352737348280799618908688288167220887577956657030073004426889482182671046438971765502969647529174663860060743265234980051637900742375541508486041599997428178743843757259694358621481627672186449263411329180340528795203069698515620957405940699245014788489447075570462951165598251087810520630203258081396817439552095846097687394311582822119223140524333373299117691693945188314196164518489603908411649397088648666579669982598669230633366509942906698199482641211643212120718015743012679083587767486918717421881708014571784038782340706986583666441283152938668514859591700586708847997113533390817664216824283435762731967036877089546727686029127993134949511130240146372093289483872095550876541127473923331723752528369858727604064634950389590792500802736225673452198150512957789551167340601181191651101693502184167936310063903097650054959727105378189835008943619071321774784646872476434913924368337434114668221818936805428991941763058400934160300031812662371957419207280980567630333605242998893891270125712279052725160825571213381134530550756640694408968517774278341608511840202827447708891250390443977009577243633918250425592907605182208844734953652831497870490764067636645595438952016271917156282670851698186791682670968363190948554083412238947695333364932210319976463185025609719916968111305719388234596041118718390239038116302493657998320897835948522630253096421658695901321554618605597634194752651724141855311377327611544793269323955241868316383781466051325039800226793467049458656757376083704370297369759667312972969365648916346972262949443809342737378291168259070635022461596026421779422017836036669041600386250951878141983266530439587314674014037373809261073321389282994642674211374374269655127681541476720294893790968275887270948452668090118381577535632289205632544006120503777817406569838236560294088594306161881238842122932819022478539090331896838383213538232374523629895991159984801400824231310491276861491246945784815933573128653704057935462460571389185369793336994104502289989691432208510604267477064059947370575587617031231371976482467618834640025480190906377421924923404905147898879788586734969515507144214238603770000924926634017550190359674863185533322776631128491685015906476480938711087445610535580060973851221131479969395299559009591564213803616879032931801889696486372353281574799578907525558665035153291579460779280501526392027449186475693526153933272206795634174559297974240718261131444628219222224819779553228247385300233941795452189155578264750187124201678833627066734185036511106383208638996085859797330120216487949625242645113682870571893810681473489461399879144941444814173180508583422226982271637992049222244148112056714972281020128987477090609212077064458828446496816515830224644889245092714984773126514109066704442461976439962974568881270905452694075930264163263394871585361061670863345381638991264235364228751930380714926527268186817071766181244981761712432505631885299250279017842393091437399462913593999325695532642959502741281395379116836685926794638344329160168735726202544465739948927559722994638373605405864009658381712787263652416451280942289909456090815512505960382019258934270971932825858595138042436647789357912324392024540693843767929316090221092339276251562064872037175478738311159995370052106446960622934804544758548310599470457058528230472012221320954172522443760784109027317288427212830295907297230856417115075710064202136618886692746772333484208762274070676623921822161135252936973509075722770777307133393328367284399503944110684844759297920636118911391181663254332660063407482343307161544143762420643166896701215192397437956779324275882512414793246583123929166859633932246122267417215769885626550952762365765870636410530630452586600356713882736240758217226542225454612021488493657609740702964405373539014173053817633896254491589120647228902507100242171263139886739550370560632114512006824560342961885252501094831945746722816202048143008330644552353290955120029659807863520568268748040745769999935290432358571334173027442004920554178353864900573216320888135280768477387568571626364478250737473220392947857914117159958131252669139005406345753178269938479228533429244175700626084219933557697337663628442022518768022657257383711452882571412727894676479765804872964660016425327869643567472023848363392965106663559924643022651692073404852351261374783394334013300184899565092145323280800800980871592520284535232554278998646832804862909983829207807582098212272952295270699483988036361073639692299386055215501178584845077868190160577497492081768377668323323459112916063413310908242492401469298006831321840556495485018503624368078997969522966465417658610521119961616912028620713443552278925198791034323522725191773768905534617086029294500701253789430757839309297695311299809000794569218478986560056726681392916721130204043310883066653491586096717974844446594700996051772466685950143539737278020916671064242547222521524673954489245264497414523251025551486780427949941593698161046095770415193777412047876240493424021320073844311989508820890079278562515625213502140230871739488296772204402186138122446037178211672568962898278576223395876998084926607596840946677080887210964396150779218695874923950059134138224201656852719126813149762625861652772230108903321205384332437622639235522412057185285598718280373157364761281676703707022877417637743374013312440342486927658960561880510307737791031041517677228626647903208632782294951523817465987969190398110460789216693737584576420238926823209937286567815138931895439273722931266399669551063029840815722725398866227933040971467022105182358510592947066323206441512598449262709766538210261924156092697058572017545676103372731963799353190780903254483401049425412593311748309318556337582522349892792142238076497834857773793203821263115373246123377934242943665783139802042964742817750700960473471524238591612368330870959479842219433561699530452881484430796202027702157572789484487842759236210841907974838685090634534901793265976319098675395369001509966345009091412919381337523597693002066602655990167202082074172716542808788480726457680551873179080736512027044276431446441344274770719596322816188190810138816586812140803327974834658238186136136070149246810792642313228155734720624633918584103472695070376302133013507633041635323480333650802453197687354322657397996005475847584331755052055997814629635378452828349423896963972793624484579646602975328752461981317939011716168603452108816267798990267696409202424463566714669443827700914981958209287274121208736050507073600321832593866958685238062923881703788792822247775513919512713412723158511556404143885028096458847963824489554760627909409320001778471095863720245822590763621538879170583114559053598724319812983279145865248816120516261113196188258703247672673205765103437832265758970572652829624352615942584417664616487395232778532548624681056535928348697178466165684754959553998749380771311047713841566959200429629593491697158600914357186971604974415914034231752681382886822906355762605461241195524082317032611285123705619327746706681093424201179466350555420054611215791680960597042239185494410898627936333914802727941410236331337688324394667740949399030327986506642713358122058655362065220001338709471263137327153282610710863805242814487425388598218460238622520310849514401145021502423683812586026328382832128389323625230720681418034438954786439078599694832936738605196203857515131502825520004868014450980338386862395953826334021910138979628786863089527178344371569204538747479976032140627204878202710452750153146578033131531156707689627123281411745488465974824499660765393730872091694489103342058120967079559685323102198840363739570153955590627668552693487519193466221016134203353358339640941583427684307041667844303996929051856619166272279220935228876181354968001202119682886098580609271338803839310410683804015001690717947188715998522779528234983990551485738155208059448864329602386971021190382421168335224594493325899960780712527495152175796155415250729690969798634687922561073665621304514736139997245068173488803937447318486884070119393045126790552225801539688644151999379877442678132969409633050807790313713273750119236490443058607266754921489586174484690345681686955303473182109796558635499701344454483760219898971289945313760519190458557476903310339273815139512898614709746441933232478425709471277246896997125519428583390519524865661735719024298778843931460614040215496000428993324162467212975748522776575098478885520908887747690441401797861448767806610658492483172846874170441086043133988768695592950470511912078189561506159759305572119934550279917141280074277946470500527007484234474506036167387547696027028182212208058718837730675360206255065238026277261256343172751909234186781181067508968407237550372213878387256970284879230385716928161928722737833620730335160046814908321028387947186087838210941477207604573092683230761062294057195204798369474339686255652851264777536007779226478066998231012715256964834394884677315682220909189119287540443847681446877727284665838371749534042217251122653613946910874424209888064372054988200269137233567611619387838354969698024366822593599173402631792443585808161254329458767615329695379066980700951987787237673218871788077381213185911723790305087510784093220295391194421408024071279083674239047792636671877378180950407254062128991582261731715665731010480348883945798299696654047824819540280812902820761686274298393779195575644757307291724253547579400465060637002691531001399919069839828524398852382966679846409541596213203661361719787565882836065257825057092156625513431370878152785387107149792873702928972041602423878459372377447392955746377227413636642806226839035316440324375860275491932748405029846436043053548359096128452758014238392037889323744959243510012938917812812035852635040900143704967803971443023937773306178086751977420502462834920203835230063885529963435394231733694401883021584827537556249645303569723607696638410377275848445390590588239818830912718842572148720207594064706662784163223525836807227703386520051433180550466145118933566755489098278353795776510695388961177986196793949067000864839064870652016377989587882702319041738521771432616732433184907866808170643839435118078385360307190138136071425966520300513141430381380916368461078392891407013606487826940529435488815486923117331739918180296696786359622113522588827093781651853992248588944416771417885678098791365940493665448588469753727767807202191001351542243727497385231641286896166520483867360439915224504776538431065291476978218070189135818940101635642685410414586918257836614251743444861298075571701810807773274601451727781153260762582556865532881880059604081588085258538591030996681858990363147823366643590814053942980981122404400394341871216805782059751273214885009779706254997099925896117419527297638317566784843188715291598121642554932833005411149959337314391794038277782929452228500846755640676605734790089536435006562757018098369426563742250975806635472508315963409385857634453680190479043561249352230031765793960733550521712283971960476675514727091614320526351440830390244050844987818598008509951378621554036374169866697976079744312685266887759318718841805003245130760085293888310159791284070901117681807990313097931728914974259631877804504860840612990246232911017887759069172307868229130768615367816700239089473819504461853338000880783976477876183360454129145884568720966435585079647185767821053361406619578664474713180890107096763522885862669742310620582541342544873894389284581775084476463164895709262421339553277926731150819988833582270220530061796689645313840669548908612622537677872137475030533639610586574875580956288941478209272537984702657147094203868360361867598495449160043074925903671072587601344434728490976797758206595970389218475226121607983366721851849512799727544328464971038527317972897114093521689963985913104232965858582220724366291384134731959783987763559510867757653311118714797808742482486335770582191806558780418348624782241797293468752905596296889276082408567560737093971101779963229600024080585650249710304842880373951459796192853179022961204509939371445521154423807179889756192042789501936728254249845888617303501922350459803367404584707641523223645577087491611642432091411556120716501600973568041729454036979188752732873593634116176789198949466225725640026057436569614509645664637463161321413242336010793063908160499243684853677988385904571707544253733812954170043955129128809638485981868382620944569141903771181364541849904084264992090616266364915924763924637666971810815076475775693112898033692950065654936683426461787045300185379540617212468001283032135339568530198961001441249065591084700574010744313980044875792478888606285156779143898339582292832603843269607947923961089618327157636636755973104708618579848692512175492602858600121321872682571813403292817384200771467998991112032630923427408006713655869163332807652076358513168702849914693706162434873067094684232734439610104136578639093225752370592964675309631900667107763322787138342475881194903071832117201639179713128399646519845223504296829483998578587210558605580943992584159337719346550195707758563907272725454298791582665566288983710314993748300793793156689795444712387145125875246699596939480140281561882910642980067563767286560774384102555921137254142524667053622397546842778529167519798559344862581960188875876519815579460663010810731950325515864000847955873995016790789763067664556338589785571964231274773421175255750633919140335567967670452229852975891419730352262757386389600860760314354572743550802203705328187492268104965532130035084384116646450437128988183017318794008876952857644129105579583540126805819176820538434658503014323924288750420941027122394536139233690083456094584900413807651062210715075892049275424821864546308430299727880103017519189809141306543793734041352719106448454192341869223574606901603547544730513916241163231303782321457055659598089352492845605042353732755049656963860523571750957210442072595990601399533365549382567798313030373447115527051498821408299370820964913813526416630213481013713290733494604606580345126336231750730366017973037861622618578568169000092021872420039308992685783961747001334719375618478397569728682403298064549712442557567309389695196286290600002031963170720618532739269896321307253641625598754631060260714404369626486357743244172164367698899758991287614456009489572591834206947374492274643018089512069494979566980204538111046265698383950900137734305023704347262223526135832069881433446252625009736737984482084464503376415995374873087077353907162156258960370556876499436291519255957482923755437268560610155888359376798978768634321475427279944168285100973557450845292042118533601874753795139690185807730822297918041530823502997540775772878045659134286471621891647138702688524307964275756447894239693827041720845806907571089870877456370280672120419203876173472957842105928734900820445838109770904466713294500923473927695858594292768789769355339798671953153428339233009916949895816665927357311930139283809044617393521236618118709406071369715792838966253884695102157069184880554797374525062248733096508382606171528978599207009076287001459629816548197081037685263324980189766482968457045366003767969323796793177142430160633710220798234866778609790166887643011323582098753447375707004965473750859480800986033291112969501934608771881754834132346507258289579034761333502489378351766673432349695913043429283323922306810313795439495912435168205869202150268360612536804634284680128854777411481971663687922459443138054129168927780871828153301849655745274819685639917086804397691149200614912380930305859484906579992788637568551765892886223483153279036030613879941861676804853913877059242980455445342082077736055529878171353367072475477676860595424214474271389555619648693330316366938688019304519609023288009723085279022498484880938653911846993909649296431604985760913432222353846231566709059604697790486644736782658064540102357351401826172863630181415720888173111350809029832806896803963154724372316863377366646733530835355703985492973427720432968061389699743160904746879937828116122864586796869326834783267174587948795163870854019496648359069419794453201104194380588422888042178085240094527195391045907524193879248481949428048667758347349309817600320614187280599248854418480942677544571109271879124487451087956711585718528983687389188444704509866815995557771475040000294340596347711152320875975310870139653020176407861985817209503471671011660958691495133986990023753993275905795803093087279094256090566044702182930339898181712811077771599504482279281357252900626606335344097956344073213115717023472159281568488632524859595567058537919940221851420441490801814010209930119648766478650278877736448267642509945986485216175608433869747223142362465254795121294121862752761672098344183990094202432791067920101214467008642997269514355992721114129103490515052279001354090600737760033741718130455433958209848885473943450907517118881305762498594112053475891412568569372526558679733734713462226058536424591392781615719728737404389666817663353456226655627309447045471645475726550332797109019579650243374673109357473515597805761597737426274756271684460344605274810390164895785581000607293986626830032352494161803695210913254746867090533589736105748876489714350963514478266596469141169347904944210846240870083163650674441058776201338426724160033393173254511254440814928878155622831036929652853269273902867052020120693135006681536977606662874413259271083312922322270771228477406279633301521471716490141934254177877582841438781696729060348645247614806583780632777917282954496177129322507999002281502585520686516832464358580628401515580203650437442389025609853144100049429010416727151326714806759042331750767060319065896473353047492481659269216993351558631451639139643595406104072736815408111315914332507899209441831326564843704622703443855446653910759742708800538879838280529280504050388650827026490807294060247642854146580035350958156659061304176363624523268411253782961348594322748618027012276519588901995678387136678940715236232013781320203007231247888592928801197825572472062420958028492207055335477582382843756026443130546444941192511480674182216531951562015229674216265686015253466867089154600625485775383073860888985551504388838344671151525090401289304007277525754900596296445551524281221483465032184165998912264299438105424729855535889784647389044252348212554883465908179205980840132522662035888679710849312469467374095823846303940179825462162353190634785829734190217055062114213899345310440177564420816497572170244479915525091148730023400223815965343695798239750142526819096487992504589767866433429162767912792031694575244933614881684443622915204030437352239995522047330114121106275627193758477275652178712777908016838301823255674933504193082374492543952793864217577227501876542219448712030273705531769973853538697205409652177137466157613202432477233427917276397193667988539829537243031920826296498563591612797258286313560419646109804236121582660995369134554901534343801623595565123024861027651300080420443353800822208645132400632148899566080384881988415154787881566064199225779461414961228466985671241834351601750275706448475002995266408238587573228549601948952510501510433948114667212695919259559528873465907269106103916065933791621368969661548618651512893949505299827132756635050330550270307055652016829139613460038710535369442328457249371228246102117587440475904666326258709956111053911719816683071419134282070053525233442079867734906750588927586327707604046072443129398381722308316794970463096727586775946333264504422329733395262908023322639087060750293315969085810453784400444708752118591504657397135789363446713276427483258911117049851843447698621703612414572393368352636324543099463000244270068591585597406474368823924865950763003867920730282224793663922000964028311464744766080579082438864131208200532532540224553461476880063086620910594764774388428518899334450972105808799492815160460337364184806728314534030253362371029541873171561473267719108881770168095352187404397872431416888570583983197926512826568832365783949754734301219037673668849281359734952052085416771179518457772954916246197675007904067517369667508468179494442721294470824205765428472830534534123759369230754097263759521278261046770573006463729915463601397623273029824669708850486413823873345443427436658939561806746744095439446247326277829288164278649501874139166807785281419795465545768021818109616844656303140509079856005665599334763514076006163438023307611378559432707934246450153827509239700308441666046107249277149178303887956705644987662276604470116078075472309005139487573591873088960200597310715239209019065847023552466603534271746819183191811961499042391746463288658186848886765798145575203390006845140281487069969152068372804727751518479393637929412007967881696158701034268866104312901857616895719796102375212898284413257885610516680625470670111990206557895349845033720324593578393442764518338916761615785563444063874226139121509201716589926917634355422505729376546302729641747042365010416872601810297655728496052788880632741863210182581663669676759726587090161752272021530975491486087923395586824659308209485937520306080444414437005270536557944108642288580320376200380030977838588782921871466062999266500274298915705430636512957018119921020979298548619724989612735405627522225730002380481907394827500493190735596529243952516771881546018180967825233861499810549470178138447434681492521213580834132118731760295393703855695267535324787528181031362767495276395752574621816417610036189069352608161085200177284536637987872105312974561180410051466274014569939383896557870688560225278317052770636908583401880025277929286995484016215648759292296778624181706294495080993584882511453123682180291261459648977891088992254810072258122984072923899042400631815004756455348536957120590912301990467585899621417085458416277564428501728122963634596568269850089663123749278950684205864058290617647200099823924819766461993417897343950701231103193743390355932055520374084361731240409301226451041508319658189438773469351630341359080846154812240335555607468178410672047741277633399538051495735263492593366198180779605133774804827161557535282869662872162545814189156695062632709442462075570696462946832170942670609739881604995626971504519459098623101155287432666445261102022995863470818229439628298369769058548664748294756707544308810285306024373760069319410084815967470429343673334585437634424683275818915710544906140976319510258726816048238294765118145778127758335565810102712722505049569538248496353509262511884142399837724048922653292255467714137471734995457343513768119996613718846047360114845860517328627002570791126536405381482677230371402715565548056736239954446562667252679920665077847965361785551023532525405375742584004008781222578723853389590692741452979193392983084624898350874971084872879246852551433772357078502604775745184634213714197077377523860508386287233567175797099759310368557322770573297444688208327831007076654271273011071301333368023931169793871725690221608510961065134352583158079804129007700622709042498978189274232916184760198765259900741987036129467084952491759907295392311414424434595818082451521612453280437323340377889813377689597191813143212653137745737132859683684765846257290762428961996082564759100260706191713683080346268138391597994064224717093977898195712421792723651321745031468764656801929673572915430576021360913199998792325377326688260248395891534110975448917404044196080397180998403565320782442457741262216471681194855964213720789655954878150730382786420897226088885802864060149234248609397681680521831043071510989171113426042431009249886413688233556613626175953263058875193818820405795737958403904988405260263133646873464306505462040828572305356770192387223372529729663010940973496791863468842082774986714468947091320619497724158843030803105850437033550074802920323118402569638895946992080720762454188764028275788130963059188136375091539397089546871570046349150745282856639175526656413968642561916691486631763901418749821385656893309213134844735850328964421885182299817449452355319909007417648018020772109990274649107369958975413842218242239700314553270539688158072730351750204898429809125603239015842981339964781458692177265463839928990409020138227041611163376667208280107596414086805793252618402689137528609051414265238099179514933441518433166014142625650068650259467363442834940238104767004278679024040151928135383066855454310556198814396111495204322024729715856403768585007082401351081440573405515299537116483355014187999418020931631328728446178058613063904773731278566180996404518421220880096294153454079808843607209009500806546585913442910311936932986884883799687506486635816809718208960417820708913650817863703697611166945672219597126995169288532963282995804699950805702888777537635550997823703969243526484470065660243684517171606797287593014401700156725944202868802254684353983876899199848493511749921163887955004298717701822953266038684460533368693922960430949748352721714912104637857759060827675848264391349537159252134156249341242123346850571373738243903308943959473178190851672485943484274744271724580189410548654041782385813744407570856651506928290171854651964513368847790735713790664324273632252400652312940603193756106151271460051395166964580320069831124016520710411505473828718861326476258847307653375535258395402716965801388871542142208738468675071173445751587965845753969108240796297992725692845954974792286720252577539876396541385779274378699057521814698698318253273713479343032113530929355598062846137481565580627920689922126663350673620927321506063005719704727264790442665784939833001374778261434222117713565161587542828638237060408539757829700054789658663958599188508259941263994549345854047080478225346205159739883661313243694933426386846947917677039036539400508734864825091212238548280596122979314060475838567634261140908441110262143620144422230334653585555858139483815708332426407907632216916457730921034594225255058201661916714962109830514488372705597864049505562481873881664247996141488609031425818698723053415676707152577166401422834909338860992632359711191232097570141831443840691292547639058602512260190046679789254908372651447114388148887645079895530265560057132827043239195167849995125263592530779765873822744050338170664743031859258820050600176304177029953235005528774959377011614542778455262738020854427343699303108644584755488274351403578630977467597373452132743214956790638009281020153439175149148055056405589107136563365062875837277042480213765380958890645193856992917709778123409401556490396480708949882411090293624049447596411217445855618548670345294710941572002392939361639709154201894958922185064025696111614226843896843036505152638620211345517872579488029867716866837305713517561721424302269639100664534071825799915421977029526931778553114670308919680349432954484452405775600618616763974270406049031191004510574190209097264805357625813227066980714414013893445524006969384994824750865689887285160722681676923559031528052158272604739948632137568134730112266861215600647001270680431506538654808943993753707970126554432358863865889935506732522205343291763184471500418540048611507491352999292268269554697168577269335146571859850549095829589601330801824448381661435779998163515765766100830024430899855954589547493878322490553432760435066616267558394712771085622345851128739450420870856819191749261207771345851321319151712869905208941296123841385486912743654589980968013017949935804750241469295220074427742879591655861143652887608684094354086726565662583992983393708639253053668252872243468313982430623928407853913309661680801576510111197502278325430938819668619084334148050092058578701418615146011779703922420332122245695830131456862507281102990213092534600799970495691096803937478174861109825732363085027874791831666376052201648335783316340155726974993508239327312992249533572260924363524104306592097531713207565493814409406189448425580559537424582590794028339087594788891556011383506994812463851055946948311989946258856254715242341557066150486910253083514627511919320685160287172136428207022142359403905340736587736953141423503451564650232622050757796734791518149317413845144981563990408543613590521592033601692307271053024474619031327708996696087790960528849843345069132147353949662522919382512145256252883744872487624386426651791182713965181637820869730908762023779470737185463072819793644232076232195615299040877981828280091501353374427598197886144845719266167147557727297517095528625159975227315169638556797695551223930284833106120202564501166326577236066355035206635525527877959366721454220350183840651142445518896264346953679804771808298677889005912917688924827111870377650637222912743651703812681777356330612671762865074955510487327158951092030763372593869593806559745480319889300678509272722593697364577090928683728850732120805979852555844745195869868918833313839378502945619193760465231108057500835556739716086796393053216502489293359228186189470888758980051381245889408630995195068447216904757014793339639828010519532755290694065686041167917528932657129993707112085373082787064024305646635620168023504513274856034226402906475479012305499641709550870655906195439830831667069546592574714051369628870982934595604580017579458499126262804864973163251336584728246124359680254051226907817076398641987482572569178184218432966833027963855262294962243345129208114367898691771750620913594378159275800301442812500142620538723659697995628938444146057107692331077080198172127872537694708867067826566370164663358825983658605452244511319116555498249408137050525600791038471050440638951582728488945792180002623311806307371979840982398102737634842915271237297024150645607990236457535426503355515793186881865189736185179493440915692565809780169217296564121070738676461474402106336709224615286327689793221924156803574985743868447426418478749238292839033290929933972588967488858459035206102703705002036881664217988542583734823670318495876498203864071068495249840187582034970283786838134086641249110071515030994295367854363472684277604771481886991308216673240557843705595714578627643172282666529632903413483989956957224837128455795419366223062256791567766464452567603455941419412283218093609612919421940106912032160107549907436651219845378128774823453494341204955531339198138074277964533785986868494649789500428268477485618584987036636980008307867840674121100283787190137884079612183969693206753973773964631168473320828072312619123917246229641098576372902766669823430522218122335198797841059133006496882738048697113055119646675490854058981671858005077553919267624115890758075865318400422765881156490300272789489213133962268126625712733458063639142963947507906381679366425533628316722747764450302530522837005951271699512849243933153277532221689744793633753887388885659226598062170133814724996489448931677920105705313407473529129206603928774185321119386434361169820448041651456767783717179331175887667819072143551281730477955253671729207103623335987213727988956053744845375465273158329226702408533463154089380791252728451477339770923505738884039933999314519072501435670136683943852650479562611353900667029353508565023342809088755092126874451862522516693367953410977263052182563395212707966843186818807542835137137199183528842954597817979281365149742439295057281810524108157884967087282838590223511062632618688397558748947551056625525813031449754245553298415610028804697434965809896819334745606900824312094499119484464941812940138311286734608520590527172063708917274591567560976669459832911824846761122475430194572779055561265771302727557083307389304744431148676733400533022699894958060692865664146127624965169619674290195422625068921661025437191384207160695933460750473304775137997892699501024741887135781744652765006095382679561146180317768576645888320466485685918175450888573569642103673763078509269285550975174276561827741550028755115487670668134736149878588327533444053307692792960771786342743380276273701148760514249861785648971312676138651958345290974252462875650198448964927564620015704520096831098203950845464481731075878554330270524787467121316332271357079448726031190496882200423699167045901563250460635035856636549277297599627787631619554845855689981395999317261370186423716625705997852372542498062076541807740184011600968485631869751123418891583472878720383259841992565184233685302875382783489313920393281507292633084714993609331403209077027858896558703866806351284958718252580054553451309905900528293064141748934585466446016758950423905994720253502366721310296499162551670598735672056042751909266662344246392672480499745075600439801156145951737805584107453526356916253291490205308164920486944061555492849142111706676194622766059387428770037366055589946112608262051858533481131587767689565148422439548204431926846360592773547483416037064741533291301641221323792487258929893293654078963593642308855316476392985590915649204380429554337376772172236034821225765248923842528455127184976779068236406865397686713590744426967318731726574236579452830694780968869644833531450585169234560086898991587235745006388914198095123654281839219328844468920614268404168005744964294340585964838997378322789823509085130222208914446847985567088409271383606803418158905843677538283211188902465123522042630673682471775515200257687776588805322276048908260111115452529816555545375098521466133666019881189425384146089386878170004497394409728770433866189603747304951855028806672844512164032358863507816962261481942356014415126764023509252168520866049009377463541276620889557474566499395557373151169212717044048833460661643660248128258457424112457947397552796903149599929389027928441960586370024325176860103068219552699970726401343257101063201678087583206651808389294569796698947955041427787802478270511610872659241806788082697408319101927701060446893860698065464485508071943150419158195510762569664752659837769562117911974157638286166662865253262837480974942708991243888336840777732114855275384361640697761585512531341042602955372060634680065773629656910817991835852640113877319966193250396130946486872434210502036167292692348939454476012163293662937990476203941015855425520171564668068994441541029752433632853891156751776620844874459310388642634539897338381010202428216501279840057630319678982462235979025984683556776138345377594022174534548864747530498368829122777970616488383006263715249563645351230608015890422476245866027437177864762603640763380310004720859492531525081735369726978711921496478615296686201982795853566082090948216412728432107474187940836386769518253654736197160377923742265337139095824298300043734290025945892548798089192033400305209239835254331901517645172436789730850552168089481778349036316343529630949021374002455881157287480972164865618273419511803558358782785640356716526684532257462471842824933257451321436433629918380598087944951576212961995898030476223711631146785376938499041347244659340783419776701888164634987470910411338034443051733547497583819143614610176140559227845652500587847112262000713837587462095405478329192816764518240261330410625896792719218341494109634185234308567450856056929629474113518922916008976132019579444464521343202594044830803387439790447139867260926295679415761934534330042671876489792722307707378889903365587244835041838649344583537506248947888967706931485663174795267635231236278967059446496382327035934901899578515796476247461442373334708769002686888940987422512600834188558412694804140303213481595014373730295605771351679211994432243054893603076311904266455732690763397350445664748447057174950094523736535860423486951100097298283550310660970474821960287466368793831808441250162407666081916039001267235011913707594513419544702203864350777300727182220554927495247009199109169315882997214949797001250067841204979318478543429255523879352172672288642468837672265048729048007347251264117909859577997103975893112289525354101611958409298098966260857958942164789500626450516387711422017640468189525014406053048627852327308941926237911882502650705310698270201374203127559771875971034700872495366681590268745827476099170649165463543667939070799204632995330542435799705281295340427238873592768890137528863757516235717217918650608067268481991768089515342355910910718964886685725113096635885070922254329664340213745795847224053300370220174535195355356039565851665040799259778182408469222376466434069173105144481954069231351954222487548459420473450477122702218623196643292815375056580006895140202307679814904250003022818139459256787677247058798745981846497717498616228588960162602065742263798824113563655024058747081591042020162214752827129532285709203073465765351620584597966428320858416252055534743981297196025235546572556831659046192366054594300785862240251398246510629398823151804988422796279211714619843791136333329099059867980340542097126223355757095155007109779386987979946540569798639929099951695563517009021787123000936984718115610110439848863940758008303090481958173653819385585696145066843611252664118436166651820180177411472203594426501759751461995117477133756535942900408564727675978573781141996944171833801368655052180937914284183485513109713036755493468148373733807048315018629459864151146725094880175252153085866004649550237437887987460811799340110120027315877637347337739743252598389129217936539004211928601322408583397229763449989824867561103637811320916894717026191615475381664083104341574566138828195724239277243446056649877852774840479952923664532411243350787641060974001869375990713513162766622714478177204565102560825235340915003570366809117231915990850689442256812883020314135592226916046327080138277567003622428272147129735252663837347895883678203007563708142066863025097590171278966366677206602756215932248453415926470336459093513202233628033054302024889432636184331611969125014140842454552649027283718757581333376108867204482646954817722592474765994946011458213873007132571788453293709006741299358326946275447719830116205522395977484083704076611081916770541276592709478432719645466559959743604175456957705397422360606331356004433070217664695174702674268616675152313823377368600214047340749955732032597859368431041556468326689074940553002062427449045522013913971046532765396846694187912033536087343944574056555485247511461478446690018176040867750423795401049569690994858458610188509664629268790197031656372134287537936555475817838223830698474958107285558912899390944064762912140764504108925995659832810392763554010485071755002857291030038228204545157982419571133341293971091867990403371369318960103832398254629955344965294644825364895567729037214906326625358314286514394056235791794447558484588857559449688102751625092671030571975465648983361917933143357574186296871408380727700061556401141655347692884800304987259974589046843606229512363253938140830734174179163615682905027109498186396021942519919437543859062420282933967644663044291301080581479073375415685791148786330804721203046396990715265778544545801475650508754218990830611220364543791511384120049315374199873910845246513156525229606039831188744049757606020923970613972110337966959026689176841052716065179801930311066765903564470015099950293498118589159363730546977581409126666390592234504404100481059594956057823533324997631371804127722039860436127911374275340129867089069617465549091537590463649553828528355610140449673610658489826335769496771052736286279214332840322932923367770952251079939634705960129166869442319204099158462911031539151872696103340795189741662509185650512112811254263760206327104399005064000119338830193441005096024767258643917926186374905424977316260714401137438515500007313676996370792893297077177134124612792429376668870015232672296393990593092947807053252524387710448396446798835432613605385750530403651955704304266467952901014723498457363321012767325839235695643565612211393387686269088987152014887927656061456931387547665884898333862793431029862870230716359462048413470461885078929974197869666636032978619943951125523403520162092140307945421310958474763130503154159302321356132458278480595933029060998205762992419565086734606959921827913878396307513258645764898275115541173495157734797366214668245125340250694426334145450507924528143053224221186858468090767120418514809308954398516310158423594478141971727201048427991212394227792750928950516664511034070331984000623111561615528058563339999027512677719253662151489458294255417492313060203767480573689738160819009070184799748132697428854881146768823930777976762519222839280232787971600946943391115491464189306366544804422190010613764685117543914098736785052009036599504648131687174938742212162398887052689165559305597430107101646482184214914898609946138163704564046809304314150235496022831336562965065740834014757812457899936103759433390312170746144567974368883688188903939303295866047909951223652851199163849150532359366321789172270316980492343736454771437530332382760397945614230671174527116737743659324429110406276033463859995460706760585478226844977494291942522459918033263280986230920671456716555236623186181169125658985882364082945899621694849731061533912848613391702982074019347021073686595336997448608073499588865248030319146133962257083514819696726189300716867367799028365152223897673630956050603414052333471403400118248812200683097644854882892107384607905486693184258737612687775829351409181882475003632115604049126986720056129005954294906436465226791666319504426100120833497598809964471530638023661297659659043404254730879129320431988012982924793577582135891328470647100807902302591393083741543702887163243466335823150252243882766968429444032728842496105804083337244288580625416057489461354283067059653643130308587036840602615130469042789652134446739799335369901123996914635114051162206922705548692220465726941744059587741867786128947442368463076017209472210321646943873500832680712115427505256402035409994736248153382766198062155665263726264682356484436636767142457191142909918636537143226658629616457142127499058504806221618427488739111433508981656637559556818925721239513178725022463753968840116403491147133663630462838568528302368493434093228700552180626674923478983036835572665265158716691292008269078689396570045744475161257575479119384729866705092364302022712372770320704244653837802471259985645226103508031888626183626030271492279670183752199777908518936775124250124224406132065845952010030721108301207599255178233814917553767069733100865048647532044298109965517243502262773556473623813970200939054313927888558299219601590511835792227029126563483108980627599937546559118349779373423437346212312048640676384458294140160656483830744878066967170661513784942033951076040851370297371201149446867752287295486132168024822144111501993464670090970931082176216666792077445906573686869742701159315405801070499598961685452119129102932768462506175902205304666328258935731160462233620189774229898282371317703655257197100416887291058467796410065945440732140007335327342548263678722013198405259365644915442652855735187261066062817736488464963987332481996757669418043718517377840546280316427783791613554851283970385557893402628901957706194405525848690620075562801098720195722681271347538353108527029668725540076403248380861712602866370499946000186619169564376235464978289381707335806138392826961716917664725066425914100594859825104517712800851408645063320278070977962972486198568770686992499188580229122367766894131421777928712401378235073485210414683620276451542465434169227961748584326288609740863680932617520590674529876755034220511803603238032116674282476396895557234750980224541248015986839629053442989093951544891919895085348179698544587837441644022404725433047176023299413088310588792505982700151266172575873878400975453614988153814895425350130428878170213238959991495355571840361176896272510286011949133399258632254554269647768058792367798075554034268729773695939058769380708008249459379665290549032711706120687284788963406709901216609282216772297013139379225872187081260825342677491120114780408201994593485227766300935846917603528852553495603398219208870179689376360627633331229666508272054129622496384145967352372498874762787310998173147350297514404327928039974601268007835680234519728730809125057787477306635044607465710883209810626022936593367522406606202584989096659878815657969075539550015924165965373543038508348670535377347917046134685917101168918537737601150356491405088646974263205090322782439473375497429760456471062610480258758082901790718477865079123868216134519233673231383162469034294452158436186435262432533906480293565647666608544852104144664299409962758686764516231781578055746615330685894641165043369117831228317503270532882231411587588520950084697242457293509827784882028117757065020565907571214012454431264876240549937889773393636913883733291944694644281251597997614610181066209488800618859908196375051652951304808324685144478475831315885331603137425881503548750904451022361126133323600919453940440192330331170094587781102991952123138252049540456460716576269484753617971372845532055664246620431897650411219485189932296929023726487560750297840112617279453157539842646735793622409454294100515989278423018083591939586842477905049089931611062386590246229043900999764896288919770505083181513982296737375849663319529734911237626349662989315533300012872352234844729442998480244289168231809474232933690625988027075846131098178285287429992672294737564704770068663492912038471329922910721443249163626025963978411522198979085418170580729070794788671149141078995271300563779704650848049504646700246040008242598406273848042710500778157772475212289255509308327093817538748408804168488482184375468920712436986068424256342392120703224070611841394734436216868609874654499624799238285861719789571481631325090947259915619621484402179249595937709512470077736188831966784797781636553210512714120645315311439799196348554948984844136330636453171296894940570660124335098912682411808973763339231575793516804806394502963161214033466220363553691557884884688861428753141551833718996636355024785870633726601705122413611864464389920873397368692407222275247211127316188246324165562541816922135248644801794965425977016687124767024675968862235007529673344757277484204033326432762001550322170187169846647907661632539002626525419984338986318865787220660796106816964202093610708204402146900084447563779032311715990293838378263454107883889378539806587564570254499007227987742287409321994468198715668384792094322041398132004054476483914311562111724242046604590162892924806154612706368373062053977785497245171630674848621786477715707307456672900533825907175465799985166893664920767187499033127224807468051925067508727400732074303683159096312495766187322779185726031300968726286804387937716246435103791954797963799097039560187804669861675357804740729235543132913722267280773439415538326883206880403115478053778770114515847836525430063255395675591852664009490970091313876269929430120093563449918462652920301907130697821070985097792513595882939489168438350003835088296174515440109096371036096321488136045215641307449392124770319692671451581615784810362919002025017678665276441597083361090149441299559928664201965490526513832162014092442504149811407294775544947176901078791715605472564180878094577487293643159861183820679087742089166220338523506998617302458733471446011635925093878167784237232503706163194748105231028742992895671241075267987173751659537579582320628003797034497147132985832412739934650168270256096982739201367584343288358470986804774645379830843983551901829549219027294592388936441720629129573774767205780086931986998088920982292177650768165232455437567997145700445385726138129331791680209704867180635176438926311885383997715144647408709121872790261630680697942957995308825219243343353828860818061440716390783341651554153555807203019675748875829840628610625317278861779676960967618804304268715344256084280327187751580056223273296227083930447364244459530475051342089406587714342615647306850926537018396203262180805152269875415188232992522151057125520875001403107483634395737016608818612494246766186018707773077917645642958016632883132758279674705763133946981510459290343452883146178247308337119767070757522886036586694756899302750998152547214922730907409128440427368569798968023996680261879019894794706726475765634402777539160452382284076758839080865210325709411717445434429666087190944896433993704507311719849449375423233587306740842949116156355399477755803192377315603902333401877398665914417990723667702362058305952951832635704066570983380931430821057657888014746494892888239236075803927686964327344146971067019005721132621946738893821637135717284768782453077646508260712881975375103196009722217310939675365492213613763554741990885279773445877421617628937257666709270592191825816796072357537453154668468085438122508348811321355444435783031944200725684033193745286313398343479615297256343352253991197426139695988589483039919407547251419733534722921212530860310644868139968620191338326464535832646061875783522881293703805580634186740142966583591786289078846733231754219060887528645901708507285057216548188917590412295096761761462982085352990528445171774317567832750305814355024918271952293975839992885639798642951267682445592234248200073930039177025776274117638995011168417895486282884235198066477477110238935561395668749835671426026516305378628697847811829139522213404034449387249841157421268863426716709362252937863582273157721880845647560647010397812078471479557183952574337950625687250798559818327029290716415728483094446365122285275353793791614085700403207752126209463521623070715316703195019597791010999069589708877602418332896420555524054148257499111312482340981185135467331187425847147938524599415443285689535320919386442421760094278756416057900829879287421957868653332245163585751477000065989014069197685762247083046142117910689796595832364265115681550152962208714858492209413624362374496221633002206885810955401822169532941682703438458967277109117201702828204851563403668973028393548158608349396345750108646801867805693319407534905541982450002927833418088559371967377657586606914517792304717716476805132587100581638106047517678806839483258799737792105348800039622951933216806331683448610031358693678911035285566140285589812192313301131717686690153476786744876943903629930000400215043095243969800713376092107493847986957546116905352890116826355193982521577450163539728414015016877647846344695800634402092984880825098125149031328137373938389596058220272248736778370781169845148916839628983220597448871414438010305422456676241262597138362608842506627694673321310713844829548157201200342509192918194390432396401699896679415777884310865262342653287840172744317910652393071191644169829275845651142063930523830635390254992218621488710291024499690559388925953320865094205034868934327496822966600903697323311355057794347261642551273905919469911620443722147815384362235237611765128247666446645806049038897411839885808566498843569959273802550605432962707241926047035432560626971074901138049787388013011777825253713998001609967128633409710097342496341826594514031462241731910139542620975186775520994507408765107741444133911465194718323563002134538964302010814556884958388493848362551352490602731411094005391055608712037717681871522376553663637228226339474654681543077842791653808262000085264970686823528809923425878577655376684911010754417884363089126177720577241890927219126128321787616807050292359774466784359709207061436089240358688655333193415113091087640319383280003875997169011903313584842794527403261066181674853034350662528066135976465219139327868488450573473156228256930815267485487888723156940114185050670547740655265463287979356404453784894053155599819621637886268099249267749049484263603197869067488031447764565095538726445368485785968424316903380773660680567067462000500302195950266407022034812203591280918094641708431651028302004788955903309457694679883618171425269919959400402810368395090728251975618300230582433366610441901460649860072450662875312792467339899035753244428707889921075731993508689662281630300793994914022211707993629201855138778451771332649441534508134185261250665488468008966504939561722100852550505961775903553408393159559797297690627582919326051095411085769922002118056705871664814968187783072066307107377472784284620132304911547941801162059131612564154998497337115320299031000295846602457121712983432889189677351234587809140159892601941377584105893018595484148290714096388547256963626936018559445195171042378147172722585462618565794649419673456294286982271908446649870437030980189925982880012817337471361408043881534073808929799002551928128654066115073920739539078835544819664986879441933243913949352371853680514711366683545204072753549335162538908027332004586433270175721466411773467040798704113199966118447495298783770650698827078514205595880957193319244981664900063584826980704423408167248412607032953520137631475787617247864856498418691183105555176403453890117010522283567897832415641818818557836994139964885447495665616496491180054191505370309887822899190461534143033397381057638482187070079295959559901750928319058485718825881335798921320282384393340606529864267954253086665915568539529385715744627286055947683455296221902603005421183152880151323615164441948450013829721410146917729489828427344724388198731754183871941288634922405371271653286930391084214323561290930681188141052315847047169561460229007685504400101681915047612045568154150041584185559180582764953271414326854831835994486153508824475930217135280046048216689427294571218552357769587023655609341239636247910589706197371651731770522656980094202489436729084990501678489715899935477860199899203977229975460610393208912983739814998982368865120500642019550762423425294914872004464453110518710773635515478279249866455391017669867209508227319426001361078157050327863353885522681971209350436674151423308607163875595447517030275974080312216503638231267788367621787063373541097794797063560815208903366296454377060428243793127885103496858970761990788427060856289807844150997682399390932680148928350249778531985367308333345964488495398636310835701014528198307066697356225814303440555145379721248578924403847060514116032645257030295364611210139645554533076727184168457275076145846901237003609186934932054898908155180314341142282079376332584651558653228567188896901396233642187581868391932998109434538686882864969067558701020418924046823693369051597646133524366927186449656775218987741211919187320238501329111420533628646308039242380007094808437673980579418029123362792442284081222097259683560381602989465999777129193808403096305369261815044932482043795022169189549376686357154423931270761425200080423167061831274679816718927211502868079027371777187901273225010987547205850797775964373872358907812206660066940322201899483779069622343786237044805284678218668864644413078224366282072449899842143202440205393481221757365981845014382790708164220431225999805613784991893207438490050880773476832246611160817479670386129999323679971994846913989386342340224941620744034575530665538517981751475598589518025675063374207318655063753815479199192489646321169819098887597398797079760364972794589997818478275182560874981184715839769287337359164412792466225690403575899255280328628044171550686042946517000077574891009864872642913618402223630844586574355762373365831696674967738123413150157101404818987275921629331416522060332998140800518021405342921097642648467122909042417267367414847189698998233734933060928482968857198875858816035022334418972124245865240753936529029954152471732097879498188899566244326866238343751977324349928384398293804601532407779972539726721162621863342270278563153700964206579440673810818162521692614851229072663751868517119001263291741665509151464601465585156660755482870330028054550700727932946837728736796692379052992813545375708907620139519846079558046358697482531989763997404806485822669463856014637411876363895919734110967025130099628306115723090043586401481565020302437449292989097747976815233451694040521522285262913909225101932787370032382046780305263135024791412980526052672996989207290809307772962018505144351180511553413433316184715383787292174781355667706256285090404038440189426249440148674059809356845247198256225215921457773999689294079389335265399584056168798804474098147661700833997831294933836510184940857653714496120653460571650243480045461003753857860534467347709962962205835915264059213707078624289193943619511232930852015014598977516143897413729805699002393206655876145535949319455537882642811741822010186586270120131089215759327772960706440219574181523656638349738491169864000412661056575372179381139700635519811867275570702433113949420570884849132165706316976197876436168950596741971451129404172497907891228828028946971753138851395820211725828762852396330357563885244011856667041003072303029343569324835309747164256626345449344778543556684236235054527853126523581275000177927736154786186746866999012377949849042228121223724918556416953253346598928585179057588282844877794827762546210118348756062661127499470304612184601552675092431991714157692066564905852756086976406020679600352207871032696305185392184967112138422322983032186994899765596744647793448451927910394584318196769599143006576976642669222525069655085946917485952490154148328838582049929277264062771104331516549966126731813000992374817928564407367684595094759117238947870055986073090394656445596436360210563678490424883310966761317007951560865651751681457256949802616064341758116937436818224770244909607801656146346562900023427293184212397663058273749948348059412359295797437736596016658747549778024887665019608484032004318093556559253254148566790233419207802730894363819897707288254167423285055115881372377934254512278807642778425728289506797269812244956553593044807272537108955532567520697592901130111644486576252587115852858923498044818195409723579527149569486065502131152249403614181239376458488285967887831641617945037206761455015738376530269173462088646957290959081171327465511628959984098151668824894498459384793424908544658509326685721386127694668104004728695580868264323068036066860234865534844681709109013013030707432300962871261752679024911644925303353246628076203026276379298089449764114029933193210407496070303004031000687250020022906974065979352263612684622594660382936696919206308119116800173589044729746117004244207578466979577325948157619530601393429899479274435406343206764566609386421820371706346085489777406488313987899301804289282319987753832964920882151695005591267709757419433872040361192170023597359142958001522924385705987185725983984069396456458952406286080898227810468743919404900623969976899499069493988825418288923921292830615168041229454684370148908025664745107271669630256856313436199494078900625533070133297076091825883355918963344487742024940862430559847563667116195631406630875572326097672164699891454871038582805846332780789437182046741899989621820299802138221751897921615220945380503194692485024985001710113807263532759365582471036024770552261098923001797953044078701376026982159517508698435528885075776247310574776414520301465320166273190857090365072408395173317836909634633318692254865885987250573662984355792968855596363965641071224976972280163432579137478550058557752137590763006244334212829197807840332233022597814220790462260765853384963485449389526252214054668782370101688866497301717492287241485526752561958169494382182317376699663322991951215245993848644734982297951372501899971291113242825437440489089036043482920788182756468397423781641769362855053401639872201417466247225469733400642336461840483606582621617382331318118231281465707101395948701891344793826967171473704916546661439078053538157229902831295126792167551709792829692552107961499301428701284430795232420165348143971040515934666128370116762013742652810402327642715036345033850465119351848127883428645624906869008964879493491558894836461792570709105800614730541023824166931990213006773051100514449604362455935467723426954980527394265373459088215071659823490859340350145672604921535586034272206575542727324646615191645898905849573318727338178158934582624677577040194989675230437528190871014587292730499572598353803753605392432107356114540203405630876307939649979389593662755879882527938211918587133499023368915309363437344215214163556381786964969783818429062684401404002054574926501189007536309456563676038225995320554900598929449594689099522836272592163187703129429144201724486266247466502512955237316558755430809553418946309680157820140086475075654725477478045136082567582360329122838620161495857462046878463806074967824729201308488362531483767371066410251217545243935733161417264093863524975831717433379288032491182555501007469384883099032116782499648397141694507141952650531302612663416339226053597168465877458720504647741292239024145075643645087697834448639987933650595091522474019468604494917472535112629709817815681329775655740345936732026145668106064856502180582069285895023431275378342322874186713027467894260032934880189626610478583280040627105255086104771687937920959025620140083064983160487836476265003338747668131891563214918967308894086777699498994136620602355232098525342164651214776049546431567016052752088914707421791402369943815124796131914867049068414631273031646992088168500844501666388410899084252386846597786581931477912080600388887132359089933508245762885777265854522459988854537409247835210804099770718681322418540209603939333026247488421644970552049285819792945026989578544545601716743555472053374189171326997877789906381299227852786936080780586755513129007123970680243589891802999894363842419138361594654163923822435857226233943511792224902507811658633659065805277055851872696144156146196137713985597110503738273977440053920127871181495545733062077066499863742949082512745427516334361336040097667808830250150765235366311494173530099117027905905145903571917178051355333165724204351616958395732131497545064500508234973736924169259511608297443732190373114543525801653167988867690173660209048196819693636854502485087486752297493596447416488424560705614781891276637697565397879260042697973155855305645337663985667704782908757619532294820052623835016984589669274942072331147970370489911136354817863101761667551649739635448046228542877248904486227574937482919319814454419994526161512709122804275358268467552916087752098653358241316541961103731295801111509480531694958308166384975835254120126197797916915632667543030120727355149102772892711880369325581702337264114584379059820779968816146236930359865265566036303549767378342528760399278614875357775028878020164158352732623873854072586483860262350013915381522855423337695842807421072547890187479712306947651074206737286026524961225936728245692778189453039991058510221829776459360473087541750841315406278327935493884948467802552681752273121766885524551705231121828044925854087571547025122388057620512742166483055816776236758416452215432580176664113804604568541204389114955571853948603056650530847336013891047687314748357373468809493731016111624226712168642409772394938111087589281023551780082560984255976499248589847530327384179507457821067527931927417361800731757492254575667032422837927799271278656519206817942698267679060230156155429454546486856232602091820663452356049408955016546667514616614296852939797680018877580529540370349182998943736803296453619592097012760894753072291821418869690603703282043034932031853820525520657059217671800701384510930420049131049178702493857330184496507547561852555806022930355540323977170088502972298069180795066740064823209399019350413303741986243828070505054359855435733344567600598389456780467690165217931807456579795470766874259928878591140237880962634719649414521714048906894511239123564440633679239726236445361899631291083775728169280175144246446975203956361551343250507256355881356142957714912056621584546601536931203129263119015269642768153984558914021429050845306676401045622612973707377222611113342498119508999713538319382362055881896795774126256043098770329108949268127051515606104227195253009577787663959367746277238685964536434347110904445745289360431464016157439310693474660756429593773761220435932544879266936927532089843113845104456362446630953427837539100252884981166898224184055545685653728977199729766621022644228525822167117259866743720722510751343144017317757847945770516944248389133196267198578651418181062866889581987853172356402952855986225913993353262449120192039366694536679429344293280754497421027564834829584670468057322355422214927100489361486714541044998365572444089425432205010663777520574416936323068281033716323265751493597780537286142358927167103050654766439116978030968081204864144602120321632241383890913237154895147944281312370470886017735383848191376487313357652607545567459958402736296369363036507226659572704784454828812804316622550195459852478586890287743073465401063697029478122331037585865149941994190384290108648211449143574266834097943871414229393867908650776056139791888564180199005597186747853362661189204712802016362509927004537804206205417688583955576921504801325952683995616740290253992936792143878992720066445277435156604795136397748712235632995596285406607649893800419113464826293196691936883976016481405644288755690878131437434893716981969456923074261889734256876952813234760055223456388770363771303186653372101652263894841136617707118911767723726664436092907221191672038297595621641050197609293322996617476540688357675250704894568436151378519154403314053410764291544931974290417292803936047596236245444758964834391509062886192182936510086592793508720634274052015788428888880554264176162985419667805711391603094895600532002135537903773448924638013072261786842244440180712816387230075818721091112710929538641956360212026304590567448867535340378075587959593823834870371220943324227511566812017752661552475412419760849860839974536566239129314937978798752942161293511649123335342276322729524312702942355280410287543074102533298656987638420050792927176144639931012893015617998427467280275890800970342685413510647020729697087119335960153091740317168897340693988114903166565755902557232732131783602426670583714749294059175372116442607219685896319246519146197250960273250647651987950427292266136737513110910193068464812237544167642219094104959231785629155321493310415343129629429625642158546787699121228624252864384021879310281770552666365045714333860368509648565523171837619217651485610120924851761872562992075915686588094773728109425984673925633158546421362447320039449415341229580250554696806704810802542105447522098943557200113489095435791933331268771360789377666988198380008336898115587965416970457390466630760551141998588408663236337358096031686200874437238698035278031116701071456766889885300392398502173019093468540491914220594231951843754002290945797685247406357271803087294872167104451688966934334810666229421463465988380688749272263557531477881157034144429584319139112876914209106320810972183178119252632995059689157545628185683619498495814197585596194829239864106266481399158538661845987542882537536405293470707539764505855408951484063743225661894207388031413777241003157442137891334457445383834408392480668953212117758048148364953698298813570711527116812235324568616186599018211758240596528895951676800386783089502541675003311035243347208890262287894825339236625041112005585427282720671893939549166549414381979256545059350815161043947771158507673046357776171026127461033328289771074265017849039430471262207990547223847613868592659867457657278736591348201566551868294043993898524665455241845885257683723625910399657382841763422938167979209389169558246899311521164155736658662818930364368331505918331690697728306392286555458285088501273081075455284092994825075956236708120853046388607110356160837939394805148903161699992278596081627083280365968654575095236498570463498516652514204167065428244094460108864842916335330249877831081348645288563326279867305927441205675515581160612955593869560488150900394871472627376677586555329878711326635991412432688134995587416188951865837838672841417812483522729455240359741392745262836383093841018996866927081164670209582451100415167404305727526346465552518504536325549478781751231637745246709506013413588338453974719099938834327523305475901486618781259207109222158132435854506660989528813021769504591330704968298565020819679952530478100079291305859844179710267957117626659456625221258898546137094071466487318316992010610085659127561752667695584289207573532791994984610493252700888253004218626616863475175887373530026386112219835968759774123219837901830820555763895519508665708444271818770269868312398549686355193718743039655188908222925005762970299600857065218735070463295159188589330417431974092298258298548246411323479661637704784587801343309151206093880788437778367815891245715122368006897336907266542189608626994801759125734718788463230101079345102766256871049573883486760176827688869350257886212669258177764821459027697843536016593988784750705548573522525811549349399980979325473078451395558482170010853489287777125580539021926364950010968728192159108669230754235499743598235368555424253689358171261377550095832910238912157747258450950179831472939676081134265749261235988642842180353605000067168917812107215934912730618136616285800930372932527931598749758987947238010954720783634436145958861423497157133885504404739977140364730936303460801428071988853456965678596197409511285559506329238916830933060871686706560756984928013846724813150506210835177033623780796150264043854590746159377484008006676288170062755557045875822711855772799386758382557574137809104951181099265828432939845691914326280952935842480209028713850822107994918171188352266603637196495760947130471400033621603843787690796659300962291937602977631440519856939026671392151429381432777155680481857340116168772380074837330370584852405442564499900998319001199106950556226465709817089237024575719407967225651216698587050490236445867954526504623224184522241180757241940796834369344010991501741822655420334207395215413311012576032513903433915889770851095960299832774186891558451447100004423990128966372316527479074820624476855498495295846932727932925964145622203369158623369801312349789401195759463905170221626321952452685523447380681399643393677588512726171550808795579121920643516396812203129577894008309128861553133444505691209492371002426066073358243866818946107009755171496705452015678744048855491492829138624057516723175178989072514921571520080517075269578402834493652718683811927597028691035676639790250586705130839656097555788504719618932727889065474124448574906810510196008217612332429474705431051268281926689820037526165283657441034819302726473913373490214871104874835390403295244689330044983186489277380680134535141347099435478164565921259007971987242553762714656685106822349322684331666571699102681952522100875411254039987755405184132168439268236583824975459884738344088166156009429118795232992220808999899034594590931986590423859121120707151487828809089146410378175262660605224413213583409645681419241237165398180121732050638995847309576825015828067755910247722466631371445713136345014619542993374421599879723826774994768509407622659373992547699357818169944423825738280099821180108392002633881136052799779968887671346807821739370652704384505998628626713651414440700680300817028470512233541215425201543851367168398948965399296182810891189987319044345968494103927348800029120033456360497422564150566930168810425706517268321454505370592032378129667204917384485584381449547169434263309258145618814538959443886323832384314613675043377381753097073261411047492186481991782552189120482155820539805873474467488850594873639610175259572535643988742384022649155578677139437225025462478432286415885099255575230046573587888461134512474269131218728054436914327030344561171159869847309565740452377098634153515054464334444984701927002515280724996166211011986792062872759450278230542947220699517202433947008326905246304480726678170411782915269875516285039848684861418351743772664493663282512306481173224259969858502487964334167192412705853542346738852841633944961331792153867134453748413738643241710098962574914193158820692309414039455201138812384849182876269113115444699794835540625557925129016166597051101014633378540831626368445978923830262918706606930642540569314408570486225823773044895546870631261723008135547962586806640823128069178788130281369570364255937262478926570214292645892658804574680968296792365973826588757992670250660961807414895214035939299547532291285247005756958522737203686830026603179199676557187322006337215220439697992424635234978079023804434677801660982586214605978830332374289764030934757551069766808347034343306796546339097941742628503077625000356270551685363129990128679698147233323650411751877818787458183020483633754940721911412839818900559398611319113139020448614449905303870644916672089813670040965911886759437914653209635825995490874617411545099828649134069212713509988206712293692434893012462297777265331361233229579695440901355054491715829208635255722350102209253388938378142061116680473378178847435525677887707509015119072999718530628299775217180872070254816991008417810296179407981372064881469453810031787914750294741285737139818185826956753905070684678206620659816111401940426694780415262148080026809382982054785728840960679328215447078332025992965502285716435715519661198265427046249047105549433784019915386525249990328838689137187590468404356697084099550461593776784662461308917612278817701025261085544545653060122309713278405414282751871021899944355521315352077908893002224550516331426826135780276415861201590770442274673679775721859054046332411667987324896919518224271606514321587921768308006661461032694828271147640540122569992114683423000892337750135943317407699525419521930155067774329221170970189587704625015534238882745037076865090550019883132625858033293481578352263239109754801265033750437387072781719443895392350287006680365838293492192021290376559436600554666806597296412525832745541326536433828421838060738846045683135665604860637166728602637751684727117937792703025967712495240490951905293590298266247526917514410081310219826620080960605332719855672580019788441982592950355884754977198188502707059505656336880915608427635829876748285575425307878373013557393109366978367586794015032099077894694907427875377874583897245396901116517442082352121934441045985948162362196708392215740197322829498805409410624809732953892163135190074421122504201686988113128634137257564359243347128722530693833780083595142112388876256451351207978206916500077706618876583872261030147382031297652517404558978915293129148536642201721491183885919005941572182489256343136119571414878635275851787079712906374235731733727222525898178045504234213181857366231425399553979958611246073790756159130072334592923423610514422918550103176366251570002767853633902509905165045735060974843438726514397643406109395017436838491027530687324093686693751950371579916942843584357157618211046590888093494564365670112038698440135118132326214474524941130883071393676588905233226193010495082940428761435087005087749340112293052043346906930080251789552893350817612386512804226771733180255666453317464413816409021064544027630005999985115602804302063295182760946033587753731118158637266544301452079702788248671973583790885211678791277287656425634203965247449440812873030626329751937697258213167024128509461038503534648538949487366431275790722769365608142643270530817131041392562454346720242681736620661287521475463569445076839036373678974338519405683013834175450722752751349280546220715070711721950072951144405700501139343757891972070376862813308585174996682920514019479285265704518319640352914170754346045059899697186399100696437955114265380588321792780814541561778996222539837169315346592282512517182650708470223178917222868494755682479057113666231395231185277834501012345528159619305905569657476036422642791406954433034180945994284902719669647006880030835893151717254918075571397457124838755722054724314223970154720331818442769360727856685462120525694909102856723679548917382920139863608620697321732697813703915218657616457462225097181659849653471508121148048740863628992033800193064470961180892482773207419909982384023094940537347399174267155266649000934026173670411834252337357641271082314113158018286524148721903383909339464214749755222223565176157382844717575312932342144713914101930763684500947228791450475349374504404503153905247491120271823236309012599990937322044360779145371424801806720819721145700173041214038433051486091295498678758329858364888575020792328417939208468262038081781118489592505942764006134942333559376929592626384636609849094057387588962650049831477494304200383933590573137007176533425735539903425572057794194169037583275360606480171616236982986392480765125586932574280259086399572438659566470805169948263406064624008546556335376699873075772555591458777245716271641671216816094652994720275232293677290622536988347662455964110862129777119496967450458713120659700630089583979720954172106540292347400143381972771461224075594191767888173009653206201575967475426357906204699366259213643536198470294297184835919992622132772255064125749024184246478491216172915535123226566485923225860390496994802071165265156047619084781836419142198828215286976230497698675847552563501543080602699505268789138120776792205892536886217357382247972671055594361864329015287654698133440339491093939067196501217570902609006744476894989528342879814586826492798207268480646262770973756984264750898765857498549953010321587411140631503274600731768151609486700643086460532948908176876366020067978802409139803360414907808137269808032163582519970492476133993585083807770295854656776793913861186583849034212664908526575675633951566751879353484531339779895220918420766720819375063992943971282164062463965354727990497295263511140523766778448493681769213434506073776076719339423273241470593357573172337793390357737426832996121312854347386809208743865613679365916262056570201788578722457045279420834234054551896690123802137465734513161104334435701331045109537030432440291155909816791216310854347777198021544322985849807581882989027300205089700149408731244759527530156539246679152251178186600105771258440138642142008935722735053550936686311413155029287562591212017532029961228450388984153627618052291159249132166172709361564353434103528348818202568458512327843222822350694526722887671552593531471951132799380189156369860318732681001505733659604517116527533819638201001946777134615855242267611598004180475871421257538448188578972978501887972365878135280747115071597514857855610294053358940645614654071454811123490352929056991252705928160740385690775957558910601729626367360006277018536084602333028308933557685557870735744960853873832577229926198836370148462156451297365465856619517613613152349299101839858679771100658228806588641723262996526994853204876640782613709692630128716151642292749736867077857819722362150243847270036152343746090628070139803947664582116353191737502262175094701365637469295220668328854493926886542106537764948383834418171289653275060740428519098782078766023185825419038061938595853173796451007082198384087393752169908845521860398047533207709802815109097934870868555848672860312515375266480722795100836585378560693890363933296689422339406417830802679077597995823731219762051787871497837072179685626656427054982651724931181917816420196125645996045087275857053826334347162252579329458556323926400745569880836530132004639584878066485080720294450712772854927098894770298017818218573745664065227654554534744140242838950941997202700751965275715739080440448113982339785433366869343288767624199603373691936286443678571444195869790600344240890156674093255256224400955888244073143236457853422727092282074791935675815156965249212003524363359261670048280622592729896001547265643448138507330420275081251030995771889040832879280005654231394375310315608468761447462804254131049981181622098855673046983707855141933274465098768188246070708006711578764920182975172685599829891338441415119691093139216903487966585294661528634232682861427457354768944753116399179426601655433075142798196049756641430176158143863553956116492224983778432499670347576518770391176933983855622846998907257261362980630514063426671823431016076370895420441009065693390795770266629520274009308459053167315159660744103613550295152594497571965392570819442249537169981874899917424134414544791089842656087661125150143006520511788947928699558993531655592530533054605920300455536694296471350626909631930970176001861335577114623058179117457262984264118834011203225240080532745897415763143935539930407935826558001651054729523001549592174976988450800138939036681442708820404429201095520328647375426697676598952226361157487408984048660791368764487517568305541096613208943015430168144236913137720064475725837928716361406963095060936335251065424445956575642923185378848254892653814713797896068099266460971330024560347796973788443202911350954061795032464349780518508306680518797608244796846215738509196039514429211194074827189195548181123308378646158882264146901189038984262620342037458028025161537207605567064958622644358952179661778938054945184698208460981901141908161673713536742258954455435545442079169851308417479867644342699142706088901439941703998049948495823907537568796564320228605602237108318791767336417793329150464646487376924596378342097227176239330287670947108406641410641402230066163987480912396567889625203721110616049470457847397116754579653644270088977443670008975380009247460795167077038110221214113782819488937778872440027055125152648607935487863433045385974161399947685975115990543323455242630249858559262609985761793724156207509681732190313660095316723861881811849273095313952040208867580995552940607215756299693158572902607652357017318053257505890612009305107786954939098347747945404650485110566318279625390082593179651836927842483560810075000851133598886447091349327822192022403344839931007323294985467086753040842693453008925179026338525807222886940265709075774043183608526489705499385023308769137898983762146135520181786313263382051811824148413871740847495433661641056634660963855606879949538102775856775807207287208260325251810000485461945632955342871992965499592277765732059207601645997347502157979169652321330444206984307319999908249714812946739229613304101900831290338508765146235569243700988935424244421195327594541043483222530679301108002700142775874116189975225534554191487585120074777371118668243344516617795970879399301912558860640796655854399964354869178077953223334987959480296068141892897518847231209377061169488776962797347180629542969782809443317727068974477331948442946002658092571567385088749575841825417109791856618753168922786682910432059825433466043743504470838646101630380268633646265857787935244082928420214481146543087146285758288965440661222969485140753464010547330982983051224983707238279805354141346785659055169158089762274299470040493791827591439675713946358815057586521378007652367602329703435279663056283999116997497773369384457944917004078241927013550940880545426193526150412706061267627712954148127037228669423562394014449305007641932555536446227494382451066001613462910732814313659477036168619529244445840816226166745378186996186155870879648633881524471985165403958660483009794020257153272309616685935325963334242842613583228653641122664361588904710064868709367742902285935818865185513589704300690304780438688689167540793866311511005555849198277751843929433705526531343152901314307235322479925507712652988165051792720783626171711992745861438033402932743996338145114715892632118456752102306026862970352976419862330870129087313738348669390746491782561976159779532484770321476119211596109849148225828203740042645483482165136470851774628989091045315220576815700907759421791180316045950037467970424082671411263952039208082525599215990061995089436876333521809065833377854469412895215084140423134688535851451408729989037948684734442574041710134525226543744468160858422450139405575193170200858219481649071043767621253113529137930197981165878687264206237755867643404352180422982707276575707067838357506883567580327918098961774934325047815955965232588915570043296768907768362031707037495645147879454377225269897952255346597088618467259819719423756463871552325115792995923568873316326503103092854114443978206678389547436713818868694086065665833482631711935755891602589837321238965456777227625339308619693348350576218189324464887871591604792238778031815870278915992251111427865076405835254178688480852207255836293232072288217191747844541631326359097133739159616995848176355044035296461873177876913643416510782593642955549450577930634787301661927742415156611424857879896091612729516284079167903533294718349807181557939484566479101175509662015712281955787154183329849927244284906207823824673822933234883997128757562201690438376239773887816967552318335856285663662142241199331528823402268223990119218770356161812702342129197832230974653728695984903852163371169850607404348056435514051797905768370933303864098032287255424887685464635200763090536110199090213322969192210520528162081070341456350041096502633216147547365401175186983543322453525867221046740553124897417822647500944937095376617780227095785742161818971310909377665041944882957796804111541686597106005074560558922899104882688373165484430293462120482705373775784287313574501004886053732273091739497543213559694363457696710969990218882086738354898608888995307190885963127077471232312590959597826433764928749978783338529288404359953762872110091561548148099638949007209007091501810418992200637114267541226916759959948841231834719636922664790715995474591883863498482796038636841345740059378446495299104793413823191276011561870820332501396204964035417861724133238391692272449307670636502780454806153126303384050961579437410547696106602826871145369483058019288180119198271912628964111937190766618059582216861862091756346182644313970874756059974770252980901888894450311266035563505876536667947894692078868548249845786596306836013303252356458487204185340700935728128936309982977288966317625438282013376191550408572252281063636016531758111425741731236052615024893234008602943642300528874470732071851400866999807941438777657491823300951940472937966664115098095123323079391899252382653608276264700048297406443672155991533056766112682107329395410982498301733265206405578724741439385756821999772483470511582151914912086509436457734755105979490296117678757304622290476644856673193539390250193325955047045432258124752483945639382666013265831960181085257343971875146090666956710583547988299016234290271646150736726077237965929084177458889145190996617389624746441204322847078137137178091018273417962428029304103364267059616929604929632208878965394470207411108174942429682349203711165722624579379466297598952085058355108419318396406888863830185908380437653677438143524331316421767374214614374770909293946765467402854756696886980205131497991595328339157644853877671071645423890247019614300593757580186863636039825870467030352542689182469486275665325577947753154805112788363586840745735831264430652693910507890930314273310059108936888462687206511590824983828618679864368187736982935836805351766187330162122700368360116332164598780817338313782035799077064125408024701423085058022732477415326544452620823770484026291188226221193968706059739191619163794364474993767675348762429107157478961266794065262057668163479966052038066238589102262747403586419456247816684099866559126734988583252639491231553714266121305754657023358821109509409963834484951554090917722088421238991393062839685457805179206494987716120399346952326786660201891803876965559148711780585447857744198003949363067668638437690041076315902429109935702998869319174873065289952697188565670065111555014406668855465727081978585055527798803998288794249597328229637446818723199533373297153793538121379808943371415174730973546562226274572828289677130592328553944987939417593640685764887068857901752685528251455182550033684094756464258925591147746397560130983276289238802308877570876556967652909299208297231012319477509152442125549349220769009191255438261883456858998681111406215323378920065932035803928315089479493079768092370043267229375292299744842847220113457366994052120225762076443754380719588642295520979599626562962150212684213315589956625947080724275470486074039255613949472012911758629156001394139213027258075526330764218515393524253707076304878624023674232726296085097768368597341233374681079510406749522024183374657047543635732480241721476007199179245594546932968593091809964209520200245616615558213664155279570377000742457380236405233723507197379846980591506648638914675410670546275749773031688473904807996747736529035283736237195122788430683777941992933190681169501455088684578420332279970914619575620434551668365885904443948804853701243872964143373135923561868785970511820732481225687532621313176925449338130976128160754560618990077500771160983876834303809311400106139507155894431437376622853315582055734779334178404538767640062457091022016019416588945994003599019379860696545971557320226736782291670109899511554089959236683795212203345749891486934197524457359060277586686324303266175414660791343550849886002329354748693723481351411249236282457499641003270183840599759592934315005726149320548516807342706638674982616633970136602062579114983972865941865303314556455660476961811072833667003739474205714973251144947780373802067500508402827105614897728727504520394610323745433589354935006317593811793445829748213674772865027311232243119344714859654151507215638605651313239346832579527602770704108418787153311199585687732311956227721554627113883114222590271502010654297360236222212419833082915349680559287797119206458878962907667893347241836994511480752456486189893490176466351528877806851383685729248921800686930538960531186201725636582041135912782289181547062359465596112030951093423927366131507593934656774549069041395027324002392999020849957133171412228375243432238862781355714494247816219935544537187214628397070430885797222157625266228626374020695865217187456390339719996503422505381704057031094478486831394240925737556435923002011486523664277120071423181412775011360914315489521403359042670427006460107966039548688453066052942720789763187003197625290074562544674179021941928306050853793318989048413531029953011615225894593694752421925794708996075585614512775453646671894976100166532345406571686239387671479524679713139289102723605185320543276347764510791270050306087857313620332694171175965122091541209310505644444650704497171549397685315971015812547910979251347549954327811750027216674664219841380141908712939477420128541408769782977692263731541355890164053188502947746436081243676465978000591722630173000869390649512029847205788335922978856665536234157036641181177529246789605636318610304668377922595535115511727022921260476338097587167400580604197296705711240746657117816643727443642514136275876923457413595961639047927227576985647018438473871826772225037639884421659897531072121323095334924527059501246161420983458995802395778780769836523064789591140534987264784969054396150990849890622179910147525534548966596444652134487565537559080002756701550350214820247394985670467767502735857987672851181662170063620092889860211851152068017072092201702826216144451494741967917910719636456756393710213630912206788255124067421525286207225503174332276516500330777252585691972861838584202856608642926962199559170582911174153933896081694305591175252144456576341407811042864146941789302980602194571302122849245665217226086494614034286596766625579167858776034508312176954083477772276925313225823580996689027287456617418624872453908300015832536688162847065807847679225735099354989335573889455438317658437500003676130671287654410183715647144741570630259459644932762040708329511962416935057281338355980728562987159643562833687022145084330633099372528281188211978476983346986528347611664440579389026531981794271006310656114055877026794613145605327578335466615225492161878968766788786307369824206029814037522429919950778915080140573846469723926211195146182108250321389975909888914236705618081732569426033722356038513845342540301158609558901860357721514155252361193768346634004601989030327769857311692411859997610987350513158979881616214003354663933432556612605834132320384332562096935944642683053212298420483430991066678583110882260783325131390389131075164797593776198648487907921703683612378246022211531885477842502621376448623432482014094719001665055957350861057258688508102616157283684465349165251269403793218178416247136422366937856624561115361051329276133425542059167375963604560372516412276086857390926320216468482948011881125545113784095838136115322733323183328568561191466797542609501032707317250173174598107184143803084335473257783463295850870398905053154870031009840841991742296546368519419604882674384488814523682102038184196237947819508004373805050826845358313467371603288552019405574081488081863775006673655367284525271374747909269602265603958000154797709661746674777710987686476388362297333039136478492197986414001896987854616522907104939090008371940529159164939988665710453283816636202356349762505999898894211978042245163946986505927630977685317956475141090380008681954485618612084417040481744116355249008056743040861401897732992408994784889290631282998890470792429645668347154717280100206745798368409484194793576204100781171325028070929366618987964226220970752059026121157892104812097891308965770817016858899282689974180358049731217062673386169999306140148435873744579554282550932570461905412253164759296079769026832758778978065324651071313409803157369839682035008800144127853509170280002293012085601193627205836723854039452537131575812010539902967605058186758808215692866859660787700483126175399766497448368046541874726719765573095711342324524568617103595584187078654649964069443179745357609601963611821519222587427810784863192620126867281080212114152652873921329439349399843373171758024305817042546206679944487241660889935509467888044555899782483326121583612757012524320851290857254499548403354689883173465074548305403513065491839915953372892437079585499364437725572551278870627318064452386316031070220317351533248097417523684599888544167880473055962900161216577407682339803354079183025246735568741542030803823421392081336586850150285795192151822967602359648132139517922610424459275870812126877104484937168319433819759898628873826433275279892122948737662011084767968461420830714752640401136615795152367354617248376391335863969325356793181472537248840966406535757589194840009889164067231975418752435142681263233461823868637298765315101837765975633293021552278113965977014426355197037191190536327136613311104735786205121361614399455098938800673188166498069133836782344228774550352000266190999357425861470695286154479169428087271412739630142584113465642258063378009221640052258764444647004810751283639065648212132969947361530944082509102379758585344895286755602662729516058079281255276249717951308743698092122022437206932138604524434645130517386289676023974967962452955586311237273526076330829521401765233791393947713618763487326903424594833167393205738501443420519347466498493608062448080486921782811120460042383810800631511853259421854305805534852350942148394061469971989369579417099731788863148380554785803822925496838390730348207891643643990503769137614049476627574041233312190266923836684285339347361237847343921867248076532354802209501453068940981812880433844431835682349995770106931019890084110008196438948424609927295303680058159611141496288343601389295599870760741434386960680520462062087068443512881944672294602763319135424450515267746607947774701435584445918942248919369294045412406983586108252700815111298902541064129190089839867983806178158607249796580406569201431724405601335881009572377162246248663046468191590769132056297241649459724691425358116944887181038267316110319336395070062805893992050498310771096382089848435751691010692086316693176155748441996016984318541115558347272843621895342834543546982384995055777127756868530960002115563795931363047606738592723203767882525222284149835632394814920658346448733311214373009281923477649010973252455747764539840025428007001701557409634789833071027869495750782393443185564494698841298775654204368913891150830697960721381111451652281095113330716879299342225717282893654766812762221092816618477606296863980679752221587544907450611954529676186361908959349353726953541989801891059187487960080923399814678951553060418212582495562311900721675040262572546605208003927569426919222935553640476822755887081426428755595120149677004069661852999004688231733817728370280980371526822611144478462553562192168260109974095206923875664338277759704705355174369152699175877322518780638756136311796264743112172897230060099100081191059941769321283599115778475283517214084471510320229928188668088473179800891038951296916695642188183690813238889626434165838411506399814863366951974884441952040657359216399675204361767514124450507541003510225262665924089813096992500770106232526755941238519976530420238751277334126505624972012636567002897125109999625767470777661686638614393498603878335880050603069614490096089937449365626828408259073984009623970498477953338785881725735055297223328839971339936591972791280204207908162439977538678131263981930195066714119662095100089155774600743098605849897916572759445825805417822763532961711145545516661430817385684599334028618480838435580674722860384114032042919399711337305214892572048252005200615876308750782945090309884308730729791999030362313862910141566682962652496347533431002575437338778231118213354057605465724281804958797448517249143336777882250077881931041093603420353944682653313395585039656386318424604168981855665232560671217909363747329651326091162513021011487345204021011574600635490429870167726603091631964267570771808330097653272170013106540086258053648668172005229274027963855648891931384706246871950793086669221585897533374810991254679822790424699835875582809930125085227981163929950276348239082572014212877894828406812695361980351190288995772180571893055319727255145472393255599844059405171456157403239771574034851090098536467163435591716452046328798441787488047970469861831834426253724639563579402719919278342343542181422422218975655071780964527604058789006257371128163058830984458842708436589309460563016882135749740971857818321538383322296401497315370372037092013374370468966292439163893402132370705748503698945955220171633988980141881352858281321051431957878652632911874315864645551227218782554808721665413385548386030688134302159739021582394798730859064456355333277280332862544657814970084086604285861426317238908426692202331015643064679225646271205086740000030645403708874333027671465713982628395632539893728876161136277050159013069256115382441272066103127453106936944468735948894940146886065080171767117099205315835967578895843898429471274204539289880039044083179391443646476115779272793267068390420155843070220295420908867962264679919028782026403112229476791367726005411933117713124929224356150242955397026210718793659450389753242916290099216317573561118202777697084664401423705477713358699704647981198223300288941447737177446461722223419544078434214922593265355891355839640492713826819101847009530003227661218168523937909735971349741593362963066120057156478076849323314367708987836430358011958019319038973268202751161004032758483326558632155588226566913160056610932551026252561909096175034949373348571354605825863734694864482069138886208679405841662583940979178550787832573009560661248405808393827353533359081748059965577400041549638224491311320808690366294093684825831633991023088746060574509184896231055180412338798908422824631393686707820766199002321673445575837711849435219512186639337411401525625569688521279339685875788430249665461750018951658667565407797157753503749313318247529585275678083814401810083155273870161403386076921085347052063177514925791895173547690466159848320468521231288601391220905612378706898302478748845240400962011960343891058149537061010214400932076099922195980881787739096095220474715401589091689646387855665048726826367856471466357797296226942868608661524392903439080139826437703671320545604389860107783730880035432753095597497859277454980790824985959111998677920762864323394214084149605818635944397160929390601046679929389452554182625632899501694966324070675578980527044726492823228343219318670892202129831646527199296309209687742518423099679585743136903357147225881108679092031706100987228562021740271205327860677330798741652603707706963079861284081734252876564001146493257811077049723007564448773943146908560393671300485123709386646605306009166980786886143144559324473816038255236200769257672454713965486218393781883758548585959213112622569007402245797424655574545985273993060249495759725359072392933687274866186983345619917507168134201477261061697283393438895261320781668825765467082164827685803289514132734059666688035633830937951408677377009062347116008546105021343338724432914694597022394366134135499157380428515651635529585583653895679839270177204912434647691214706635034649494402122537566298654973489238603492334768051301093277141333005064326581005898716034741095505807824253251187422695715368120941583062071531815003731519118658305260919758150100555038168852727878296684160197464741352265975802370463051650960245406207936127117666767545827504205519712050023861055735058691875033625229660853718654583955853887464253335680170524249882298162414659928816472130795513815332405752879223817449287457336104239546943718327726380537894868358208020561608696917830300195017355329438672115975046877593722937682849950602914746303992259251775384704125219337121092011583585866267584290763670146571098178795282411805201085465194564686782920171236704321530697701438912612037682316937492421070033845952784598911771278805658748831503565333394678343199363918681267296560257074822474426903058944528489900327397598803464951756542370960017730176552466446384121219255145046675554561833339979252831216619843319413943040814464798478216945495996688616424172711772684955184239449425655489753457985782173248679307763073951748705090419919440509844577900468901083370844660257619888946904452635617155214011944876019671092269354259031781187941644960769436215053533546517836621482035878325353147940634903547376782060254503224769834421133088735272071995625721321838188433901459170147487236675581916343114841278265814854311102796641338520700782577427549755224497824010168975559790228973656623431910844160714951719093340582734864764283405212952983123706529655821522543137606832316475353220756042226001290944258819228033502056837556582876631806463531392021905946904100877767911926290756460268023171620895623629896282997366995217393524041792493716607806490069402713159840371199276608349496494026986134491692124333016992719785376961887155648620579313526222786506422210590960805466165678612902178998033197091471240509350057332239504666053769361603114186648813403689996748064145280415324526295418671599356377217685062303526917432217735156695380079298544031204280419010616425856360933871674229138383681270086298112881084514415976139005881581457376019653463824268300512399638040731473138111339804011612407919737013890099932399890959888717142005050346420116101562204907104765202295792933400759119001078973445374224929202463255302773845468165066672417700566087702814582670752207242598244082422821924340632650417320611054164930626679669150148425044566424088388349590862885617334902290024547888442248869596550717626264222679431411337408096504176609671226175159124388494813663234683158193255789583992165619186640866263091869250088805181842110650363495625758758052790720411168359181216774005087119320374255562651601324277471072866420781381706640052676066317834440273107917123001729321248287959588548496835328806076015201052610509525410193150135532664081368730543163577712327690213164192544201178110469281370995105014543109813603907463162467874507334477355359129931386232572409413913944229256973215897157849145163040450162471273594706538952927999773351535566486144808967084685360038233035560248506974071954059042087860169256322717951428203783047517297201878655115585206790952143939076754634380827289449565617876350153272950104691915597922464404445586848821873637467781252519946571675562120683228355532430693277174053078035176379651313225772406992192488489042508909614434933119831151103917089907539374170729517548566930570562777580587629526881067591949906516864134858510570994636105967683520918632100553018359870837258090232256168183005232513373143089622483419719147798675786209114191156342304488002029725523039957033903096968179506215373758898190067716043942739095640543643996284878133603194141334236064691738521813814582199783602038232027398169878522392048440276791302381614490195843561474993849326057588612650659100407480913352404753244645277271935966536100178827401707967665246920023324469852904929156661527986587154499990876001208746623340672105540557891419076638050878124528472969194390574702082708709686369589679585615855273125962195217813759672072047425415364819413361090232601522793376726369685854207037926854147759669452556823045620486800595968653127088867224364480029087456120187208240583128046461670981375041879713967864397051110836546666715991343795009269650698616760765707065217552218468532697982309795198227526210566595547908837456816864874519524661231365707318517496661957396450886896852048250640791824011071671586427290874959066036185755400533363850521578442443097476239260092608667383340154646770501434875743035135687639160939900467998024518408871281572519335915537494936646253845865869688550289368012106572897477641787679357349982280775705099184981963666410610190875360195396880696815064818269718515387458451479430677563830918367877050288147593904448625077840969988065918127199945086482765451121246308765739450195633259096885982488199892446523703881333910772458263302819269144626216819889946032742238345813019877210535914789138757608650412154114370720822891460888218960937075900736972153917025237665815406773156991152180929767886956528173199829277905677636326215144953294074227967724028166162822748205943230506083701926272224450561862134255805978897047536539546877791853661184655669124650670344915394634802111002732968001420128898488369440477363353412961711537608027793291801278224498628476238721065398927966201847352983860177423320703669320726854061562553852957918184145002858199837275084695602899810675033014665693442548241075742099797813416819245141385773927947857198017873375961393782749126489837577893942241882142894105517577883225830922323055231067035915209386984078509248297668049015079139300076369833934077988556179120015622816291149374862685376946361196942472351162945235605428724689872698278128826082153622639424204077651962055042640683259280567030019581024562881266851940933693829292083006667782514315061541302832720054244489506949139824904334136553605284172205809750559854102699133313300426105038774010406456489832592921624326288175606743239615069881053486587864027457084501300087185164815777972219765184435674689049708456087172698656840468519174539938844150555290721796285891614257071300998635472198671760131915812385863800258954814396786915302557688868745805034158677350419501019386808959944807456339185523142738208707132957252618026335096232812628397189534984189269939916448966076349582393882851769732518335684562021020151863856340674351092165462154893489386026762378465135561322485476882210036186189390676892430809551381675336311437301153167455788498764592270074524074276243136613706767380753894950639863075935666398096623854932603422961748260069039133295637023940491512022579182622694080861287838468684592093470334529229995855984108770709707939661724316467720813170593207531400046464413688205088927883774779512423230594875352642787199136362269363598906282341674896266271614076926206821693021568366828165531223994882802002049977941593398104358196717839774476892741123654702220934190286298409119393817416954271119591092670174013898876652601234025945750839839202344185405175117028336877400284876842417009594536796139930521256128918164741421273336641760472946220934585144587570333499134686020126037102709922139053942022797327223578509879684119956257775264988722402864530751265864404983356099931168659070708588742436746244429285293625826950080119568467451862680213738791218472825506142602796626972629467771504445474292386212610792529860441709410397497596582653917889996648491881151606396635880463671706641620984222017908416365339180136315108971508093171188802097670913857459354368484654840415405746738969591617523690619354820815058660922003978595748450318778635137336560505781110953434310882030978855472128616027029039817105398933084703714327184210378119940682116588075243639229645780466072332566102289206233301549179461229860727345926117398014884208796404088956214024338076964390517466705223054167590733759026479861071564021829735639333684894872579739833791860866792709409339858556953419184099438149598799834591521153839742801912947879936088961615607213601149461243928242025394058184500717225564708364199954574702712615152076115854828053401605011263555662204334354012138588376180736041673948165217285495892970463685951879296050079146518283589529866794204635369813359584964151562219583568271693823908985656326772121692162242270201395716285802575514825288692811564088391050723895995847916287357587847165840730810097631944736340629158493062370530774881301543550497102506254171589701391182260229209566946411719990907667201612287974304492278212999956377146605736237387995700872769289075482567178128166500018394635681813166695036086852538633419649110633109196058643547291908335630197342557635676681260090064371728292145900528046219204969145778339706842006326252565171045894665035185951061131807159723765208825951744118306313542977486723481589796498509314872881820157580884196383522349336956576276104517878509069778521035153677657848871797416491375271332523948892260865171994295061968799842660917551719885966598533687311817267280585463637853387420679321519474710207560286173673649878220744832233794953282408551500125721307240169009599647918895938458534920560971266324403496885335545136661813313111885603777672579460175250531260707458386193541139837083249331308985533840744070744660883290804157717305513281291438659627163535823992349470147577585516805209519546946830610060908835258962864475000434364407095317016002238957708549396800081924256262375708650726258759198134584046492187378928797871202880522618759239002845256281871592689539953605954431814679569256516486293449621697245368433904629532013257680843008660314292214560567629746521308024872510577095415068503959195424498817707805132396776196652246463939919190578883016541087740887740660765961226578477061299637256137163854469190170497971048952880538576858773392146090850818238553151471035042300404938185754567308121113379063887166999481945008797641203269179778256641187975971081979725852853935845093919415904938593293401825105965103948547087212143123122234372772527810455659189039279597551944796473992562947759136088347226729112295863730316492653024615780816916207499540733166756603501320770418814352963794917375978472882503943701336474394764572102897713108119154637855917306630972756955581701130101804479923610743580753013658249916039248077086649643473939467457243049354646565402595425190833618262276534388601788069466496870081504664650452644965162039152722001053596984224643387594695327117630114954005511583382516137861870138913746934271594346887416654965636058436267601032849674002780441139923551334069211889964877092011489014828232946622204843754647655455093636544086622128770912546673076635390771805011475625351229439671678465598869354579246058531490580527142532227515329826626986541355818594934140573679310532924289776507204039568790901026190908228044097839779462611500531475031567527444515260191106721831714443919849051191072529483291993075864553877954753286414747260537719748851704219750792404567636334170865344918574109804750523547750673260638301023113729212310885188140510763698920658430526324227992910365570686295659439757703961364156379953883582147057777800980662476418043366848734916073347599366161432481635173785432608645642181035707500646822463778888005848747142649622442144573606918702212741330027304299256844871496588167762613212154437210772695249785838571894077563444890995039730564821448561759972715610244137241215764149297116170492525661236551770058696202624661133483196380505274922788374577392211902084017523332143707309961691828212386067782615588545895208279937732968905899169209420630330675732858171319703655374585420205294963151179565899515378593605512701613905298805525624697351268637459469894911987911969688539282426286598428376496085916904384794291414138884776423175196102370786114514063155760898103242017450399942647438608495161073535701515132208711004354002693987651124285413171336083750367202046344828864887058852449244851518686741683612251491902365316760947535307009583711237036059856162484817392895697690279481922221743392803110250545753600705749344456461012534464336499970719862112338197372603395476696971051994674427906102779566117509058993322002991701334200386678712448569716360420074766782753781377934146904621947000004326076351486442122632527568998955197876016541666467135698516517796546753114585593447451791894004384241591362827056265070538499651387217960473157233880384285980849732786480432150307137677030384439163168420297077499962208405203536449569961298160751231033221246730715672608232837527818834087489667841187722661000829239227034427348169686753060716652725990048319999359112691463913801713861951814622968914349604438224040054885680843207271914748617303067492313921800548376201821995177359439144759184861449940507958454549753308152260368985010839009508511465371276378453874241853292606953420046235542534379467240189012259755248559093960937327362719875537650841168557774600075634340358453213503477772599439611583470417015631303795150147861577974903919968769430513857168004103804341823454461650606843512429525735465749379454328142092597528715140862884173154010864098992257730415260412559547163139897105240288603579564122145719160245789394639293437977380196728440445943392481996441652779347370994124196377288157237557650018867492419329293938423608278265856402040461283027070578761026559527617324716098594833677104046725319521239908873829116291943987401896527976417236960221327985829346464787163824960894972953690810288983494212583395169917119042821386139277060504281077886217973786898770000723171979448784915494186781984362035755291222006350405581187009046870671601985729312373582854914970499162480822804413131258666219150620146221917540127168760293135271123511239300037261810367673059440125523566919410020057969170121214672764773218824823758463605227370645515852624340459631665053405785806397313541636134337101937319739019844164682996494090871766392019204138060736624394167502397517397319130019238469310217870275980581097396164600456016195565294135868622290114222380539933896202584457313280124836556045913329367769592833786177812895639800530961665212365144681087852512165376263941949208222030301626116835212602321313994647487579796416709950301543151309028611087661577277387680786587217508306017779584106828897940077678462804729201095977437748934860962392598687913497409888036872925869261039117481346998886001683362154144364895099502979634377276221849138544321493576142372035087741336773842726677116269084406929706973057646137763234282052217989615889625999873301486228923638164533201946889706992750723200600435833348732012445373877979750486643157235029340542670277801556038834272070135464248710760464460470227905783749673961418315582142645975085954451452046675771112270182355669851202533599637221244671365542925752885995165091251630831026641920193078969112297640178891666963817511380456699881527046038896516156629170292020443303536826502375046664791847988672694375603753240919877173395404409881673083066786603714644175783675207526528889182670354084552332724738336938475529537845363991959508538799411859692737503026362722798855793299472418879240383240992985572492671727288960062192499119649606760935208986099042808179319166141908102091714108860882670822789052491511641488008706167344839802580338479932949701516845469612158000046959680073464869897853114005917400397876265526873642596423811425313385968118157889265483438607645084741842009024472677878091500083665995459551971727924703935258218787321451821457249986319881229879249185089525134802775265465003150522510221598728974278873749576635301195046380214943526953791277195846263187045152440465790792096282724790578777073857107036766402675933719351383507464125990187246759581051625678284106434467448791345940070865588265658198678391735307511052306825991342705867566702954734828207816073618908457333432423730662869231401974170748821587303532698590054525876960582761184218519757850377311150409639777817108279209065187643228556652714415593542964804293269659010371969730727244984007363634657492765122270009474775157381544530092015931443335078578711600276756201236831108970050690121515807982552676488947421508726722541555303674517317499703129602148264429543483971177561032225684762097093167500604089558648421217018570808883681686238596070151083252274232815396695286106971543398421552490893765072529550044964658524320008035753265883591324942892895390802649234513536460730151023812102004572029484165785339844838953368171744071937500771506498869738947565910707153934002273738579283218111757075208080424604789496464610756351493542445098702306737880322131970067568065910587761175888763477926320485392781565057240134004588066157435913386154261561123814352131368189668076314509275186962775781467343272611042597686006559843459748393125340988296495301833673143238685817801300567220110457543704368103733549958080936098219103818935444976842332349966860479733287701141426163469409773585469379953619159037176471864005536280359153200482769651970600152355826907628654884953308823795492066401853917509455151611762824228151162069349340646547798204334774460258331386072578821157178408225807931418381615714780924098436353204111037654712889549486578239125070190311132916919534351218663435020853815051324474192516830134529688247895852805181496788066993357883214193927631950640651076077027706442873170846562103651702867023581960838125096996322451238905464395040601563246741510906458832153246825112673242195413318247431481299325297251325773424960931648586075359074834944476578830202760872885901812323127027836441918900282780921083562466046757070697745063718657648987150124324420666317274198751806889083850158929665556300402035884287514661762518709042853317636095293025115584713530385680223191328398020135405079903956410650411374178882800410159555485160440964110261257501097684016251739208152389632766741879784062599101746051603147713346064419082616342061976048995997910910240567632265519914751490210660460298006870775994897393553894404380081615810092712736990184838750035118507354423039029143111745520711433282025247669489276551187684522617736962893000442180201209846058138633598884268509151259702587585500667033654798672622475979745566279860085976168989205929767301344396734811608918226768893622464831308169197038918202965700180271101383072116098308333138835229320374705020498356559436783147742825823814414352611838570052995395429935715102293987374796753448196713689392788273534948551533572612360607464571997057085347924108211257982330477703380134731682581898936782089919245306685817195427282289733664522324701129715963655612147456640694839407221958253800591291848207640686321830498674763440414423722882582024781313064705177347103801286796792688077435404109902990939226657935222272115466168002134025658823982166125757875299510600894244701973204890652542783499970329112020125563477866511749866597350179893483928262067304567554891436258617163283134400320195496546737647075402911657498975761904286030876727333954946177494955224741560275986553531088852812977246057118748905520161614178596191683201512534386986076855533885790217534238154685917103422669815601292505768239186760171924391245075907158123455834502583358419388767375098650565037861170169039301076282421638092808179559881324317590628987533214445504539352778247487442177098174802089098582781095810641676536069667887095167686649293863674289087618831413763911379220684003781776427505575241219347450518410930911889642801084934466809268631060708357649238713554581419917918056322512915985356757637780671345204013120715887190059373436829222671677748013669749355747531428129246311136100527577487113244104412489033672853397837785004938196433787327362618727207232705605764282594135678299946334197026780905774128673647384168433459312813659373030746884351968373683508224986785939854525659972256103217316597765082487730178062307906268258655312204963220265914118179761294301999204297532719840123691705282986414295075033254581760491018617230065909166763996393062931006479814366848820542476372637202878861289112823815192618441415497659705966835495733106679425189776737690872658198984933644529481920614547799927012907443817947414158103617662680357248876762315723327812791887567057996262054233051343901778943650911829380567897111163068752458594506781564143668171163003883403781988763713509757177971531543827148182138317237023562273962945959974001764602263610547610206259463418522468297232164373865514209118666208156683236300618684612707458906744400565207436461832058401205003889345512964705101981622443852594819928687547534851058851172330050071131357411978889193974813600540017284430238032144780354405259626769793849387361120309048176206380669999141759937095012697884970214885630035311867530833698571048901701259690783818080807277081207812339400188389922733285104078437553722268226136743747006396208062918749642705951494297275990319469879270540778898691965925867583612924442328588229395844513079483767242015561286619514039441646155007019501923180092106349082813064899845559007655725194775614856359262621555929331585254840823593820376172751380466697556262294550775813589670770118917004980700274627014767550866342242436301193747768038793162011135805885604761375084358341436845348685453280280688225307287408858942788011882531411758781476551219042239319088995231597364700994481774479733613849723873651258762748638485237754665557534176919835479888281498301626218987124773635099207695816153652790385460516400321513936191666570841040051207612630434375663512384501817662206094440105647007624328124828296578305717813647594002611196583650066551130418155214675493655934380358783491029532570169968045961443724464252321696688938611498702180387576348055920105074667251392812926442914966261970668912734055402156780731656509481943782181118605000121324885910710755848043891059019379731953026811018591598460938021890154811005933658392403053559722608718085771568632539992535341443500999974231261961505073588815062675048018872012000840649242307007115387364058864825395970610914861120545740664110956343055114979501774174468349018994620027510537267175763538924849079685052024195513375998672574212390565520278175975910768498364969828901822774960639924809758678672997746278054268237054139415108295635774572535241025823555449732202299848551626990233461424879122839281907817591388166029673345570949868672004717957565895730245649166096135427917405998534453798211125045570478569057624944315295523377197494061353565372452738566011347026098483679850596537860219827688757192118836718150657280341215591494918134034504699726272425484561002379349551761487300784069445473458171466026710059012550064787839363206500514829181451132576507251221232245573532346056300406664591996242288542535901670352339812315271519977536369700266912003227971873627025071132312093137373078814731547001652345066540324739253313921895000598863749457995041533923628587559892188678603392613181144381057562361913491095634036712522736971968733631323670135873944287314983639786383587653976422842678476380677208543282440794383237498767465207655836383557090279673484787929959968704273815792595510047117029253782288869348027274372774713356201871956565745151207135988990542677318725031237642462656610289038718827528092977264499557239339303796226830270245776540161957068583861475588443155031935164995990644590702195186747587100030977740070785191897732906121376635773975867304767610471746617787131947408628539915972213075028847777601921011802167822325122351850077098594085919103459553918488045675106653873279209132418650249845111975595158995908074250344056806541381047866322274013070737777490486702884501178378682516213688428052348383570388314629328041704747844533841220944400891492526108174759586492383105768201212912900258776444388391436711633894862132466366049039225502498873079099432382042943005009636220749892184938114627815223369687264051045789006254332121412749220408522157680781877292737837642966510071443558657511950004972179080209056874370007248653704106549461770855092218387585311792523826289797500375721418491195223625640118347983135711512474285944515650233486133388427428506637856929943914300863580790460518203378745900436074076824757942892162440845042012714385051202547764480689824500168705285088754380160156211617724898081754954183767860878377502279614935689982481727660285365448456632128348095035365177833170247344426495726829101801319654134514343126811107080822211487081236582823467529998091385278357435354647122647512429865154543645198295155580518458080289851244867300906601364336095168449167345395865143356878004045336031991027836760742162036175593536309169369470451174899229306521000558994475684449362768610323216585844960125503881607227281497740261931615307156551161529792904478196763236431183335034482709080088511488849417415364872971672370338875613774919339152019360861868974849097849901379042837902360907827826596734230293772935267593513105386398639565463913013479865429086763715062548113751944629834713229620230026459302751792622797589558518902821396562616297495998636280662130903106199194734150023412702564054981737681493021090593018531838283687403121599391351787196303455688591378875892059335404151199182288779698307360085538778835433435595426877883312697570356763143743444141700511669163305722952560104666269911644333684375987748241857847992480879722173506555022448528600449455079893316984491066894888564234381671670956410932285922929621905339756356340099537510563772280338764553661439796293028462431461683525087061302124737075304955568851112808534253160767314670532379934101928815376189735836954535158342089447469760946221953700148173757560318584623704226733238845897849375644776150027714748620639285960163851140127517036014052510303665072250299475792557481105625016988169470003606621738331171596706251081081200801742796968605478249958464431582337274318028922900636340503902710902402009312154648715924373314831276034976430429290390831742801435999993054805262966692954075465409494571972176009907733086369484353659916860312013065879826674305390179271662855957119925849192427415367058429919104772168030325818767637972294112524566308682602976937283750585273666775667989727156835862692119711634338090861027409521068401070267409240111752221038420302814646947006159752494627588895847662927094203555716551278116201198490892255540528153884121734527414339000472071190668650439207239506564335430126245855782635679348576161048359095735570210602559868527598772454493285861212216270477278001650449635715681852575726867582103410732801020870185926252981895453617751584956311826727680919542234340974385938752096752004547645634163368285658999432013061879700957721611661588846644485518932514375271742718591618145052808253437570475894822533488514875446191323045817253403827654902139665602222394271751351081049909990355981726415973790968593136318366210320732051958761831081689698452269240427575956184993373822442875700148876613126418821510789487949163010851644711848646750396238912266077758008611009575404922611105466409486411387787337204790760942192582060987156514810765561709657334177841225254470042056764981896283152128478038829017504143576059264017097659885090853236474431400097478585055800503729668569967828024504302275673352915593994911892616412571554983003418161849746317937220033520516852519792767514346762938476493544254829803761811677273681104325137306721056361261329483275318350864737318872568878107464266661469052985884940693762544664827027371332576901144862921767653596342243785328343847964901909776677679793668421824837757461097283407829137391391116282150635798367018186035675620975914024564726173463228652805709169563922659602591034543395078219363094772472221611756495343158291824939337930841500809290995586983851026299601617900250581876061043921742664127409244969915600508482623872182739496593640380466524661203513619653787965611914426679678506764778604112937746989661743005224459924899744756017766428889173807685001852922947501786894699661678428532994737469207413973093810679831094234366932668351760700634867146644141065689325592122358716891430800118976515275967634539408835283885790279565157491440317256878264224382156733855567348673025880786405046788782018117651553263169903607566710727712541602647081123881728040232770812807395713993831822842203153677641342030192114856992747212021491424867818112901628297536165952103290299187384453500866414185519844348820372828585641758125393448457746603874729999066369895976244074989724913364144876584003960873716150400908623731627703670088821137774428219688787097689155446991104260934969845132704345193051345382463007672015375590471064590923337254356735695145757987625066248285576703802477810284432125059595260543262575589949545848661864859364748633469257437650929561008742849657895156644295812682261548525529467619201747019757630061928351893733862518332310890574036830768737732324334759035608811998480935305179125745214683911035093766971773207706565820765714514235010574597205710399107735458959594021515156939690714852545449681854820434594195409552883677094290179620686269155124717398933501083357133877895499277999641111553285019631467040136833658271230465585203103520520439082725029042807591376690630255111633007667407619919419503177203292440013746037418153609644702955713552197986138784081076863362125247660535882741056602629158259717558896504760062766458531420190440537094066220970276837744722957200721469862571810626876180956165209190288392503239224805014398220295836161530365657730232240796069046352798208987715722502818715989517833723892221284890748163705755731111428236051427378164127101249983958452722337876528391749337860636709050693422096544475362414677609197431728638541951322134455563361449513586663566451677300294417269991982628222598764313333213630064300699701723857834465398337826923078682157646199077675405880554146549467255220040213084622670316894561870708907350465317445529819076842433505310662497207894727848622334071295571462147940075315404037696244740836295007016101037807702288650229846220722793523207496936463809918632107298771419242232206813877362670334108806962311557624368921544285520020137626276441362567040100720717934440805452949377035513090641954733177077598160080227838058988321754972165090113144763001049251679259018464993945867625946101515932664797465678242606101723396967699255932110494409589712521984532969405792080707063872006256299911357069393716656946604899611186637112305867343612441009058535592088313480624947010198514559300826494714653518054611428076647840271166096229689355155036819947601791900852175176040077778019438202046851092620822590232567255661717905573906179792505896852194640178183890416554242169205724276932850498755531900345590828937288905355735226305983932890277523864471251764034806604241812994747961673583143586639364831204507578209305951265573545591030101029375942614746208350312355288056336160464285929049071674319554842822574115771538232153697951815917903440205423918365445643345031594581994989018943310332447916300181252892861723853082968914463254484837334596648623491601487659606254223405331065645629176057785698532002335964374310126398780770018740820208642403184561369189960639523934446340200256914226511700211169693558516298021176940086501057312133222904810362002283129320166910012062938050765314663324650483532749720964130571924253316479436232049695670715348503266051897154028116515941455341610019310684579443919029806419923796251632885966941781853825617320756469615611737724592080460865798194567034869622625762868268333065312520348805659995143339472338075892134857123334666800477529139213741375723452521361715644311494486986864609405597067498868624950152645186903545811800525429294799616366118434469416314859919499025615299885066142769702838317683273738654840621960635652188640353167527731033576497269781197193994321694141567372059678637166023772759300912290734807752546949496204446863982729777712974678665269302364978474729901320044361749540986720121939232712072513942901544823094491146776860660329717971888676535351605146425930138475151099036045750487119089775475558577644883393359762662458642239449300348043328957440159136621558337829180787151026131002486565785770340299969726126391693829605095634699953091965088415033332624155433697616290571263722773980487220010676127991139077914285996405746097411207758498131809800892013377012666689237851834486374589009177852457004240718324387876702309458792633451536763323282648320383764980589470156662125134403081286425900981971114633630606852942450942694074882368571564111699919488889011242216107725513718556542822675021376728986253713975195434099342287206016955952867273689517673682874680452502857053745446200453563897286598673905510656865758274300632208010805402567735955579421953280574564498639595702707905087646894001336723456268115922741686868960998327048890497126280833356928046502930132283952341354283828593884616048267178841207236063252643978914427058105275129795042880414674942726451972188593580791380233050255900317659855944560348047471044781695384670022177611871944147575445083616717995547337371079631854123519268646800848828895854606706961292348428373179844264992845930401890359857019503137085837920462914904799293399248580341097189664254111901701459079390882426431166592655712590406432639840770637516544405330316972476387827559971032733292212749733785112366893477262333441243757590289201723023305079025738894156046907208397386669172371304975413983324531012383965327769537663290901689388946544598854033991380471461696333615705775871580084118645933288337703065985249928763162399456806522891925572229170287513046087208995974794284335884970735218188180237095266465267772488889247946998867537225648705033559210660147547187287302390136579772115732034732418334306407092223506675795267296881358375494662656378715951915957897971516734745837055496045450119947281510809913662024411289894307178898343062432687133176140113348149709290671492194836320811351068740442902807948025555417447244515941697360407482093466222060298038828506860894598579839810400364492772974179283844614162363161042667762532174688320644051698319903743234119987798126170534059939048057622922425926250800324047917734928957429812789510512686559348545079963508213156417347141686018653591345355730070414583968787883105352428754121857803085735521515713354102793431273749693348319145778552357662334091871217301772438959723464755259698086742967755662365747750295307769349275217325257453108958553800267574193850312487604820971081653676813331743402744382149108644748820029594682805224426083400269374839749093633729596122414230238876240119553115472130095429520873143905453971743695178612002357586835416706128694124240781751731224805093531885376726070087294657655910125861790272679310222365137886755716086291209145273046492625737304560572847108209466232592387560185150786617681279994741748148634661241166780107579514828170744532642860628184446766052628648112291252980849406768957714953214669388753525014110700836485323177903751555184730330558903124289466592803930568983944225787951207564378019331380172949181261911281132178700646495976251158512867317279117935044608392809918588236326441972373851437380480934784319469483146000948054358182340393335952483509989991868336800626615380176543332673279719303868022909677778021667263198351825353593682696418324212818595284455280307771796872109087180454745059925362896565182784171275418796312383713691535786238414573433929005482254676206446562169734007050474103327244103022566515079144453307860761746590902229942912882171191825972674378251898039932986481120006542022781089867690694868563154930532363418263823459776753445922654901632021180847859043261796800369557275640922152408150581168494856409115383750008422118106704311777424993137098629824643639866162471494393940375689519344918367072462635873031204298983633916588562193683865746152163161522001621495062973902325881914126776463121443597837276746786188601889550525766592003212784261800659085570059179350219376452702943069502087703908279909368096604210764650693742562398599089353562668760562355211149879771588579457616806994438057671523627535933651992493405299027501017104018541484079150873236425434000134701195595420438286982217175834735712304897757967011243053726907108957335306491396724753232811237177803589662892700156249362263132468512075731002886469130305763836467977176817179515980576260056024491960881648031170474038954892239110004323010583747543117697994403157735425583916308445939346225243651004547715040606849955396148377834476629096664456964770635843013636258836512429465667441231872223290294450804268656382273549264011540643159006244885280499744722364844873437103248195465053807956592737252887250809223532401656637949450867522676742937701092220715891802884930345293776560919790654475156089719797877875474031629814675064195030987811121994138771958576579051426531663747918378014675199620022947489171277269360510037987374518086215471626058574394344379234423173404563331052525314209269510154074474665074216595809930528654132302318554376206621604534161859203252047811900826475917671790974143539521198412085113179340437040382827507895794606565295443230734309290893289648353930191391537208572105690565991744369312474910211262209297314091990205863973051647969168150106282538548749435674997642391116666416388548933783914098658382809781170087112425317612613893477014410639108709536806644384315513985005130261784951723441628265444079241134437833018980762444461850812608138355264547779056430265101819275529622461390736112349204936416523410310333042716318989106011650827214293056793867369220174523020828445961601369717095088849110919323096558325820128032562853974319339659771600845006517381809196703778558516155864348339018544098759833644555728595692313023211374068685656087771738029408376541750909884798087646014963209516252561524303371707223777588736557797605719616627651792000260040151508451427961065188359511282930887585386653005134269972682582926247999746831947705954723806514235736539786077680580333629302368075491946726244373731043338526024389410577375932150047500537824738605337708658586066746240334074764703823190684048685475056575138927628819233779787001258929215217020205782312051792132558011240328475634036960699514797282240662297768354926212827217344413643923616786766070085315440795943002756233745043954184284798916788362467540301239492200985498219765178914658505908618051633524150853653109059749266587092889522261831498296871782863380431008919381640847810876571683803838689790803720364158581705796522096934736795564710288442750312953000781618849144801358194725947671735286728829282314465282377362558967947214338419944205794632190117535770864250740363700644440429401205277026982151554120174599548004610465492285660431924408409998631971992272009227348667107518545017600808531133351321225527344416255173562516385931304865665654741180597558430027633731657506845935578762393668770080725116475799641133546703891249077364154707328353309282134711854933802715296335446881755798908247124783721057579830018523593921135814992175730215971296083438685143032517279699167940749415199074514944222293429177863492068418855552004111112566224881144036835517131327300230867520785171253699560704226533371704457972119796462376313819756021135817197034340474220604350063259233657716065037117957919045808419736770483798198873882485168678207216410821831148204631856826105804626020074138357810207917019151909194499518732732921462309983325726022115315672225028072702137384742633656718448911977221324933763918829159626804002053948855327315501764589972598195498372705090504669181692830888875512246152045014186272506139963857253751485599076284906937182847045350549132612055104668559588940860534191076763463157888643222433789596418077287344004920949928092138902184829349181783216506286656286015949120431542331490509861983139573941468088907101523547938787430362503608813127267954492605993315649257635778254384285006617515675257738720348586018893647917043860857559363476842503414268821318512004183959062958688035200131285249104787543697568757262424148332959688441716989617377881263005930830713784206195628650295147880171126392479104124798079045445642509561642328386045184856173030323733349113578337415136761375083089334146591704218775376806207298815373928606060919047052763437978526615174891197115958159790779220401921331388950855991325346102597535986268241719529886694143028546500103162213706183143979796183776276027976359934044839643039858194985390519880921276629615948264142730071311858141462692557763801257005801442429570806225215780174062764876842127529395313644937022177154197223036602121856290884529273707842829725948312716134560945203732898469705869687434788965906026049831737827733543947844789016939228016503103355938944211303955040667266882623131822133736237189419108374447792970291820169446541443822331466987030664860173685802594867157035999265713861151843634217398134121693911340749568487152537674084220844421304324213007505247640253708650161689463021543830648736871803556590580763979117242998263527177778790415283505362806454124484007997846661198509550956957092464072711721691461811298413732618098746216684962851111490123788678575291167736541089589266723023950524557694815448643619606171065483120173831548406141252969596050904953414356809199941641723024446809019362909035779617032199047425507980786480626255341089495002672535477017152089591724644201337005460796262713277774982414643043045668858443643620726529939638829441333985887063280215090089323020737219040472125886484047679542401101891662408582141588025644413858799537503105954531849567940157951000381208375584827084193672507798226078434585920886867655132397430871541008854775557659173674409294555436770616118608453216661012951442086123681198624436779206118867359227632091730511903651225366897783310352466456125243646635116142992936628518080749879217284818748061427167357130764097099527722798886381669502391794278510470965925724642371590355834749846693366815423391688749407368605595402629055693051962849730435663235080041748830258422715131943032027660572243632071515191963487061765239324582184293358314690511940384477695407722461290586610684090074084558506929944377292279841138139924406661596099087073997569423642036782102631468730762761817285988311189950880361973131979008756223275038729824722484361557684467614287124490392789131662683908944596127268507685236367107109165458548060129172836966032905758446979631736431910152419554090454324398644359283036259815635493761393961504344302720261861107528535755293831641635968721622088951157052819254158724782887274600598983799751363860798673941325692887742069632699723423697762113297899600761627227411700473476534301803427791530328275505106804275433509318423342969899423295347536827483084075240099484272002653025789299020049774220016119042135441604867225699590024417366472034195480139007496904857622053713907563614162992558615075962379775159962922828540664243555327185161898857935890066012677023877580317112111151156215987725189529556994071774801224052644428639508705544928150830762670669592350586294227570630866376762272021370398756776023575287295647619350148836814609922294486633590523358598285785240345633308200665033758528811800336529215082303943446640678888534905566340248686637078723469557278592414655132829480058201482299853923694924533693367837079426063626108518586507894243449612434505517831124382112372146007546851679226697568980253920378928932411372945091022345585532741261874111380976524840528697264974949227957416039255285010667557465813676173430197593886416665311581593465477481019212787053812513274890393515555799157686083415698231105711373167687781094516750993094288926107586934145219580436038064859365192598768992263183004864326432017192829099282366894098821964474163261352719714963764517223563093713980695781000061276944996076726763624343606297331694018879577137250240647807360657187284361130461514251400011677368772206344457003666612298916074315415095063156099224315712724268308833163798332639307409477147313180586037708453349811209556860010132939352003410590242472161531101571833639198356319684879805282403601398886348016847757106223209647952638628503110654502751022093281542903940769755598054913679072289332912316294989824385108347161053847601985232317474420759220457179924811739265910059428737414013289273037393169629781289321082852687748504616677043916093707607898012598720055595079737617923056141046423312692934726437696719621198265229203776430279220914122219381252055456695709274407376351992371713535338897461472198039353011010066292327854789643609838898374697464605033257846231979420808417671397364307003596091435690925924500347902166107646821765312171078840920407067370232206644892404434116761333467182377492886432127902373466315212286992689980493291432580189868190651043321402348027023633701869133817792765853281540760514091855719839047691819333794715514861819349631773823389824972464291979223658402547552603402346869775753798569460908029759803505362103431567248129236261327432976417674141663123648047345631258759862435750565678574565971493899476214300925988186068925799692083958633662976490786503167404325494037667818276889613709512959713865889056580733182325334280479684737634643201850372455093536357252475382460773248282666913055924067253076489673096086704390714837418703666909140110667396054788928742706308216841268276986015732776421105150850751970315780951148362618705431563254117355159558463997786508709756766724305787947631220096691003839124145959434009570835808835335869733155342022876019980812705684379373539322697882663435060277802396519668827901500981738280233002348978009897027091527205775406599984938450598604138379165710284758612808398505814879732244946466947355883893177927352625591957955904401721167309462806101375177573427365202213580891714420650375639868049475948620466941110001562319509054881510974267013822109795966165164159693978820678225410885339827448344192393317732933090717002516640310303625514808846055237015729938661678264770315754975014816985915802424859507129024537174482008471654075992123690246351597927982808969875707580198199244844533025811551292453482260078980555099870186120431289545374355000985515453160931564960843163116324586198396312230329245552994511459007465927294830301883386390608227390998796027754029130037334128056733975197520937653935234790725070058819221676153414000093189782565230088676593430726156455851426478045889421324398213158534337855847222067173565789289719815175927620325776285651500088220859428605041534676561303299226585072700806938409157348616047682414818972906980693774282711772773058267089746913936505012624414529599507778063629022771581978841925772066128888811769390199172872675599010942253836943214602919465382639601978477029650799847243498143821338438516916919672250992444337032771509299849712414977489518152021836434789575000920570787663216923547505484281569020345906264342136122997359417728371991712586614144662307097698597830256717029923954527061813151197426211894779775087850847613978308078116243710378521865294424035980749538247288180969306623921808228443864566831717810737783590588557593798070948009951745748145962109437558433845916010710884826884838200354379188741324779853006947934381898273603493391029633116599761022286223513928041019654496304606713384802164282481517992967837374850994776685985989772765382475831216258738969070214454541804859972809336548168741245192865025357033344164966373022893643958869150343568396155499592161754802271848300075411909895661261770095251674312948033118233016812065460231233379618345073860365794740031377799866264482204772166070876393565810353238820187815816881053830079365479634337593762281681071571345219985202752477535380761638590732345127452656377481968549684127665194213414812728272658432376983863171060737657763462428601730620807694594146734668905586796860666707967449320809690295307285360503640397949006575322332080332161373567133048334299241932313028986911051431125328949127469146005178323642741995650489469799420680468284305884120986203994905557113748523518797369024359440259252080848859915992149267496755435896934515506737348785345092660943187258670173558036526157169468118566671902934746870042641922504465430725238605187299261931365342358085149417265713591519308478628360258871363859579832668669048677738829061874966794987720794016432469412102111129074464843640055059556774304918083423116473917585747233275729194371960938401241693249834146993373493148246155030656434920637845420093087740558984081944486236843156729936389038583614707873276016137002435798487195557365285036888227286264753788513293158442154552636622205393720736048947375710609345800265264115593926219196574610515882870882405929663601768206971742209751255618172810718543751013357159487165472320597038274451262496864024239673721678660800737597162771746748059904620993665392541966509751378153552380739760248375163459108277236571767127864573524329940759047360184593307715031517143559929485668036923361794784666768110329129014028330604739658526753203276555499918792123581187510698700244527913348234192043283833734492406890300158492453108102080326706371408652318261587780501431224516480978160805179546015241155653496270086033193157660771052209494755939615076360539720481417498483680737030819376796201960970755339467685837310476686397991931110891446370958466831023694981371925355190256272683805864305194532756136132569896580026524517747655097183291061468559159820857751151037908976863420760316630795491714773679911819400192424208440759147599473272145001135842850255020341624962930724493740659591797638401310616854478291014032670634428730209364743775449877663173947636355805006707492552822087667446132658468796715135380997026843485814897620335996162904920862754662247159708105550431399000736457033850763662659311381199779490569503101815470855443398251286234277595090263464928670488943488165395057186322905416507989038214292519302469572604126409208016718394447830863216225290620425185141737318457530832620679087737834958983616625107090256293795127139930938109298747550337048645712463475983028665302291668440539510294369876093553934668461199870228098209978109511525618067681635157720025714657017176824996035715919445722165125228526191091265787898156538208691406814403830434183114495595753885382327545346290387656199019292494286091913818215316116986560704273910949817879419278422037040668729934659383561891530177799537159686894227153963414744739899070247817620444215934730099483368140930475259525495922806103692312833145327856413654776400603773696567403853309580701864044778710060681311397000446348628475714278994357995192757827597192466627256195503617382274982568767802016780249661434024661057480623797665853992576814197219647749941670873039862140749062881126040659839976251114988058170903537855310288307156728366604157661717766527357587616981016981754567829581914864112960050886892546360273300941518403581756688057888339753885489207814297615782964909702678540521538914277691066184097727526845157318885009313020239118210904457032416883290790228603920328015901952590765736460735479269294452159380747571698473755874318764268062121574352322707094022746902920744784237793904956927777853338549558235875679280731503287328057881374279162707029460377813158286297045934705361645856214078492954935486650179538332702804826926876784910880266173469261103192759008427414153650160160640212256301523968123983610714967063041254360040486273658677991026617056003735769274960543003056202290882931704081741629347331433466094779835881951177076906441671378979874596998202897685623649601137431748944761610315851565238133669008030888106924460605483295434830422865838327057290944316137871027897472068520333897040887170311467662453244944735099934502670726408221567809875829715557745736156478551783816169300283016711381344630518288519307184052624429877524291066157174709677375577013145873900876674205593422071204408650265315858406804485742461940581759807235125334212568306529154074863135353179595585511252679109031831319131857264895309047744486794177925290976852003384869081903342444087460368852131611495614113797567244494972070217157109850393500120155918020248730262736454773551858764841515271265137339380574096697091331949453781521291644330983595797930612724341981394430486375602937346644978043233683527884903133300059039363889240716729933829850524661210107358989894447043811096595390795026245760167914037355136317483988209485914351842509025859528056283438458076259966660386738598433472691151278236103271311675791620524256587026138674685544292707248091874705109592440830189637348129020911273394565070757367187956159726453010258812704448635406004672550736530484908765175237332439090386488103156220291649437542506191904166942670917932661932577983977567349153980030239432736527549016560216768930201091442345474596380991493736024526711340587395794865663212449913312081454474490541107631686556414002987065945167620007317945403308468177242748117776375885113919447828666020344544910868877804283409296234055210171788827345447182560930144595538705097496984721723911167996160104337739343883132904603155831261367390181979668317708696229185413356568292487422624007396432451272879770928802121276607735527613363782237983595023565446643708237100136809582854091201505528889303505100723920851390285802142645470019140380822348419946826413301184250306750247995025532987279040524263767454306494464820057230735011449118742825307155610083030949945347834609362899127264787073317275010690258190641756656284327497480798672277374797369044107144276082825874390581285118700587825549808883073308159901551583657469560414115739657184428608085984648978591703983619205447155482507967871887321362875640720438466220477583081325801941684397502446567690116989268576332312210483183491567294474490584915929170357498542162656194855378765749145219401695957398466433316631790169843652399906338645329265270924856932561471165562233061586018140921703811173340370302808026846498761866429015561494497676156669145097336935150870455765816017267560880872838802611220866198111282223173415095300935769595001878400590924074530075017075953870365215728536342404159061106891660907714744328056961494577068361350291974873376713685855360631548594513279637139500746886174426404346485614996634137974060945051808920521700111738530296772508490094867264054209088980658323254775503669942208090789255562201977301682227386790509980351950208514969452735762636581370341913439220864347875910321430558109550113874469576927070723509333260195964364130519578355952750735238164429102006710208572250328791505846878536933347557180462270553798591370317006810631584460897266513726867090806806714339572803204594590918310902130026880322921959145069449971938822228391862251810000536732861312703280361941612933424927179997247080803279158944291350634433075870890680204684347257406342787348392786720121440701345107690555157675403221564874968818794295140542004597296968898401875576046136774898558393939067231231647923230276368575513062503068103131839069013495979289297499662793310890850057827554056365973159894152760180411976619779480338008446486944611346975737974563260353725976308545111705693628563092829334981078876454134563385107259350264839152350340490892937818527828019253458115280660001250605412555853491961109084573675362384642348915914693818694745017477135907668938651042772059581113352472700395446724651618058299047567073091423210249616207143283313901536805233775719916623824330732191179817782687495206162275099400870597624537935082507311037762304424559212464230823297959871367099946060365845948440143598414084206896083594961313725298564678251710897829653108895273749162949901534428419395339171063189905523427530697918001464176783497657609834060621779589922659223481066415544338376022940176692240792297781973038767008272571697149427997673984272032905058475789817240195285422839880306074663018594748240070672163932682255093449487000048948354645040679792861524952910106402120945009441676685506034610928359978898616132727947741677509620044661850887421555680930080841244899258704937364015264191316315028957660058114529488860948242947263468434244543938637647995450422458942943334002360495053006049367237047424786676514883950034871175552003873037065412076171338445801504507362389208632112862658995213907074259173143368504936269021335843747362650742213331787560465991552946187344082546311141973553756087405315915280480284530281025182046601006430000921166019287067391678478528178020585287443874089065591018725918089002118202545191699787638568380965091087340445138680024147418844527783382060530790582095804461727051778279032636787296803656276456299781165219651342030655302834382163894448405966132098453060751178284945626612463605374147170919675339537686287516800725289831296289930946520431976983463889610402539990877646572496775094232037629640978231894725152819187428255838859822804652892894862797250650246043536133441221815506670479615109552985430313219828540090183970247719028312976407901213842433250040927023607705818145087516881399445031119030884946357867914266624400674923790271481888897634211942371076386919879696317908804907830234409919949017963490820417387419780049744661122177130916517066275918703156334407780160313637801407792201823536187735634626361091501521612547240943098988994935931503544775609289980912209462559430013294719163758706104671245632430570349137862417456713489888377716574554925621032683158880503304169875005605910387748781718383590552742593949606126193085286736438164464133518842840880823247515674588274163866431009829093334038985029419304941196668018778624818513381416693417175433898854125292536422099387225929956227945640078197106307620098210688837593269443748072955055311262885216440200039743438018597864414845915898163439204374164329133588706519558151852977988865948161047868066556017069714562959222283065850545089483761234280783366070703533103832478021866814268762797803338950538568693888834653696670667061469204971197493654695121707006938080584793282272949732301300780595514611207495751502935567153571443267548482748045443879344631959422942623844046398532803622397582839563771669768911932878651102450024733449543996893254207099174925604340919876511403541897543538637489414285123219341249148703964746565963131669338354430793003463713195225107506820874672346431067844309457635224541951145352172764174082336154520585822243078103113431972616291190260543244187021446998549218607571785290490129519649377296743372279678756663741716165924414111674121858508795815344871486239273719421804200949094352753115395753672669497056028165451811094418252046141013141141953065594912697696785903840781648232405639375928175692621134624580331170292957471029208899898057468906338634148773122441887194813663286470602973926886529896616485576590756318511492000077522234718451755072902896359310414648156557496072421036885927417509270399934578547534649334452395993714005221095235094944856869244166747943458665136451722347783372673401835797157275085621840362090900813423668815451934893933314219675298554781478696107477291902927352957820886531432257181901721688511797045249935282517284468635358640508585730562259478973763370402732838204513635480969114676399923114532722492489205760359143943589366272029950656838551357955457865999700327508690739011784761399899244593955929192744029944297961341606351677815373631334226979561813714474461432665358048816659170816608829270092411942313772331517326742539834439513831278134079342689000844895921247025005279772511993843516427491705939957170289024010471757779527333772756513538237888877066119100965301151451581938432749224260073535828039510730809545453899760109303731088626578401648295591463236680504796301583902657476091391707510198999305481348396369400550961816144237495125356407339922337467914126718794928927998789761114671199674658793247724897255615247789107439917500685076243342173778241696559300860397183114410164378627140308278125605100251638340774608872768152241039336583322550089098127867330574703521354848686331213992538956212179173309144522183475320745689799507627603478559501499893542484698833288665194151796937891898386595203963493433612901586750664101580732332011959278814326566739341436350411194902780651419881214168204977404768291391820397485596579092733832992759315747637680688178282015086431777550457964899168987041153145474681093283599966767525328454756423759714039995970567363704761817682367240333376586639748666771347463215810671577454193807321169651516934292366088498092741235880723419048149606264560002312028809248460006512596896199056925589574198247659871339237582835237410312469196590053637629392227008765914861725490285811888948559854884400907626212856375064746695783356500523992746039868187695816411515854477414388001319138463636142900769521304499064265122904075687865472776860400033372309278447801560854526976675634096938790313528521806456017068088761346252104187258484171533363405338314626395592191959562150662617205417281350069508529559576727109949187388562461593839094341159892167110860925342578583018477749150960537324342431987464099807820693846560850980590139442677882054407783962210747405424509259741076377386062904404935565106097256356770501931325371079407499218262134471831138716746337074696554572864347213771748328545131735235191595660298136365606036655028232984487315842385136383204950559903018379091197770255617167568688962222160217502756279659742618829870824948038567639096669645862077081376055274093181127016672756983905706949224848632318034539274222945036255282635962019724529828189730143777439870230564072395243518948679246390573435674010505063461384224387866987433484490321228853285007210620767008102358480745435261316248138493175133984187018995691868306755556954633166044029759850815173227323644275431636826960773921410486210184751071644891987134171141297570609893879239374919222843579259288587050121414033129013571084942337803746830607124079607304857751630430695782890989804257186718083065287839018580882848712728961237801858319143163567599715447898979656086798718825644104739616109766768522689563073957540438848693114277302040352940679268239338688219804722466378027783146959894101600671557616396062311443356737547071809660244288580847262799333043596052599217517093229657296052762452408144973861114739564734550965293205135664426445993165170434487308958615138663486440745041092152741464061106937690818016757282260962102217840643662354082624400325745050097316104323135851827337359460254791593200180744558325614645124323738252626160479485454783546917688403460137461013792855921592413995671030567114867464832506246823577830840955881225053467850273903579047865919918670183065809266935641973161478662799325509014109913251917997716557596552028703082193894425099826704492981711036835405087582489087655430451449150731666370384929651994229993325888392301909465688669342697594481079315470338441171044901806085676203848776987299844320333275846891489119723640679162338183100148625056923711129519428600062143603762909611986098348572222849025434048285277587755149214126643629162665636643805960732754263283683166402506853675083245221386810592381397629825928721765927830026725849610233765851186979374523744501748993043912189699058782541029371902110311146950527742276519915022521547448948587102532510150697821977616814315041145498820380859533472652662443441867469771064675588001320650672628564690303516003454042148359305572161630986154177233340074895759658218921834219755690585342449263126625282381125501924126298192315034375826282340221079728257468276416724231747560497925830150984658159937532065097563954725555899463849844448348246146096523947148821071923836250145081956845879518159734526903251565764832760607331373415169692086787223941309749869889214935664739564470955912455746177272020790346328022031297915928301578145684930293168238064569488204809494359237258829863101989258128990346936462045879833434006350278199114666244167668513639131124700567682170600782814177042131642847336517888026906828447903598862731494450105656655218160876197300535735796686718771907114120803608036866222269341009809741740407128825959104874646037275559687687320485272802539634532759888156279719190556939752347355260543162615969241399540654231494320967865736818550179297883117146012534037041352145418114830601554299389300540394358831375196475790794515866138127790860967750105651956685080308837346176015495147814280318596604774311067603832682735401766785959335769005949350551185405377055965227993351679508457012638629638610605135378584327181634256919575701074597186049120061518932821290051210699579343772737873525127248382675467940026213341307399536178644948732413217711270131585653785099571399572822773481068977168993000812532196121466679297735413423360483641978209077085623101230654034133983685867534816171446810172156636230523086166933172588936020149272560044883510554666278880618781703849615737108323050601370289931931464185023722993587423728771885415219149925111379401881240115119120147504854547588680702698480485102557023603833746074928021567179139901372318886009593125880125827816916313455667592440961757100159787818623932405522202162776211658876574888013743263942499342825756573496736536384645501384113516788246668267071109287763956120852232274613892576851385876559539023852556614206912459737337611044064560460343996750112559004487825194581164389695364644956604751520971703588330289949688550018122858870404653141323282329388215719087524052264783657534310568728690642140309693648173017789813335257703981792809495680369597106901936269563773306928342282622362537877875708336385139689509101290541092266128962479337057381007233786538473603386078429361818815066698773115524874902032259232005811498366629951295383595017314288438401488251126046790611117478849299938607182695029772408049990117545181335376891146350819734814921648570518994561588627173764867444187895772483201765651121147959866196737018272928136047598500575779983872945224747485030834198570132783588670199185278487950290309589664795477774508818719886270063699962337801581709770978768065804906441218757219480006332788154888609644481939507196184525724729401668611543618938310369779446863870378435912727575024967284934731005977882538911654448421131876635079858775497973515208903477903241591086251099164093626592627735577625144400241913532806280771007603022676871576757583579006162892519915829097150717246013417163208759323017674003716583965814669655279840093749932172205401769544317145188594159353094357345059840790603750821825477328342070749669298891802041737438409165162913371830770013780897557922401579711825591616380488706570627544384095261930408940021216848532564693364466798501885976376692327561689831595114257620022340614450018861799527655801277424802122723397781749182511417079899197449013074551021133595747930893842356886746883334686151207907768478310048471900809114497975264379474926698517171691723295671898603164493066665884864531555349718561645406652313902137346865715745456802595321484009027780809252148453838495366531691165973922134701502280603791284820186412850326827195331996761182393556545353394840919691693548219494950002365684228898631386828694397743972258352597088492212406801902803681113209337230424070015719880527174516045047903751615488493296823518795452643171508177253409272921946136029170886283510180284042451173363890426931055255692275002854262840271448499953987774689518762189219129624401626180186507159312008196451158329632391079028429327380920682973680276665590784708718139429076995067847855446801268530608464505246803618257374128888525808967027092815557471481118452512875928824875263206573567075623720841929409673002768472309996435281853936812276362156661252763274558219750135738925505658462961975708618482608699551482517768688239982647898347696106677451072077511596242110702883112222943569557915914597413553252212272852989690884277776164234319128566837400463791392160334874496995678376501759838665231981425178231723767458266362212217445142371514643634256939192089916936743508538597275891662415231747744800671657900244091686225843732724189118367812663147523329672748341792709664532008193331014030587092217921773749790988464913673059392674781332965197792926951782553301495313195931273302329656000188360376313385312325776693434661128904683736678967323569428242388164635724786487081213906763501623798212381559166144847639279486837992948851607151743271100559147765530066546891153678125265017818342444074359503578294004943871886502837934590320706201273067448365127431662580894403261251858480605199886820118335571895870499084135728501453272648958412799066015803899924956059943509328793187007455767744302136439707186712509044989053005296597639355325211201351691543797747250191091569845196005269631692964360838958159656515273081112948751557832911525925265823792193117128685714307814126356997290974472249782966528185689251667270828187473828768846743784173723466617021887775896244477133241057509585403974721385760122591719438867343574371319816539816138805449111431753466117745849859912400028517587962896588397051080401431155589550720548067859150573257831387848785119561168029963759621369100941246325032102011504506505855570767428807685779097262617695380490442800996861502772577202523105716167251668261463299079151506946672171727734509730066977500164505139283546284803400317774423399915974441775880775664458365913576501705699727149474169707801750107588866252672154696792787461755650615777921214719411868409563517946464928634169077346083623666093203956960076061215001720803046407033725458899071818256317404706611155261355094130929484312802427095704836255498552072895665471181387106839632889275910998662483708182951012039344570418009027385008369760302327598012401967154126402300699932348248254512157632100517992507342921552982682577715968393112568986537796009742065614078984246687901493823091428050294821907041208152132177881313633467792959798862058919382044057911106026816583327856544091973179398200851709982146722845549575106003702015915777500740264914892046037270005192685240133278677115698807149861507999298479451009350421116625471273993608077778918015388341454718635438766875097187788839619424253729053983820885606524104365661483079897205857720731815533697617213201775172638500789535608227440686751947148859461777050503051467808528780901752119954039764098940853169221037971282580848886767049049803538349786853113883423767664612632759384409763699878359959050426299408678968710737122608946090568503273921263079684055022165877079856428312352340519299147090437522633882803524530646123497609683950959000220576659005332972592180114242339488905304773486155190156182326708260411337846062022157311508040757366259020941223124286525732008319166913203073508202886044158801345855940632524682125866355843119095796916477454972032727846499398778942318721151061283410264968781111077671954221488969407908090785542827065533494745999941566644654135020206154728490638193168268391865859031813569692707287054361676466442578622806120232703616327124756935104587478675741873673618627353133446837067098233871000686077152154348149305537573364923405563205494512614176187216759928357672468285778792048595296447689563925447831100959527835206491239168970485069592384969763165866092687089730055735965844180029110941606272210847410284952715721862419519352208090563565016064978227898392700039146072055815283922307267412532521297533704558392159100791117502747886001050188929719421697534194912137500249207755219937426314010670716941217359597678242006067005321863210009708374345186686496735126203097334452378987435920689077661119683928034327164126996728784631162380485802240109669264559563280749182726539160641473164329914988519609744845393100658178162021137190024413951755193637832166731431413703770303139468275328333082078815144645177461038468923460641501917834861922633725746447871947112617615769125678308442497857208032343505181454949538148040861296928132981450026956122894102281523370235970746803423603716224634244379238660683772288754520284418029937485551204462955184078166775468977285422071463189272215472433943053413342385477689896135490528051435097520061222223260106686251264626048399452269798725616262703822198889142838000950554551188927945252326805301047965960002700449563361666650260547609194987637944082254207677102022271739768788407358927684435688895073114312151676482380555658732850841953684349374627660146663546034049019186183231946663985459713813208690112689480652250017680183917642607583403697391199604592643741524803691190041372489457526420767117040284054141568213348472923231352721606400741899893649724285871361479618445577216717371267648316936100711091073542048603575096524940211977828585470185553170837628767338056620260091196615953297302539719778416969076188345487389837306058280277122273734091190665103993403451906092085170772964973191579841753307862418195244817014509420580640871326146917296909122738044964848243990088831718574407653252820518001672164950804397744166783762261610792552092002019689231939116548676707851441173571099336597465368351425572467032049017688062512758427249537570640376913657251671203092531847753396982085431681978956513024531773563211671823629075201229863754808709178878981138306452473329678477986493684110836066429498797894939790289748226525035775518281650417787244610152193462316864853939864240118290622240383857904502958104766226519733680915874123968614590122154513913884058934503077524170319484179880832392420467915414013689575289385152948958652411195651461936798525427033668734189875376245610721230266621942024607334820411340448950685486968376218164461629482498381824434167174746983946837209000328402283870155609022880444203175119090586485611256393342287319340484282812402505672908454126853131089237859664140669587524830795458209469658238452258921226750349122294976350492139035013101499023145796746966406357752593289952394573552383374544954796967051092418578062585486141093809829697109935649613264370895595558315835439730043662600438708085565385189381277751979084231552085430679237678777014755130237676745833340751898851651026170572140538890314848623854423192601212866735537390378278076285839339003351524818705740617368239005082011392347956850789359165420025866020577086718625924416121215459976137320910377217071606590018538254703433559899510935312543122771700552945425437403156120568296973579937306128744678573646320091050407291766158815885600731118066379383704039726369276060286678983250287373955343748147780531879607581199831759810438042641036027929427247449508131102781937397646004026761603214922256315351751161049584354471047158206456184308839412916906858212071592728998285679841766926749488572193587929186305332438823381357242105524895780194060985018175520721602572499335286853155562786612876483876042316985339298352708776470831907976363030320246794975595059675102205850838813552630743149716146581240365091382523395116831101671284037947452962671688870905788274827455018640809403680801424349040584294448892595148383926227540267461640177266670865546585479668999503101263000117727633654833745596820815048439004974437560423586523799636466805692630866509708975197328956513391277050290528408661289081808960133320611854480263811707045244982901266108254919287091579534586340445735102129871224132194982155317656751161557238339304421012356717149199973751058441981660364940152851805569815107852862028319000479501900851520892503602599927401579023116461440581085073264704348413566047768179763036188081201264720895152631669785596044838822896716259357438728388094036193521339145720716833672347037927271605604755785642767595745003587100179413409145758853493121320533290349038593890663437637638177194458250783415691917518315432500259682054968938754999069783973265333070039309189657823960381877678763084898577500743726207301596790894894294652502758768141468507881433607884705233318463223948178256606179873251034917211740011994055481561988327373273305769504339716570744190681213493192801996304087648024971952914130439908033015982346716523856497399786852217396554975100389614685227783384836621357264095920913887164177742333568734348177559959026932948566310259427977198901831248930585851923298344604872104149203368186047368770218747838410684279654637481301659914199727471579811683202320699917154693414758232795258857174048211497973105636251069832744026858441529074365156054647185115238754179523750670470638891869345666378164170206007442828367720975065466146156005727771592254106955489529063001003988361605129558056812209450769840810848447961721266170287702772388874726600220964158091127964234531899315447973530950811173181536417347092771625044681391667641446444451233544732411162812486847982842706382229109525392437950023292741994085321080932032528284461165120466756933784830937767088063495784772657415261031388510312775262639381801104338212317984526047335879744840320943064734347345097498031378794074710048148719747878955217118770072980520155448926285461739834284720953695146481078173049143564402045894325814114262120989576530762162541448996310139415240485887220443597090226862986319928226973389133948531004978685840631051433705491494408728916737905213180709305346597466478017375803287301910905752009388709870225292428413811060210571758996247130615448731208346891078941240365433216202191059438647799026753626458451920536061658431391688945361359809735661592791856832179676674585556188817238655743007531289360738977674574156341416048976222600972270707203620318123552202112225163023466507644899740260123597291833288947986312656745315398352273946590281765179009439753680035261130129560278258805636169616460909920904234414762740275052434531123099568593712378051704246585609139423154066846577037333291140590380550944719691553441434275277176367819314795233404436600458488648271538260838568217412170467074716735029868388807919903277415406595505612217097385159736486438688647084351846198516113719228125559326932341998300749332299755471853293371674598411724259086275433839573174977249341812377911514220259825459971422230098643293134792995614322509123279935309919310252595477371709119202516174352893518807744694930505588818961731614632958076818171814312408033744643844274939966314871598437309783515056140062400492826316180929049697277318808773872877162362128588484830479359542799615584961032784141086027525927729640668984291109130789873882356843781532653667781158932206486950087907704397750800189059733976458714709417059780984333305179291105031400335848858540893552902688725286967331265799968393509888272443322182501486648908921356512673461949593183715124533174240066961226434261982581014321070972401312338051293225175217639294394990825603636153790550320764122757430972657674735920007386136281405904181472098100565187024176407652838598612472462540280799839841555499295531781693773821724901408529410929973928849836838247995481933158261988032586837964802947167277723560094671674652234133855684520141553690162778622669378483179773526422342550794099665991483452535990357466822471275318833645765215580091380418499215093374206672641590974657780547157160443925529729529085310744808518067554120489742655637674558309508234367366851639052916937621284283348127431274019923210954382756077784578336348483820522847934568759673304366849685112008400216263068878854198566926986387530286521762472989139289066222911895760347278857564059588131889358508777847497680676616098139616896434398754759611722107363880778090229459008777504317036391321539851396722708792846183270993500417115597832861715280656828587681592314115114874434324247120299923399832463584819004041726260995788651277651081846661772607874074899322714136531057070013847334134223071126048692062856384447625522737346899868198165725739000043946189323785215947793329472617977689240693837458195859174316397302062472171568688426686883781284703414687092497634516733379745879718108881272554197183634284313868895952620039245445460872896386893221347589617637710860007462685864196911195142728572370309456441827789106942754327044147364379255001109896511118697323915140787046920262000310291040660120187813814013155612491723161262482122408650587709486796221562360566963287215165684375404510465546490939384390395262721515739739258534875151265267256897440700121331940053137073057097606219868552560621935055392949623078013389585489118499179126028084811968961805285641352128593986540820202126746972513612138518921552332603115728166612587868269496389857748080746688884314490811938881620562577080438189911572333634443205777346561817218386069783014556206148822050814758798326367308240377855971647685047545821815933013493028146903365986296155656287310095113042435363224635427504710851201554746617933463984123928483665710979654128700954407261036687256188403782477591633090054415104537255569709853923428051662626441289361555496751092706728704493600413948086941654051812952830371262220692476551412480249571215123914066367120661179808551774423061271924832930304338973074369246199072408441902106539860759267145983031211777392013013519737847439057605014301461526072751628360005290505705049761013710664243216166115020004554610755754014197273329238940204950438361368209024063875074279180861555808682566711914797390107724697671752479428245374494886652131045177554112430793061173106928842878770973481724661561604531132493856040801981886277506580903388368577765882873216261398598438811247754175954606239136870671892009449148725146025948372521919311525319930922514527234345440529211908076702629727954598645356105840103893516020016621238712566597109507030649908602102309431776632445475868989013441895801113066295356038188941276459590605631169305449652458507470656669939715596894818675856554314952579696890352802172308188281120323223296795897846296142257694209682899510723952690421389437861159952660547840755224273609727499260327242906833132862741911615537440474894342245360471478467475426027177242147719899338405803051099230728513164014372535809529834765522269617086826099160874772557683504863288504223721395610861998936034707837260499354938741114283228925380355803749722810259708759489626533084002238285419800527468772241253999918898735496916743091505568247231881646820481345271470593886232789250201925695897173326690798470025932589687073905257658322938683316597530794362992652213790069569901211524802486976443602286320643313349777431341715071191235522623308910982678769179355226098134482248082983767121505808732393681087765580905260262323977005067154835985999135934620582204163177279903348533826526763959095555479418848970179243480648189632920079847911940285239275322803913636031256901514416823850733619983625642974399816497240845096748630032620006112495402771038194585187572652761521900217692778526550944576852293405645037280201246293260788527073705267905970452763650384387520862038801886341317355896405710014075887486841722067016315164037885386850614590364666004698852445622030786558740765345082407978131552964778560252483739237758409173011696235135160021190090072430952520132888613175067329902189352394210519686583771355620992036747268063449999081670880568047519938885084977075378250670523103977483193239212113228719466708133575310805319625889423197544189018465889013991254425281798247735252919798095759154352168439067636147980905056684847425659864163401057732527503330284407490845540430797591435443025425869853892384753847874179790449584610789138374026445225269891413419355765743997634028504701460930767137387809803574511237614209450600833991893833115225239934496041736582778283306841191630457856267262732955431552496307839888952289083494677531356956364563190459603153082107546943380112950528330892790518728817530242590964427758292816852841390012796915582293975057724410912776979815111077145359219767063677550675423066777566700869675895239703233574553459877986680661656731094500781946813782177865669486841364439649966630377352000204374837939359008291059393520018920976016522769259006410597954132140486792657627902875132660237818296675866367257412426023904629309512617044570382841337498506580002811811049453617917668396072374577000985631246204171805189691347653221195268945533906094800301294896144041827207303981619630446878673603094802906471969112288676835078331107142760045384545683135571549080005355469591068018999055640018222824006461409785013859894186439749853138159117271606208728503000090832307951757050655893147993900313520027710483674761889614796705401558433736904574546885814344712539149787650545301819740525512775108534927811727583278347301318817984112109038590977273047348444146621640058811427438957293179809128568388269119834632711837699972365017938634769083495026897573225612464056428018231773818047288368031559814966490151673872946209951067030602668583095706418352436857107917967713615757315097235971527274215570005856891083517548566906766791524933574356970569482245648453942867431269671757023302575770920276887851368728176858725752459267763016686111654352899783728216390134979718824036630650882870216936791339511785767118285148363478892564599999081645325837132292821803742692848017223104040800273717092722888149216693017846517932717798312497390927540253575679043562962861739374690759650696201630154140825862791964897669250525006888079131263153304909224308600762255444252833027441526941746813511027535446831518703312697033044533660174642036413928130069011960259637718373024642906022003956796941689871216645006543723844540943878810201267487874170629681562207514018889102321674156237586370597738615736824959159553584671968897496041874893631331763556626445270220560968234979408462740890307536402337888581848732853409456308966870781670110469426133509729291046287983521687795235777469613425721396255485466589045415196800766007105802930504840073193133310383046373312648134322506624122908695653771410488456276176293317821490313469071507368799229659205132221515581928562865001480443363926803180332011728577973686498908108407344723556606871592345616040011566213425412859976003229095583670213488191301922263837533747456153377065290525594714728827393457902690652851462702856641209521719425150649881561518905069328432954972180295992269864638442555061550638037052577941003179209394154055550853525044667196728962993727189291182973037350695470363149148584043893339052481761167689562834944241074613991149040213032891511016159563268364593663298253903399866578816528163212699718104748884351601509107610391391799498083969649243716679668629563912321958896702220984307031273348840925210462222174969099472521094464440838001877562131441229710232744230041675023531334828213553731183609797249597613828458807504101434121117362858156752772031061786268970467881825219007799464949585036227739507854848713020469541034978267809819697400085702174173994804991383647601310870942590816842175898342804143932500538224764139047047353246334928518052291607202879284564908992071711203929845678835095950557334276263772445610517627337204269717885463748612146723717321088567694940627896094088318661111267752880040895204737665697912466727204308184779057275369868555801663873661689853144239272816684363162637920271338988643942060603489148929203163176083845170492130605837367001738164488407367327127815040985335051241335077507891749913875804293053979363362485151487976242377710923223259764776743790230171431071095464723781432248810962495221374121599339800991636407925910649345109413926639520171741634804894071931924302135037440555666249767303915777200245811696514171555843853023023245665919246658509377757778392276355212543635670618401882265520952048302439436269008870372497012873180830057053564069362708017986755658495387578389030532823687948203756275985387220445366574445298013372645018982185246854384542183182168976058483314310541918702121646963805337978618953227039277848214776228802998586309141950352055903495626188764964066219936974205542193832672340085007740224643170809102235869160220848330092350625248645703447163983951972829741458012622136124873000834040858971521592405681564082402278409560096675749031552161591473314765217358098671105478790237369431770647386720956763217852808424977024730791661949826083613269551687654944253265144389041026438399471503524943583476614783470882865581916175200261536460224807576764879256149085456166853510203857633756025866000822313760417239806473574844472708586958987845763000187536199897396244925323484651460449815231387354006862906152503111524253681570756244367281552103195989518012113996187663183561049545650039145886469720055156100081469987512292756289686619593688445157730784827045718326050547941979180233964495149860751182005453022524532140902622563665786254667547177011477986729931206002202671863841983683967801448721651332608545516208307045494504198441617358728673062268645896300032191408111650025725007950994563347063067973704049132057763254529415701512984873678074450491762835103246899524045234016675745055715071535029786984908455732929674916637596595351895589621505655643974512649103479563736607589113429147892916915620834520353667376956603846568972570580840889661645567440106717254901926623968800528685866834898014191950331241314668500379233658756856957548075056868869613732792977644725771933423787790794417160416753916940655801512633542963399676237599524991113795369001894042437986704163686883907747060500884615573293256459249236288423582971968291651903393011467264239072867232285682951831929370493829611213925133127452925236381216013609096996586960928203460317325031815109365670154845114029199933759818620051508701055155646494188188733194827479683994128801372567775666485685459217984526318284514803129396641915943184514484743601599127297322687896874432384101279571795212977261823345264135178020353132014279121537904430957701321706387300637657615800360568571484894917557439574097911063249711610365096305666427134465342846135468817811210997980066178968144881319818036968220293766112784586330849119225840870874256886732597032036156490922372976040038407014214652900473213298327242618924379797775211819141378992074964319166526851356652481415495824909220708860528893329383013719511915923545411169395672653310975174819980480073100571896310643595658775911152615596675057648269272563051555514932355901583757688982024509386334398372417673349483037985218934855219058549456459099204773991862011469353001341218591354648345967669317531433138770602482365841752449894423689325734894386024527015840880986915433911731145049105694181150884830228600169504057744450534686219745563089123978762744048609995403511404861015816425879066247195300407140799638841954906626150548447994961791036409445339336936659800295498231179307388867140906784618852825667598108353811134929260271271027886119289537081502091126167960099876270794413559903265795607021309947300116326748025299409455105679626781274025118664473215832819020001792413387906432865055182469988118285503447941246332129891338445776214045744962721866805227014823668405608158066354226644207410565845312282245019861654932044731963421189323315056062372236651041059220221144641509783241273485978062846877227468915427286354281627956661167069449650928166342097870655746236885920286945106649412781260351568067844026223341373472618521458103288012143316314723785341657372238071637095164580869996639974124416180544537134537355796508712200360282629632941369870623897933957898263769145025714526445759992212572403812258024011640359109633005734115809203071646189039306620983736356206749728694292656434052333462203842797635098677924048852313648268115396191089377047944032038908984507822525139659057741348692395908419036385201025737932973264497325848788736078996213330385546717989965960513335894507436152605401492050510529436155377849511941383913533140324269747653880911948525774125843715468346321200646290613637521308736364423785938867941730926208661082613313300513220312558909520747717172767395388928194347447129765540714107319280124354185980705944219694983885474098656363667502194464408270947443087145028864856990550294231572771455651235803331887967005415573761708857994719811588542880834267549098964171314479113775061523995082084979626788613898870182077985606846503414818947535260224233572380947169241772888733699384934744477889742387253348164575016685498925226564004461421354620043559738053476541624044648717949717984729164447138699428765204865331936589231101952157246397782968003971495983058017529395010698116702352053748234283277962219312585825577623724685493591169355183546865461823392270651931103439725579211635525743248325107994487551923038648512865430085743372480179508961622506667952269592232765515892075278400659422616336747898245566539347328779390666848867474483100018583205123649299031607197231615232802182537922881394251101344343915288934654935671551692600827463958884451394478728023806503020634736574974246343475371592307823946119213953532434562378462996622544438520956058876158347707922558603095676863404110028660581272139814745813783924483991368897403486795717623368708994795580676380894138334020546534146510135158422711659158488473367427825259084701294434375045658981302795015216455951950437801047641265132848366152845032467736701968258222528732511855651381214438053634222079035477688375606014004506157395952353782683753316857471362793983091393157784107911137097891424031839026966140953867819273301479184024944065292273700013875357366469078844358134877711438774046280451447760135092459558851255170777239870685382477137678645435733134467352242239410304515387646071485032814055714309540908409997115115149026145352134281953203385377397089369237042216306735412210999998888009948225347032458412098190181591273274222800212362544542374353786415782516375517619906581492281888487961334240494776262537599696170652872796540397305504320211524925650698152369528255984389216311212602918821473478737397876030536563242180082106515930050057332098036292842495353657469810662515540778365565741493498620411214865131256211268045309441902212275196343325644059834294534574011007673777311650107856174289941013254869233663950137159761458902555544447293835251929153340775752194426028543893941705138413994741730301768177996011490126510460686165405597500715658475539697577591752194272640800467199448407341751600880032625352169915736315163572005356627853325252385879121779037676439421332468562739451066673039041549696988609462891992005511408907882720765460343156607661167405544467640060845675447525826528248750624870386821377401788318697834816650979635181098496158987622380519691960037475470577215303441414773862587254770060525195680798723327898092102020343044559252777058356849860852220927052334013849815522704581605855191754577226490056107487140405166661494100615151286035743830966127815220952026896810939558518195290595664372957272519444001128292589754654916658674345665842315623217839470114214034398541788773905643475552509909633531039795620950250362756377994021072310566901447948400438542288263988406444735312838525288765476036286365452218289337140180443308033250048419124821274015595054146896340969546028391570334626940931817989012774394762558489917020722054997056458152024965116673592566044886687997325789137584322080137279707329419944144353484742267550436286450490085475392500774758607285655629840841683774349742488188517930361845313209653202095570275737354320245214064079729680012816149560169448952771570369312464734193413103113725636268935809602187001873985926278674106215882635230292772642231301801650191838711260829788270523035556000408398516944640876694333183877762610848626767421075018159645513136152871188901700678763517503612906044040569426371581413593768451362159087894940848088853300767759386966439453722364513743307111120161183797681951608040151706189411678704892278208466272792809682192237202619348812691000151130481555082229175564564772635331547565518223189472460740332370639080006393714146345509690866982069696901938745924398394932011229016416577173726109553456000768783311643168462659327204930554541013663278647385539162683936734243766299707492372164957253134673502219882857970358848457669253940817513224182588367970517366255809558097831492951846443344665162449607589962959646244624670226694782247535892997422353060474985772850360555685243639315810142509612094221469218702377514679302402226163673024290483615787775327533174754277246114344148693263926322428111381500557922979215164426225364337770397794279753871092841290575509099467720044891077399548563738255584444640483751925177376405938318197530201676825324475682422068799298791071299656962330534976774387295732525449709188993283253733686145746807812748839669633356528029138610524678482036900347478247608081919926830822723209896481500898927575731838288656064858418262045465945322779846524563334176027399497292788310829110922365352233470220547302299733016704635415709510560678887691389897902069352555802607622961337286291776153136241340131601901764570672301364905364328417532977621289895338466888073454931998369065169229692475750001685078474331786119818711265107936030240845937171565985237177730592405023197518017802394248639691306345058752356533687962887018993974412684333753079291311939020739074792388717946904073878217223550312857134476326407497381716082506795994469365220580204274756628110664854785919239875731390942616387167632825777922723819500079334816354931383699859227104629126701989335080679033631499293655220385883921569256058544233656706527317514921877666143184297012347719862544119649816560265355756838023869055665971038410200816041767344530512763426298045018553737504711035746407634899769001287369235771379213655072207566330531269225320150631461785803608982841413802746823845939481180204793659510805373991393325127121821802378457184694018534247132861266792316898984463244108400940002035587022350672004755866316897876059434079626023163677330535283599094020923144750358440099964675298041719832477954564736102121416007255112233053223605781475321257010528584762923229075490912421144028296961657441247751135878718058750536621539601984484285118478048868395003160771201707201627015167741942516021700074782902312424310616809918537944053404691681791790689866739608322714550538447337911751662468697274350860139700503769225560486131312831129076448980033505436717602695480276040566200215591624212286347137858104789999273978855089514161413258537559177721924855093509676550727832005125335937451803429162476339403734665106510208918208616697944585773837995585758603449568072462136556101494802424173247121098976253623515488029580091069895787833111627303727749429517277871228373336535628580267833741687706418800734069486437495353945966282584079523548934752947861033931249890433124705865323627144443773185577974369903430878716587212989898329201447716832699298109066254657441656151407372551803073895144097327646598011766062528678984157356158846265604309647783931529605760778337511881382821883842443644864714912842863405465749053511279323828352930899809296521793616902653106550954124331585935698612400034439346742780960585230066706464860213299960288171862084471664330768599198950752721571567273266524760912946325510073808357699815447966599413503253449277055032955091360183214307341787900761277011685301440034697750558998180281728512049591599386320571267578202405314288834498508623619916121222205769406095264777667650433310022640839236402072820396112392936075912708021908587822624369309202660109862473411557041902844347425141761020832758608265486862201000134400454894917704328209971694716690039629662123047487176499776541670946751704295612498324160292021365929074432621898093232423921902569053882653730114859841906888902502239271259177233343026937972973157935288745708568890871522098720031785703364827335521339675999055680359177559534875708508778802435620235204706736876136517002050617231151388008994298233117916212807456244689464806893681552440708402482631334596339859325586467226034315294202467062287987874111694704955831828251032979385887887363190733850754729485692236426007511732238682215810856998186672221586854589018283566720253862876652848122795552837031954100567029996594624610211350810142563309055345839637372892931888840443414752099931995848888798861255510363687158204765475105939825254364723378591050874317627428906533908186441547231231058145315550367033005738415236467480839055646550253024687031621705665083896624236364122300147429519186947779350498938543453746042085857716239956343133372068009198293517692379169095005826656596313865320961493601044066162802609883180087008805337493036271628311988467361791987546782259886818901532894254365898678001197726852165619625744481203039605054241959937255258916080772639988005118555942076305850089154377922248119502939040881584130524631481683297076054266542699269051150921649795458484925235647786673897730045176370844091538569494356181746834589929761899205854252296242897433302644080193779687377684215947396295516456476971128163876782506881998281492232308014733638410899162105541356367827931776663629487326876402969105655381706751270501227693778221218935341068527757585691880685339148451188458354126110533544992998223830922891126190571995176967448702956664069650823329219834555189207912042819606331015234196485068047089036021443452909260225890268994065501807091894556990024816644345173037938754703677820363018358525574710621189308202755676752634959231141739305617320647209131758568397010486899259234733675450227844665028819632365744701582546236441923195215811750175558515628964723657469200469214064381022186059525619202799650871363057263308574605932972281880331905512942134074491197913470578992818944917804621521795367544890905543189492079790784337579960157332054984624742893523089496550870810945078174546314516732109135034561995415458559070348060730866298601390398672007062525634668125277318194013909957616417059255613194738711729585171831748977168290432813735730718296023983610800214997870314387796855539916404511302568955461191201785959846151490386971144424041639674081233579351028992758916626725955689782295212973059462736059680321762914071898492619660958047940142554004338762633347075832401304314648435326680340352620418931399913500227025334360990139486740576399641113371390196039470816531042364842459931180068461123293958900593097097931360277407035711089060778467977857606808285089874745700962747857676674714146421901150634086794818305795941412364198126989273637818093009013754864625160784530928523574377808281392538392121204712210664282593757487157416672954573793932902533037079825880637988433783894630877269969095239347385672293262148838023759217781824744760552273484508869029816967664618713980208906006110368766544091716260479805151886192124141386221584630594457716828922861184105071869309948183312987377813793020131817914046377690355309665311070239104548240157815657996384118490184764167988769519360203936218149643175299517900958555769522883243896050695781257112490454827395172780990495155473763570438800418337768638963235794945636597096222559097789782016204552202990539063184231955673339458998649049752276103920877887293847082267301844451048240591489954074323417181392616926808698403042192695760266372397575706594060278283350147453790501684169649703222086048442588837694798457644574793981925840887030132623097347743841446451677784405776708528208072408830877247006692561610718674673000240427582001362498620929419380409028722605520836438392936283119160163917722637971150005604784594907391597754939713165843295088419897305733869921616119550121620480944207901108396611742215775188553411152145582284081234458483921159687392743369933383098117125188018090267596053314031358878216863289183300202646192445775144436488221250520413416825744872335931035048030161138848699124979461711752024029607327252629996734129277369067700078243056355416630826528868993867169815888433611519469497926507769750363832680117526352925638011932138699631155195055387347444577793302756077955507229672014945878004512019146233804039598477934090700706372507548183015925654474089688813308025697795469926374551800770902406159322719767655994858453467996634978348967626862876067815591831412703134795597311372305235409785967458763957324451661028885797172680978216062395439725988719045074762259594879203243995347386131527855301887314520959571038698491413917745899291982690309197145058443046427022517294997760753574191079105430172855059328173027449673864504772288799442419308564765084832010123422865136530170635313004010098787495540159381244542535778733855013869692826739307797999418559094871868827788058649029048864679713905019647409122465578794414050820604090460678783602429993174658848667807285895945127485437909065799686429490090644496151492686977602242599004461079628401169586035846784740828387023452443499654309693751298709412530877757402519773120739435470946621388528398806024768611522130427922126326876486566936648884135273758935909254513472008605836319884251884735813142700958887291321564998535726183771370663864760507436841234584694587899623991346959731281823188589749047434132340420477035242607227335074942484876188000740962710933362903596176038265227185439841473503534785156309108953511888225726237383506912004285967723203158341166879148200529021067190491895042828697841176731535978863030991971211806140833089397326948311373187453145516407788456045597792710088670872113119185024779783272939586803645732375946284897305497142127919730075840712270399315048471480442585307206696571132182310085061657326089360866394914010783083416957328454284287613732995246476785071047321933155209928996979526667236018077990433371555506926760423251713147264220184232170144793467936500778612916528011097392867228248915683019978333177614918923740661845625021766345673047330813227103109179160140549475260140772597485085333568675397801644132293530569922948590544171044480419007374262088740614394307502982196787395884948112559014494372480181684214123358036399822236646407219998361228318130602667774378309522185724973060936094754225832222389064377825810613748445698952576235347697612027924401632372535126012568265335134230767545462059624894545639916562240234936289329464369146382146365507022218499607753473894870167637445204778911729500322953304458062313381798588787895889646266811321049259916003131000096443337562373575470268659704166086981793806594534672578348146902938971306808031052774279311083192932568659637963552943122502642159661356696359638867752042730034450851857918656717045765254922953924554189300112883779242493245421462766742616975826990718824133723261813460432564376205788220497179148160723045840512376568660642345901040477431027750360443684940255423211353991030339936354702909570848967811143661120738961287335303429129947853182954252400356584831187662708165508649106414707027607430087973212165890390901021892672830474933127091553555183729249643378541482397601140972464043413503478963044906269165590966892666931538543056084526626953921375282065420228443659448157476995417726011560457956206679643354148681431964906340469781974102247776230036513048646113115431440142539875249013935435109067543070035544066590362618479061462561360811617016275271946067394582164844885960927039331218249595862368285575883023594395555541991692642101142328972418015485083800802800263629715966893295295280546599852146905851212236215109238862078771911563048091582992385798500730276936919930068353664116729784056179494048945774704045518775120681149447737829257461180102910877150454981103496743262940855718689986181762627253007344893038731681963701861084167537419525480615085240461906156869123002248331588320364175383767899986373374171688756945572133075278864161463475082623253253399472608158042627461577241346318162461384960285317310560732812479075262310536798793968077004127920026683111855209556744490822167333715729799766392140305493987731825987654256902371607800406361757063268982077359600695905929918806816805702465677581516043019726463949001197267466337028737258846639317772808191924831274101853865185738185608379870808362514243603235430395928463735230140536360248452325558796287681928123090352161966002589369115183521236892424712228020537062167184201746138973540279727778451165253605525155480205501815464536168254380597543318665080678587034021914964239459277737880620820380717552514375252137107354750671699594790798688806298412141087964944734571535563627226460652300676060392757357643136711969488994136086876352139827864845547621289726149491692012219019796363364062019292172167864079038010638837402638553798309182215951695260674947589968238037915369795385094374658774482703715741817042713107244322696684502647255025157501419353518682907751366148733082742575571773094168570416782361138124256266569652448682613517961300720989146857742978297479244668627423549326016458306165426338147515239705851214206051304503730079763906345121144325558689541254326460616662456165940377622596519071222283716679003555335957941040019812168224279611865990278701216139107470944985374831850810276897589458656352005741206374842518955675717046713776728451674064273772905909367618261885439908254467124025365140225054205475286054014724413116285534890583550891007478995634350506426670427919212906159457009251697247741587794400846987860009454715621067208503173150849106574423062865523979293688072205658826582769741632547507047633131840638442943847788586547494013036514022841516329415061359459017423595639574724156404572668023143375700911356795159037020901448279717387939903427785234859932842313257592539482062513976501911512644893443870762685232293765605873749590087132272993107798139929694369227503005973567968084911056959780006802900306428169969194489776398197995438357445060022020792916696263825403153207548662759380355562892578849239663318038593895693015038785014004367690976937057646384233244244350429731421762525137012895982525772402217419220779132459640615954982566951791098152158350801067653328098158326827136368128840741189063440357996533129869787755364354849015308594283739018793796010979333055486585540557143659346198706373891847995135018395703791572410700933032365712235655732698277069524274730289484821274361544894576026641430178442966550042616817375751930199424021944405641526647777566790603715315543924372964522766074244327892158276259601832970594019677521546049130998863375011953113748067605450701975964742124645025389036242148509901785521257298845003480063021244202746378523357885992078277385677758777188057983463428796082116678759729809761035557396621083286680390821664552952661582587715068362083376427469884739398270952131499519070523888163597264255829802771891616410794000554306259646581943388112407667789972587426969043021043173036347897400024248274059069706081456621097200846723652299037887590502536529315654082143407609327074790050071233546090004515030386730267658099736325668775635319117650490057681074709764558343564948506110863294043426553194973654093662406416785893089346572027318499895167078831899037580902612569376651576316829366935708339077031330499684125366082670901763530345505862647504614589616394943133476754223875386841974591641580663999451539184045230990366899231741018790116028305031033059920756556958725471051259352817180520430859143659283233465970779861314008288410659687209036146355185020907920593241276948653853909902071540441400872388856511434422423088511196899491652172543075695869596227689167586641626502786437227582320550273592478051299439689253864409645344174676797542349332421738862544667207303383220788071659249404112641521819404424553282555109727881245041292406713105845571737489373398129103987365420559909791147108694916206860112807014119419254547992229744420407431114194843710587133124132879407538369381469442045229102530308133999153957055723063835810090000843164765913998929042013980423738157207278951651318611666894615740168077135702762566017382739213187189984375648431926550649267360512748852669860707328938255370765926207783652620454752439707527344218622416129147821184434019220460043722980033412118763108531229779868947917757795199361251053306105443684246772884289005924598382300198441195831088088654127870132970911389423502216202331895140125605109521917974988267141963691182963093371931385762547857893738606403152952196183465498211810550402726042051912889999765550949243381869464887569136126332581852567736626869557858164830377869281329039787085308211311001323798006225036303745356282110675997780720910266405078483564928289015216216875388666800591203081314732814467511362171253138653577365279878404427706356780191639528341012455433765869535784243715229976814103508084897993307480758444410705480483378489263328576172696681842888776878363093121961356657212859612673154776991453263818638314826427565548482069470878563840617308760808951440982294317329653514545972824657477167651641671511331471817707433197085950303755676055094831938718777102519570245336319694833594609249330997579202444850114123690892918411169634905074580491269056189256001694040622498262295843090702711924071956303816925765281503054829624657852307220459512227200094501937023607626519173756730613689893498726941937526773454715279262423737715414643091773935653606615877149073737727054977110882501203894495883995241340781194949333415883571391383731002367164781612351374699279500837562909173453577665273972802385082136162381698649585950330835979310033748449423749233747558570899285256517687359899961875828586629733201453378021400982888947281732598166956523226699692876422440542284321634935419365686681763987690037971285389641607332576702885092483525091131367239109465801702529641718926281360685469339718034306181222503408925190254576591684239852592921621887570150137914809295486629114019772131433047828197506587164118294917943564747005289448899399881722575275286064128916031897235185286368355921418684271996034971264352931916979545562972456531055360612098739662365513835848532026838689967922546279944627586531397728822990265984718067429141087921048140278406857629425467349541993287897456417675681240851368104157916209698984705129510311870280842120956861229227293541856089057073084813957130031877348556780094460789610790649946010060424506396010373763041606392677920524315944416232909105707533686598926605741328992093593214049556597891589570147692692345348454377730354123770015850848118769754933350869878431473558643530573605916689203496137292600520346943425776289571200084478347914125094423816134589923345734204727516703598567847291040501749805082165345305963441129457540348415355312110807652794579412854750339062905683860291611637412171718527743403102434908473236362314657114732305333301046675095523896618602347539044266422257962853738117185009009533694880367255839706405924308176586517049601144170874148517843621193293895140347568193959861457411147753693521665336564463545977471001520637262544912149301411020282237861099607255725691555128082164648844306398175032835773560789505192797474227974974696580220045109113824341162008067757112306803788713414377962925649417652212543541103602169715303211018158125256180930621287050955140827562535319663313852926607263895300439219643544654893142151814556688613053226146957743616872824154869377273221844788908449543209156091020323763708908575759750758156140083931838651389598270287589159057503716352456913748758383861524866286097924401127147384110141138569601398046767309514871114567987246888223034263416069847322835151804111014121381909081885226433662077371428551046677425018352420170492956470266198420303332898853312302101315178672281222354144491518473478478164845500939139799396981943675040915092379802428020887848500158096033279887886386342432925708231585227240891893358045535580891000137693270431720264245101640237613531256672698245004152634384277939102782335567285228337956649892024913407269924714434619903586134699013125834513571353619859472271103593103276052550583129733383324319627839795125960987401130317085453041222011864293953022144258024046310954326298042561333965816840781924434155333146232073342264510728815788855210733066741475323980465970418933515588529177161300307069566172340578274928686262985047220772948233490827230845435146299902270068405305567587327089890982423604048790944233157781208960274051326861743506954621649385312689020930937853082230765552163727826249807224498998948233981765264572557546432067627465723499333376239097289311871390522115213945718991369425200452608017302452109918552864143747813449431447610273281491363106220372606270098278907166345675907455721914062207967938584212113902710824287874209099562359836030026063713543932500337994587095566361630025865240511839662960024716142866276744383357551630785137956508060179727515351395428393427812311930958619244229634663494115927894966372473972541006950231809854703648417797876165779824122275116463032719161505561863116034322290682220984602787453318516485909150855954845596995804691537112328053109020285163430883006936365389402196984328984257244668566064408437470074902737646012217876938337927410115239226385832620776790538097398811080795054432180895888981506446641921969879436047995172059510992665899716671302731275895171808040143134033155550017530630907472758516785621339422832281157183158927097071311620591669852566480882260390923192472768581403814105681643135156605958731652191170244227742952165205919362927260921320757989815133926928874405959279068159570795247905699659026257272118669084923566476236295441348020533378698646342583810873213834694988375703137142161551033121736637825640808997139621014058347316500103164096527420336103623479051528921369986295823156891736113162432302394677333831593547096770754470142366369619437963613547886739395231468046441518255282544226139425251291578780426008127694320881846769144321800427787568118739345078778631144353253308695113594358013741523498705198844044163861223033044722209459169228764384889289325782050135275476576355205573607250238978357600077582954314839005565051554366957086131078627718547972857101928713398140074117717396946334785830503241615982448760847124819578877752365228890240212608820749780223901630465169854351591227387020518333748756126374583940431209836270230433395776986343698637226504183506125796005529218559939763677819353165827124117628746978705157121806047446166698413133335353172992060066740121770032207589377596854706798998833087253809922435466788872830331844235867589439687906082689861206240423193787925503273817212904531308951129517392317438636681944528118953176687315731352225477105388316569056377832372099673063126623813609757890384188819463982663242258112455092053244588500981502235791275386647466446377318105756902656667715052215731239569930231827518498006768399494087487837118469982044664865702791265958456383199044728893647262489116549629847712783927053881583433613998484916464809850519217761048038078358483445501874507467921384211275846008503889046537633881101717800502513711400928535798593663410091205093679286837647901536883649977734110446611938858174490283611879760535822718215903414457966068318068968931604082603455041157798824252581269163867459946532840915599635265956906338404383138102248435388290512973262890794744961200270983472134241310560913914106312178200977491531125019166875786183268400077201915694334478356110807674595067690564117787094768879772387343698382777700571412964662212377754630035671325620984962679264181201216061987769388116857580571475795553022850464858472573413163417219423025128328284624944231263428305598967022347174597939073208596552010520234355723920207221773403826402930225428138152632503212818974151060279045330228078109170185939889144142055906024293077788275755370765651666850459775018527854341585725980488840997717619783420680512104381140391054344376198376044803490675092643658695389178656849804509438455985699785067782115066033511238688592567814556007403855137803048902504045987864890143535685753077676970354438361089708271141292159716655386514865005300054778432845807737698798164829730214498614589930995438722877065926267131766584462203423514006396851448702076741108243107041159503731764955166048668492330742906861608085884714280033025240871413801858235840546425227693062677600547709537609888448616585600056480733712799961281997213887330528226201233849196758572565608993261885550664384706216993167666625899933965620927745186261228217141159334627476671752965807621224706740589004883860806808963110940348390651224568517435043800123885466285929211585216519665523042029037157652490942671273267132451388183333190545286922018384364774654057432924513796353915302630852615449411537078098695002869896640063011521575190851788530896818221778580698897277397657705471351498939715402567796175808379247117286769470121749043340743069850755965239669640889961037860823542954099505118591979086329857123048877870197358017799039198200352532881158147135291062645186156348403081501310645515682758799785937164846069352712050056387594212498363542317950247439676582631060306712272169283234513554082622139842211431473239746288102292127228168246396294957616435011296716211076706502444926567694284667281296148735498928716201087806902773283052175150346760520000254888722271924259675259876612236132197041331785109253680822329053022810098722078449594629591098778757898148971975047141713927031113411003769913743464956342867558387056306916344142849742875624601417104589244823727161601467561410967433790186701553144646072800572456538898345667535960551979688829576091750488638656616502171350066298630250899088811766504383568264188961168266670243328850616654175767415453068925845272005547225638861194950476736903411966932396651254789908849779993245028245754763382511219585204687548372726235188071461685484303618207054245780686239210018034300120984857914130127223443790768187455575686595985122761567981682992023433813471929927646951151199723382574296294651459445013377376049983890359421745445490489147868866831415706556168155126593584935094786113840001495789740794956109707391629439441353466613274275992032066606317315821037601909666056103391874775517160779247362850362473652008154136920165739479853539265396215915293980766504640620984379689369971752198600965428919928887512297578855667185431460169257203612942022018091681404299033673682582617383388466280637596401886021639822155402439949710364226173704409097410164486185606947438067575437332821903183733446089533581806700921758935382331893021326021921592990084940785486997361878982926154187527621786348353303447374069704933778582493750216217321587842695461912802168065264974826017513158568519744840676546889011102423111738218015340228631286360475775679679481476084086290704855771919337396289302272226858917146109168790192689580747631846201744457411509867446182481355147347837212088920723275677608336583773272788127412040050601871569717599849019658456038986535807356324538777964027498854957311317341690281996903111312048579141044634633999143652563806195687680684731461887806713709607067450153446815508235346094654974095544089903303662048535348399449919607418744139705271527772322297713292748172553944995064281555261225873447200691228430935682845757898738301191620015356027689712323376420706872974912861412916061832331715604008878851011635609892870083370064523148290296191350462301945623767157450821753130518499499855409121460520458324240059045803244792811048361206661595380211825399142877918092443157216825118684913547839117700178667736320454883892166753515192658895255853965109297127691586676616864958946749263596757979333706079698371442457785787042400745763993237249287940434346439893598084057694489294056418465122611877240223662612999164199237335471070907795673277881945075831031598713054966624069415132877128773795663523872881009648287674940921038477814859679888560548035899376471861666857114603507870572137227921705046778913464712515174277971347117296521998673320757578508808250184979662545798967981665187709429802263394070549185796658388388240424681829523819281157653119138525431256946186535604364595266511337172909612330232796864102178328642753985603629003106866778344703387930058980116588254165245216055788013233537943142448256272318939512362993414436200191456889201190394645901447275036911600813072632834120540847144814921962026247391430279528100035684192431522470811559746877624246387914785882486904743600114768895305721280532803347013121434968891041603753522847652184076976379146611215540101520800875806365525920711052373320762742302962939077929077786349461497593541293679291874286045877604198194032650266470965898721749076937490743320749631262786659721846875859875858705646139936137762018301350469522691181762362542972509003028193331923542531202011310337813448706835361343649597403514582996994142964191963293834260506169045052021047216385784266983769771538366616501792057378115082952758954526452695137793450718221739723112893195425024378438078132553897095417450925154041451709940146959614758868041018475978934745338040942050194787763557313585059864942210863173903311668018936044871475709468498144429584486913994039399932406375573264821998989378265968066268167480868760634507148348056655788296138250141875120951323033773236074940150073217578226775769280281234729632038933644675724246838375362997591655671226063353333020705479185767644252263761921966207668390523482710404528642050103668508068187989688388779659563984789197792595001800988285014398903697569803846688937996530815391485047142303694775899435328006477819541002319293677274992424299504461865609487796230087326309368053082125371376381228412686954746154251647718972196370642263393699940451189628135502092983862453343544070758734135462716179750934703387349270986242378522815780800310091443199671033186220366198678127233454482470152542605539266074737560723681172152755266330508661883506899496313628489278158317334352042320052310730337664888028232764547415655767089097961955589482368058015556085210277836196512772209353289128984279842352074920577482627560891279711895794733322673040888797548282502097602487960023804805144271699720982028535280678351181529735394281043338265810479144601043534177322175454146195674316736984976179742246062333792436709181871095633406819546723633675328908527090383724126938512095505473655142435017521892021863827485896428283703507656906085192248627804492509819849534447813864302469580513502855067663457341132533830759351875538553920383302351789875921806380890786711205468090400175311847916279847357328998183147891349472246355006049389012632319553290508779644231913518791490116121004115263991435375874326205234161782369968778287288395879745966692177887081906445308759316753753073973093227418008068695322958634064439055055518358255539173628599404588965058272439920853783006299689502316026238439831203866306694832534945415798783956505332703923199900268102949802488475899120864063370491094783175552766077615161190083849292747698974184148835393274181484990280351839331125689127172006812345266367058747187547714054273716636706475002568182326319247861999221368432258372627065971833020580568349203126629203960109733935474993968122626132629074182487657332883702946039090716977139363610253947601689524878058163376066992718289435973574042709236893692590932776636352576138435398469981707499696741801326971789840137144287245738787825721466628167815247468851375222746748651059916194135485442120771574675960713712391894547937967535651823366912787394375267864418755821236933623394380439460686997580232675148406665954406221389998910726026875025964497359062083381180636095681485314671914109846772689867217827164040678478020346896704441131583408571590926050745747904285017217654747721298528583089551209234951546316188515695531558690507367218692832482246742553883489485336645928582261713290619767216802912861594112942699528359664434607797581780384531110413059731137617480570339428281277969624943336274903065755449198362663626944908950920383803108157000311205649282753218028050646339735975795005496900860563672766163422251331787395829458591937806044470434131709970604059128615172399868849508305459012396603373617009541339043045764620159681537554838108826106353287730893862597871839534640286776201157327790365194444448783423658763525862629048347957327030389820735958502668075474426622588306097300634143879980371153761337126032031393624774280070744090480151541533938176719731469326435134779303023958103877054877277979849760428562381750258971054427472618538002973136107078373738643691460743249885175430486955475474942829507498999119886002623835894802395236660684301752505565260842236504561334926402621264560391033049542351074167524120699321602621304522030976543909975289022264417808359097206885711832932055247007095710671033747758775406008610474853016611630914165892143844973885713573984206631132233715426619172199045391422848945830993963200392045439301714268241902361268151661022236188457387545240685543021450766547238002530602504749940251773637104489446612481514550589984961039084554534091886633566703038147182292738839328238418018347528525422745091252089217765856604366746963326815207506133648864055673017162543852804295260686377967453870812722265778252577977544274871728836468906982863369969671862505339167604699543174848691105764895479203398018073544662840332834218691979544729909670601108672466448351369397595676125803415649664513142115217232700489264891200218382023395385638191585006541700941423487901255004924900323998039927032956525785193904158145025539622979653274107092133242926630123214777980507832803326737496783735002093892667175991242610195945874822004362672472568209909552790913987149097957791079847546831532209774080321132160141619690272112952188465268903191157923878173674814481001449199406521288891132565200195429194947171048180943365993731513067345738413515467988880655451626280953933822028075656558764904801953779781621173735140045343720814082226866005651937685637157601282970239271428260411267313354221285615089111855066222677991805911591898705429270140570921405279359782049949877478236683765341266660672848018810764858345188534222323061619950528909987597906449924782491445511086558696060861821913423088707760786421183694476844357972024183092543310845587352525763443249410966451509243868456582130719811661018998469916518658530352792411317559836623472609567354873695926450267233369725372973340199075636168025432506548544802406068208092660920208602384309275897749529367117661770390400078094811481789076085119765113396596541534668749818217969976985031383422020694455106993236185103572575666485069397393676785987223369158040659261174100807681802308114875031443218331114340439899232961234068207553305022233050207605173245247601792005479940910887645495475060851059551161493917665608914049871703726665087195604962061795579848708435137143753828438837401634387344200361520584165114835523701755613198650540712260968698127810353986206921368627583085594457565123377963505538307192096298716446662911294903343295083822939387269411147872976325158449984837105757494423477808105903048103898137233198615572687715356326949148859454656402049573055317387733763096349903826408992676450720967693760017708326478175609477632188101023483619171652300492731711658799427281503538206524165338308748731853302775829490314833681034884845293509843658365701351769474197172447968224860833772415994276926732327166694614322970460708110665085465269689767566969988063019919480078154271404416599050499753473711913808228159318850919905398782285546406074857826386572171519874740947915432207480729153000297735782217159719207893727476101964874528978052989134638942129645324345467315140539736366759187266219433039358508863268171560033157079848269910430783129961207506137532108977138218703905215072050796828344124004828363142941344419943400253053572906175031304529253287131354583488166415440415610497048274564658830644813823809560582614875774321753626446609876502504856825144594474373731616898315851200748819901387098628488279814119315483220754676083919275588197837533489303863111172916068795703073321662603385743725494092561400797837033524095851060238544790574376194099105758625493683876801822292508701500058400453993367609283481211532746758563630840905786330612141582897403536167022924980119935479256363257496826884093363560058332366600420514795253003734422890554261518090591344920413921933965725995025576146806480203891527852150584801804893511020811368139141986141070234047872661427248509326441111155659349654880226854271927068526734049074845080030510994976239397800882136153699801809238319812669470980652098531464154278452677010722208485561661548896013423994753556960248755748005517294058172288636323100096135282583851754359928099336718345434862884642406060786891699747554347558991885229230017105628275867330283677680492117576326653419365447840101356052573724707799710362803296390748500123825082043737253194808214319574735564411073015317221436515724695239282197418572011759660106993808866596884286825666014486137424589361607548691867653769085707620047450842548417908368314125107007059483460682852526384841586470235697089124508798558262882219030346120924927309713528541245323339716669151624172404670267472863476792316793984004458365221438310591330002636073589752804337526296528106566335825606708121450697911840494750627661614781620504621057739623724964427863226366989166875479014607652302804838037728607227884587978520863309441866475190674306589262073896131575401441026691303185141676257217442984360905221949070866009764234118495976575584474209621443850740469907930274241776216012883898227090469453302123861329890665604807397681746628284556553649224156700792231179783036333945752261741497959374202389802507947560444533968256692136873543126106357987448029594582120190708780326630556754930074981758712003004316736934450046066383715211055170388337981138896946526673401667542527213782124607126810019836343564927690288825393883681915835022380296320043854454313088708786012571150609467443651414395076710400103760368737667798459219285920793516517203703783686768594617708486266148241657346641140751956471510496875565372040856372925410535944458516884707699767188530267383410617206734933851353603436642019820722767238464582975009711036010055450289255585418953405585596279937105752788113532948942986606343754923019428385951915213842494114267433383868493150611782210629634700667540203118693908021802073831702951513898782685994421332882949488311654099309684604766070277442159309742378924520646381809021880256872150583364546911068747158718014155158850122684372701815541534770192978030978041632591405347648272003582701983978530735435971465768107228605105361953202044188058693636336662684230666629401623789309184071327320441219421749552939072310805416216334819324100309786216522245888236115329753315370892699032986524956377609288445767092835394758831747966169993168721775263074778633092913214630339275500900075534585502637953972793441566729636115092299790289101677373327423505401976000104955852599443897817696896915029215200720468277986874183476369788989267598129542245525221206718752941812634880352151279767627063985524735324551894249026824284727803078147867102439341949936740176050562588248390228805546886255201322566287400646683937770190757440317129501279832979053428121176714922417664254619433150263648235937838661571156702934885962996933175913826483488999926913192574684941449254993340746123662732738689372435202400267870478793346077369102621884371730693395630965895395951680851660083384931528055705306733245471763794296205419887020638341477429966093604369278971468467485879705054416041089678998491495955434673325200572987902708200626427905833336833958913061000061108931892885393805374998842023583045768634794159268273906640114339278070306044550329120182476517093403663123405507441753127336338407385662785206658616813181350876859511831159292795127278440156165256614515440690258620242878379918834342436539021624364788820282613468224610495553871869617980082163476181851691861022097983773839271068275839773172399216028289289109898367216404832892728542199443099401395391542811997690085652287303718703737349650003631300825963385976079956074555916302663826537409368053560631083305180762272120659682538057555905825236098713135534738763924615560202091855479488594335750119415773307594812286373818085341205302120106317887574188801316622193411317911811177199402959178458773939208302539309191039438258122865575206229135039061868767281595249679252114236557388033980086758650505425895966119619636657528169185577043082069411415500383433585377581448513641311270440878234248169160533388258869968191918015633736207101778408327598691051944832252680990038485954190895090700949329249838481674877710730996612432086115593411137387433750327639547651382725101484089209015822577957348916125734450560109362284274939420945679407275902871661353010707832511080803966501105575247192819673589959047831625635308775332088512116194909679200972981768155647317044826161957848367835506457217396902096226699617798555005059420047350327869259047168778732517086958087356110018158439825690578996975103986760042137450159054634557547767666989201641353755579601668442046980753988739090337251146532149570775346776896430256806875763658396051774343257898926890972701105407275909153757457390081211059787626427001289456835178872530186496465631575988854459875638656621445774516396463283143484826831299937383823562392857100078156331442850539059664048716622956768258876411378062745121547142083722217183573348146158110954700910097914343947809365640143415178769843924042489798829999538431234698956152662302019058902970746822418485057645480108231740172904601757951675432578463246253174857239840912591105971442652670577426889510530580659356593162972318675973881156193889174474424299976261705497836972356812445560393491331091720538785379547312681514611391991222403423658766665200987556531457095767747160582852236912111297237395126367440936740240797958235469464187519511704135360966581616490397468014322107186983284114833358304576318593652259582107059801796084895499384855776706477930347943029474066781054890002878911013975036120514149741632979677761144960942811550086088257516600004197344097911711907121790360619130559235557343991773758928848990813938781267362845469118491983964170919951588410538543375385084632764675885110828290744476627448649476269002965369923012976671007183776257756334264836476868556302641291607832418916246428875439388712970938205887990370116460461297107980873796394239569641343051401108550968690528751311260976815041073222637277140027236493310575688358032453051815862282633475540299937576635513719567127772261024300385435134475631922045702661254418759638659629606961780319837952886110710669097163819972922233141162816284140430341365053702563865265639558317540995278779680795090114502873378864707611162178965915877175157684172420010930920542682311039177420663497967182256114108513216712496390555204186831738745759714610426783284673921987993426768417556806023305274474013016549553544945704517872504223649754640042869522598802906603559170202472322552689323183728868912353143460005195787575907932728911911794719598958472760538950052991324596767901652682052911242705818226832029004359120837836925337178503018102252547873426062804484972700757780613018380207650396290924329133855153636463877018822893812599505381157538997482970035637899164801713311611241849481655404438091296234731514833033314294617662778158025154161356650245464052437151142188195977540215397005235731547658255841320291318816246331815366729916678671674882004320285165154595643367473562513774035618810437509488363414087349316370189910213485553395272295041097421717405423281394631643057131083940458265880561091901053301938006695461305487614807165603721695560618736326258353383787067969448936014339479269842456488554228967817646408167514469182572135589127080314826118833716670343741075436442417838798709554112375215788947306331761746089750824669027917382282692707411150362155054229469611992983560074227948384212881306675517156245391447361322766305306219731228118736927689424710192161053037543013014153975202126809245529435204620946124901626863667156560214066966047655775209926466185213242911971224287040894182588704117340640317867797901385885297925264606174671098596109182898898669404493186913579458739064857945724633781212484669364728865803987384922005089168980350355465119619588154496749313177734224618031632788744025292503433908442107625751931815647325542192398529966756374434867336071366972678338667872755929266435175517043550875699918533077343327513845677725990887859465075139073057909046561178647084114492079617528023264908793946435072897900229774779180866496965134135228435261477242008561694185347590168071502552411157118154774125485203642377897779935745171035572515174670170066242068484732873973585886022682514628721040527600299080571837204186995922963056349102228622522348558051588611907183831647313779354754208564996137148840396856790044541194060280193934241972340982760140548415498676424418627190249036281477416492641689353152910883474997990608159631265431418565739245341966544224663801159052109529957703368091702858049302698856498377995830494381139777473336379900251208431687227541254396580458108462940334912324899963737348912629986195891707463717583587906683992753958568853592882813697664988886527867603374591785311874187522225121535801107187279193974278746390472593117287989780286583949080679995762690510628787750242412836416242894589697587975082157651808943378586680217088211130927015709374220258528253906649379654943025741426433959007337294700528875561925426496458971664356092860178238825151764840134216527398400338860005329154590691201261107130727326087810742203069227052679368654284768400021898626616025779067731877771900371702975772798458476768014081349390492758627284295083937293950498249008059096679507935617501807134917795210378139009664277929248043861305338441578834624147385660239376749746156144324925697389642610484900569341685192259190378798505923504423570138697342210077217496276428265696958690993916902378792835518942431028673248308815425495848266622452357218519052875062784594987412980518201647005568909928156666234129379200242303339592745195966369231994128486470016104936077001820890869139145410714482885260298214128576270311685433288056049913692830298892087943084239735434341613961280616664862468728346059106278200543061707274643117686387247727056675736803742905286987762452214416351769616056739011764040311692420196951016364969697903046798274561449115933330049927237867001261988082582835410562082995928753128293817402071872711983410983529682118633059507198843318903997144265227271353574306580324524086161862551343571245866524354071141034324423141282132310495963837173051864961347620207349897919786174437937319285678016912249461072715535042746159892818250138840080704911681960044205432904650614221539281837242776689829878416092334104803645982946196717197166141602891773832258289152906062927881775924869738510518146921135845153582782969925635499008443094572674368792992208526001440840840351542891028736365036932355245940123018652781151769751764721874876048982372246830130198324217207662979761000172854231001212716654163134780677841547078797573253413211680515538851260896915128037637064447926777187783502681275221820726728142754007982294274677892728960387155444443507535886747661620932020207612809868214777952170528773056641152006785024360708821967538459048600640131901295075537082298573270462864368546676961370914553254793181045396532601219445403709919424612671784222538670676639534428050912139646694247093037559940006717806362328521581823413402582196719403939186481699044903823333855319693396258210167768584809273735587435380850766487756324240013117298905959322166544677630353603503821239312672603108082472588736462643933785306024319953794973231464466734291323622058027456383465003857819322593002559881502048309764231190216034553448606452675668113271886048846997647981963798179690285766726767254984539288928003839425537431339156801378351713163864961193567704438736855602451866394657800585782932507642547730080017950785878877668792749380736742244910855320477047449299335005969719891741353439810499415928071896114402523223189923808478828861199958811895144505640158146547389871660655143693668287785702526319810048105547069238531612949875437200392106056758533842956281457385785965767214788384343381647518712667050987035350393776379772821162588974850567790110423892796530891466636954866168818576505794884601309717761664304731608503943801930548683116645163198345283993962415392492189364846021285318779724355536194519540652593969175116092954397750238475707362647050043794255470720230891592209289221547581108641955565172722755320476922522651705707509523284845368125425062875467474152139633020435627472833201673395145244945521082271633345849162621816964394332730278479868455764118575632333516094207120592679001420873042453076790422206179855560780555117613004435895738181668527859881937859924750691618215294267300247883688608768777827571364185584827314202360752275884309896618522634544982556383054036121298502532896518232329689061973951516461369132263234668730053776810225281700986107856730439216009888293408470012041582369222679694447176144569528531069289974608591946931300967287458661345188328871416363329612336045761808675878173476992804637763889435128245516271093631322826686884794917047260532121768515415333122584217823434704873468086552377413070669835868482675573817413239631906564949064317031955373019944774454093884815160323653523198983778782577840049724867542095902252865843165045753485259002571773398071500806283721248859348024177421509494688034994042588487279795107102892980262318104517331988940945719073583435335511733054233816867832372453945487202636997507471888245720776910612580952517535277809305683778531608628735857507805091674521798821635806356311274376047580878566152403497037711542065400046203296077392904461454484637424234409631931421429795906244432264832208177798919141586850459637134803042006976760445944466222900508070949815805629035379654774467289895906823763911947049472709019792471615552416295047037778291927016844017019054590162961175849497992097699588660438126996471180629373588585331543444861807368764818722041830452221594586263235217874366897607097572192418085998779596700428275455752686840158101036083506554679236903618450406265744447476027159271863194068734454566347721461381728301728669988785454665264028744675981687575652542983023231031101347246458131404033904698772835110662121559704878695590367526812348774007248996299935886569640627893086777745931000994749018174362703967102873366157669169980552881218604639453276931339110873605071673884849382556119559596758518719624938349458736711317239153038530060020938593365289614938067260101851498548805494923550273369012873505969746049148647594473108951041787202793127586331633222737737920854096314298434369896849564522356098016577128360233519298728091763249688185317445921135944664299551961426728324155310699685032509615098650844283748374607863233983842481404769413214075289826276686078028547075913133031064087686413429380447666627577346078734883462941032576365188314071607424747081333295686233471725504472305023084830940346949433132539806957652298278352231248387895352300491012328353879476831269997498383689448502465203896827489874809409378738843053798634941037816929165308183819092354803423278748258311543327712962637771231791807961212646786550852686533398666607975689042719448598719079550335140471886137883331641935877495779019419240251706062458970447173656845238621546975777588802041456277164138598803680041777463007066879760358978171530590722974151409124338122110813836861525135598705954616124903927088472993439041116449324781597185608647609175581080406105309602890292244487845109008091882276594164391482790704253115005038540409582552592846775631857470395835163680661503427287936980989863897510443642921184452317152956143740340176737516128901250065946289594495155980607492857956188025411526965888710724756278559845437726392403619511179186839368748211779197935473777501031623580266782177448251779837716347616595676371823982129522275841540718240468241037063923244021561904782979652645768371295400803263830818022379037143166084064183390748863823428320247053005371315239415189691982100196241582705526100676914081120784967378878895243844440993886556862222726361315970590436873890140267165259188087422973499313383901433444366214560597359542912888910655739161155027090639072097743391822033620274568484101934073790358931526616787354999244863769141810319222901866410505184911199096302708062655743220887041539195628475328296696200206141999210978611289532466396820572246667983639478184232033440912820869808391838763593358714832575823610222446013544366702597919455903448004314669744305884377442173613045785681754670822314843661112969834375560674005842584182011332958423761921387975739350877412418797345237320905045638334846120589129882617367251463650110298190685654117336171241484448141249848955366598567724030647603473465833999283300366749767807997644553579712359349531341160228416989396768757208912533251447494633864409096563913767573672400082819167827269350254458515788372061574617136588597221529159866796557080775751559736781913417852156959909915650144945925557862825156815406314914951920763906506528247752359772353918106314323328330059359050385724793029825003483113759019264759600970964405341057428354345685246830284010441919370937942496621411670675253849911946438149286373267551274012146065108026864369422471112575600042573915579942859548713643942472003818059709374976460130734245568343061854910392444172538509798539520261062643941300189649859886457017539742466918473524083369127136968451586328848838177918675365186872300582113578923889427441042960704327921106098288115215539411945148590148040865457814906226658453628402174563387779866924229458426049288258165882533363230399969539009384953720345287366994611260432315594573328524810627825133734695488095561272200680358725290826512652266013050969268161147668899960165859407760343214261012278906935654109078355544051557072430736617509365116077886489898053820416946372847552684924427517277806766001098400452937552786433441970848866431997759461970958767328053762657019555295886273412845980239127288704996408181025493501262790159700272992361091628495635574017426067919199814693544999577782475737180764154581162142459163910494100576898459213299987588358679593855554860333386935319357341939606673275087571632043072740356016141173428289511124125111458288286105306835510884782681071950583497448002465121638417392933191763215519545185001971041206807753217255239316170864968167085979901960993641887016334837337584931726561734645314493569582445812848445413793152337770067845632645548265026153986235645422821911800615835130415156772949488784994909663497552923841253512627288519070668081332100395522277711090611868394465184208973844688468951039978037668299526035828468214856814014960159570594848637599003095556932859087861613253371035787164955237154827919056830147385393487951827699945122306661065741155759931463553642253372473081291661714108588209071646461479786852554156941135625990784718911666160580728336514285801805548085949111328784699210387454161734787300467715777757812721028090259359859544545094680410480007893306633506939193205188149823424783346909229848649832797593443840026997457981683472083021448101209198967425478443536598627932771594299473939396173496792499476362540263658466958557701543256804858484046108357185962807706972508402990471691457231662599176382833314031719508773888468181148330560533423335281661790727399348780987218935012714811024945176892539772954244599045550782972135347374329108857945906379688483363574148292111149050853238839752538881466886368611139586932506069731387815696597258483478841856482777166165377055526235944624552914101722110887594541001323998493846576660667874687986497539460836457225274539940029999796311759852598004424914862447072901391632587270710550481087085371560011168592560051459660600151511475590118513595698880559994262538768655102651688762959652957559990746321556179031508271714992634568943941019040467204321359887861995996420639803222456237725226833543450110219075936822056125073021065353525991688257283630458971228139272688980840099483170073178485649284208905552380062540771127016899551383399609977144855190969561362833231011529886549195590601908749789362911517129475443677723960493006565870741779509671549975347449249702832625012668027498490797090093247797639843861722387269550109446784305850774026441792795702328231460245186261734828936472116244553547349248633555537253620478712427087116571687707453354775668065439735693807804626783163035463359934920174325774602391695031310851304547162658045121446222923565931439164354914990064432722287042325437159774591434638289377680106596523464467729444276148705010658153804098272455316114292676377717280859349219655143442828270361318623018557119274633478930368337543144221561020535381927813787886542832848945807974669950433467448038094994977804658968960135841637317789408999137121860105579947013668985070992472259028455984282870003454196996478516482317214349028590705485167605810991720468999122113761815592246109889230720509552525359807453076495577292490387722238498564476938281522016038969456466951252547734621057895341359453576925008433466956009702525646663945556738653430825466540211590524953138643425577924621133230646256630497873604833880026358031521036637198167278588730376967061250001229758379842408877498017135658033345116857418312526182879362472192346348955047344628465717293007409078117718506035923295979515061160537586687596338216347155690987332269798848536026122121115772218211915922817812133269623521011653932271960749385588587203044960773789909905842075209927959990398771361772906660321259755616164417334902150922717479122465484884300061802115116202603356423012546228338018199626830579946445928924626498054570128075156219377774651213359961081358110064774422197076449776158905827862873118767813851563227183639084811818948112075175638842491151197819884801850582864178995257263725039462197172942178828529907770490821548274364430308248553090441456666143199836630860766503347496835444133339619480144432238003084144514284942747458253574023075622342433206003884191426945509572435389444354944279621283335920534880506028102737248451718642531706144738693480036402911470307066693277097579280006649807616349117317735102658333546608937203888012555752262341266446563356068773234830985856606446590967147378616807480102844092258581828704243057609469829712747820002845534719477012123085518036663127620906847831069640712232409969601592551417794832675470184502116921405672849090430505813109213933473559193664901914230593680117790919176082660406679064412972803898643627096524012361180866460402238711158644218007647051452620247137862204550842920125979564011835148007830530209377704702014835263476961609337133465600642401147987509030794076420527058992619028866937590411976102971997206861816799740413214594815122716460520667718044060273213255541571471486473290356607831497170211044163803454906074335232103205251334034725349224288500379640127146976991550601950127328820350826292909918631232627638648125707469529660161860612769909430672286564369564421546421947811626279838648160474509734169837628805382616352363341560242443034329007825722711971668851305128508635456750262884036513207579365747705176911893099106122914522224198023803271006454700483842876639962269751249411667849678593096309519634101400320551467096600374670207067153018095903527088816817970248028048432217012334948915420268551748970155875015665385729387178637117833002010930389473865158427121495819448055971561305196838756407988660196292614458721389769525084820531100936673878743034711695995340696862683259021522774455139259636491954619991828641944953770608212908369569058597191688134859309739102796651443079541495445801086470036769928071123336030150167597059894917057519908378674489822813570104300733459728144598546731362367480072369358456008960915872561794011566309574292003009829913277915466900866034724761050382377782513827558699922422155055774698468346553496420422483042880783269175694310103840584582919367525739321222306191986520322701862224605992287422457302684080597557531173319616259892049164044030289075724396947743597664332038972456499380650565956784950818175447488633763016124830542507224320703194055890690208707972045870822688154854033246757863080533490845015482610462646788134228677537956571570936700611956478764581136002922966019351407834702837617062318905575936431523053289577520766940913444260306711570942150139042917296632861053702324601793799917307410239124357241033523004097434789733760575000424639263525040198732638748287941138875964358958655146268955027286279758671858191340690583041943086143336023613119121771756163642346278149728033697740800538905832035047695189042861595828251178502988782964900273269036893134279319359294621641275708149695879020274036982578426259564304586473350882313490217628083793361025522743491685846761805090404969895143749495516355870700092219722126970469348752555380788789007948315236490047395101386598217116243261293196292382400635303491599413459734251620251652271659568211171229013453720213869639933902193324593871017169684724930714164673026608981502548237628470800634110012253498413551718695219193340956263392264234197018358233033902028381608930282881926052855943611635879852644610788918910753803643197814664434290229453421400584222175854968805786115423673808191124545522347040533557057562704599886926101323960468031029562408358855467491686642136137629417609516649313381578512032665106264557322000694103122423772446850525428138270980826749799945717831223476160877922151806310346804902575803117997800726916665182516748028222605294176677203851956200370085481516681161120929537145553085128155381746743212451528571577177920139586139932744648192850064447568467125790536473613968308452828930969227679750320083547077987246189589894119620123279352413139210830072509631648290404807629089134276945687250652916023333082381607576361513588901617024703004809206411677856400311616342790221829914319645381662446992737268224842563209924453644400072027891868011046687187716188877533584732291527769950660375892696123852382543292155976886140704495084866786926149477598720100989400515002295808162902897785398261733859078680402961962824343589997649982090064826754466335255167491197165641634667694169324040082444123805783097326738742848545619307284094697448677855101408117729777418792316790231915277957170912899164171453183358915463378699674145200094079768656630693388029007424701042694045302967459828218961114965487929608734387350027287238863140767756542938974855054866890234431466811318014475016803556137564260134961245367802365999729618161439608946845242575491523064248563695098348670135675928070572263719654499083887144493970900931920168743468569769802788347134887814283934084392448567852557063697023901156325028919664504439227391009207572128059262327399168004364906553450301291612855652642147988782203787357759395934200330578339291741286855138929826340628107586406478724289829960673122402500770073443063511628840536073042329767647580743136382301366237115561289464243635014251088250765778327404754497568277238247347504905449676948124179320732106464131643763116184054979831077960522258485919441870820463439707989282628707061747472743465752407913621623673903700509585212478023154717867336410010838259972495947951453191107276810121286532937656147760801852288565560121721015261801884957474295620192628277168318048648320868959793643828023501055402057066048691400675034860703946222931298809619927083886197884519256178697447766673311771610490221369284028938024217059480690492275436393614377384178151112190378829261746969628853847162975008874356527782918101182266383637539447924645900294920615555987456282335552163378878391154125601993601170508197860385820216774972447140829860025340835646761778974518390539775182888893537017048487505141991174952704387891092846701562354786996089381949909971782972098604380639795572367170847450333130559096090333116787983166380229756678070804687261184383973278593301126301443429915332945688305723944134367765575143139064931719302777571863900202493283940440621698974387163327445704512517112611996011751081877081020816159948455423064173217250031907650570533261946674040523006865774934187705833238081782138696567093825961522307526744408997573083882193676048245306838599400708998052949843713734916840793836298911162252393012974106450562063112301703167430451574166865517950745719761339318275890269714401182663872147224794937939887902378611213370752240858177671161354815539160864457903413424737701544036812686863555757241790525222236882064311837527137398440386706810386014421724961843639100406872869210961007326895141173896578684480050412242228729249181174238696620711132954102850010025616151282951170203380012165719585327797935763732111741831531723918252420576614426961303032228077144672946941084092408431300493563898054012614307324652175593447826210190378174705506409026886011384766621277099627136332657364864167487668348875200210896950752594327988988513004588331135698972457552904265856631786378426934946697247819822998745939456495704043966173295711312179996705188102378343421912187528575614517981749112702730032673572960055398123077426217798395070883590858770742290693270263529185759515804937378631639407496363810102771134060120436199013593543137396215058462392792748340766135829911261737617723418212876083655133788621700781999378026254243164202854812373377732065061994471965158916279117604525498357378665616274142447830858847380270052096720105838950369342743043509016738441732736388857814145303566416107006433471184738193933561776240694244872785063107759782036923051151689375153139181586143283488064127076905883304535726518677084047154282468782560458317574461069881527658885576321057781380295885799718103928794241118593363510843968605732336426695141398082166768764437598643232944551141092305782355756839847663663876631660384467436060581859151765803499214625815364707180402064749212213792104633152997002512340317722039470894927035205553094828117294276046778140006790945700624393285022357373454215142286067861556356440882838498518369493491021931028331057174700541226743451498021426235840617171991567729596187236082959793079752234199198571714725791443550389345708936325919600042905538987003463242082406201923070166614253082112976665997646962003473358413307254714088700993856525528706656272419504457549960004948595724506004416957430772570631517759955896335729033913599156567680195693722331157007292189389103969540507993403278442213793270812578869322599731684287847109660239418070523945011264442923385663755800040991438734325840661757789846683761572404278561551831363958339635905393072324679530811465408113064197069495516301395795379851876280675229814607122284524718380736263670929485579548865672843483086419109664231232905636715772572348335967659961606340582701167971703199953393002319735063754902701120536809760711471782953551956737064538065926003095559071009964106863925466018138630246385280473651443667502553041474253400066726847919151773555235706765705311689400103315111060205601303245536197092763133340392884635187091143468910066453860531357547100866546029242799548791512815418938257167801971723183605507917749880074201470755589190213915818830108258974130810026327858161553037430787091113165295832632301191381738264752606950148171893456546056776945637409267608451012349326229215742641677886420716181721716454397646289656898350310040727532699392406045821587594175228658775714316592277332805974404470420194779493150018813833954803313011797109459716045386282115262940599118094301419325363744178508190251892920385329266084209720704108934826431432812617846029280510487508895515268972530729171068860834909733293852635922559324485496352512224074012936214235519659750893750002059150969321027735553404454417317572653637856128555306262355336685455649868603112492578568220736033216107940794745353883724142357736303598957390769966684097950426098220803569487671132679670621024437856670259008614393001165770737949267467371950882950808508683662119495500318776269711974567316084211710293889794721784754056954013221270968021663589398852822827117484983171000683421615283643567893601756241813290776395659174072273928517082553918209312873553375342378560882769615094715551296684730253663455611267673635764897843076899612285384963272516176357075680023668107219104770804471478601647490511077828762286723794458569107536301038045907074211615896431375374904201261527281095019909831924060516303689545073149633708085778765285423129652800517230009395557212440068169643974245523370257088462529144648609856720450244718808897632348552034955163257076019806809565430840028038913497428785028400919636028091928295834831180826074532054551987214135054746353515010174030729853018954899260967227501694359003256756818843263462722607413667135718354473783862074186425576162676260388184513381032051706116968654582275995605248345336090649575241411057428704066747060377237151436553175438042638174972074862578502029885367726938129407595683099285999337257234022487232534229803749626414015096243142539722238705701961353563463296863707100747089180007442045409849010260122218947793201248062198955295160278642372922033042775776779139267040004401233663642022830359153655814878349896317492711447299379596119548501161121983693821781897708380610582935162913998239151330633272425566181407256440541969446790583791508066013098550741025046767949736140140579329617011902146796914774225843299271217594720524563332109451599255504178081100941433957835090576963397212155587877274480759842972386676092163643040234238986546904676251665873791759981948269565039346026507519180067602818843505751177663936298997540453234605864692586196009616390813802774918621777754846109148566628288959590101786856914104833482837865806690293716257113049393102966318264745756057859086074868314158423875406090689051091365681912808102003459466169510655975977002931780151185038257731171395912071757803473130327547787985529935862638304326749771469953410322819315587137237101979815578316265366509531435723445428432621753316990498151011323571522918612419019078880904067196135938506197421519647509360555288680828170878181075471224303567557684151222303221392609422938323021501292993276575827092868012480881671637356620454954396270591938228988126336717984314227235778095657954947961243987906692964501736580180000449070482576085824790373160905252622247650447849729204280292522188472247379519966386843443162735393405577330950645303746873484287112825736592538376384041945221555063002698917816667616704766398812330424099126597614073696374287823612100388832864679592408408306686868233917243948151509673709845644123437989510749022064050643993477123254610102863559449796145304388752754313983903922094968457529908584240694495489672885591112700472199004512435388402757542634217029243776048062963106637022715397343238932798425484004905790980141790352304765661361459430897798561927747766071129553749214113304482092541207114317837224623745020252880307485489499481368817379099288243060565973270442703649408241296159453691764214243214151226987038279145360050214110343845396810499041734364340413425303156421020468030287827994991184060435819209372721897673964922388102629743801726081152166885358899730761964906910597779428927064995035533518098760235629085491683783307398808385740301299718162740584006962746701508341449864827220682993509190167838355506889063332172850659448052611192535317900607484738166753140974247958906366509451046491971973835284492654276951206701696301609300996699479422924800694048594258238194097005762783884290221363639299603708425384971416927521166834403422066990700634070841381606464489357386503798808025914247467344211322802219467025600649804406550891705984232277714483832805191628088700073316573474863545040504316107389656022576267255122203869497894838429952611215269988901063319586389465111444645552736922041734889054646059211688879036911741680127459399471084770755114495058115112203017259636322964381094446347775063473040777145050622160695313292779840902265600951132449631084713888342276288876335406292286799488863256753405372570856983933136101939889147183417740753033185074785562403602205446729503715511651446893360944470775421924259084131049405554361563266051161526665033409098451958001320743913914032347257775882530227578612126842161163086816848143740223659659924495430751094326178708590640999721607025901962446466393738370226028841642285322176641587420390807817860061704511492903754707118057627367309561957772440041035938660257562386743688710858382690828827689022765080599551844619158961456181731059843166139817961743847378363903019097255490291268253015188205990474204046497593730823684543578723771454060976543345287883133681644371638016012119362086753267044676444822276789440552967842330079815725359862100682558046025538436787644792037096150442400363463220510644541455670656223000168507944390510256262646694919297537701595897608215733137127760257460832441615697948749114228947392519171547830599829949157242817468410485610647477545577729698544297759216526244630765426105547093353613272196672548588130061427252138735248373759421463084591751828744016745588728796790668782936282393818213703633535661386343094964638592090614826141844555577578877521653794402623406110858349702380891904101527575920977718959327547883919452766699363836398649361585394553979249215826251441370824680006718619784737638927730775086080695068683984365528930957695157545989248978220515769812187024998597648871381909550941967751393219748582551892818543359958013290768549654476317227663155862437601430623645088086341024102509609396811588399545991578664232447634305632157622030169869565388178809490895500664156465195505343114538649531438100391518239410653634802128261538016406061105733962213982882724180101765830344033863473673875787036521654152062166362830381955367013709211782181908015637565591038989024118566635039284438846981523193387373182983269828348189109652879615955340672793078443707778901791504546798017538118997003847820751160780814386540303626520071628117711398726919697239122215857804340809511722560084309272476124643566281861356355495887132365139428691930864459227110259706238172523493961045073454643599548205315180101378022139390413741199024881181826311069836821090458532981300002696051337735248046475928377926748739845303719752554340333980383244377201621802246492280277954752987155405172284405548272816381516557119538758435509461215935796959688679127975380297921432404444067001630082844130867128285692997969834870676714185380085064494949624073448728978923719961772715702928926332788447680563405693931986637029526157680851041666070198163001070003968724313130736788581556483703596117986335378143058549900258707842382691813833432021830695707126378754112440957675970774186357399217916149597194460385308017012247141187992307756700662434082900371402474873670486174800512764495642707820216692278520187369847630757890116441362399339176582028249206336626080796245389843934317855412482015871516733539248871282340607985459918160980487538747793575193013130990302056553489926860647996892156752631980115542517235950906021604580011634569966480893145456746283706318461174361872718743934639728545111172897882385591965969740191773553740386709533351269905578209768252330078390382219352443355061073494185281348634913182883357718849620619645042291815843291622398622643396525829864819085684241212397070127329262475913950811618668839696547632043557991744991893293431661111728578707230621890712987928246717783747697517641511271391773075442312683987610430692629029427912927456115504594143346016833769302452335708353813070556620454586394117270620454402032871676945320301015805219809861371416692316211350314144293103297765287769898669533797619181668904832082095577549211158256345542860006098071093701436542041335444461743112049700898032150274312785620665555337393744359250002135799607260610031308221619960105905872858798794113092880010694056030701084891664924474432558580982934102362252561810971082589007561173339837259163083876336208555778349473898798855491073989343107227147542134883546671185785714441926019714643637004163984601727826845873944805845264489642446078762943950460634772580372526306474581347721202477279888385977586873146106712739680285877843647019678119954929806160443465848007411254385612524792314882322476423088791602738358102061299543077714679517893194220326256017326535473751231405732678449649464668757701529375800757393622115208464116785273117809081527345632256720874822914166547975292816424431844412131809276099631614198128692197756132898794498464421462473337692596736391498431574719689692064051720757235404579995932614651227358737428820326807264581693365237412631597149055670260622717721731449624571912383021773402621177202427837882919328176171221699145284194338915289399848555743031019488558825338837782164614125604653180040434037498219994426930337112131380124832717160098879190107293847715066807609989266602081613433897794946641092342174415277881333158768879266357521475691574356143497589012495180215879833463209186500284584641030376514621952765270655295104881851113371437489907232226487905756183696743880146647334511312254332442578738507679193063814914454816377419202778427909521729832774082533855207842178039516412002171226039753448649972459284384713902530859135771426886333164322200525483622839039160715704813081780605424276744795774888863980851124035948192853111319994639619623368442010392353259508968745050592520815039147177667652593348285447717148118699239504827607866792873713929865761700303443196493710525278211367873893360316653655802636258446107817593541271388963373079360466077325878294759934798658261276167677504796194154272758104814935297671441952686776192210697386128639448771764192111882058881224604152290245633276716770141444522414934503587753872795576614258729727541703206502393747033859564813050769038288304242868473234567860846919743173621680080776597301691526820646621394898272669849209788582306169785086682236698592563979992620774282825434124345766684076389518517426680318330453954882826434384063812566274990271233246408044229828789932748567322053034634337400127595608285085342159825037466549034779020127084329950718180115756537837019681717679242610046520638434699575822080428592334788279089027453684124309491351469994434795096719614586539782793974339869159933650276866727016046490558992160507481617629869690844802807929144927916755514924634080468396828379999571102827235621277264538673482997175490081956641027199548306756355052789688744493931885584572806675370614373914853256421733583860995464725785961913644835312508734716903524247511001358558709290905413872018577192443677287593363826800357334772877414401130245624088438451009941344480330945084327106013270639951598071320647342909062849086255697114941265973280199810109899975905721678583660721970793859909429200452966795312678103299442515092802468692286862767014981083981542180060328292110987401246718485007963587413878440541717951837825362585003889794772304937148411642696206611683087102346738243576274180326134054649798734103636815723656015153234535737192001614541256944469548516916405771391954981415805700567112273955617314941414946455413031449591943680670802861064566855290906850641509977891931535090315897930972514831721830822418288914086313627718278517994523620333102772886461063983896422926400255027200209339429808939371166351484571167790064794573617559763044136676978861617456197773859960812892417644219751129117551314901636969716271184173691972939517644178230121879252407662349634422994813036890906376702460862261142755338312343223925070624801888515592341481194652505222148766685991478430194209580222188423068047298005041950199864286549017014390990201100855249827566581191245935229617962050820370493310097619213282694518043803718247511479814399310730123487126231994883927294042891481183411373381834234178730484778712785265762879789496440874068367689453264696099772631871723759851825258867439889896092590552842522914547997784270437329337088624615486229016896099504226442921416208986598547761590085941980713817512781646042683204323373876749532925042082331308477837351770326198765373173318541987836182484671322013697873786882814437080654594688216566311021033908839518806320859798854549500461413976903280463047752979183287328949423322694592181743507055445430179723607989723634436947466805077526009379585567983195701564813244070157865449284836185603925840965198455145901300666742472007001576308324548094829634954101472613887152536111089418513378575785760327382381503660836590647767605447846768258445046797996741937580247169181016067606980760047284776228864601949529414451477044637500656611869455550491986300788534322477871676716463946752814322287350153709640527570291780852277946247437832570690531675592926680944248190773485768491026915998075329227509001190087124193131360474796860121222481887151112338302238081748168100880346185256025682925960096096323089165397761016123993875788224242488881246192447493217810981655371293623352836161946752200422282296022691701796063994056971718725593170325399011726949674141552142265026935874392611205955389280361897856070234626775511921794711410671270801680796979829287773405647092425603607787351108916856551743236358339471880597710944797420364883447195441904611585623825671402688516020444913634828899945875672259502735804106790976625179429195372393597026465431617357316283078471470135171271201200839094783786144756643517107116803409540160854719937898701005596216150807424156950649026300288006775513746679950206407939874517062991767581413458150235208065921020534145493068795758206801502125233083174090725655967818277807908871349876356815978436540548043147766572230957074368266123438731665832267445326630134566584968240031256549870184621382007233214675975795930838862717766366330656863107505553428935131174110302502620314528145128016638603003537075063541552935698756587666010422434908660212400164351237893167732469052618570705870301964825759606878981914785248070499078608449135542892432847308089020083866224301640840725463065145278282942143131578193329520201394283680152605301803052825164248773040029028281989425339680674916205353335784242323642280564207770590371710504899073826991921013308654867203457712059529715849534658008309779761917920978163564466250356248386658156820510845610641240091241831398289462051630345739511944467511839258813408897420185480078135483942486472534692599342141917475899158878745346378402621663322018938594298612609558416680610268724785059892279537034176756928473903669777137650731229796734993819089648801293273600159783330325981830601120446228979733307065097064196886332286159012205150608889612108315926993720514238368890211545449454507645411669142247606038716978956321241782745433835934946746758375164559872073677560862351497779568624775098564732570309904370873687750215924654176913558981153631829101004374518286951843121477074776541972029537223792890374909976644920048290062917595012205617837636994236118020406067410705715712886371763647128025441857850596513287209254782047660048257192106418678941634372537450291023817327490760844827233322130985061812752960141167613366152555565079748151803693257242343887091301818150066612359849491344820161115179410681122517920410414276253451122210450729602805141242058684715952404484559721751777897476784225757516701475621190069579725058478854114201840884486903426805882734628684991449717187576514476957556664004077408670519436456300872557013785975835329368499101798887206325400359245558500142887714192145391859689360618651431958133209574709350402664224069958012991029101833011736969114680252043476846186917385640206639343658669560336768180213717925282047222455092933203659239568166728387588753419728715100976328707790880375094689875799309355106037154949665969636915841484810869350375898902199158880694187977030663533739245778547984007952916869850797734124205236219708377435212372887885763492240282384211078706686930388405059910624519329551969193811960575844098366226278347940003807024622259051720903433296901296931296176938221550162744355423644256834888963965131177072527593320853701485113885240525061109470195765734656773697770457768369929582671239735655288667516727325077941727986525591037398131469780025022306560027306925595334349132724496022550384152476687303297147085854842366029739358484991879782072386287017788659221544362631928233415877068323017051892866067800149118980893920356453711630359251045090753113484852052617514059504052975304689195998387513017091261717581643110455481721311265604738423903558999352979192358410125874959369940783041880924956919594999356338535911840097481416230533289992198107933498040223342556330817186397726631667205137848068145215878362976292194266783960992933782182264280395670702746286934477974313364391898645200247586487705653856708633882518086443301864429023833804599437191174596438407172838551079988787525241423062403834827426270601409142900188698547429980735252099138940311459708767397281887172795524724769901238308255933992837614237396236624898506089414632844862378458116814722937256884749610850298850982025466055155185878969918500478601682025446673585030228668243513399294651480699458152174073420671552532023800897030946076711053164710064897602019006907802203569449875441306700964028781871499466267063981766843989072807765222536590515362885795711360851304648687997401907330060829415072560264843922101720325978051885146604930197741177646515646796318123456002835258114551683440756170150040099151109369190737028402968845113974616135584445346206567437997619918554899560969058418421471184204480224218623807420434380653361776939139492673660291213320773526407483309689563100493405926657929114376266988806380592725498395600002786645752466138388938650121689742532778718451778336862092563968835580901533220636187898317583050398571377374269660884459518442879326022400633331280994223221013529069500896033054064338807859890140567521647552178712708803921038538434812059390272177431138756780000190168429381744430197437574442338262782951654107611875774768796757731470373459444104799939151776472671342993991860239794632002593628460007722750102019859682368889403395450997902457553697329159389929808355968428374066875658956705140591112368161476186762507010092081228349454390747041304092962995926995379825518527416698737982274784018337762764705883789478724260383889186544269420263751294688665394439656528127141946851132480021293002605563116774849495798158730557544997451423255042625266040254319787824240922332113253870417011487463386314106060892688239665575704964729827637027497419203203103710818876904662684908399944359234190408540096307775226635937165414792895506099795943596259869708837413400685838857212118578536313742129006523980967311396817808406677646197119794578869105556649177183604799800677873389071576782336706634602407489713509546539259497848079555524659756508641073153403555670229179406386693803853813782360536175286900329713014682457900659750649795262710990350853085426502446175836266505843909540160204453933046899454845818722448531059537521278266686471057408946965013609444630057045319738769828202883947970985975690040658524780190200646017625025842057996542932742995342011789082553972701029555687181865486294617166318360704531564685841652572391041377097868692047624097099164186262240242631905824699158649775027296093401856187743707181027126804589611368974069190382286373324290490369068938178005622112064952774093130368142831626591737663254225974232662738629196457144493933433573102630913502251988658434102595888736852308541917612842119437378341171784612676701137119992599473010399454061195507866515565035540374157804954136859131982600018426118122636982901085028639251555757661446965275718910216380111700046312190842401048078215944189070550663637023065607074042821935748461340103971357623721349808833690402157564728945408389132113040727648007769476272710815140449235523973537831936489476650518464065732207590175558743839829773057879654037079650527823066996438657979388988876821626860540117321704460257782840616007641088458419256624149793299600243318182825498243597625789531050025340984131384504409530304123031214575486604694544189141586621989184781447578480895887717410304691521784850284225323175009850112686995409313744201445166941082422721767627414243655558495814214355892685080643957301589873237968583590827071682049119400032455226935518943898002835405575742023679376028991856483293314177901628000730268911575055031873769843681913627229935565349303932269951539601429360576395365019579066870096867596837655311551156247322520396367158588432180725048025009456339941026460375815616075328526207808466982589121777013914303855614079134942050691387988223626842984929358991675694967547466153372617548788072190539173205995598039348740289968209602391230981971268442984611800896908977420726940961086573319077185256686774521156744522551826131522001066583807059703610612594663992064420259677846833743443763593286945049100802301288768796754513446817535393295547762926932348066881151344669287528834968306939698851466047043807317562853404541610474896617353789422244673987486900739024989148441522562149780040318622398816924656132858892642588980173351734779083993541254971603885154202980320081907914704845550031658687422263371707578833128855480780106602151963280207469987419943976200402337789321116553130193545331458767616501784484364529573879565405874700187667783625968401717721628600602256511550489594950540072927917784687637286200690301292326923297630202334090481068149832367223438968348987587536752504077615071147000592081769019295116201770182081394512180901567869217172452752645092124515113845298825554590917095155578123927686254354302382616818246099286842424639571813990747163606933937831828042121765610401222976816456670612930853857242892565537464006633162780601004537874631569295279813500556089216322529869759490560864696110476481300449070628999380378274342517506738124432252731676782468458676051972654560040388764192802471664786956794467173924749323285144889189543682489893688838983058683169373281005356242739525309348017454651516080929004414338369720374051089602194592690918112535788909621721337869478688604287598028584899260167105750161337469536360280071178895417924684258918067016512888763153796052759263479418627359097703382833733241968789572662882604987513163820580405304188286001331865458025636649854792330181267205090224962104304494038840797578751939612797849109435103809235970147833272266346561951664911234610077380632563751773443395747147272453443041081400877090239017323632187598577993587750338308805443107535709583248426032415278610112190192068688478203910992251720207656945492095889495643156972566145371391898635767350376936324678319330569235511388705318461752681367629999840463736025334574649165388353082863601107718884302458773234642158403406670776631681430078131614520220393790645207829056664559418977898919786119292033925826487088638196529282043873144505697356576629765238785680162672782427263869979104391898883853203573772244229262614835582081956636682304478896660945313844998461486544404552317244659014426413006886876907855125571694773646392016243171197789744712302954851857222156012833459326075896319469793427569095294246503992102756384116527056909493610992436622209731242654612952774350057294304650214205846325919355467346038743678970516850674991840637129542776561551467157531744802467484790400923765406327718735752804171582018929471299105622398016768434669104086594017303138799900212107119636373220296436008699633506507541848974299191005053618241293511804099793519889559519338073735036994409295179767506275028903912355755506875180826651496517227439411532833457942174052835370323159852850135963958062095875306962996839329365034980485880081213564033175999352763389406097840792079357450582643843162935104769308057401289988647874076597243617863112255239934158072839841397627055046589680740092418234322366560676492047471141785684918463384829616755040462557448199291177350886781828928327123283170969422431502479366904750674817938511584663857669333694018287181317687996158202060407140268869973356533440688066339035808068642684603976672605264392706512052186061340524348213089875004206516164303188858863241974684008255517654425263324707157408852179594573048229016574950270954864878079222061607314812865188044280247469736174761831292022882277761874812694123113103444821106680085144620708662468692426715032163879538285480974511382770189989404705590546955595096559605904264968469144776040226976711754779790633000131748270798349465618927693765691923367795072682695972343705673837188967351352850931571518113073334503323163527306437812034129004543571925415014841467229868981213411767586829091081517376791798359706159182840219026905366767498860724934101343624001556514249516828365426039375139604218624047567648985240136778322857288849651081462920487166432447563500393575651905429395087218263468899400131163055337026482700797351864611191252548243007751147888342365548074073900178508380513211474833615058769145592510057174308132913179060418358693030861539899981297021369788481925911152300037099511301738785491898909259918452883934365347947521294015849609799870717875995058057055552913428476897605350120876455270773008442328968742891591326812187483320724809536270427322964841236346390799657197277221050367099642744967033537110756352590911769696000694813833944325495507020246562263700657449451369298633024656297114864830921790443775821824188812338373283274718233033385047761285276608198048592380671394338951197609870529857985227698116987861554252754545068773280197045987320157315139106730152053902386474443290257762980196128233734061202617548384800412226002732212322513405052695957594563920914986237909317472776396810786890585326934545117102610847600865915683654962894241981597397028580503769055319069150818652946951324432107262945914564425859229152677597780321117608404348853831756529289528979480873462468899065144291912695024843950768333261405186290233820211812230393889996288028686464682390169500511048613062633037910127003951530427894524275182726792684557194486917630349036325483080310998643307739544533405599851613763488599138377043000320677315759839033982532440724707216744946336653039674522839412634785863701284715134742639538794174738714236651216250252030413794884220846047014209321779433283036853502094814013305352891546807721522061980927555335920424192417916432532007255399492042919240080717929412411930863186687055274960706345627866360198749296517229740752876175740251848591138459755376937179535415834935520192663342102680064072063109804397693068157602675554126546187464743856805000848300784456418450564758456851826719453701777453571530932451508388675764514017194817813072471910816672989605001412537639723402323098560396887476374537124049614999742017327923642382667725246303524077844831771132581575873089929502128437792207972134831671101431451201656116967158274244069898300717486960231570552057351917885687285495609779763483879818245862677813423124620167961566450763523515802870638954853489394463526862457800369097591782977760314387340594402172444602107546414991188690810282804639353869315006580121813487206078970107680001805652291248162884636953057820587640193002414119278275586275628791805556526767176405150300094993076510406449840716259940716860567409660641202647148073213886006423505611443778882502088425757951046777060346156572426301152717810164991366362776473029762352365031286911254865436382107930883459878220616516622647160349935814828844913137861063681527118987764110686631391208166095084442123510416663876076637104757074640254753167585528730605421306785162547353502933379411888812351241993482232954774894229985732075069400863740240552956769919912126255253720072285519907816611966861795744042118192689191928907702167266643813481650343927670698100673137109003409152412144519306912979798290632256905344148121333934198983557073783670825206386504807834414172866969626058371163368842341277476659416357441889440961108192828281806404568186400647924376430369514355902700962600389141917189770206839934597698780922325495993029508340531012763189298105077520283792429276227227404832949434437371717131992209362455581802555764228649497581654619850348244776744421307051000931668449978607309073268143619246693866997012160998584184101819871502196439912305867318754954500714742251894809135371061437097071546225188026824761870205815545786845782740986297026119189983108363439853808052965683830078829363481619146976651185698398402034889990237017252632211267550726673212639537944676193776300723600148359599601189189486759761257419148770618547436318590693789541171463019588855568434962030871971071223152586812844949949383226311969208767241058732146148386218257176179160176511574398315145716096838622832495582555901595380020305197475331422074572212701814681719697471851994314037827573819830690197465517438820499404045955285053185347387929305116354938333869773801726419348639224921556122391613380035752621791382931534551892368087641603100587159412340383548467426680685091880203441786770472265049449246320629148046831077439094449237302842846122883553355678750907413284480651352059805831336177923949235476079026237449433089610646273199497478839100471805075738060614780562648819175578258367950446452904060287418320341510333439402292452886552347799713166078598710500508595693961198562584477191120283271961057331474049037353277808875876670765377747879951095646897517921338440152449497525328759418657420864025919885171628686493355679732808636897819906391054993400808235653337083992854339404701870121684324761589626582843135557424952053267649302933747390404230726332250783554713906380744504823023902327404204208915109503301318431203450405070062177542813513417150431162752912351303042683035867114511359136374344707780837891534450675506435068667628491971078343258625736033884997452513088785351401955462489135672770623112856115357794330631937839427304892095424189873749070791081543312926849634412129802248897761086690526008077149743120671579741132299470715613501119908995688476471153583715986071245077089030588514054750698899469213549669107372389277925416471926927826246248165652660381069322972853640806173194672251654378097437197914030956377287627756145688587935108364422641086780812704412745446405350230631678603387843840793739513043577485608447217864797757420427482588436247197361185706808721660453356605395205228225290759271849704747324788784927053543167468941500196288863391320579651571408226817313762696120622046725252417139323244467482875465103960815290636020052591738761926947511637881233641491032749889394977122071705992326241900296790221610393600213069192596747240642394192281841925756049613375255491713687406918764337147983460082601103557369870653885557520320375197397255840209231688271462174961676942159551055494002584235276027625718868419318936352653307986842995472635187329599089571941687301842103533331792361111118796199409870838798684440944321922232334194738426033900548236626963419362706611141758974826763490922728171349753413038591058025444416676153738935727242091149154244462183611751974794686921349527612249634841702967140414519805623017473300258570006534925374224244467200847886293922592537131416116867967639227712525873801141291149079250275186557154573826405443471111076147613532878305940125874084936569735690988211637177987697608041805741256485770667876957887466060875236476935163903595879805199849231749429883657176615783531340233033092868625766375246020407581443673659027870003530092744350421746172529796898179119365885526781747104170510567178432407993018811288583090537364843332436750371963535726360030989934626058387510906654602404235753706985758598442075751069367237191669783687872388953577527344717471317128057667693720310838470137436478046521833282567494538063849062772797921016866162021535004567955926090587199000652548958608368850868069473590330041550348937201205148387636175985237025612359400548712467652515153520533620663896620821318252345574236434577944890909289330209261479047116286903100025201973163886142029063720522120763337258117923927478308514292578338096858518309042763137767290218184117697886156587351695547031641813577854035761414845942185884859744999847056040454920888234280818983475333316949471633561803179730889655982292048832776257224097563400018421509460169142716309245147808204413527095215152381864956746523596030095235583810971698363684606997760748012282143498149261921572794054902241880012695897289538989099225811446363079148692724175781624927374640202747039366668713775061688686161919577949221175525012439253967972431714228362033846460161072137091665062514642923255711299493366032589139937661812974861903745840315581306049756002451038058108597552605103875391131142946836267051685810920885447440220789641226252769983681338547244037673007054102300521685035180042345572663904336486937139375672603963695386650017306650019247388327004518523804169993027408926226615347236489194144236216610458408489827178184606691206070619982829915512835269068463693641374451552502335240526798573791357093332032326617061075937720096704533800861340511675234646645894718386623923069879845380966576552918712700955750581959557376346557471170871704049125255923315354303377801690654537279559806682181644925017806788060686117706782438971580236514867922691455106957535159804892222562005107909999959400772698287006722996412000825817189629174429107347391674369734360294814246723603515836669769868059923444968904186733156381251807178589907108638659357038745955138416902119929966222146360986361533136340226866976613064219492867887422346219970042224647760470325219066947568202353255413319894388626814382517556755615548522174513449658643761898968355241942613730469391835081670076460748326816997129976419031803833952738808951824729463500426889101485995106621440242363552296475800350083270602732627443164327841908667636953044548259838955972806851056023672341949286573777576979600095644343624645592254113977200234218020941856822525025910296106704106349953977177484104310102935174959113939117943295105845891432231068033619834808964225185493191875978488705159738258160134438217421059191099293678214633243493711644301811344952638785033861797375864402789459740536038822557150122770215378670131009298214865788533541439572332517570253954285860526292481455508474998276554676757825094928711069884996742265260452722580722938897330799918431163289462078061375758893377471711687540423407328612385389183495774796732393732540732138094574247669084523033515199599513888089326808796996789714832250701038726080455408731688753277525055431910493949553876832746422625279936790686985216071971877378374061851556658755371368704250691501577243679174959664505915766488540974074367697570337928094517683084450263429110054644652627810277616075496918926956962688877417543567836376500618203131290783004730623643174831599034547870044703219223714154732438517024554228588438149830470445069377601922638065964358255011547303544152504132328725799006853446043439593031920992656665967367557618445548213541710038279047307706574861867365095445094568864729968582085939769273125349816308288187713429659133758286150436467154458246466818586037373137522729163126307639050039617823627567038599904242793506945282594316298429126705061482660357930962643670628816138271270551331792883770652433010268409400925522445788754570706960324575760429462801084625139181971233351872673189957013909599243284832818505050096199646653580129745634602639738211776055954137689463141834253962950324982833172410171362514961000156844537155083828532180537738579129200186986610886232311429652689978744390792942842042398792211223894382201487894750118231080881662070366441643301862912671963145553784974249759297646366582886935507636972749414556525274268896039845147263269527002647555895419595785321196589881325741219059764000211634362982872372474132319977973401609550009855158895062350626077726747862313865376720533830635508806743515541298510675131168118702382996334031354048014625320977625069482104015912742447803458055323863826561329964738586019880564013519995683193455788734441485447097997837752251884031182773490466753103769761380272360534618000838631292349045760464780413569083013066094890642828884600002597426273844289019075144723302055997728313053326004493852919759637620077421605830446806583366198768268490345270669878940689605712743858048932012252668493137651090792803937325941338390865160973029105119073648933339253247823131544855356619773095462038251174483554655530704172479933757157902444863243175735324161621460747408492345899258238157181151005758221779539245946309631811912245039651784513018954811330939843807400420395606593433869635675145158628191789180840303873407778151843510452329868873933091704701300889822926292793895339783433806641463314719883659454906534187615520983958803207273910981634668025640005284062069112495635940837947763581161575671578980592601643967088795168403843401259245895836769993314997129895274374100403445739419294778401731073437774037911276801680223438606309490680863865568478780325122526780797535632774933391316769047736824937707330321718534140810995479466103080804999682410018289060066717077654036384822686205510215894182365093420703468071425115821955903360734636807392524360533252955328003310937364138525337630235693796043880112161958970938631861207639442376159437695942472193274530706733092940149250721196963410719218526339436633828347259376333853185456625594325621322583999458823855562725413295149501024362438159373341361154631984765653098055501992908933082334693456504642903197166008811215855773651458222506735719308948167211254711279092830828104954192060693305100527261962640692164849864869580945855289843609078161811494764854935750200262676888793181405531002853115435161809266661834388610183057272471455285792745063991519867106018951168355939122334397199088588158654995311592394024239635542567572672735495702687575136518075615710360889678621439214880066418970654302105728485036450392359725630756216565361403376884748281447425854608662671787968192089628837958760980302297271361723885171582797489034801483261880085899671134137358072148999773767602962473385534119136283919192183858190919337278830121484663862237875015689119667818696265255166587296369763600120388226221397817742739980360690940956923979982578940464017879126621592637372982591566014054760010224829419475770087662221411274080901813429195000006832884448805031469004921038255499681739557127715483130987843323405369298213983099001443349782639665493741878240636414952500956839650297650021281929652429938437173474842735628248831399715678005134584428318923000435137923594739515415946837487219932890033779103046628800164967196225959530541095514723390064343565042214512045429601452022398136336519943317401995798468352256012360194438300671598998941261723891374973935443376188573744722617295026252989531747793067511288357386617678465248626256614430177888140904901168341190980638748298220142145102644543511093980369631050051801639942537524589135728788661855692022328809264630874784248182441039980383710756119212142057612951949394467134649526507062385285377175530209852806923461936568459390467007477860821457689825904138969665917127864109662222195828906356324871420810988114362079405252883248217292836118961720326847490954136064597228535031029691332964546695692724146142211201959923458807688421975706115382946400099097768647924841107302184088660793485050942051459706416540873870470460535072573501601346148814793689085869323312116053016375709514608977069146870436186533543732529591535923334415632646070873006739844015761264371339516067004114540642833034925886205566844243837416699056553869497334803539282869984872937813211216028178371479037984554785410207119076616515272037950597957996252287708230115686701134077553012817622436495934829961801694030531696932856484708543442988600902687586221008174542712776404483520551412216873183783220423139470315174839283511783521551228153621469630498983694816494743685920400617330531746605267932861431710965664399025447323840624485369553866650216711360028156549540331059597149365574950879788060497509227543381217782628346149852145890164907110020017717674646600664779875661018830963158512057288884538409333324393720297313307808451432404043664030185573455216715289920149583691609511212644672459547469630519005723774307297835529774836814445393521667485099264839207536222469653999035787430168687799811791478516504059819953966781704973986782483816450857969368900936337559475301532282886394095772125336292579931045117848480969142672322672755655562311387588815017348318561194505079833214278135609152812855481036601135026635890578498141654633003823534175996004314545942896994148194361785144448153818021067484042252793115711305385798510878055061869633748002665329922027524688795959764532096325102492324991103833277754515368948951376775585938198706900667618592466748893271725907116246015852620880280541150159250290523239676201268524609888620028784850641777956966029574021555518580142474358127895201057387448219306902656355632388441969363049244170587661389777489365958690146691076609560534571455839534071497398662981170042908911670548338484584095402231746119772824607129136483701799838763623362420014819007001313773198930554398852360634997526367484260747845212612984596795588606156113031005724565259564070296849098539581406944715127113041829995328858583878279533811952262471814114418469773657519803539428445344647472304749180225969022718483738298219920266731137611795100598863322950637324559371648455708911110702413674864672634617498185831362096835192996462592997749033785432000117599191697435540330955672195757717282272995235963546564537622152127873489957090411834704260171192294732312574347322371351813502452983894108859398584775528913829515776273470854815530932168487424120469260007375438660378658955157757731573171688722506034208843774893984972862543849158268061165825039190121910836720355359829071024663009182583687433185550249447141838635311312502433699199180868692274160916069329221915365975846903568291586756692599031685432809614942232854702670545414225371484339763638492938157942873198975936007230304415276498885193078352218302688848596233647935093061479065639210326755788635502477052798627855997016380261583237455031543086580149867741725419586523383440551289406741973340544888348892702775203750555711304269258899906256329183540951042250455388051745082873320190705302242275378340705450215578999383006994438703462658101894123036650145697007826272281801950628632959204532712286612232068988568851060373773101174622516298912837588999575522558120320867198705257077414254330486715741710515702202020675926467194833765091645742605523977931953706059647204502143571106527062856510561040653519451034478277317896683181445723812221795637492534346369572581485524807062721616731578105537781548585187045812021531082701936876368697347919318537828865120888286625662203156986490810494975025785857010448600221515341446427379423641895725582936380073536601291696434470307740574268886019343499585935299374974480320824775212861690284834394706469891840786048189919801530913261815656623577399682743699147699580597071685845056982515597437520498043717479155222477882592380349252751258767410498091780701271720055732841520127323741493035874642757757684812269521121548860644785142064100448246824819636235178248714734627419645537859331423563357122252076534683452940141492878378495847162319268004696994182280013637082961514669357587052614214066358554707597132343995609380498256782235444849997354998640878429430154967427842111534048092453690351056533774483566836999406824257090124982498798590019821224153287502280334351799345911360589709629174925849624908065624950201870211827628602682116312378163049948174716907636525590526337553412435607056858350874709479996493103858350289643714640997785141591029812300230833571003099931607666337132696930335552033964598186755464462251597271127020683172840106412319069460950673434478653264722400000308644617322600812322423582374693323099010413407251985725180029854932277184067597543905222369775253873932795549673483689257333070191196969369276243251628486880332433791691790763681095878931268293696486579731006009797190774977023246061609787201961962374236766882297356999107310297595828555740342870635376942524726483710801027544951899888719546403189533509172961334867564183562231504283496975717839783001478901406884365967634029959526335570610322295234095259256776558491273653215054826964484974730806927047640991620394915464300614049705181967412025953195276485395111298857839055638053156167889630036293694578922078548934006386544747796201213334550425611460653047306661691866428355260268244734246950732981845547632857996617456269211294922691828863838622716081192621268457105010400490365894421596689768589177386592902880821546335629411082132534967408331391918328847570337893923162014465942160461995388433569408267043897981748127424334212079922880880846172006022999131954872180875055422981331211612976788615179783317254075431045348293927904769168442160085282845219281318185717540479411620984457710572536682664996435201736385112976302371564441354491153268977289922157431637128515655619816380764058034151415116436380261700554511666156380049573401538171725066822918794074782843103346382534335115444303858711562976595209989587769117365110334083036184296898718868834674425777428544641265189028671287844649893193281346916503965470669795454369700827781162615505425442369733961679114249019614839473606902976241532269808930634216452653807210522843761933385950947348082777538919724603500333059294627949327052033043899115390434649841888668676446784966160893628959124784076392701422489253216673260060204983447840084166121297045389740830355440406138571085110469325607356752093135160634472253696637277765650461565977244131361319446234007931132575731359610828753840238964821148506152792074379300395350521084086227843355479253270989272693627655511395494875838296174623845822934159984857838923024346297926020061547685069397739173343365917425910612920113497075784883447358054481197349309471861142417180309977881434275950473817169181857658872043848350071847299791457304545889968244680786264376813758974742772664793502317865811246641427659313146308273668294276094818827378706335086450703569900454576434699456136437847050353681863118935557199629701442130874185202967200179367716271271665062128043363534352412088688002479499415428864438570256490938875679308070405077324889874446856436564460587506307334872727222386515587241795991228878208224203874484107855913574145962225895092215439305391943741214194292246636591221054932717031207405634469825869814566438793827688235138905267189059164762613132254848713174407723194169255005728003722949309661074714454961568976635747284160955856220125443369479256594850915829443460768351095721056652994454647696023142521079759673474806025570401665054592459879276923074305124854475743235115591915200188518909215348610662474010700693251184688857583972374653007387434915595015409210393358336523067377399636147499659608806506102546068015428358147613006070686291128764768481761219530800788254699978712832381168264046662911942092363252349208737339245330636512712534177520845633400593492656580364378232505070399311737145224314691080664159313624063794378252766818361124862253379877243705189790997149900713003601969158193034979820083560558981640284602511038450624318075900154897538427738144032995302815462607563595550876511120562267563864939015496168546099188395339453878386307795458991574078699684309823427937392057262881979067927302372122779287368615250825995627462264902774205824522624438423016882728314316679800290545832065839367474372100317194439154659467437656760360164938756351336768778446642281550446414978766385104337733628474724653318859377613611091090605742390152569125964997454923490205471899777062713993951425882574252217914039147616158596904450767823782613238203222155579084947545726681269483455620612194137723686476020781541874869278692605317091271928810189252447144594245345742061326751191120968834632764919092726811678814668253464714638415504953498547470013201091046011672317286119519933240656824343026155067193330895727145724671346858961668114635277192265254445727781784348758169935942814439509323522343437217406881917842093651381785747893446347180114983163062320341501088017754465685769740293134186148957713068780050361781266765284609353290566583303560199928477000272608045499594175023968038864896983693780302716693227221604642728438835671128933090560618110028170761116761464901442834383307060079300060699046527566053556501746325504983244497140577951532368650106197466404047962335328666768827065787507345173266081621146530330814471146920272042418753456073639382297644434231884152731626227879961805521386569359814374457210122230767895050864242893233266088139968492792813491929583942969109697460667963734557673350279012204948826748152279303215875640417015532592371745292913742084959978893323103945243459649130610828587687926552179479380076902242645446752402857553095939094672282996861535443201870553977277091379414745999010328783854660159280524084687020365447000172635060944218892186476217220457463120617075527472594564426206460139634090048834018484796438314534188801038729582937804691672295677271239921366864015344547826796002898448755141667101065202220424941286074658349130605196264558635789535935142959217280070372688242819805156996054675959649839546675096772654196716700989913744773985122653943419780794599281869940140684278674079551866684330838125800748985812455590939784753380837055811741700186520117280172267294732803467141375938010856298339029442598024381815128233671681788680080771901816563926451225378867958561339602185322473254286005535270457403041059037270856981113334308484895718339810395983021186424844207763614100378412951889746078724864956345448806931989508724698970201675549389911814630888044256509333396463783421329932777101349925304915853284100103915172289373141954143477196239948621303783452418607589521790589553411505491756266055745862119797475990266346393392235991795060264922638087026525905440901792277100045266798983820123878226304003101461675465804375360256420160294127688734620894220010533440000097369207673660451454623694745955042506182416125242121720123986821067025369673626244912472225990462015431020153565602892384272535924225160403500970239143464722464008290824010205485490876062949103057899672406874674314843999729016488322339258510184960068326468565946407438246934565132120588012645124920110024807960823430036203717232913128280403372782793734588742388045204669647394884187252171684868321533140815394521702702361043815772379993511826011076534643817149213976335751364369013293980650761041541276856871898029079568026311971055265598505538996689560231216507122994576530638629377946969611449549790348385834420009691430248310997984878947462489737137363878383528073318835222251772824391409697675101061009653100645022200554670979624685172699257691889354364995903776562983089549290870396139826943794365542076148572213649728803435369884240304313127098526895658411619768120443683536164973891117096099321720832080134085761895735984975216821634665612285951749287344789359239557460952100422514416995306322334355685581209315201407409286989657574111196065196878951066888751045386484668960349334419004863788353774557320933894701155434987347254082496836969306056705240104285478671288955552893954773738493715669496265251249946735389913237258327436837122800030586210989483138765139060992738693861706938401853378726688922608810008198017226436903400869461659018802246031336063502890579525045667778214228036238113817302254499668145292084490114417597826451724734537806021923891925588329163712571126013576396191544586854579962654169927979066842087231910787969861222624062968638592609396574535511237195969153342037539970520054143404543205941685603012857696343534961590483225601866463370266429754546411460371457934798911239837173539871768617779281938316506580020715262322590482594638650731270770722047983960856405543269989014913524143955057380512387683653602514709008688213808238000483938623385847797471779036885794024128563226865356827869903790282158306966549392394408199065428064732697911884349454352724498573582208913795506515795204651855785081807639420472426274760245236704147285776860996076963325143395260944435594803521438953878432868953837873394536390085557786387705041689900623612645044859586710765109563740681011774611345582089500103912973211044834091095831578950804167262935521275904877531398694483560312435638823570297068622094861806796173443636343714805736105268970502265210664255664463588544559483969531305939692786379534803666783020603683148606195483344566279525463732063195382693609585524730930279677197799989594327559244363978333826951267211960033428976112155146749752774112365953982053363315991397831438789029085334320258442076091507068721046344373914877281780069746225459486235827795030886245659053489734096540529912092487686663056243182717283530221965299889836223969635990944984962185435505535540233559118271312634386968745019741115785755946056757899375355187637879643524271448153500879641951393611816385206815908263554093052289621769476767806210518021389797182409495531037311664288774100823940457302531941788651800697464751419354994473650868012273774620973496564900256118948513177675531318027107003515898244618103024370916372547234040003968397586686960193132496925061648174534736127641481258962085007315652261994110164634385083745028139165745491708369913782045037893913451273613599321113130145447312699956468286583315013461548380348858825051455534675257336795047957630766740086871554050393243554674887182997038840199288306952885731976382300732667325930942320698536860832859775178572634558348633826369796540410151367319782421072343167182243241797485796108580260380670870102640581903460243694215850074042339106724037833039013793770602025482586999717183338286832231845340579511419258327847051467438082404953784636107305632385927582760382292580398893891464951166646072104886421192817119597468045190996898418099422075849274656059157826460322328154637531431628178673103532423381410407760386532297900279534406568243590745462332446510792649399909633851161530905744244389203934043946100537197121898809546408944654314115112866668688162262606439038953687384815790935707011768159915695530600737228454770878515135637818186466184939769488094171100456076618460439163279333639586491164363221049823198202670130945256173039402018956941448857099115254631495617806783277249239349273720068000924668112460947417435460826075598868144591675948183743731757281669051190432869957743269777917214508739695837217872987474012454201926844795193170035092931413469627606090939791491712058204159496958345748709580590908262969571667897034418154795807622414615735903882006587029378001971445075285426869377036024390352241395335199040603507209494210577045435960832363357596922987575756007379843805652308409574647954309527701123568378432089358999141607881530696990543430420252695162094497469327227019397622013183697936524962787883901288795058582035943717419756674568659490842647488444657883048445836078552289021864081074386408229804054997730829617704131085625434072818581872826220928317410851980903155880833554233341907992912626560833731013654788803849538447248201665874032419182183342481122350756156462621106130070610214152624274574124621530606525164692633184835725600882374035610462333812112015528845185448802625845030594666226491673152259456606304426553336544506948238968459120524240455917165769909799043542980647675141160198205187026233445810068744254154771321229004047014929906216269680828685342878171051111173471324020726063985589920576303151242302203762777473636043359518505663181520672345518195691947407993613176947465312700642254538803527239854417388005148247859205607635751322993966644912002287197511239676637562558293427499077965632470369132258450752773351572620992714128131724742945608682960620128848940918599783564576401628136576469964690970115302433430495771677122892392264448475385902110641805165144340033866165145990386327099595315830788834664929809299226267200721967794618643475439418946521630335770340208095151694079372461389870566793882736307566662537210557650017180481155211391076682478900662498467988152796123131094563735266582899709449140879497209749659559733735098864015554175833451858176223459885054367116674482344110919403068080348474795697661290746538654287172529592361070465623221762132475533985792224191712516160330652255081234305962824507093619599472558993071752341554552947826622633964120319015833436581082919031201490881551608391288636920540189466198109571098841987164240452153063915438743092562338376925694481785901371442389313289489879345307774569090491417384611764586860596988437219450945072438928478308124165443478954132575878296412578108838145949203959449150480321926797206361416596227158458055319921678493852977957657555987304453937717835877873592316169228688133507069648624177624919304208938006770523900523884915169846801184264020476547510698892189739345024892996725649044662586732136570171102611421803289715429451328390305732622049428087687558833968622140858186329695845321382150399009388945816078219474998090560883437938039947486453239528528558166741613484742432464107342672469147908938073377824349476681179353265130308461700294562406239015497955309417538960603310866744923725761785059267518661388145946383315196270881509678952659960481983328577233630108621731331779781868144569964642335667476548565591416564164378848042342192861531133914144772834622446795677530839367116572179348158730789680570458704915003631039664616406202761385004263582940400507814934890885292098599983479738878024248293001414960965565182123049694990590554704729360075022795234737399885802656079081323672206790162578021575163725125636095969472889895436388826888380301760026202747450936723706150775783340172401307650789385430983849936612017696507838950929810623852426402193864493736672415324654326342385451194640596747036275623711571492121360637398367788581263449311283283947411081373222674598693163910590662629417456630318701165439153120912808703351586340513703613965226527484301532428643131318220572219755387285933078843434690169942079341357710603795776388884973045690782459242036861425180146142928701956550534601968230431487452105547772421631814199184853592352009028199186282898603117113617390795924500419183633747869369579227115162515487289318591822691494940504893797936662874551774405114749113325121735507223296026009021398817377792188862233928222790838341402768524400995746175356869377967093225752995897964728817996891723369803076069101855380003315207951855099129092015081023941899071461807621724354811487376330123002927513474352885396358511987307416921726617313257338749342792956156256750182827467827097254658600805465559552004263310323891692226590301594701544301211610319485354696493778359090969149063662480719389191022726147447672781160222449727214734594755322560415340495207577034327505099317379212074346279254679640747898193238133876901943959278837886670891053321168608988879970869650349094505764031994406313079306270339281852196139572831626729407607038282553193778470498711579857628644440927949803046630843563281682079323813128353919445750801306114949576360230159275119540667656776860331133640400850029716534222017589562972113726834141483425944436424307046138631625953827568590753701505612638065235804284763238505539271781700759596767555698964382575126641206142738683249125619714532627105938911121122164187037277779713751999228455117755966527346207572945598593676541010224416291288503424506913437396311309361725655521672388207857102186924642236388674690250339774232386803027170523564513893268670192568412894916553987706054390113556936836643183386709404385551340872413711165793698106257291933709134103049982621791030442821821963327632347588920001095731173116519271903681045071557679283638456817318458720088468105364595084972081689369853945515820202471620396191820642712827514808060799703106147058588224346827636328050238835228398867701861040227684002227200190055415971058643657750967836395102437195055742214840601944470189622208250518614293915175354962901785853007851170177882440716447836373026507214248062175882992761614438183085590671691553165722187252126977798847548078814127565598549588879708675479773841994606041656654223246767333844492179213973569155572625990559035950014861746292350240855977246411697441922329659101622296874719842207353019766768969194272173472580811665350750454796974931328170499595546526392270235014215040093702947442677979109917582329870122911590480956479025349685566051914091702333442181068348036121083022199828627446316565245833260377875322654170943274688254507296525556531369044264494963655364052423512203709855786889256979622034782891135738798631640365647552346184094649984988693157130838855385322515844608255794588631761336591809090971679588267849308997595836530646014784077341016112730746399541024325549291515052432023871096460939483435013106027900320404259506753393273294431916370157766235872326254491276203599818912661365672815825764450138459496899448397918656854213231775631608339063874298395841785954772889816383224981880291245881123587667811093880206147341728054620365266815849371385192125114177029349347694257313173874756157886644713515106787069517151631538882731210628986888284345487920553611008406136212836669975630299747124795777597408431110087669303856980594276641226273312115411719076951227484005578845355959078774684057889893562440985830707944646815841506851376402369724742826531195264826006627503374549449827809826381020784046279348415636983064930974915141782027576905067274385488766616216508768682915417805034480112787203545683831403510097066400877292479890069424072193496721922019237644254293844782827601491549343674997261559628095428947022615354137164198390006171878265468933313243030643538836880015526299975685883277659857065878302581133186548201792962572575671581678628784211763999096713110161327727021647857041789582092994334841165101774687554688396302397098667569752371753423987678549477305754807483965442362787036662972058365484010813649138797789190589532136056064551690648304356672667581564550146716550418345010091791119633583702504184520092040801312329242501109570769756243330269536306922007293475093063598128242381912449510839318325597174272394729695260431314781395284626080384746235467176548416772877039857407449144776768579595062440355915674776070444828635399671803096704382901813796410465404796178008365493175833501251244625725283291645818625000171207457713728284396169994483085753840029043919881437264240118536889438980897821778291677138826258437052070704753048854516549080080995420025353649938107423145541031455030138702226956339958851368516296635806105790005262944353399065693671384584250702546652488303250033487288643945342091893613784137874790220645958361234456801247431279877223987977463131847719514355372232644970702997724001823419105003969127460911925507185758109583456783641007240386264817040284956277983668591799452985148281068132931804550173578270270801793000485372920732923184968361108538685394520648261284179216826149800323240207596560168671777889690588575700159662149465615467405749589437222341005480059627767576400197579372653582123003130497604131788255586339443449139796034995002247487919827373109437996952920475501322703950715253301800951984990937296981056583085146861536520496910889049531289905306681673349061605623603171192995466466096889771516386554519331215046590898036571467357204157867306947924230969049266683196138239155001059175693797205807650876231095616718607118387153272439355600988241717490963974084018482190322920070993775740713234611773697303532923721396699197931233184071474021112406800206241982286400385021304145192931078101224083994238370747468998833066974357768223237234342390490330896015552669668743491899145406257972663294838232821149320394757253107705130077344420983154492901847470830566335254635608161519345779837754656046568960974082695959329783654324002348479218368164055261981472910312407640975654542029296047471049515807538136364178469072554990793343921324493310586474789849481012984937881620553855230449933554524882801397321251645266514876249979986879049065901779072370747502445159545716352271064995640588265811237881936021975951655682749936495238683802953480915581234919323066258425585410826001680803519979630165955101536149046116192372770432346687317416656969887255215620375917738734095568438988140540260635947773646653001604347747755134766314698499960941136214452126422449775255774767489569361022270810543878225636744795324650554530130829982617700208192558654901908247653658443457667015254549372546395377384437987952193683483874151008642771044927657038481912984014312887484017893214327326945955049746561962333752866686600300761794223376401940053430413525476368084155447040252088754455870789733536651106663983947854175014802107305804263520573974383908617336151230619994410759510141047372893159420488536687008185442092337585075546575172739446554951509510327048636458180017400340640314868956636640172386346506698107553149410749168760761073229032758893286558942800009054937115403236337820175521145678554985636824300626234926913396858324257485436511421648981251833088395249907357411597027190940009582521464034554374968700470288232381648094970135113307768118688094056562684078906983563746914395703561059301570781061181418054695677871825401175768072382088807238790294412744444107313881727352452268653354472209644531001946877467487445190213428621301040545981735193973385949840924576192769378580145427514592660786011652271917443379985524541437569311491687583691110726850896900974250802920987867410234412396504920058994037652048743294186412501712829796518079044223429502752436410640230566350917117426795376692554371992540968387637053217963972628303721689414869903088115168798050084000605080061167248152547520882419487678018716998053679815634070962042403449643682172266057542743348883639537797451672843435383620535156934570917072977711767057260532562792072444368976872837694637066878505791535169162945472620970549821110119063188276770212604772197365213451922388546765576847112738799818419400503370351394610181746084283107692475295124520417620707431340229730801514323217413869690034809711672183850635314421150983561918404293970286598872373507003551865191924737397779485703013650308996776009244367693845733516253236786687874229605897628353766786563972382125496503006365380169062789738812755507639328712429083825801415596150400289158033664263309025706979181575082620606313896502029328345483524090337729625537336906634245937245163585946120312317408379043448406570896731279689940844192438631375272067854611191421679678288272007799413074044046939489319469515573360172049304929314941291453077335863773781020399848516898681127594431527622485380495929321422820325244382014129605089676954053664492244260916535034942668620029434471451112427778683911204164086301644819946454568183175836073453489381520892644088424482882139705087392358597855204737937953699194965284210868958617504532850896390582127500890006233381471335403508203698254522952024115446889312195857134924770517220959300001317806899127082353621842438238949630314089426364483005085341542835019527035886113614647558602116617539062966365150798604601018371307605558817145128886664384577155226994800650583636136562051255829382091231979051301607869225325677229957755768765209946080231791707007368723766197752833451737321985006241074518569995896127312445004390907573232272533259252090643247797534187934232809918584910603825372344778592509738640462220612396981087808493645699680842770509545466442328561520908783555079858883155662580731520199383453646412469872948776324447103456279587053480497756889771972587094298365413093458742688914892721447654683564725585164989791757268656208389593558666895298638886265758788425364565936711765653761097275518676563174913370010826017564506406572270631055055710710093790462231200595639628809296679755123507739587829757156419889881323273053322687499586512031664404432673621524072954235744137756273994792729234005415755177665020906737463999363368507306276393539996155108309944433576288802267147728625501317768186500163311208953532766532653451699241261627478236715479228087006507829972856543479858147323220228923970093965450348606730418274297931320156451376841311829846119463380979784314111038991862659163414193718198381611862209114034411547570777105655628265178316468190724925804484874410718961469347114122547870933602908647609244487033595315240216962747098708448318065943238202945629535990692685493889848459262651638198254111970506873579340865684668931649985144373001041346199204350298142557171611838016076889274189853263657960659585066415435084895256987746798344137163897126051490629932006679647901791972744830273115700426465358293473461945020630169988274915896191324434658614642614627869263759110982326963352841382881013316280705945368955559368160079667624852382740826131184895630281355399305645958866730402716101520373632350864217388663075348409248393646887973412242818711537244642188498964500325415958727030339238657627585268334571350957500925509368852780944234153849659380599969810223378881356701731099296919852538662902494550080581800438147672546073272090088814056360622236718833015748648544705055824603339741478544303754307148682490664388259091551493340227478314844599443500546788779654810718197950598463546906696975973443224030148799393605318016822997075729489688246146509764883149022769781094758383285285743885638315052323927339152205348281267010163144517419633549213842673217875826287036029949498844470087584505962576357842275403973815777133446078105411946629172634631053807569590591121376274469493080500754448021880364326248488065453388585223810343764676316902273981052341580454025365050470430225123341201082071608978685882486336810164980188582820397035827778955675100683604157968872785863925543357550054757416010919426875298185526181197754316119962554373604560069892393629977559023834107593522227003962419881518814076003841670232195758837861999655836709711850950618101343705570733791207240708664369952302297796530373397945670454004350892896127334876382445551552603602912867419986873563092550458918741543621874205432236417013874616290192134964542374108975645277622693638814699561590529098812433092656198140721949081309372631437987525258083574791466342803215963226024799920735368255023817467189343053469638232035544027682296741956035008119225403878280605070948870233014540701167021048375663904590694280995647300011080369911218551304727089200776586944811906906324833841774646302141168561822965067083808591392997515992375642333499786530618072393375099963656248846397226234757462937907771114381072404256815247535725364918531728428458569281738150885719538334851694583958386972342548589679308199202279479911284033810409869868349399527937309275574944619942386017233387003155740434690623518918292550421617703756497600814077861432833569959582761749958959302105808607868788361143507805975074703717268778817724904221068257934519889346815469498057303328829797374982337811349481299422644126368998959393774274249428600023920874454013885220707847577737603928216809653547599679570315598865166800263218607090113265812421625030089533892381430104560945726149010094172604704508704111321069195104610081050076066371315903849451136096342803705764165516979475018961481974998498168390648097536974176311322698160365329686679374687543004931321520998258027676820576520982280555228433372355503463953208348189027436036529995332661104960391860175272073124683227602941289147907651176248558913492432388254143498915205194074808850062885518071080586086604086309756445473202060687223762320360499757329224705083590064228123993836818535648945556499807798187536278144489647507715151568541657193882156472548085131464338090260431748889576962421501768508860834077487877431606725920806060442108903277020126347446957534434846335153131099973833047019017837137998481295883758543034925133540461526335890018375617017505510328218925210641177729016895382586168192914512665427574126413089466943542988333109538325364705849758974676770203820011095812746671242240371426924152341879078136067837075781776819956572301150679304007005265065526471069690605377113273318545513768117862701315501031172885298375569359544970995704579410066279929047678563969469394523422983811736173418960817718832105252083110358094562766115101191544203239450376755925425196493239164780563495551079561672229649741338868899411000390153564698301617760640494036606079728402865475523273460390817265310896718701879133049209048300255473884155659121979441112885628855931116518550864217948876391517909982627936436495713476105882484046222257599313232003742388490243734475140249072628514536868998970572047306334353312857384310469594643691818108258372708910183201918962403878143153717204052565955004645474333786589764881368810782678698276654782930571229155563964415315182793790302223579550693013326465320242665109320377009917288288455973013781660269380471101989802430737524790863181944146193551456320756492606544354435980854355647005728287493991458841197208472419414428065163296676388466028867260074822320294456035868660450898485094934086266574479769536639846774217200310938828079952215881337538403408284639505455748137187565570712313618833002942224833419079076670212195495583082147194784890341898080971628547669410314565177902127824573376748477237665766785102839218696581340744920347580981540801409568333424967089000102300737258904546976345523296918942755173606286941141963138244027134788277425885014124196286768098905361450729761980513796376020844341375848947681849979557687271491121451926993254288657085293239722325819851505669426424246406737554850053581112392317058235134399343988493272633982223505002302555829253592415698963624495214678992090303925284704302544513432483988447971813265037203140631115529216306419324661497460719372666984326075593192179413887567497029282184844214822223277656318299155603710712731589249561928936372899915636714568202472898894835493202593169719143768191452741945685936569006378642030505122774758821266363081433726404566015071017036800427954757048983426614025152913000576057253945458357487549194614311402579421985367077194836868420891135533853592004178555760870673003292437125743967722312417893072113729575533136134969947391142324704407416028973928218807592199894936098652329879607444300296467932608845406772125972454692602760149312352346357860757437350058594209606956335029119498884287177558053094419985439737249244520963121907025884714701638744326245131598291245027350877818232155072193692258009780236882622389837773184151795425579595702092899743469144521079354836345778939235903780633919086234751952924533752872604802783950615222570870961351640769653195436447845141894802841124326601361059135742926209157439496572576710757726738836985740368961088285143194660437517448032007383479793430757080598393781233522635395164722342509307105099284510956919387801983568098209347955624546323429132908129319006675353487902157743900558108136531390831398057364514045236803753822088935221920413913532158969692464660284104341269902237367369952877051043047728939180646055239650652664725233428637881121697055579152910505931783690667589521323725720686419505597467226194894845739933887975903139707810371049841718427891995709402124752385430685200464867921551759490547446669963680026123721005763883659210767921456184469275648486580899880224029158706315592776908698180340400474382513136119087158686707849083537257768525795754151875236703049302144303459067130111816438246272306621693930474991973343435808846567916229639478882620856747707201251459693043296121954721296281306706532974163057034248804163136532717246176015191787545097125738778391737378723564283451114422185292652056137230226834887328186917609959749624169074198229082561925587010150370636099316505419952396475104083689092727066854766230841530207234839343833233434177984256898224941944654563046794731168906603942101996190886451517710493693497884249081800911425756043625529660139283318086150653919302340033220735260536747053755146006026173229613198940540920839032970549365085662429551951015537638609883096414675589643978537057532769588189430216820542431759027342943479242246754302236637985239374056332288895960079904487744366932800253822820956942707242589371478617380129509796789645700554226660270824544897050122315812489772827062719029244595451364633596646533816100810621600215800471787786920931231747561305979183118683232766819627291568625500046817896307009624123551265762721406017164802447123635995876795869019593897411958370675407824966862639005866914304571247696450386141508596058174856004881557283526199607442886401367468174794940406298147943676478755444432654478845783130130474856286904669425950720871129769953363854110152024856719276544314463348651014978333095885104995847547033001265225146869836006062039281415339491314178615149990717973923020030032751421334667433727292494938797955303433964725837851501175905072451935324477051267454148339102121770037996122314766253113655627409618592723442447395712705536679191874847212480115099053688953915969366276530530705960828163023479152622740081551767719049150006034810435168599166906784127329589961474612247819100688750824858281904866977417941521987497673093678171184419408405128798801183427973609750365098289048109137218604528534734561251430671001177900235418181266783020980392378476565929925158714519601236607827398897690064233892224905509465468329162827659326103768721702535147284488107455660816756240412364349693629770350713225021393403761034308168229493304548180267779838327406685264085200615023747171808281896101366020320067359282381334522976026586147019232973499639837453317738976635357120313532466245346825398278414544074859588196411916402790044446400680126850852062568777601883711816112485214037528096398017623730796217097760376758928078106633056777862076543435412069624337235585999930970975758783643264602616971026409816532690465459763906878031082709089079602950603933131582112097227922936080910540493472474837080929649219553076604541484951127178144191596182698514514374479905206802811386108519494653269823116972156273811463528731013815694676839107531223067916313723642234055489855362752435520223770134189512498470302489111401087316242692405882033543905828243267018953213549666624901405825804951080058669852183136480556505524386536791494630507185204865624333582787812924554656512851306486569822173094225054997939291757238647061728562851516823886528961960331762075992584482112976108773834055437161136222198662459393577286518110533300054579046128362796551516746481428705427398741521512192905090055140655059773643007172487037862225298180283642046114990894033596078607373153949450094435195206122996460863240114300896785628664781686162293430346051249831593751353230212662738638913584886464887611318831055414144254442833202092737633670154910453988864512685772868588147238290682404093749158147268262931802094484667037666026788014993691387165365038227946430849733345273572480148245706791842533620323803665013166506603989362333599015744618262143947351657180813897510970133009048452572755590884249050180198215714719352382278522112053640164393263260634418083911982215442974385466814611448356898552513942950392356447392560009735247508564184601813117229830204647661445859575295645364010124806241904164110751261261983330275893876045093539569206763303830204257934611175421719768785520096381816417769442493000724772493750271961513476904745249756352216136962494475095579799335082615821634725257523382373665850875932415506169450626731011630713238376334004797236785505284518416431454876690563145496101258651689877376443682503157451373277223345304495603513754179306314867746110458617977384076514997295485800186805652643212762443781513103453896472341429544355558733948210853994443148270329096862951935371214094223297767275695420888438465723361848498332072750316665469877520092476192682903060638627899749811624594014287045383501168373810103148936590701707816842328583773995090659626632990865536231247301418111398215035773132023873568135995212264400390809219423790757447224586225288589883614295268956653618342113213088597660705206322328327927400829816794111687261105606556812065772271528368529247373941492461170684294192772457891919057357176537491240859192986724889660206376041288893425805016889868041873774331479626319322029448257032528697912295577786935927921609847285517446337815233277865881146780845451861600771545859357652528662410707877723207232528626324515822781663428056053797609409258777178381212512820462720600901893875367025734131259881070065118959120216678109640212289945405219367587987559568043353964205447359687542348625642770391646259050111385699375551630190076962843862762298146546770428695357602608494576548497700034653170187470330091976554108976904122858340571805257034168625579519658538244647310493348463012261715600072759854166982840128622508180070801159431940368293696600296653624968733404955031665976428866909636648931889532838080361243759052110737043462197296975140833180242936398786713378417292642070562361240074198896475223208830532426118195754526104966061087501611860506590856725368836406582141705179428904698376296862548730963834408578339119453358518211069768147954012298334363754005084488743655558539362597204243695152157977280068054181745335507327212286225282121365453496482462007164574818850950120336492901725264689845119368348701277559379871275853163814795237261248772661779117629148528455903622077320011393201014343158766004789558551117509607790714719747553573563326619585290537351708972219595050150308531722362479130816947287192820896447962095706904871451421467133119854206611543288515576790748770578017889968801603088295602153839976955102100906486046328111966606549609760653507029321879567337408094618933740457716819087242541773394663217894258068347379203110614474282645299415493449162226726721417139095643909785963938560430207762228480534258042493421486960831501652576528136483406735226371310713731108906862332030436386947354280371029715679746022717892948780713907364784028774447433840652329649862452215882799601468943846984844613167351288778970828504969540895321473991635687534165800124448482100750137005271275945063413616912013426366649326570413068646579949543063777866012214106833860284842930813357503547186056429084731571115432793588224531597859985419374528005897633147941396490424066567637711499709867681565384724945356625462607778692707664243236460714017505176775255718178226846517439974718602301304828305992951128578889742883967431773028132558329830591884866108230004233770468451880097736171706474422538988692255074550874783739340753636301509170216958868813311729664195789573548938321597002104765882508637236893975924247397152583653398267287266191871633434610939639095234373794868427921709496918293271566000224129143908804875871297940860874586846499114021632825275961594638316231558392618654334585243505715274217085259484058588514491714149777997200232087446026397166925460191695027412451922424195215849803697705148187977487747246135982255998766370870218039341206428527328642977341187523293565885523293016387319353828669175209374183661201145438900390635654915842662603040865687450422909325297967519266655153614662106393957806135865327207438290594118146692334752057370869921535661533267174380212224898609649655527329770827515744827786309202667060813682120480814004607302318508006363013331455183381270640518572337779896788413825493928407763872827929085588686731105179392787712996803309894568898768121959244246087432033788023816311602280471145054980357268709509910117033660529058751681860085042406920315231543543911346567594162034228915471870112779203845794548736475968469826434501603436481212443204200120023478226717892531729388005508428977600823794724547277461310090326892617710892178037738395523914386718304483763797112101138451867344988310132767706350990435135767125285064285522947855386923533793809742064307144782573201790878335506392271625552747830689836401340158901802193190009821154196781046393604695623277257395539989381868442998894381150233461866755991330045796879733256525552112884491599647705454644283527483874305192026526346380612502029429175883601951972623873971543458027001174619986098448590941912192924570372741913664671021659154904043539028280842804302119739998681630735132410086929250519265768575242809605271895341554714585150417861517833407451335091078463200653856162420972947940172215909628141997548116719816177390081000656759798004942017501090177303742093936308339974051534015575638498510654151603044319195624478058748495712714206790026717510782446516155049564900777617584052967184515458840511579125810300914910888010297536371623565355766726803976779568037455629781407899281781260835117140109388237127036249404290984490156574561827626301459960147517236927930602417512852531889865298663019965036985497340946104324301697024414049441722753168547515752757130315764679509180255943152856120782686411892568667858093878443636703443462087970327625668605797727849522144140772373846072412227523860532741436080662295113972802942794834283188801715021380825555911184941447203478691291397547310383835683089195360311677269208828382658359379521775147744948590280415179418550854757310820525215847551469553913131917659373125400073744745709638118166202047277986371464774356863905347663532196952652350712290037518592939009714110461270362595080722772275215188016147979720793103763152874045219185763588875980875727252749277624665705609769382099257755205328175345969352189725355249245351180592015856971135230017613393739904007822770489814121377680079732340851825330047538949392140757858799585760713881290330249240576906698426827046454176939146444576166676749914151823670145371659188190802592141310071490703693078022062434679651803078356004578778494348559751860081149284188982732388285761545184216123809370084764939144843243247574051222229300341698671221172802608576263157617339906032237488506505842034534963135072992348323235740217735939979238436895162531389097701652867081017521219522396391666486967870680408827996406958236200362382507607763447122365147136003117844329554214867402908110540520455880648609112005810072121030405864954001905758504775221300762719734189318449821441470290393919478754342043002571547864703458507711118841787786960171826663608249623293172663327341865763422555189261451372054267889667036715442466299166368756528304413687041480609100434036434509421670859383344255973363445439212350192134733698409903014518102215455787166398597595930379673573529967564443048241736038001856862395995736528842670116019233703434540406691168131584757423312164194879570055941524006111372471381901739051632681568225270054825932508355746013209207273314353792710374455134263170727675003532256195221967013073480845381310465186850471064198409953847159062889878863913587043498433000171075313885771769858914370194808009860303407881089131824154494761720988172434450949882372922825778848639292471491870375734500452545615781402125784365847103945857757690531033521662421972417253950369691120938698757085948443151368887632091867674582383572714524305550810502884290295320202351038511992228982421125514869785990869395028623467029017945538437581536636953080674779748566803952834333540859761915719876765627652883562774268013120454809852001082073047808513989548956304292812773619850620808320199968395481011627117857654003070589573331937947730111033273513942280735831011286460746493126015114402427966824614252101153154875248742251261406330001346774453315569459443767165214144200145062464540296753198889874423619664143448467792537879043190165730927176178949528492288799259300664466308472310004915468421493970966870031910930161502565387579410490713790970591320834079919916131197582422365991187187497237564400371831197004321546317514100896846563813543172675222889473226162319125873015034587647148611442869415685538175543867676550296596301068950727276251522800244785449082955823574541671127449234681921517564924041718121047756504334457176649969366805208920265883154219083288254809787495973140861950811160935797718485891140422956811678556296152864628119290072487801546277759796567439394337918100009008305886250760750244453083012160150034907807819197209552820708164418142261454788933611307837503414670686522436919213477772934691112693790352876352229240333632104405360552152804099068107707099181312418440834391475100101859268814084054904336223552821214795700826977246063920297671808025064199376824109583714695510660888309069032285507627047463496219575195872303609004343674023490917390139935725158051776313814156867538938968866941222401744844082117826308067744372547091492819082097279324778038551011560054506093935865154417773708162414246507403837659960289886237492820962280831803497308810393303854708992249701742116005888041385929113290089124082759258734825690974009214220250725938180671038966113295642570962436665309641144709613444715550700548499960765509864588223073170220036280104358218520357723806514181428627792557940505785736587376869204216586792669068064713559004071108664605312192976586028598031809144570989514364052642752926055651869571167560058217315256659451156449873582650463046417645546967173602436161595202033085746033734929448881520893489294816013088256372631168223897762455138574497094272349880560715496295353431482870583405065767627709060078110419012691639049066484911130322937020639320732822433290323819183253024725273161599068995761601290076937856668791947937468829664730019890072353163993709083986443417272227237462584375204319497699261493192560577282120910830077701982578059230524033152651760724503922281776049601538721079921099760345628200257790087058983466027111857768904424201660106248848958753333083649297678616108229502890322373587502124195675526454585591151073338715575611861738487726834024189161861898787463796845834328558372761372658719930743752582561710705400657619631218081405491452375039783482342799818865585610744411199740888808041409205259717539825381311687813597280299462329220488864349063994761162742990879062660023592529811262978218152994480248604059174840783459280998625551350812893398043567853395555843305081926684703438078326562589745530528710141893146370797390601227814680926211871577305849639054025323637775018020707307039239266008430523337420235798363097516559652953884020335200612667144733472455205876723156026402338161538731247865054553495272266707539072186095454102752258826584690700593843672919196671255933257119585038213499917752991795504798873491825626240650043541910944257383941127294218829002361778675184216155829341302996310282322089467918123377619788629009753493807353389428543268065338123043259470973397928596973083715075979857590228973187726707326495546489672757255068601335701045653098244669142430233717476896914753273118050643084477623345008950913734219868372141576147975829819949129896008263907975204862126307930799019402318608072606540057628107492221596137235774817609437151488982076649995840945175059862730678076269885643666109569151854972260893435738251352872136739286046038205192888340268447519152995528210797793794935772637188795078980968936652691963291259166280984107463490497167820952660721219004486336067403363653011239855204425293072933186543752086066869633026771728565915517451105479714337869564828012529535824494918409083078703361503498652607182474745658371596468620879000121742481313107341915173731072622125612957870382762596357198410025138305451260660825731776329038565369909592457761528392396141478558118232276751688323059975494196702761373425850206859745260406709855287890575802914983266961985089616637924109327420896143265683604581093275410065105312506671168238978136090647976210528568788377166967275071430566605365191645984255227985461744010509043469094112803946602898531381674286421247226584500683016826758811335816801293973656887808374186446661053455848431043911672733923979804420869913411238855304465211893354902362805407458713460802945627567461234630269690062432446417226986043169320536777477874964287981870506104098919217717821487910438906566966674820319824777708299248462928957227151344050226826573951654991695078392605585691542156260611383139374308902896245678987861395523151399819314782077634821130506030401896450756110983563758776938479385897417298754489918790885844472176403618340973050294187038752668730897467098900487973254549854367728019686675956001655071463050412869382744210391699883887172401556455799974753439269466678785416972695192010012732990916187538143340792733074635739994576294788879588691504741682482653078699683228821437740389243293872065920603333451873031301150842519142827314685275393658417451933914050296066069801406136686877870972773091917282517548467270986807742691965847437210552623230718297282293915484982502621785977170887505902777834683526592222234586379716962037984389754415643681174136252409393728181331674270119909921693812143576195711254424466449491343577990959906514863589130641212874447902193154352927280928623277864742496069783240716644574509087767901370424690351708904371923016393629702749950978230307361309321975619485415102220099888545016439896220747851445775530272540402234318326547066143632570719521827951100451564575152137666673183689411474456399094025313733676129431702543322025484022916591902132339879801858114229628763859785322760256700219981761482711044768611215102817731716006210498705608139197636023881986065258716471098199866232284107174197665194898695115668240831391242100700732076326242935046085928333270018839267956000757895355125469791579746627286169911553977992949015141285091354393703645386658347772784060832138633714255567797324761848500714905279862940501816889320954083356335775260498612215108178629239780497727550037060945101141227466418630070918858446515804280506921444096777339417392555010995711689127724070009236301868430097819649057811871283519195576455091755465176343591663210652064297075947257360369932859347592174158049548137909663705494526888015126095518578511553849733786754935917635508679701647027920489943089454872870615510851917403593316945328975647501297156359212069442600986523247163867095876718179006975075958608477333041217473201150430507791362626477114967470631830641642809580411184592305986598589814069352931835238825923107056812028763553760563459999500395934451155020686600070899088678565800080439624780877998685315320215999785612323492603983014545499081033768271233815091860674222963480797357356289310889317313825678571603019478119896975137119626237630764879831808134139720961007834134052788750823603363407888854433092532758320860668649615027132445556441983865857857049619138174850745353257495759181633826673391244175269955936532508785831030245250632286133726376915734429324450791482379738141787051596420719291688386462906766260782278911751482945861003307541247238474649100622910641702427222342134989097972147103201870557500653387809174750589372449296772436628138064708138835013244548264018806239679576625544876314091318594873164610698196021262458312614994640920753522302592020586363399763128283233110667621878741628966180785419796537531298310797186283474226221881627089836031277655730636747459091111075662179912862431581883045404003727031538155488162324888346754449629483966859648881562865644249396355913404297219305249158918751439491498847485756279513743635429438747698513714729548205587800371022490059614425845961419589273388540408336537488296450743111383234192795282718229244787280502325926388091565002767344842800781461974186196891835914253002225416707525358932362901339735832222180653905837284744071611289059216642053694853485963572174951698493405121787679029421753309982908599974323426967737762506834259571559448961664242067657809154534316067955726938915524223585158886559655436472117602850801801674381426548579351107239150662642806050876910843004482041499568000276932909803911529349331494591935803969688633337752462353520287770205119533274779720108015919114233526394303327636620562278493686917501550076265303690540214942471311435931184661068770563408299193035584385322822725583327187003735755575957059395108654947154033248337011728157380112193010320924716933714743859064617787302840799945259392289433042687248356805403552057802758077821031517388350107725910754477765658714351943031983009924002142092299681312693419166018708574084178452489139662377789978797298915360316105003129302539541809887558412018440043900750224278329530817538082512937529151844512259798256653186559309023706853228404019942774973358178117234793203483387779551561873375168158607064353822544483825570560902171622020395147175947540143588472005137243601505321528928752877686248549450446525440760146089633881652000234013253676117367494458333214532100767648261008576190562183417317587861727516530560409915932355742364564652014674175687030565379695881661189353696806444761925580361773014958682059795979565701669500898195579028025986680889914637081794245343254540715374894375071194944654569144545155839250533279270327298972341475302093268385047316315448981372574488823446923201968875182510289530573482028927504670715387910973431199150980127153884927298451420109969783977062160603084970166171663842730602402648720453426034572815980923332911287776286811728627678446877256243975280929125688776816186978344441630544096651537570796194777145005907937354678555764325441708692579569895684903946661388717092819218895834434945083118474855206293069201805566196108390694971272885646086546328641537723663053471486863677856327798143380041328153523039103721992154345248914058897972498226793698010853823832517905783218062194400418800444721708073883802111279203628314076547945625728806416095275234917744349407678430465311490357246259447496435344793245566095852708331905723588726459836676790659528749815370583038456296573874562494191191470007740903131478775137274912544762913148833492672208820832003350239696412517792987158192185328945491251519341427850410465952336482626750716824694965988242820446062274141026425530809533283850326313045941998679162305345414827463305850483160675939984340143987171624289231061660785497544021770558356880252993662242405055986430331163623723663689907627847506717235424746696755068322899628678320566678624520581250006078081058620470169533916301397534094917581749663118363209674233370134299312603202260203989835212234632805925124714742764497232960705394485726196206688215680767077271300101676998796028032393217332722622991699083325934010762454305037812416673989138167692723193612603720192559979357293611027560106085082498979947395384884730799998651547437333157396873782148678616550269183215298430170468091859092605300798797134525040264174648073270437226672848074163096188146526984521506476124185673804715573934662741276093424572725402866337859539085335477057432608686050335054770655515576325052248242013587791498021876273351164448368712881206911307595930347861209866009222722413315978457995963297545816488606981062195922865819246034389943364616466364734458252288445858482999176738139650022761160562554699252115773606942470610012720935967448511659125450968782916448350926540095992490513695565587019484338869860500630621704226995988885367875085159184429999300737675399896122174350396038296202848094655298261786670393483485235459758742642903408863803383726595282535140794882590232018934560832818080248980000561280506335358325546300270125226195683336215311631914789074869826547391354711468359362383583104978342075739160355423846785972678905609289029808441681324145082844283138168957365932985232682313293638762542694824367858713956370856263215654560658939336978778785399005488954051442068828362264357579003168080372028224949957066649593689233187466525210001290946340693141914310989678504222724499685673439669636080608173310963050702994815887824545431938665474090175717639582392876930321801357916674841207268557821216476460489683806079247507965552268623456487139576305538126566288799318878416766038631173298274140661130471452983550614328889879145587367583803417463976175814906217073777454405283253855616594299576740089612876819421576738085141039622130860922843817430861905843703051819095499842561914406424745728297958428986178241807061409393745364913651746246573335329402707782844313367074343001049937810612907785798427943320660701592957801252043099536438594882931093273711668366122007497764408697797739096826024144853956053935703141759149737217781025781128714352220498627196678705014003787044844898247708671346847110130698308616403398818580587025870326261805204097591786015337920551854457701223107663916372232253105689216618034954797527392381929511415859626310153967362418668724053837870415365612326939842915982999368985531909243194907479591094445659107671217015119009026969977281250380839794851265726147863548335255090088375916668089837375277563604972853135893872466461820514900106834810403854235065663209081301146620616371927856440931835854364242908798360302296016849157812452357809013103671871373749466339551105220855765727040485868743492124354478897740984405983559115547802669901061762258407189923855850798624914656475281472716894023378942237213415931526675292015758382846468392051463577892699177097064016230796120239573979244376160976967366369807119374311419248999731523733697476654057301142874796913183649046523020581307544574241943716656871099991872416039489293479329103674592670811965674460924327780374221330663399000694168555225121921822997280040188900871232500476130855342373767812432836104550303334838308565877635935288270761363621413910130472185773087317663168960675657317905964960031720737588361042832193798164024901483456133008929343333992142358400451867317925182247058389945124472666181248976376771174684040164598313963269624436835171640030145893593646079466433338381499844220195606586439366621748587602636066493597908271039385902809458806184938989230117070556884460482626894516948011801562110420829787093672395854409413810802615779257665949186042525241984024787874029808402029670620529198494055830822496664823312864988561566156043414733238934547743372997718312037516391168244348179244703842317734004448292514688245821667771984318310350670823082926965025196035208911161045786527997669113258757032871142999166730253969156351712419702554035036189799651817604195708892983909813344175473102740780920002193416526744341830508156212474905458911841048457751480556456065912140094440173989646926863330491231004900254137425159273303571121156848855287501114567006254844009634913968756701966213645244717772312049993798434990370452509364952829459425472337597069055588627724324981783999776725210951091788673629232658836612977561094772633334842247327094801780542125400908270272083969489233231015404670593980068728352723160660311040790698581023314273134113839031970432331974993839399913397190004719710821327093861070648082125145779470584645389573894375304756467063387432406499686954617390664231495143332964311600345486689320704821457083347944462415825651550702481539386228842363794866922654165636313712325329746066210083948800718210769705294487587682210322293957932959163224594784539280543506751178675289933804498078488360332134147091065520697799882177309604487110650064203730446761597217027346493122255962975240600723639167895033001434330499321982998206900858690279103754501725841163593840944198391846044210851161330762853717124136061848243170973471017674183519145403778841912239328965505283543692731382078285681706218304776040527878864931602581428454374280344286373024343527353414997073909239720215383143489450522204811252909390804108162692099769492186432004829375575678507933084687885976854237698607133239285665576335657815100070438015462531492739721603410310942297218299432671193170213274782405586067898268046111129247215115247190438145252719743153410293217092041255686359620533647637180454370391147124107930010258916526284875954828593854008261865512091824105759226439355273067522855254567118464658830559392240190214526871408244535969231358384852748840514690224713175618939975781840660679948107790458980830610827780031589409384653648519569103544895374584210836873861745398678582143490597538553638957389585388202084438856471305293710676215804317338600282216682825820797470984583878848412435926359542008005598654179303627315997214224487738190383450894931410807114570692962161512089245874842684108816921538393763362356666310918718244530222884600007348323807998643821170200421465119204610720270373400841483662811645333259534439257963899835743178032639818824246202868852128479973198077036892613517984761903989808375581190531259308477079989781118356303776840057192630347858041555427918100713851880578436035378622429340680310416390500447264656352864844497503336160923968927673422195926720422725904945304653685594745611223335243165943236719934857718288160872049886906278512637341265492005713879578100651579539566224196318950529198647833911458797541782290176552996777429507592018292607171496219509085840269516119897851421092699997009711625661095748424784749790297926933212839130463049528024140266033671597026807828541649460191582360528829886496217077919917209906015098528975823009486944129913995381460454704502445160137064646753196039848974686027836970521795434080782891661766424504891999918436037203939516972852555523711652428591848089456676988753604423955210595779144635872801071703624681901475946301997459904989977981388265145191531922502579378059639067902848835125838575888020160546780464786235927834308265577387041625474732182804585793774182245544887258119694345354590447576893609611148941378272703119739522201289146841578606246904609587213065443850550527853731862548893384166411298165678153167127559615738472511554988994110131936912524761778483065248703524531734274547863098699318061114097050864069790502953000803594893777058195552969028105870360732439861031692885186988015891670050703427774770028377351397402680305001835142514699465236049016853744798491611033390600374072615927052705877410629057899258097618245356597720942399279117864737614143556960861523160788482751485522635586091604487770494460647200996818215992086150482318461754334217385229441515145524316094737453963008432655422785202611604359259771413090143969875048308319769745271869738088812446642653740107606344807114155823171995416640680800008722080600679765422356476492631334215272326319041884540844853314303451848241314223525582990565567261936544421882668129430526205619225248023274204500890828147757473882964900227373241165474132456280903432683974516217708347104770794533238816010592668638256261218603739036331289637115514749524681953321326810136459395167423028290340218153320132800963872986761293968784117206612237262515959874761075574924189570027676148160652674330232472381128555217396876001308129246855098644964108534640404911468037054876400824591355142922764738107553297374278621358039982839301336588906336273534666285828246552452356018458358267173456363660414474203177427049637563006884869311658533425677951673448881582937177518020472781586765199442524641068511035986170276108430813509290813627639043768533711113492713092667553905604591641404927464012327948960988795320563860269256021444795260391131138889412133966712531332044341146580322414027615258337719858263211689495981232465111991436900074072901498753487202295104309555806128812995496461052138943799827680381693052220828876199433533255856641945101936716799604219569767105083698205317955053426814595100513159874550966180604248693098013012492542620020809155346551038645548038945771197111777930768122701825406939969795894239475227145659313977830388073815512840648820893718964437170069295188450126603707072076870264861645000684215989917046158864429917208045268294929097921707260163828170143985330101862673927293277665613627514319964970454578711743494648673143995774130876571769949055305809824147362312633075953407277760801083171276147045981260912275849784577444824735348678035548987460620454307803487450224836641825333939658164297883362890211558371360453044300709260142721042094240654998501048753983895157953117946386339084235913529538572067836918547975803205631460701939019304302837586325009640333357545295393887780133411160537987352064730324158947302130962631479009082238178524929135984717803167531620554726646800457075842860402292249908467016709868201740740635580039653743182639345183568677996534621926760802697266346930789055723748897965250625350415309488821146941153696607060427711878388544389156112747783899430223802876616566681519791914136053512095623611673172765270465282083950674731521665187726557764946829352023833371620520815283581570030907399242177209853484396699727816470259061626959815163805866649727034424438181825244742173258410161724087172046143208968915753899501726474920616807799176840956681942532179490067870377864224853649946987408267274470406761807715524837210380394693045400486587938551418409691104105200775657631267305695340049938439170649566328822741410365456826115006245003432148507204407847062293317122452330691756149558325796830911925650397787931101554375656674775140153964524136067501199933537253178973899601547475927564924584238676398270464772662482933028716998766610146812378864484887661002970086121725015924135211041832050166714612140163689830293082061908383024616492544148610280046651739962813339499359842477888576881974519016824211843381879847919244579912922959359954106782419860160792218779287672994450256062922068241586645332982953210475622504925946256926666147544653271764437359032654820965283474567743622152025772066164583860833498275493368609422799688879802561803718794051307477427266269914337230008429855543844018747570217735288684444583394751156160107609990917180378558693712805056911196583426444168203832647500343285572980315936909160523207458381308819596245177550204087103149556035240503218822899615166445115906459575055182383169873527503090900345465021314003784149558621469151797422762646045197372230416743071788052379121263006325750734814054368151544568121430971539688792954295698626884352677060580642013093926850864252637741237306759328085309636750422023273940062938905831198715407241423715953486495173964384943935496395172928420407689927316698282268735466204284944699327747975257890793750278891872523220214277740538132281372230936547391980298015391024510997986781480687076831166126364524397113183738416345775698640301355377352628208729442143445073831848296992537186392187282439356476032286298354614579282133280342225333398139213932043459120923543362538031133367012955467111079645678156508607825218040743971817240910942272725798067108410195200771860980142098184902721020803658351322005169116770251029886862608992571973431905438604646141667638837720758105998286285928459356248841338654087732133077636788035474185748001122680047677049965297158660254136429411710734456662303851099642781040358668826876299997897383347450659582192051784560394689593594532812880886943245549418823539923307906529454956057115273350000666488505871719272875626522518986691005133316793215823080823559988826804384586942581376282192058212126123634146043440976284396246416440199469647681740005134904879391816107114524813036394798566108335829449196172847714587255341567200198207466399834939621940158301578548413672112832380050828547535876245338027439259094081213847198712686871221755845976383363529489929194886575525208094152106610396704770716811881423911614311004011398257944237540037004206580918080852218599422344386811506027554587606932956698791779062887624504251051430720725555180068372780633077189744225144849600075291676899183833199408220789866038301533563389587078200247458900133455964762536067355555580034638982573612274816472145463515397683460128192572772200579266817355279312337412869032125009483428235006972225525633473821094196898668719677379744701112686683296390524982468299645990482001144075211004367553598457799083544613195461750379311059238611637524348842130518868117080479227613161719825516302666476730702419688143626612128675309603229597238357685468332381186168846540125962680661900558015431039806373412899767041280390319081763010762352521315809726904775541042089950884617352108530952573630653838582784647750716085066286174442026422789032550530747290303380708557157315405822159995975110470593994445695859732236051978821652558669239354417262209139575326267124833830896850127196369937836750557374539499993927667386905661215560431873243393757041846217470967206334047691513289659093507377825051713461684181990636112854512298786511023006302186288152758918385884532707954345214122755474719630585771343331483315820925992937958503838990145321544254931751136165050967527768153557744939563769123890872678607858081616816732400530318487681206531540965577424389351640708649368597931837287946286202181592496646487431694814489746800544232212352766767354757866376882973248818226672785662221248162911743348239183708497094256938042489638450538400474050351152553731721938040758370462908515777122494624107189647277764515909871439447869111972949731482844604586001023593178799029666996759296426761290110074290466896485351495879509333527741778974357674760069276708755030962801695316036407472562498165077455517911876346555392634963031666527085944276958402658833663521616658416430119333604813658030866736365038817850897400475756533433062158138775895864838519628794178092158809077952540451053441768153226486780576094525526040645240360570367441449828317051025258419247706577398754725221743543392432906493333011183212540243827668259186548569016964476085859636228928125289316571983234824654849119694104822097743813001359216204078911505699014757149747336489538984748806499821249198964550449473904543771375233432526882549889216970506900696617763317663029388404569734943411503552335281388657842649591099877209009422674726734539798460761124871886885291014047137878760147461936428031986605678815810190191256121676758686216763581757635515126132331571824179607634276563037227435197301606893313014061056391217334561796896293633530657715453927378399920407722543887164682884200557624821306019391018663623316008336643510177022421918893589775572598226624319646864633630629351733584523838860347169956596278193385535107370978918868324316208086591774645072961550343074054615648335314751291408287220333181106548746864433944280884932646341827479874315708507473601028749082733973471755034420591493477061761435643373066426651070693386294235779974389631901108477529940235087149723398927721155662229620721457575644310652259894544165662449759945854686378894714644790633647156240219666516392593217546268785983562912547123133852969856844478472368235088384925919450659788693446424736345846258026039518182499915520559819471833287773643484980511526749108052706981967358644295742120178380446390226420258584266904737827044967807947133696145492702654631036452693284767258249974063230004274882061878110996195169569085389312507344191036917957089644898748128318000191277980815989918027059677449146789003785063751020780560189374001487763588722173210672092983147649760125022816340047883152560374778292779786229179745598751258039045060707947031692408307314032707093519765589959776438757493864779312374368397447328518653907500532417511453143760336860311434791884965795451156493990836176600289589055648694093372535196307014566900110135596550103137019009263736079052705385003226731994788921465611659737878874234293379801063902744790130972368594081942233388960847288884392346646665510554293819129554629097141245502233239990102064449741978464127265709739804967634622266413525560603728002559385686148364017075582824685164597611287789029879637156016624585207710603612627359988919422809702267334179103403787985796343389127941566826117368890857556859591520901077641743884320997871015660519180526124256314448610239826761393312756886317667771574450376569361509523261815585738121551249316144049437233737595087150917310572599678815779387353621762742551426286107026129019637909934178920011576324642744610027575893616630192857872209738713826684322078690085385486112217078010695587951276586159015435979587968131527158786439110553371228398612136135430130959051414755757573766489442888679840227272364908149217949617863904986496551010291668523646490132020731959516247790260412621354361781674490255961348332426438575080869483613085512782530202757749153980232779858382747517106108052575114070564596333423242186524100506840310822435150940501254773147028425982904076614474765409230003460078485791547992220000420501519084798808284593348270199571516781617040804146804831017377385167670135090208014104351828799078600715413992592488988893079739877723354461133937743759011768579563442061075405941997990151368071570841645099940972065786100236612722764934568585614487668526258389554585268107105393269659430468032394133432932767383699309670407717599443521207842647529833667381399169326059045333855433685685980354247576307970033987700244292804279210309496801440936602473510328958907855276805860608977970112747636289364485052799777540871015706636989452988185194460911095871136629302079370748021134615015883329548081623004799043223590400629374806987361707823348599778985705873266714484866357883713504744268392496934730659614361607521302763885883718829734597551332821373222073640601833950115483976177680920666589126177829620857727869640863831967147676991758725078801733230319419042223470992497642507852197863096513789643794869646508292069528046420578668333624120494940699783452453412598384957211478018631542363330426899188755622198347784864605678463671840126978002731752992100159323680421465434866393791436595319185041103789058532914609464944787291393362634275501322204832497240241890886268735788685391702285267648384411936892427323368181569479187551673396053904377683349604918674000730448921089637778645114254804669747257784328529010520900030177696545571709458428620053492646961280790019933662773225253721427577989843749791980216233474093690786589685684908345653912897077048729204317962932665196529326384673628963187895073616721234382226456194350720106376270445112811529446476710017323714313662019670347400371932461983755239174281957251604536367497895415237700469421479740231660510101471828269046796501650545103410754562687913411181889335077964328061321258383922426413596905858622308877794279509163318538266756184899024198646293133038942010420022517702684014701121432705086102281995572990380352876355735361340808119446693691710184613528542341779708982425309311111734021002807197386934172225006777084303850378998449174522777123441572986043460383406476518895434304548635774570846244060272603057111865306451818013287758772303852108229916580403637866544228626903377062644723183922239982231456593404899472416966345945245713773296124524245732191620135192810822384579644670446060718729617537933006369223535126864999340050598737354091121045306751928471880776824425329298172387113317679005246852125760835068396535567015390240925502843410393925211740041873775125831967972714297591297674115950371986479197844399445903005951951735610896026960136558306243039546578922856719819198729531420959611107602167814588725700247480855028223428836965032409732042772810471895376830939921546312696510984083648504247141751586155256429764539942238771662944756906474743359503485104053474368704108903981545518711403523660225385226992832356534130872352255749690860442660501870753910809692842136804365195321638891205096947881626144032941718087940126261770466278927834362246527928353430161448701395753381018433712892786387303387020680433713882226631771033492005840617828089596428522628305802658741228480922986149551754386084281988374563922876767669904574692315001787507283574799730491335419875330510581282955193777818572251545299400264911380816735056274575962885375472831787304017764605566652028606479476260245596820385436565657573141705631130377544710286138628639891769923323417033460927987653188543025529069753826165511597349508043609907226857314623590870054209327502787040087270107774631876828598489030527173480616719499183998013552799025172929988490185342654983950346538995144086612851878838815130766831530773691086494866576805115761677907786167648048457510418884276598803163350004036834659255856207176803441701340414847505592020999804285207233325712053000682030326657597861871458692721704404590278679359593721820191873112059606525447352069122059334572599217109178823498374729170579959507435881398941587968503704470889560205658586505164960462312700180889024991475333943972380182359289790764694078436310360758473319979390936164772035203629228126422040858234331004349798124699953580872890600073218921137813157894733814122825331072875003961436421825619736424053182513098019926179641672228092204236315123552641438757937860153343579922955764606289574648687009579055728253026714869564586092646943575108070253653702533012717599753477949609786956394815015439959665088106288005268888354170938485954343912549036342956327156111240299736069010656132927294188941468555388954665254196904351034223625417214519654348959433433933054707600702938604723042089968748005251065937883658334850396712030682648575370532354137051745461131047571369002422471974546280093849195618963244252702452731687228825072806207796506869868839583582462294124717020062604878536351410166770532742524305280370061958250252139483370089611979222932387837438304963981162243847621821522903451860913242243731165519431340462226258608571757943040298993144536399290190990772483933685810499529165053412438367557466900854389167885545751603294696831004068633461337254776773735204087761144200571105108523828230320861641632439876587723540026152667824763457446191456725875652991240126436651287352984465294225576247913322598492663953300445648433711166685910489015216394459724773575385346772695918395075000446829008534010533286755164999555480451142058555057326014050095040937525957513772026514593864939455915344517227674260801510177472141238108178605554869185117201581477555315705839671011684480906165525532553176624602851958326551387080506536339396376389303000607446742443766807322204750498017468842512621909747266311778162849464401070116503073924072585917387197686330731312010321760976345378267708169209790496101283576779326756872704885544826381101771908649984908373780112937696923494144251298118319270424686208322000830649548415133463512969422657371128349991114704341231269407440262584626514810706583013170776917545732446595301925050329180203627598872638165911807076257246872501351649352358657626279071546345758277750097798684547688542519063822241779567851587801821564704619246723103016042936462860424157244074788370018417732502283578129505063642364439554620562493454015597542497546450793886608391567967016297846748689146979138898334523106803429721352505755081221641854839894787495615274870456785264493830074102021498121482728801756974852045972427976828775379847660001506368219364417168629427810466331450123053567636072187641427164773609655417270421684014331629431681068815746700202379421205299405060610888574940511682432940506621296373870304748682029429136466954077103841997321325202647321555521385829934713455049479629606269067788282417495425331370696264946314021234023908952996376333146091276065813188087060902451104679369445937094746582609448800834825031885636875398095147295398817523967630701505651504181623190919451837031040400360541373646340574647482874215236720264107977002386583345516658686945511787445363179981803168819746094008572807332637322291591984536536721723055626285692767437293659657093990816558773511259817055810942610614969912583041048152423559830705691114305630208526932550092945366816084423555608670900950372958961691940170631250635699516783694342887825000367327858324393770623886183836165571327279879595384120514943523954383626888172787398448036934690690077386896012251233395311886198518496157495145815436347153731427591245464522940394831556252875002115466461945023893415014831220749480308682565515204840624583752890229881489802823650094487683662531899881876082085761535620012051703549236589704786326945946873520615333178078414369838624510323342451550205884286962859705228402958212793715305413821951898293631151878730283455290613248637938773695269292502878073201101957369365103616683008855419098133388006736976634227371852194980354916943488257881336087741122744137128558330295993313867645244356764936065323250518140547170107333360154645378170429231431811768304410060544484378081901434719176643914641680671348772775666393769792499612691733622734001014171288481204468529724513021277956919631016533442890991972968329059818831208769359957993570287229962606564381934574033689790421184027275732941160859558165316376073479158911173424440302548184955998771449160582682425914045128971682077427625146178365546642888994412357693425195290092741027928427304708036507912425513027234244796651141293296032692065194034399019768679812109227595965188014158243817000069042901666612912327703202329772295650775191930725648841477160073177206844019179493102127566009247105783540380933708752047822777002337012326527482241503738841059561985256377963621249353382500486770300561373620679807168145069628897979116124960074935327857667030260292203766805305172323318261383313414705464465942804144272595064068292241324315486254407821755094800241174630400975690640503501673798258521001413998681148707321694456537839012152393749105262569952537382401685879079159662902669189029136918254278184786655737350270462571010107313039767660628132589449016390659766565524558097718087718868681109328125491166461479273004409987255054620122547970467523328097538442259043537662090050545823639878612069079227913909795734998602943003528920257458235076732744280045992290312692914049484656262370939351934993323393729276630314411109665052692768151909312597510673990359749476858844665897437976099758758005276384732946687220269527020523511589324659474283542064704892692169931705469706881411134385335796092747400200886185719584409405810627053883238230906243223025735200715996589776634491342089486843606314705935876921934633445684077386113707418251698706565163257115039639781481485689606327210747596090435776763426362510552890608885897280529664753983837129420240132470638357436096782065440569109242358584562674296404807706716431315747399647956389713936066075831204347976224061783989857989127000408526361437086831569290658437321124845021608395528227289450923699931754206128801794915633220755349275493326628435527032945047910424979050148548213429513910075788141159126185321129246391814890625601106731721472536385269893517096394017645531912714094934126707146381956824581202750459319255945891787562402488377464637296723736081991614785887667620412649331279212720313833000286473871183719866432367606660420630388393766219286579290367615251040248686386228217698777762535581801531914869624584446933767975878969429740786171356352775120565753170324367929258352354822064380283615940738947906338403832684122389286500758232716552951850465266098109132039969387135345992630603694479887427031352337551341145614355091999539319775532463633554752735641935688102756656807180563258190421201120269618566786491930733784299043214534329687887698439978050039809002035182555115152950474513114784718872450359551311687880111985734514041940980004515076775383493283463801612750143382050970997972691082822273783690508917684291871596543811344277136563932288838825186216963683894149169141587293891682053379308420229545526824887910988398453118618739101936075558126614524748806249213614094290818936253618974924122918255318140800897395357461211391657027960287992618595358013557132604083866062718787822743634540977485849970309395018175447690492623304468798230151298620435947517101045203425254996488608642575693562915314223975281721638264852188352687990850408313808356537307205047062686458479680039641729575485613907600969316990057748803356779391178113020526278778914534226667506037232997674582602605264211900173109340719543409318865283573990567640680728902310066826825269481376264705062166911881583017286504059130164447734166399934057504626111872136499592392772726661903229678097319141158491105450716057233124753016442212326101050793835857920320807366679144857029484964828528237929551783195530645203921570111773907509879781508553252024028209400607075770623935030083944723968129253195255479287106040990649410347485903239044589082830471410713811969484706876375713463115634769579531560537806251849148500300625163461072107320466458744525430270756967959972275868902917110130824581562439281323709127990208020465081077960229123451116623312384122069120726766585469037829211759666564091236996592037365462824313909357950906009078914947208811758426879530427987175509388897015327595184129775625341490346012548011862214517081206624020338187229982008330468686293561474255918996373048506540193234808002040486057548104029741284512212844607718903841993242802886785779969646519896465160798911395397234105653728300214186513121322574547356052403896431010021491939743418548808036086552252726055841209641861049516510460494776644937639051420975909046175002325944826510720619062490663084615289559431632714164762121810556430803274856201186778912522547095882365120344862504835250196797604590903297105651872190404091619545777047650816812913885536789270647958079892493763519444777966217736952499204282611666303983619971780262141172110972674334429702001793504608070988104242790715182642144497461775706961185395187377538337871568436588500835465131099331137539453536955844494202626120979901381397535464619987914799519970626111735932285944667231898803403387062824157449114291918146770830178061848254083600872189484545601765870126577296844877316948612961704774149198079484670073898905140553683102583384454655742995618675170961971726898671449526528711124863370140517913952865342063131519325902524211609675793313860303925003203128599572127180519774012890673072374444986481848341077951049561198566620600679629062884936078222444195228477961763545661035782895598612529774560974137300621005126630969870627720032318020251078424960416111069943614363069011374846902469206930493523679949992888627281313960883655411587696382883891700042589562162653757801567401386083676955474459495593591187316276565037634686412993854277290882232740837469210704885604117129944497493563547319357754116768087493151866033172739815252284872333673028383511287928174965745616733738228554547054165208750061854965164036598187019538918270998789451787720048019390587034946689957103150029312382285501457661676202895618935790601854472204809177942842966979022346779160611059829673785999653042507601613917738303673654510687319120202232517230837241494619857867225513757433982302192322571113740795564590143986397255402790211118464851093836686373254336250740782039621750662055169129031490657270432995281162744222228080405946495904563310844347484273160219064700478221673068626930798070523915100448427190463564145196925237677608943853720136976777820015898069477191787457166918057649894690551691947459593540667883281042741139241810513147490184197538780129483384743770376171944411795931805600314447279428304255006397536334295872516201334711480458311774378285097161251617027015868740479897358918676309992053503450211233763537394389248881845911899219084882655072813026023311377298239869574872765295492857329604683150961964812035716667829405155178226601133765380693653392623889587711510167897073616605194535319817745803885815999657750070823209456925173733488370558991953953242578850043791637500632607717203813465283834179650528097926517522745778735702916130149737093719092310582235598359507991813016506813242180709637620833004185277991965911209915008085832804919209773601039177538347921517728126280242162080572698788184499110264293177901752954979567063075743181392353935337995696529541940443416743778925032286709553235499081586645314088238419216612650188673608547889140084380110943238688912047087608774954953465127805956713430523420164778826891412347311505586891410383146243613933050069620634114043704062749652187859878810555608027507109738120945080159161949594938414027889589336677755870779676952346242090822926290064761787557476291778628646665687131743403727213607155293983800817749353239018891761972187457581756830794762233547124293525728835892015815630869302668455256311101898038902667410164292245366126447808035557663220520213767259223924401316686489243426237535450731825154712255293200869668283254465436272702726020280037351788385199454636429607285379288801321907576509121485888881977156255133604508448813930695973678338955646027026691853035859275034645754219204999746759842698289115153230265520935778008902190727697355654966596202014934853463092953246635823334682328554044302904003954524405955726634404333640518830466638793100708240138229007784787074554485962489978863255083358214555579787135135460792776028001562229574699804306224971585744722704107256148422519856095361125312242148596524066564331725384335526118973204903867430042409265771882958556315986627180954751500027004724459566147942194622868907489001944062778703407837597037985399591935885979568899107391805983621036385361452817437391486133406134217437054049866281265697602934389792976528012662755622824533708186270349654436714504731174533092266528332927496002409767562887284113795119353950623333596963612756064939152311020607011715683367148170463617681914124143182075634937999496442622376817556497630067231853800453919656671468655470137010513718799101842210845618403295805116884319051515019520719958097876186988633721395570640765015191729081425001315428519403958089763576225498800801408190683135590562800114581230203494212420703978919190035019182726299204866546368273487134838488861638696593864682177995750622490578994419588132581347879907830954831364654759256268487454151155314051216620063867430205241594897692071604224572200146111427172826797140713932286397501317560944336700314552346437378006413553271404051687482833124814082768948322099828561737779393065354263249167538670866644335160719252463222479447558949245631981274305689380668175632514128034216811673269105759303299208685662144687053437016930154367119950385677849303142537460581103667302270005269005007923218561480347149761148057623047609951754905223849365871458085917466990966127261943016738579624588360132567349796766285875093302269431412781792287388524467738676426402421021420403429486448344870125769597293023866688832047256115062229119412746983765856565692741154599225183136974793176046120670457150978400557070710295025637633463481775365536757302868910028736793099149750164220539140303714497758908820913509775125104057693026953722377153714198566436290244121277684325150593646511620148193966655019148111192838171706685586280914983832551589877304008558899016800963905042412321875825411183286241391304250231202634005337012542100652700787812316326144179111468151811530894992050764534511171602521221116547534956681895850475726364328357939529208613146330689146005882025325830318509317864248565755180094585797800971627736825381512948286582288432668832625897824173773747773683129514289750337702677095464889647886962340507377497227548492758631783849015276438943102165373897372707917974608693337504724596638234743815018705410306022917205868642695315609894538451346797993643649095304776406749198656106517930750513286291254488142623775561366464896179568981319889382337982721515902165513412701691003533621701584188506963498504825440911777895946908094864653289214682854542364822388908724455734591235526126134651380478161918779888493002889168546368532837818224555754997581212346929228058819498431638644763833074268958967503447545925412920098625049259878607224168000753692268149664206618259707811951630560660457116107316563114260717990146631764880598295451753450648456458621646322637051391137269546023532257729275153643344404248786039050625303232093088549551377654226494609119919915843752886886330096748454946136446142057872763696678935703797069099405665559559797956602361235227562298141600134502984508561811299988724579457227795938898890299946679862877584608391740247443262833996307418142943946787164293193771643127398414539464081403966018620074388485063047455279535408043675726546159755378994225312764062536818165831695834937328918545339715728344661147238008624984808462466987506214521805204999787861267302491017741473649966362531500931899077606753509866886327770182175240018062279087692592088742845889371725007814956784416166479591506857643584148140730738152220171758074679828223409224799900744258380491003909895702094916995615830164613045682069261837288111841298336393077159156083406392711170458561260618352470839565114475992783569696777633522986664765094158619782903436892516812403514140285633635197774964796583904746590973835887025117945515991206785568200624059974468585714999076453774622090498980271593422557928647621439648731410185476029683692484312569745781499994234399052605761545336904977293165182252873993205986651250744564049049523158376839641907651003454775956707414556797753168362638270352053679768948861832043581508626078614501830473581470566985804656280074518092140016175533341609398041912911360367637580382032573618609010653291018933699970644004601235426037079312807489689126064784046617845967697708120280574724739084093011489248455735762890671370109958991970452013238525195641221667133030336835591428546325744089370372851160305167935995499619524101906545775447214347286166010913386777618668420592930433271107507043885706174499349094438957128738849734617594471881771105275226466842600798472736308747449305276276519784428911935789188061335593848294002845129555881002498718764988945428963362815488626968646598723999493402300799729572250628203355635251273196951519035472280076110867819668580844126844672644391472457787428207223996983580306592244690382502647892148095888891429797500374104586462601488485282860648266425471935812669674035719317411103843559870186100176429503867028362561949304585783168649023818461035800687353699678274655285692525556349717226212887917707785928786786216286805710900535306411832911897279550631533497536156840712867171960993577501717820943396852896856092610785683211698298851003844571467344829826764019404241362166113320092219541424813786504561698940466396846672960150113612732271295816603116588393981947417982799182547729467252217514746113179134736362523918573120545330800410238872673943195429210149213814889792764034759487871690043007268054818698073574559715168886973353988822844745742741360108457047451543105140640168687129032165088982906717852568541801455811851170838603589038992922864666259949849187812839626665648178950695589068581970116326998618650231414037313848620989450076290286747004912607462682284771816320429097096914848359912356801450186865401176059813069468625026259358526927247279885874502428305350985550712208175327140820847309791064290130446550392523434159412037808708104423651815106234649242518583792675680039934704939627923691359927290265873501147595823278210622822934592103919908430374105723781291457914130246860905251822354670846365563672877371066077049595803456751732078012891050662463790432690081157621721475636702376934668241336620086683044278300320266950717180320786343243821975851633169058364431572232353163262968241899613918979379276225626021738733115250719757540972860990599322126958554990364948141004070973051449652020245141893111142596124510763819458049278892387655676927017572035594681956427406678015720328547897055738052034040601436692476137213803507053212223306167102878686953792507775480061959743284302454857814805722014086497638523927778016897975572973022875138240408505648941431829018185597685289565704799269703716793203857218324605468905169163211194519914417080613009591229788682123517818910466520183648398419465691632219251355997595926709806600521798429499271628564614017525499826735197524276881272137969975448531843123098984129983891673780841038425843808161198512581182824623831604023898885049488870194163176847511446729557305942235200357336147844397736455838075604876732482721896079861493796132225789854026081593618739938527884013021706167626740404768467070147347354124937866873397102965947828130412082533283094247000862287693867267192135271989486401718068518159982345600920750305788882171540810638257359812530934861425225826330692469527175066364184179036784234597186716616603144111340055952874032530504971448812392866962883148385499227015678536727569604886794126962566115945837122772188429559953203940155873140462977044904792346972935860659168565266905234249480634219513723986051542972459265019031682232810087679570985606794989257027145315024044876549070118820417641613428214220517337369977228362460455228435794159643360466807975883798500860782699014744605182171991869932798394033111558529834969921254289610359362089628461700295746580065741908930946418494912994151291606192124844440826741794457137097895040997374579398183275189721649740453242178768651933079907594428226177757848966460539011418227586189007342253734119852212100794503936902165327445577870656334556695395653995925299738195028345545924216809632563430528917512220566503005945240707635726893989864298307483837710675075026995266876458691010158804794100588115605076377522020085958927167052730850998230269575999826759224874901967954448447388260825610214154258908505340855644548522660719988933879788004317824700978352276708610496234194762767860746695726587066677253418449729145114148376502876349557891185397208897181882789676222699747594682930278292256729263082968118826610578989371225569101182162299068089878963725101530183993079086394249979702352593666937844808369505047575413416104742257729329554200043542190300801176017583431010496761029715883314384274285404460534098080023986342025972569938534149935196116648289631820369483264167933237530413497891702631801762034185371743166844174606582860656694002551893416085901856844282469993605614213699934176441637825173865032430375984681142862516157143288053091958070996884929687679207489235895340375182994819654199190843389187928650711498550556423374144212179484930872211096526661308130955433953580486964010025395443831233420967651818334026847698114510760723739334300142057861365902606345041528024014188002027145665580870839506199899325901150348005804178637600441631610790233545472503387514768200401903568678846466694737980323881026478404463834557666920171686173979820762131803706499458599001936911251452015417340974845081018933449099810212219356785320184854272423484614015122368992286782463634015768625063004355274159758631237184374735284779665455574283095255468624734189941639636747926429826467174953361075120618699060295305880963937759065373733529365305087394789111689929493655746253171407755948955692296208806001591352779881270892113799522959158279943116645225849436298090184788531655414469854459707429229356905922404446516343937748983262248335373737718224254778831734560551777469700584160534411190293888682087712000721968265610099378331408759658811508036438650628481974833337380011227351972747136956880823104536730471953222042849011625475541647552214417744675840939949447366206539399395210714297118129824968141190293357529922650096365209332749617182693160341712260532327424623574542636865779069036714036481644106582424911126164664864980191821463108780749356833003357114661647599035573205333827019010911264909529398117520058297411039325475955149727329115619920071290940756676255711887705745160214567658221146197538318291213292993593801628356853035177714357090648880277976983070068054214659747565688663907580386083674927544267399875888843145102474914382766967037046521405960514961906088164123023931738605532829064542865506098088462194625729224502020359549600144934839317327249155276772704251749997967859192652185145037416369392070230306295186285939253780093191123051784494831129202406661401284356776869277294206532339453716251174901358874097724486618480819179147989150321915470473437692999895555101406603979735601084603724666502031028650217319837753698129750848194589131575537574035760839754051031626874540157763856566570900507778886105417246446651319442559177696353143630826070997926251365715259673963595267181511449754006678550711532887881385472105874299051759887157655662544141802153651481077286524549208503640479327319149314763434120469347769123533839282966505287521783803224940359242531034375357060177533996596739477690246602121695852795816721199242294685586923852346917101331066644678962260512669000209636135064309657417643792009419912964756038270048503884821424789321800055825697345115104440011606954096450566543386403412100666099645896017885025410207335031985207621155013513817224768100950896020442945623233211106199436975122311809221687824144988677992630974592225879010414268644661894581141842375683854350336067118709667218590683285192902502567993105259680021804998152017567624095603499470942901032499424457931577316961898676243671296970772777211935998500203132656238853592625204911137327135805414655093820928843395298891227054203528205397931126239455654664862719524585274217215571939675517605958339644122538666572489112741926638763246595011861842132724574696773649318893313242075528103587822617456781237287397101973846002175900394298207238639048309002746587994904456908704116955262693368071627263089064166342120296528344879877587895745999589941726335273800782827917220470114994823731919249831176633443642096369231928246836506278030737621575092989625204865841788785697867478749521422874593203594736682590328668841306203854644754683925456341633376818782607548344003039527841851646693011558350558580910537391583336369088608021277384846032289632085630698517439718454228020580046935707008809730711548001909153478017029567667708186722024307579430615467055587183270569931069612645032847504071907672517456021041909469672573829140923328710354607785995054867879892790578573683604730291353017883834400844196843753475771383262159468535971442210776561316415234984567877935859191757550355531208310244812294193759696957205901563492340983685663680110814295107367087021153402871358344441934820968762655211062574688552058642626288758829756312893388119262251487043735264153549880129585911214542962868385698559823986643098111328596817595165340937078000820063013964833097255954687160042770269756353519840434915425988530515779419567582037390729226586198605350723428452107104536894549666419892131078057455823281405475632887622029731014281227984597721518589892679836560380192274231974818172194847406439869371312359353038082760200434149953827313168746355836205146641361331323248749241856690124320205985525131632426564584572289661054081285595377239822948867624076716797864924369175730670907379886042569153416755773498550544762105556228706544254034790715449596451732121329021813162220538352387158254570559953142762943851309365660836177306552655630660999689184580685787293264682118962146151747470267120787030960667281103525081660078424096220955093303869418647536721971884202323655492364095937519149313641975708742863192022787122128372861479611998523759793459457773603562521090646005332671898278347055160115872563895764610523458277539858932039361452745004071032225110067076148173794477860119771446358337796582487589778812003071031670647105590463350202769251013360450507397828738975595629742039378790879695122393915563331391516143963578639210758969619057877252240791708484475332231397164748993496438983447866790881845424868365452894702400591533897991423228516719609392804933350769525360291530123934467740850292239492132096303221873940226045706974794270644832453931647438361929046024689689543044261007672699396975189489519821996213660512910753141496680882108284605839225627827091762511693255430483679750826386748747842571816934686894343998931483827859565410089573209468991329907898531528742694694280549655526296949324018134253685154917535506459225814100560951307207178724325300157266710328494959829028521139078467236865837753092670278696860344739068923138049167314816238607200381512023741059350042052511272663426263772082971552458913006160454472144958260618537207210332930110076513351053446503047618502493912080992943678885742379560018031796033514723937177425374646011608228858516786789162432778617752560320516408869774754432521189352412684337820991500464324054335491421671666674724269873934179314990897055501151701154720057199920469300038957875486857166693420468104640743780794395326014695040182877097498204950518925020208080535060896902955213395900667591295928992599648783801586277775038146802836413061735939306149035761994712369687960752015906131410641156278679720084048760339216796667787435648967457915619482833661339715195754946874828116992527009248235291751227865904462388470907738921820728089915450768810862242916331767541183314090346019591109798779588280063678330983086213995066382024724300549264878314461872244807590759439505110985593831751983306828470125915310661587582056712016417848863773969544943175119112209809159299447092332585245854201918149059837986181368946505906707185743553884547692763244635244548243617429936435586862173345229100413288966149811506992667118885385145938442621696528475924773971247186552289327741364377529353846796850831606659022119945013358182753938551633394732192506429737435837296068989900647869229000024892669182072917853482989782452911447038109098914770221711713724211190037593981702749503120392204473037174245948944259200428204338890350459360839696513486260046757640378233445209185792403904577969910044340652349913802549536005398611080193180925046467836307294500347787699662507248193831396608328273931464695015811341294634281516969848916329647769494120786295948775319717749156181769370116867344775228574307706694026109494751572867578975498299670281550158841552853455508162173198132594635191767285505665798655360334905999433704262427303453584665794353524889596748394600447316383144766108779470842974983103167669514831282859520753762786442588886606389516332475821311255426169701358602649341725435968591578165994720586053513548000615314226193488327370029819187033036521294589946909662325871297396063927187583792921991056660687037575614604027906136764211264602098366758307900272279092896341336562098773824849428658462308258136186514178776694121229878677521002323722321840506583175853686327614026928647055428122281617213510562973045892652478586172825596459163485828127656582599354892308890658936686034976130231753310196098370222811305367366733486638663291553360803469728790361246001825332081983986015235152639475361213060046681936934982299956288105062358889716537923741309905676893236146202178809310177741073324175766525612040190212675821762877511985179149590238190783955489776604820980068783230722629366541234861661643692521824141515115221790445793327332230250665245396857113832528923001752091492461630692262836772558334960195538413131047043641053934429116129674008081775655661264464278314619008326495554776438213946595039980561174534525786077177075167930874545577888182615896852223077271137798873582425899170930666161554140430469389390233519070361996149592047661100796251635214234714483882647847817290243539358647599676277559359622400861002687361386189097990030548858625152929408079822256411188001195441823944583859254268435782991272915614723850111834287760908180675688984233422581481611692021136413663598504092223391381617937438275685669202290798673117501345029079963459211415023744067771451780133415042352156015299984931806577236017546336596460338219068538588198222785582187963408758105512395803841022551604870249666804824352328994039147012200506068135543969146510037659493114648732000493383691224853593946901863602949113762444050737221999395528917516922398379470531139577883982049629820890084370220351223734364715735108482791113135080923751777135550486087156223458072461567539542652025051139914910874931956128885203855490932983212086867384135779188551524163231108211046206307275024684124642844169728221492651860496369789214122765190498893802832107646670764601375573121125336827506223042676322614479929645316919048951896496719687457907016133562709630013055466181795633621373597600552884660406475513179427145300345567123192171074803273637893145953839265330640099580371151039444288852576346712824479203893345468558253385456646253151274604410676598064259776995845563037093408547027194183277084496781880537607452595027396505259923833339505377679319610868816800246233520892825077253645868248998573401171261869783560891318057506182779567758379819567945775945208844745457990835668702041769792998060844751906449291808434964147102378732099302716864669698419483366279056120842474934328883134840596372546791302433846493744386795674446204660493926236845624846590496186314345424665256796240792207943975232710726624004484090921338379892456766385158591144208943819168967354004232263565684821954395043786176599725604078470042097418958123519189685845973025125992680419557199688354433808355869668763821947032042115167295927777539695506431611696179462503232260806015876559991500460114893313588203407065649461311646968894407233245589137766410925913393477991921404875835281018245645780918163329161800715681561349462054761983519204899416952670947752538873351061437268848918963505328478848909974878550165927160899167898426726735972096999043614883331178035195085153488066934446061477785389374452907444020896427723996047691092711300277410144954616156633592128419149639040855045938262737842078371434132748107362594867167871618349737184567020606568550531276453802927620790489084761011615314275902981013889712821546391924074192159890683797442541414230063840323555630654939581910060469215824535706855053698729159082654237061031474446256424276183329247053262276890813116394123110148730896293499330066136391588807601857974645130580336419727516546625241887550512572818410495217779239143844133837906899760556931215195298403102119884689092316027257776735317958112534164770762286628546017441274015963957722418062182785416463853293280372726607570020863559870717262852128936162016386545928574248668485123062660034638957539037174091499819075336575002146297420718030034591731484082356189009431662935852483541336356053609446136701330054054830956273037560179731473025813273109220902179612828243901256203401036304934911882705822251425560232597935332947196696218745196620283082770897712266965429328202886333165333005295788019722652571027694460197048958521813900320629005147365603142116872338400067945774461235004220535829722631219144964650815454058798312110804215382735500557820308103935004044188812270870794261497929326547425001086250401505507987952680332116929971673157505238720894483177413071053597185708155539126241367283717295628875641617077720634969835513163629188419212681936341905948551837957266914436183247387779239483460176800263989737872852346297726901543718678936690496839195976860957788965613215659496735756959612260590250765770259333584338731237321892858698223790873756153075917735617947048276573361339947763487923574680901634170495228900793143003272741669203092267356420584563016268887352939854610837423614703045994663734634223835406789315023238168690069833789499856336668073551729857076556997463421308073453722857400263613785019234628511297283137754613477630552339917376790911421987232157411900034901553702341045148210889674911921005056989302412437402425120823074155505904576709359400850361539807927411255022655918044506194290558525378064638690139390436292621443083237659333346173352880093138460842910385674345330987824005684876704711805768148056665835204825876209626464385682850637497454708498597380655631058771752251400533620624831629418701680297299598365599122813766079495915103882353659055692117822611370275571057730960132737590434593243076502906441602661739328113073474945420240324075452903026877712882068677107978758109018706707870524186373953002054652781294661455548403783203768761005369930608345161914253210287422028765975034321844480552777260211432495207835715720476303966089116737471599034084747507176587323543288814161735752823793184314416278083462425555044055363396750139720743238119299177807146172511174542251991046341927676172290013351551943267506568042978660584292845128650732330379809010576438117477875017524079889475233869019912062866085123870757258687153075844861870510270030460762347419624201836461028044506519106954124562913411690397577575010463898993839438556637769030886349375694990038269238049717337620898967744442521107345921249755409181023674364568801698915613123365919957262769808102206580764754386759468254179229252623846580690001991966396459840875640996125959434249712084516321243815247066777777444566494881532646896545125902918020572234253166061133952869409753616532576643605485474217577589970653978622666970759804954318879877108845812039929025401575742715915041628847102063721219040605208082109727027276216808261581224021127342910024862334499763762478447682842018427408010481389508009717225768627944174342970312784576818282580010062658578624838195525261683010702980449072157526203913777667883671466101948023243229943332660416062514860749824804698021850563698480087942364348798586738385123323430895007983408920527627604367291817848196827890225446330363668212286791760158114423441304228857558022664817091519481443183016639938621395537920081185077619076102293467009560146537460108658934360163616164757262573571994053820710030237531764790693135619993105902868246600598144283897220520555671124539008684739553417212079473371690184253567353785791987463937924847242476975579629194115003287164991549206204465618537084619198785602504385377800933306834819918953709271917027186604303150775129901367489262587014720837163312723997529725422831331308858186796251196223528758475664053307346075180896791467895299459385238463757893499687760897279807277490985210335063887264506084045139206096919636933376826637711272636292931091977705237832968172856702753384140219265949357330904554985867345934579452089157325406221295697674857954781904146095953141571715292045705757321336237013160888256011036129042355986814599747159240708772629030009697439891129726236975748133765667731200677187020222251995100014777818847779881686191269724392472423303711652039699959702430217588798688536467057997366757272797988999236761078245932988201599659074219056569312168857935433282742771419674799283492310727764613400105218474652132756061481886133871716346368206237599852675888804287772764581811127076456585174253871136646208922783210115426238967602117553342333869338869117611819371306332715830125327362638869433734872782860401669701865217849877659116927626528282083045701626403712531756005889284253423082556120186822602310791979330204970677865641585818288940095628922591186933437755220327119302608723226766290777892389727344512961917934812916245045877259506381282267145920052663653371527799388098103150275715908066842260198725462144166915010752840783147902741386838167808217693614975120401723240115165369199340398593746178086179807131056297924634461826006025007129810922530665009002687851684239854940815470662635461474807691553037772621379741403756729155965246885945014348734872357583096999524410749437121753983233971342658567379556596943083433778233847946018166036276204725532180102760716717324356189002349020107861696705551342782328285766350165100018642994789387222919519128385277104813542779020746020328017835107866193218315607840349019843305429242515590593422158283290460524710816248424506952084775508648184891788332317213298512682007119299670886992292020120608658763851157335418989768814574922002889034826563415036015156587995134741903011608915525322983142581824320181218922038206583927701736481060143571055240399793937369216171454943552335062157873089408336204166240989577346184416458946717796707911149978027447817844446266860473363732361781523881156301568173931500225963657634479313832387366948016805127009836770762538860896327974278303896138680485117171584444901407285644919335924272634835157622095069682149365966568363024470280405605506877848341861349251388323799042751682569597147771248103113038677209072495664749363627814488707752520044913825302948583545523506517082727119601446796365707573598007220320823581901776231679646500279672522399289113041538146373499322772119198662901672495154055424758669569685931904213220285239002611497957327363668871139895649923615546150454165908961422414899969702801284457951263896055534597015995920816597387978356774898569696053162896113200829819032474242766360546436608863162086028482742925413269263746904547927286610917363085831500203445218238640851889195063802627010635110171415519060507599354348345675906915557932642724717490255905931469533861871053355085838528271609856293326564762824655268858358508086311574033535239624647584472359311166569276879521085371727740631092775521529826977467853199560653910410045708440606158065463330794150252803861080889229999789794808421305832526106130013416589873860095948549793456464540970642170284108930232649281757269595735006178790483507346163208989279010700961288398917978150176142406379287895988604275976466223406076232025385274675112367144753077603996317578347298678410291403380677342361264895889125296367877191203944303007973085358124472414734477760712627590435864876601935813207980162637447292708941131791383373959321219467019886172939455564284686646940247592432949154631360254561832519593905659994921695486054841747777880122428538634178398805591782976066035389722450643533302431976436642462828557642437714621620540681674999813994684799791534609932152189974119963110418187450581830471966610986203455154447499942428036736913872014212512138465468333793538878272554455547911329863538673919576539967520142493028313891530894336418507930985281279664308547852885284499253389695510785900671180622278241794429747066561505313189792777379790544827856467804113204590748008013179735958738610801196038926681072508729772235301581589436301233609234233018985327697371022255270743826356976748960297535087191706792898496338999482574174037761356854594998568727835365368836799677568236959726000155138477817954714948219972074581372512693143053596463653362502128446918663666725668816708011413565523524227239396698917203391024905183212690001854886378759810882019988794213579698018808468999148590700685113413100881141044185718643867828161847457522288486498485341661677803406181091123809393989274237613551392794748581151364684553243497868320505630715961653444485699480016731241498530367415293770975565287570732571494755525593314286402993087186831253594175375118139926705710635215740589107652815768473416701595485337993437405935826075703924231922857685849486350499314269118351784179083125712496588563999706662456528983668833907562499341574752313008698726641710480895976116866007136833737066961060989681762974143596449985575457609704393087960133096929340503057826985424041782711284970737459603264153583120412874288303332437033701870748617270249899074548596057273836097980269518153503500777287659037687685394987135912671338516141846642438842637381920012854552363357837866724272801326604543063565920546000396771525511030797250974446100084571332127524165935317757189106945333249012679660766710416682780762901970877900040968950344229554282723713100015829817640525319423437058875205724502341485110168064458232297344655733033565598708687317145624715874068803439857036329706382029005623628728964101299840786342748681985962979541946144140431399543511873605404904757479909277072383613763714666897026000729320981561328077956228970072080591001782287269469573307534333379703068951719589183825550156846578210435005491516836569031930936975490068674619581548147295228035323410072464913171463100358182105756707702856852276599252018459661486899664229170536562738908076239476859238370182613880665779015376900022573818841410442571004292018538584531820195276605161863644795452968940752103404275307752044371612291195528868574947534514092248709830225166238483536472750862173253698654839979375769539819264429255257219189553136254100507509468910400001328151216147899743988639793671549161554784848304418628212899217299897893303115116532871637173424484400368134386613883020504621184395365633673969873194288897179732172943141812453348705765327012347775674880562592443351483593318960673591144057756782660446793194510353931791935781371291466902165959795042039485652614248129775824262765216207122471521295664176420535998957468838684226514178033623894788476949749348619890118013638366299513738399015861132108432006992801325009890392216664338984824235451940853539125793602983992706120531707157849442946483906830699747684808189901028638401784560982683237465581142422314546659266592886575504870101258890661613630482928760325363688518407442423606066608462748161243131001042359254622610848718436081767495989867700170089204650507296357027510012606708300994462483034818618707697463661917604164111360103733603085803079839738748861397850362583123078838067999853198638888852608220404384725458827077051150802616175257923863690143813934136655916252196380043316693173479958276263855244792094681132151307631230791162906098028304750232664150195142089254938570027544796766631663542544229037267959974830962463371533977114699467673090798409267891346292232980694190433025661873256655388597389284640014533821322355961121270531232272469245673386269327967360100832714350533938834957726358129260062483323686305517762259975883593383637000704945990294368620585384220135013477727633800041814566963913002405792862662367098725892867946108564153593109974064753860861508706959045135102119860880119534773407777737256620128286497419972179763637661826072086423786502936045411866616853498337218799965405997173566058531836464577027814726106715078554080615105213226328819336614185482931276390447711476678103284000117029625280385210719098876423575563147502984766535006810643437857576753152763785373808149065467894196739783809726225769926352863714957653761786369826975980530952661365730400140672219833540589084559057000383002895281493391044782489311524019938057125676799417990654081473671065919358949185531648135225291733224061089551998169120707505046580918087418324120310556553578364702741971140318792433730691078833981191193323671483304397774076045876529778560668748815459912643095720921625601135904266236956491898806250705124120478225637958588234615382522794224551314757595118385558217582902254853292464652438579489794855921710676678235115777602880232058108840461332344139099978530767103052814285920731528665146800334342128312700475243661003763787825423820089841461502327896738484271427222369293401068696433024344790542290058476865856431718394330032983311458980592204011430410450465648625440543281086983641748238389945337845594467524518150777985694265167121713684632322359867474844151742091096789547041289275184081712772568578575008112974351995601033437747240465916472976478850563542672646904227836952332966413928607953532378666142583196919667010784360518052811920799088281999402234595385861950310455682250494811010211383138204376890705646510378010916401851366221586323715839742014241843398843241523722984689857741244429392649947781301034454971508293778288765901122659540275401647621515125934975402911156666969340515124702839323253967093354810667640093947075707760201074668697809381931930644965071770328269825243751793975546201790254248225653278947791669499003001199132957935612274498185601038247542611258998474153069353753171205384142974933831197529347509775436775409199651397289410213460494324652045430544320896896337561081300486896284662165814133529232544693916319395001649122463230611276004851718092702882627011103964336708760100745230708788031317153759213368006372999834234888450628556009066911690015926437406618829943006310835156116569447468294697093651096431061655890012491995990642077710652992375873006074905152677475769880542784797272944150865646740490201354070581236844158565781554688832983005061216161050853436728862976016069279645314718797059600966551166483592678156538628959591053919307051860041030674528752982159510486205546153137819179972789454500250698099507112464819382063418519114102963523463519089975191731484555782367068068121568375754403674284052656994647680079942223973367343621062744139502246285258103821590349032554242911265094514964547034874617168869956562123703759102240676260428466420251741630901828757134152066660518472449859930988769001337448860082493228912356466986502257581461006372215899812473590871001912690744415544435938274333274982567113673164930957188670316816578813967594925628768621538862824736377356852245780398983020798241354366208263924455384378652630310406878474955419136330199516697799684430558974618116941687706914622531128513339670332785738181180712522748581454985227168774098351953609778563649409159314261943831511688535949267152950092402505979873086438232280534085930876047492165980764481043055743676113770644235465930321562096768596865502035972521506929826117697294746539071085605105306011260498847976284247660946518718612071753353455200505790317199543767426945293444997836119854984220707915302780237256521739241916313967133373092501337411803734038383794391967043309667031887407160509077073529383193171560162997400121615514143689943743682785186559474705544328480151080003751715438874787707402654085879363858583898269692061756783178822953071322835266161814290209812269817509853357231693705748110736867073805920516795352363198837869478532299659758875548482723336481144480179342559157102902418758292016066025922116944843844416343825933433959432296228429195459325346728624368502558364093926239143459173679031887308301686552816642709058406542755372572146203981065006098832478659545135112902188657341241128872109440498790407293403131009452105059848714669193028327271132475773780182605932640848277830852628331149038972355315688374367993630589055490891320884009513461375652075011662831130760323683789184138529858427809328033881142698113418857549383239584994213174434192411669204924141296870454080454568670304112003290060239414421176886581900268582373033744945114747868255890499655509565173433089232264809948568738000627710060690615707322986000129527983509038367768804729811120239265389851363231904792126077099050875092846960776034419997710709722461282943091323699774350744785988920180009843855345591676853968920946683613842620669630344522058131283316608163844389678787207154767622395747040957783524500601683489157296473799635500887332502181099567218963389866419897674245814260726735196138339868088211620060881777992709994325072978008046024145135394439552254377180014964126549631622158838790833472601677101772056470737244123764385057751398875404351401579478753588541456186451244742482655227405510352225433037755881029157923648101005138456618110004370535401651842908565648652668083257889123178953474756314530888234670734192541982005817336489055353257981321945431193352853795302483104242439502126801916024581727523834515236420725380709273508972110189975046379590193467433508037241463917964750849894715482711582757045476915303309119669601377692690903596589214474805221529855576298702178256087906117030777780660177413984239789825937259222788708981710235370303463680555789616600459170299655323194908290643915433271801583778904032204373415024660746589387483349493264534760951534025657617154321364077879869601997931013851208531226140679244015844274462126475762605038010627001894259356380052993108271986484238167034835704955594483836690718116678632766015700563342750608437819290231880900629626156882270981458445054896902782573066172891699687881762097906030617839421322105132895206607678223292031170198485107764772152255865956071445092032350734616309907876114033417233430940957994789893071175048719861343915439786123900954467919292464217248137379013783739851815332130450011770393187156636613457237112567860982148427507497174113541516405035150338000142075805885871531112201893511673937297761471420325740850378814855706134186692608797942978235143278808161710061335662428337305099285748775091939889627371236252391940312359235800688603416668063279188379506414529505757216734095643671355990475261837833822688900807071156014537001891287694958042000835592116397280675775322897141418043105225550543604327071062663917243264350250023567395687998975198295011890291850840016225090676392907153318569918246133548935237868160967495070379924088467495326916559899203855005738710430826443457709962299690954147314700563823837739717472481667768845091751619342846174160316136408697103857862562911362662652910486666211640732119878471480977239999744494970222284652567213336022567375516713339734736573527081246913550906060836970726172948441010476291706497437905309907874898645361733707188749933808565609581283133067024154326987383147080898219943181388786192553198451699466964510417613213472983169955111762836517531598887037145120025762419684271888656110435930591025224534588109424645165621063187129716245819933383266138844321800233538610142139583982892344511736810572772828398300823229062835236592654781279859609748150696115576915991528403644121342825544234422984747076483533875647687688756876471609444879783619825956419754780981942455013228379531741501193488294653003804541370627922631733499160917732931397537457506658160942063203144597876640214305970140879933538679271555755041925124342559979952160136144140890637946439398297755932650423899127963098189498948281972195576241795273237085417949805562013516376548016571202347847299925983863689078429199278735441817865942975259937160959939047995460490237278508639393123887828452624993468147904776858606308886104655055726905427083835119236548957403350113703267117802526813461681582839645804146092218700572107159995186239886169886001762558927484284301314606737018772677712767398382720583775985922341212221210858040975073655688141727917783258904177565214978422407623831758042958767664919514269003924005951423060358869135483570392228784465843286454414642817897460049840728465110498984983077239625756651226791069612856653410708406279951382803908989090696844654750966231020982925117512288066428008857307450271324955896212217966067593701441432753173765147462828817939879963438445974844066656115642352820212995457308890626694786128637819391704322129019126316041140043821736250494097897449310901227342864463314164465600861062343671403115682704403803530193515287960948167132495499335817124013986103253260520715707357388148174086411170278784103131363804178197982488843878144008066434228653197543959177710048419225531361699510604473487089591535069883651679439791503431718841592355442678099363528457522007974786511489702032903505544137020804272687565825950755268074444242720748465487493496349247027502191030512731531645093469789512549991522543444327487859493092672313090275267706397043377492050734518315370857541295198766433857027876568547526909081461528934365018089085803409174226823590879348803851647903290769948755573254849736585591632143429299483239633457385357465833489927155322780308097827284043350922536149332232601074666633961734998785941926308432289718815425325339549498067939910071345826809086613235783232681891289637750989401788055441065443141926389439519625157341506564583306148447325034514146000934106091128719069995103350187427437279610446762938335071997038534376131943761780654510419652138542805368313162888321110674757495665749283220610916209604198645864415308787545802447654972757871987393472364927350372676457798698312568383525052188842781559719611841887209322413411027973965381276458142941866291531193274644032344709867572538217652856509724157358191720989874024370534609490094588375387742816903189064265018071911696457498401361263662641311747542433641006224373810681716269391180643817483792510077518605320730901932092062922296006103312641084535421774140639654364609025905598303449571038948419413468388605135686629251183825612014227633290659181841416383261009126822858022130696817415627504114265386934881568959385707826052652935345159808277628712603119133820401228450595670681272867592833669955846110870140307531855877161781013305115783090734993882907655635498121358214487945888998093943115917325115094719186732803960852605067848885807089048471291038753245540706468810622946349181296644060668800805569577685166009960299449542742938726595798816929147455629937259026791987361448816835741673918665608277496399238540777105092626266106316019414202003002985821771472130839386083687112799217749668698592803519352236949624023932705663066984638853152283861692145222858080942586488380162475622761363109603872071075127464470628222773072558026580101939043900186933497016951702926921067646328123108707915058962225908609958191065360061359455167259720333427111793680970727681516703896030799879048210225016534909056440738858034103202230568895097354910834727106328597162838003090501326259707880939746551455022056312926979780432958431802182924409934325704436453117562378268905099044502411100136613186097128776898549866653811322085806318191578498911226320052991434363475596294674663441066578986371725306194469662532320415088185094678318568277314042058972003379163551311665764124264117410909079621706980339269363302413235573117890911418577063000540848801301365127560765026165325984958129378562665547488575072524521275675006091515353081073036127719439168092779285709806820542321894698722221854204525345462727696386814679491882469143412606481622435198081282207051252035505717096267630606989208358032368166155481819136408056625605436699122539087209142812248649183782960120873841332585877657761018828754846303236503955151273515302192960349317520620970828104129109982730836043922630777309222852982542036501602445338020430545074113305989730747633902068331495042348899679279077392578063455771378297266114718293643943896343498328881999490276148547760111447299083877117598869967640456492424693114487817428110061425641649984411075868992364026901012179631044653350611710756894932989160738024660390237601598062967453475891267674043780658437960040471713302596490927768033654635860924167287700512411632467502779486131019214557989788711034603319592165501008397118333639235065360262188805610502765050531833781244492150560674623968466456612470655988197911205812936174930779654354216296423348956200529781550102300814128822085988086232767757763626018830336336185267043469747339523079264580291228569607989551669513480533548579810522029062844275542942655619547182966839081347075269239937008470921502208354299801250966005208121071836831709686654898482793832083159055957365622671526495194591310105090651699062214155565188688177005862919181305925213722760982264002642145907202874642261948304115159619665507746942370447531572725497483198186793108669832513119467420880577264681541036866716839884475889842837944451875736303535672021881196907539939573989053951603090203633083796150420768790629091890201608867361501484882077538407631978202347682030331295668023668933775985518408353249242528476438004660444853671785712988409203497514664576514003205500643470652337493408631006492278215250451966082697636402367437179063390764927841770016384428469756293423552576425986630033786810207410012685269768869657208538613994869344590236602088317544125662096017983103986157106554542703877707929673545486485039708057447249106705375360016395408587149028612266848933431420981052320847381139598925121708732898955306629383266530928881608359686294597641097197712604405245651430687955096056561333437886430001447214637733518314256572907379251462336759011670903962842501667848598390574753069790404218229056943377951456956121568082803903702799597222662216452269077978235189746712472532778211291246385604177157061165878719288490666607331720187426089700526959522750740687769676398870263515502130384623495953978370004019378483628560512484221660993998929281274743685641763996136664442895490145108912214767800455785196824197620611127376332867678580160665751089631298515341330734785546737287693795945275202676511562753297048133757286775818666912872887956790260675060307815023503110647117489340582076226482566236211962716136573774990842129043294282195408816448662624904469663618672626745429364815932716038384083265799703098431585155076251471841167222338113290700143919068146580940936743634170115238934826379826647701598994053274562789718165462636667966869583591149498239195527776200285024369560078672968234622595023863714936814588622999995706130979404260838828568089957552442500902207729275090307696646624134301003116015748485089252690873382557114896964274788888070540067423330664842309363103671010306114179469211636951924413059958007155873979792554760939705577062105873026300350318271351869983481020803417071124844242849500533842499987130327294001941039844876950454925156460992832809422186296537603474514798917307083495320248023338696404265308249391198924693167056244114390680117973574567163023368016803900466271222397449868806410454568992552094592109761912232523286501552713441828046381972628421474991089939639260463201434496972586359623107719663620808035729537968185542505800711024705112650166627235653523927180206188814254299532395638689957827844436541863175936077895311046850156424732839076062257120525353902209999096521375716085463532774890084401023994683456423067635119831580742841552295358125232944688603915556987005993301808708516680355258181536929130657897804265374486894197062276716133581334315171490302620233903273168061883575613541261432980180206374491423771788543110313088361391324572920242269660709063599873828447863715339250851578193351094054565823914043981468613347615952125544874443548461448660965011275041226507112079731226147605695175732246085966896517811301977583907533848652831468764461870391321912837418568297372325770680992549898228015111133718198530071658818915491386384511323131060942767261192325590841878964211005539581835004497207938201036116508531246002122701452093282116875941177854570651547031978239312412991785422561410325634449718654114964434415733713820803414922095713219520263228478292736509190550159117242023566886472671574772653655582914872273641398593803245107514011057551628773087103906804287358343520617124606988099055458634150720802799643639274514353725730045379209543237210535538532233088627989470972684829124778963623202638177941643470330464211867263400799880040650184295272677484532871248600963593669292360868292721703399374358788383132723249327754048980872557543891062455295088725210420860487965016807767810500461034178895276745119487828989941901230637858086162182298214171932347381230918223845729259558657178730218998720732215056889054573187925288802323060330843525695459373483190132060663579515913328809360706977631045913695519848678648708245823848488488506350828825922750287528292736075327367206349539269063069760614057941710099470430734541443400378522304679420039360761663418620198803923778230942907540259644625677538016991383584230205573092094082459304300237373897869236652293942005311071000319410134969677508440831280607964230584947499474100457879745916330528443965605403310151108584020820754261972369208330804937105555749228214668541697985360854469610317427726074378256296402694838097144388847054709508470331021089651586477208302729021128585385152368870433545471712691976934633042340904467466575692267526019282485005436318805866809687108158438081692116583764236914036668872089707497519806809406062911416883707526999621514847965527278797742065590538652777138970337798679999088237138577122099960711942719394561742230316180962865073515907592065443546476618423456629781474007065631620810384617638345430544437701409512431330699785633827225320614964846418230929450924225462200827538605895523828199576435691945945754979115907883835020752515866320643228685004948302886110670399508454206436352735312982918614405916231472441766546170860387272181530782259419986129789586094688483823276932097100088358732671276887636547315931511653624135862595508124711432852196737535233862197729427864671502837194429574553401992122894960613133406055934379844023282712280028333511496517578988318699425570111640309451602342751051495557724564221108340359538177504267722677191782948569401461267339684247004911508840492485120323176889086981427135129365396495572605742687980225481422945737213981456944399550420068434338029571165839865562053285103016547100696558113841167885234463148631658909362189987019954874145699683237733816546096529364792298932376488468088593151839910539788468534801161374744802320811699501106188358837262250823970517957505453524575895143172037684250709008692682848665740309777831686386102490689048772742232856969111633350745879708248927553852488478399637497711782142109253408571385742540373048412162459050869490585367133118741709698256750470503945305995102422350649399709242215884830858485700280440465279848314326377895041736345853736412853390870974311921227563392769271091974469704181047937896321554029002673768898995541110750313180962080345023290453878798876537787082782157403810755302516863190955498172702365580148707962701572394609652840797659388853519427572023440338828916288317921135499501142825801166740250179220080707852363146440353613007113388871853730863633851574874950768552337487964948933957068898243089619569148338742108893600416328487300542136419782889558941642697682956580315544171883339201524131831885203818865746145649714870137991254934734197768629649649996065003721516667421030348902994125806367226279790980270211035836743129034810060108320109089891974453254654509017840642252016060756739307315450692011415675476830220204856326011172865261463296808445600772523603708432348179204278900006047151023441925913237886212449097429459446567526187527933804667825391948402830961169157343590807801891014870243232638305651034532240672266804162727212513272432626403483625599131216098567987641985500689608439977975584462981968528833230484210727433442000804179910892300462841349050810202076914997145605434284037896279423079465237953424616114939632949548706667535082590559427689574873493245423007472239030073901472220597370674245570342368061924438762426771339278309634684005295511051285673126629299914979387765830729132202903762797278893859569112613784096634788877109817083140946602117130845093220219229444189208219739981874036541566028228619883269618303232503536918311935756081394743283686405147446458051387771145148369450315715540721380447194843873887927890290658629027524501931526838804724827258170391136185851173874008795650406935191882919050211012050381259879350330241906733523802623702546437082791523257772593406645905382356895063067434240417612823639914590634899826465413305284962334383677419914139670528254527880474768737843275261620554372711076118071309048492928240150489318152393134659713674573791414317162832219968242823309515606732894111085366469008311268565205162031378398683591554965353339932454875482711467850027416275255080594799154278554506087888152108318480821253800331498423837978566919554660823417826114008296530810140344135613079870567089176124323474823938462198714019586115984548478409445190079452733457088277384333410750921000123355579876420393343016176991629856112935278050206583892268724485872915297158609158934963278768854971478910426732872110178437183969106590868884105028509266829636743649806672431194089578080937451594103819531889044031077703145197254267793176271679669399597752864551427504998098562147723717069433031307770605118911941907010368458733457387664756934883913154545571872611389950699656257587922901874848574786811942241209631497796054045471120682824444754858466175566613690703241669405836656423015229825683904337394271892226830515782926784584780873285982649407794319001127741879082929638308361717492493545369542571192163860294076445896551035624637600183408469581457107938003839812742346251387362498134501283324946094869248440893611340206202201408584100989860100596916769331999327902283076179532120997144482939721720948664487534961106704109288205307201155405801964988299734040197622539047822433872158525165784908182541945330562715205200625103313601146616614165834631662360124819047781086863471493528408418022293626624079620856487037417564781281404117134578133411476265231033312243438220937995676207367026231992406857989090711161870156696556716920005471660591148185095568656066679492007784258145934522006234027250338386096347382272423534235552607831820261501132518704975227224744300469966631249381868576521601836993576113323285570347215072488128981424385707784370371906194552300824692142849949133592494360795857608307246179693355396384704372375716217954084125430448745795279405109920177490298430926503004016743447667311744669204242747832631618942421914574446733273779690929662541662630143162563265629654806323024488012559117280862703186728920372948553217755068235451340217624953348004744977368432728233563564596887844950599668213289827157617625542693356933310401216031705694360587017645256926931806447429695590934620459711812618688132624153329285178461373676708608257283537883945018028220231929939521870746296217331727550584362617430353631590682530784806105445920608581057071079989768883416682478347132426536403215617378859852372007021166441323841810557338754893538348133434610373980808757734114908867115252234029315998934915856504479226443453095398034250092430827363599335923212188921310657425750528972336267144334358905565675686450719395841812121942044339066530739395633620420968808680280553078900765206232807693273126793633104786419032753084250269562750446094076191260289481368582103645233344574955765403696888609940252978518565614131392624802418683319711214554855207115247495207649485185859619682366158634093928168713727755346604801521579769285629773535098251088182336818488164938172406323906634897685931795519653936332147894255857275701881106616795442735765692339858907637480831298625785264406006269165134376281295913509967886194254612573972052703567907875905645512999854995906084891708367275874603699881263568222264290290551265311198719052514606852584529899070113139925423679696033848907985781806430428495880422166593187538780111335631492104107015978524342730360188881456452845293473516172046692220951196068822942469600785358276121101793499816943018715198744094225116253244997341374563348601167410287090676489001167637952384759259529320379789374204647275908002822656212061014378920782172463337551868305695226215631384626936384842504276438594166677158386450326122805801545288799283011656341646254776010342799966795595852063253396265622564064838610985262239183932868235080798312959306549362081640984886650335275655073463271915118471865139811042938488475681525872183996335402719250036333036784966389604655236359013090918038514801231978008889985676768337236064509812518955928890910562595196457538421360886869902829173222214708024954197967048805485792530413162269410086141677425392063004937968162803499894431425272428722541857610892045336859602191364738517004291163067781057988864835656991934757537817179214538027926560295945556232079055729650877786445740871283211562448704178701179519622845684084265293419746703672867081573141965787370038860787372953882427031504206352785768105672711264768505803184160016698922607604899718082415108764845078026967199311756936221393037705346794409665920710916811928248113645835575132180906008224979424543139023887813311156321525534953544720110756255505248556032042084132583041394554598438379838630775279325861507079332336396051764786329129122813397660134670703943261438270904521255231092245831771333023438189257086053892919915305836466689777729688473127518535031540476903103242459660811381380772113175411785174567103939801115039394422032428230626708993710114846089348970875535597364716887085329204532674595899460937015403475442288717146379392737509762040696342387894919222173698032011658556457313610554642000880395587192551813428219896013694281454205079971379489324321211421730663047738181808147309678623876655235226354378445218799920298415214795759183811441734855137002458319510423622637848979276618800310536592944701572090360542830569102832450719167137677242126700570924711137667364159514417012188964370869456402805595726300528286872423885325239316391940486543023014555790798271605538175333206449398276651291815848521451963916223624589825003289194648052153516122378543792767866118966052411753230636010024658139434745024727811739787468438051232439750559391324397132048756719028518978625337011201214369485702319510244758640585827721706505712955472633368057646267680409371087996088268532965019720155253056827738932755806384679702835164642972083036941309145485370617434278030646309532398638707049011396382056477120660627679471529557752813364611364391937418451654781675540125457383148040094562114561542419910614481756677394436056666421912584050549396265010787260114688846808420587895985438743478370715718580123480256380719626977263621434110835087862884488115597230915455566904533497791753194568396306226534305486991631219711033548455384180897885103176686148119606688263107095437884870073129402214907618968291266565554115293888185063731240583113658520020104160664415086638170581618926342266605236516868625454670736802225872710352329865219085292399750597579143743289462046107988255707571613207685862263425224402928332050467494177103156813735285519255645178946006151593575084275519657230905584706521699443171411359250336930801343106029109095034543570857054448410658210765940009020381665752091057501359311672246577768830554913296691042660263136575729154658298225648002376307447938426525876424545729629829372316939130421445159345395429504118432081221869114076248036975740904990109901466061300169249050612210859251832745170745322869811241344083363738419977308670624044373093968602269347154816613081583625664273255933885604844716926175987644260379470686448109848881414478846923567184761826531716111376276442249390718401786781423231593908194276189005541434197002506325446410653658071899093003870427912232939548634633575439118931301025830089489181602742814325572459891561725585840650597175630778191974020425258740683945291275265835737597830736805226145970712052168543921518221273674575266258906100017899200540811628289626639918519270850298264147328602239225179807480412594637603682185495638085742759733376037138979845341087766963350117957270527968324921022718714387919539708048285771439432603274916410545784196756566353600460632020928576510185798191946581376779934772243879346780495124395756374889640902805905128891456778485195030712460741917472945035885387473383921151561829900225166741473060304670720937626525876326915542159281002158699733821635890216072426626121837222537113554529207700586342057970101582433562493229850832996960702755162314656241186263260169267113790899905321989624204348559371625570568337012584573426530666441686448024440294202141413261139306482933184243606596158634140298035546240823448678726331450086260921432141137791755496058462715493123897231656446856459885506454592478421373028373406748333980371550306745738782954541361662858720543985184362468195690595461888064868972616325842270866532163504409808419018022303395986610517498794845853642189264779821993259344247775744075165438789066915077989435104112072857459255562380811861322962115514868619093871452319842227933340157680590749320599213575868983223456235540058263784082558465235065486847078638233990695348784402662792379157335569503538023843834913412368479233848421340625043169831059199402847248356038349338681283913209853591849663688955922428284922275984705707993627844564815497423639679666853267235000408134122763961036609830674757975010624792986247678423582208722768253075132988020545095355617076333374406517973527525197166003444708832229854072051227200059877702377670869889574260022428625379203805384348310265748022358851385029720349698608895851862523918125558153345854884815044899871959334208914530047640860784314170170009433700469708668886572091615790509147319795211822483142067082699060647637692210250192357779311788552425413405073707728204666385066664506140848758479792826132587646715888402594008040615557689434621987141348766578919567140783859910331660131433299982753726771323821522726866535017300196387823783056038788696451951431171005220162457168870595809347534255738725599712189602321662338181484851635332778101614505994328899188559694758159451712990887328331654204321793061632751993796010692692599147384474568220811373733723034041469982496439907974878650061053599784098094479957101363606450903221271342827940811656311200324180795325427801584770279726238240734662348483736424895968164213786135845589192176786600023089308130638592940687626253754463671089414856960553715616279044404140395092206953480467981822714970527897091685812955785484009172142784075539101783178008090930887943893718080979897974879533137179706280482681302308735574483124360004802322752322983156491647929366126948021661972287402555095534866662417774045466145664433801855692583593268318798318218179195880423753198118312702164035408323260603740639072259979767638953085903446501169648206999619160468653891656235852675899869370457536121036014203771674456154604564189061528422490075013724762841390961875100011799175087927936127020235616326881625636316489651398940222306833219681552880890700712590201849362469243577298807361158431982151439454101494825454265739705033457715090356520169717509286688242716598860330290973668558659506645533599498203059935702692241123968267558184802800640831138944902073196048614639240113945965430176686959273204106825649761755566799587414689046929567739348303895371714785843877153615487056203015655607525673299997211730810028526114159426248777129223637731697330040154608826709942026489884225274775535142535011107178619028757935175002774569244805773298045020299906177452321999965075655336709423597100497354286985664811610595255835373272443606037393935388700101072288488000497128739796965034730010650628854566730950633953855328704695814914221737775229628980122881899266068447510619877273580856100896415503605603991704187504739236236896418364202329791791081202362971745659152212019122357370872302430210257495176898445790035686662253198368875584779872607816830959854190827715868645531236659899423745775883494268937462984734906045717208732697999442471167093626092558171056515436175212773660946256266896110082820629416253145683756133057822793743729647716034273928249632455833727686764580222860433099213509734145809624745099617447418747010908425732965857070595436336175307123292536647237541433228115158214328687596818948202608241596017847764095232728134569681223295264299868053704196075967090656049515653404472439132970144844134091767785953778969349035744926788004269123247134000014205811881888405146192320273786596936302659698636358930476861340722787371882985741154310473670208645690616460566251912842361720066213237034932044838846681413787338443778258050000763189250042657646897108440186248469171728844883686223396547288662393585563956512724878633888885770223800269423388616281150761508606858859537322637351480211350866528426594365802881168075277735287950274634759541698573685580216908830733273197986956413427157946273102202253448080085565213313147760725064438500727823245629026457595552690941953816851947187033961753747352214195533182576834150979980320521149960958230311841066016033568540026255820885167343248314922639057687983163026277535636573084988535586408611995431690024561033403072996390372218088887262837840767230115142935188398388636316852159007934874193967276229505858190715335513296867891938526363276206534098116924281831491917035317205196736259468389561804424301932533292608674190812054472083898503865262006756596408901468925281108139262114281927555057889584262776112838333610872017822433837982982702922300165969137691502834424023391161774355794005686484110458622845569304235482758086020191628519392634191745218617670523155517320911094901365272079540605260482729033128977065484296949874762376780699875983567560524872503157783761771578726577587843092292902807941909170402223166676230909944674260796411443453808491752883316726687010009055156431690229250613815064296372614094509480144513447826575613207091378476193659623986805219121397870485248775934219176668347466001589792966782611086053871099110871291537017314181645832932395285767076647704845153407100577475195645148682606784144803892802306087016596203128242785784054950472583547561826621790807801733397562426943301353066589367228023006726767790405681949067634278779697959618995355347910352288097023054018128959982312131869151014503116554210430626393523976816071378884519498437444717157894159138673076049226708774250170258535476158555615931653781072127587711163050264767303494418338414170821009458425200711425901313574384612558100435327745485929591789094103040198369242288063289702093026067413363594584413639738108531972625510778013525420624424585422850162884566546603318508411527995369691195809791130980873627958304162994634238215892390362024827334160351682076553421558978160241516355025938346700070744674546958771835855740642121290217039750805083703794833899395888771293169852164250404338274473092802479406853148956517093212840493851236203171697854638224777446550939931348052138341000732728615554123511545062463283944256783862930132316753718612286981118770949772661302180436813351997075952328927681378731530910367174778049091392882835686305753615048254688280642284740391156934404365613695335328190489487970081649203784419148221346927025731327455553267681522783672023920895793355710732855432005308865988541673557718612165690268144561297317743806143015983528955932144373951397940549841070177940606390345796007870101987473134879133754989957264362991818532716371955939893362687741667848992717787252322557445643568919169465129744267315720811404999055786307722019272797842874530669813059590867779901141943120378041226414482581969707949070425924754158187934434934855318023662110248854375458586698973193150776054605146642142122655932492301304406475479486274467243479306811949313192105940518780238494335306642445468181464251490328591111233649777162403917082249178792996224117704008445931773264542332383342717984013865200844665043071792477513494512100169077843231500029640702082251251502537825305477690070969425048134662334351224219777309218032855192781529795424138887733050597186095820927838065266197272572674957321858940957686195750041299322647205162312776971706054110086031363632893125428567488745101070948488459839147908914377879062986037561176563212988176339163315122574658293801697517749739290602584462649786266644338241088909624598999439915130986334012294876031548326524019872310402382340597191830100498310082997033216131572942104297963399862033350127123184112711463702918337320381770716808196620053285253653447037967638767999369829500019363506285373604943200706537610411816077533628406941731637708455185402890657247104922804962876748219159785572889109310925812429371687953526351832569812387765903185966704338656886611833993561124166031872459144064226374044562025811183964734099187550803581549554515697411159715415136909021556985466030547870498708992802625385514494041696892615558981581934541984753147720757672345826856601553069752238885967000701342424381946105847549033120479958468084199222612153791531872107940683623550621598670605326235464853169726277761451570498188541879684161941872502620057258547979108316878838275662237859453511611410051410067292208867552412327841885736370047662033554501014508575341612457412914089236268798630203699847098379549434723382748207494879734177261329997174477189236561953581064298725894196902068607035865168542916612635142484227797088690278404962024679710801943366235089790594043105774470116266234190998346495709748161445040842083107411864024918334649671879309135637751238979855156534641096986636235709844202052048565040641483916602053799423313697737316265014210990677908417869772305121477748029915397862291249395713969871085217348259460676735374374909608318520928864614832874889090152137630605045753958507504389047345077358656349797299569135262106096463938160095096750467861052413055136025804726957388273309377709815641259344790422997272041090089478992880078445352301403180996128865842938348937722528872924687656078599804208083172314912720366144875173868088797568396003262301639583026458231567270172918253087856888599472754812793262882811017596032784056465427496050604503892198878601857541155588738935911313889657866241003556177682586264244046684097264263880565019774475859784917661884887758329488491976556818474295400782591706222234791973882233035832316833722893176055230458365423829017770873325167262933120840213972236701245654013139817893603800543737605821816372210488250692010190607584866123215902967860495878705711214657960556396166986069633143058244580407865949134413071594604802277181847895187381747625199784527443433489701567397439420448718861068384206769107444547434765887605577097872973064391751746573740263104446331848418226530608544622875153083098895959896730307155587282650563729407320139490338850338230628740144349979376031639790401631939343836254534093504588860340218479558306725842871040233421265447991197048791850369493051185703086121649886585616217740248351891491962535054496921598204165456399369762157531011368769640153945545738183705357724541048189074118511731017065769944321006819396040933193664673673161710803921947404645326065616086893097121375663665896636430197081834248593288190451911320672650560601213342496726452445266781135704055951279901983380919713912404876495589205897160926620115243024122346101838398603736123442165874838355674348232902448682054531154917578708775954964982692420546677020766821984876963798445587475125350577274832730594535229921244031471832003789264438442087820206914615856004914025215205146535239516263036094525560280251294205712484003003265130196469393437450050707748846528478317018105708784314048411778778900383692892651602766911575071008395495222534997936808413622985821989232458006699686385443608979200736444754885011304243786717665429812397919228635106053218550146507646617009494582477723137624258627912782865174810817350981126062079122997414333200034620935076438425496074928144687022985544625410650351962310400090920626991350614003367987487972198082172431387650854261467184055723746964206243059439592380165878559148798231380614028046606031972764193165045747686158855452764732223219365942169940061440660324232078833994871535080620462240444438421603287341456924322431132398947507979301370821165963674550478115257752975772107914618349878420403481302954009708413420512646967064379018440978889078647517131991236969911099931517799060299691129099387088977552129555229357126543069420337073588209008619781917568948713978293182759585269632816430465471878686749868902663977023339780868088045061114746539566217444209480417035186476354957908010883072839197165370689201897505958974457506587038054602762880417542606693109912585987250496317267976297032366423097764259372433306850596364532076563882209261279311744372845087111727792980089718678329243548167578985311268600762354653154636183319709218002205436151372347929459591558531518743137188370690037827847620703370767251063713020886746110339833839250475109578959685559397314784641413536272952428409558148605281624125446158896710151231158966766321140170708702907294434856625752139603060100905947471878440998585732421193025000437255297434985786916388630226963339095830111373275589525296700072157207438647490444306630070872927340696532844958119476089390873690190093255190712454554424895291319242146024396773155827211868739235991757111971174400522875014299965374483554342811587467725558158819067859892215223985865677928719088620213343686243163987127434395111305428756229603023382066359871360159336854577542539993579456406591555778603538415692165944270618400571116276472032573039949918338496772474433869703203363979433669374119113795921384918912090644480500041021815515097537921579113555138293667534075655673162537708089433862111556569316355157719553736007809845337307745627600647826690480329976056010664868352903553008004555481834382802641723831541020900188808629710644740300333848804093395154801748926019406674769909546966242037156393721782717132243667268143163073690909795502612617835507662154168994666130744236511593967407510857000846488815181853162145184573973287302210049667388125663621918421437900038106428739866003636353568605835528802637277201686246417117263459044184286283439517916601083819983865718340147625885873341129573449887421291305317392166734420672498276168434988634460014016035349534502458891563980856434474368972428743401006135798166616068358611071973738127041263979186307329655794328473394688582920696955484050638464623922973259489406699498594413739230412305413284769021938855259602029196576822704060221622880764682091223278409663354023769571176363650746336409784039790150722715826325368028074538183304292352151525057515651311388217746798062730118780614291808607745986944258307610437874674679506062672845382519046595773169382699187334847302643251789182035772017154847972441636355170841767639740262392303731588645710014344119562311263052839001896048826867616043747582523861802770543240424519963572760156854882605962103410667179092476241048893973579281399742017266144998276084936534893008623592957230323656811058728988580306332316614858897221578386515282170196545387468204030297525747042474212430169337024870830569831908993318204660009632016588034059999142120324893379128149119492387980805804704102778687134220331025642072195562708304008412409505717214683698712616302945976476494141807645521403234819398544784057925513106472926984440294677900928627022885057738085649693821207976851834234143638194314923491838627681503789359640709997746882775897078315057327689954235877558562658920306476113136892664407195028219314886445235276018344013486672608101762039989755668700667635554957266273895270447104180326572577846268313614177951069463840262091589665037888472784288593054365723147241948304070210192985832236297987110563913135527213757552174065022047548711761897979594585374579111363163637516143543194405413197637977081498841135973346804514422883031518524768114386080127936001944619976315041440386051104242395144126771212084385553026015704034827921612468024133073625131212332758876457929316804229464870968371076522393878807046496955405461072979873329483511024746719072320918002007359078926216137511352221916641799513347952344518404061356722717275064097417675941645725603760558871519488601139963790737025839530692041734652613120864393288567790287526338908845883922552006069492764875047255242954671172779304660315310394019352855513022007277350575123332148262089561979959168664595486784181617224343506495607541649415722163140802202333331548509816349705094020367407476831997322981967004665812146613616098100198626630468803890736753078588941373954635329632977406908566049529743286990178723574169581481997394273319511408827260703892215538168478692485391968509088564602854472553247876701683872978564230966647426318130427418405557506979712483197446783756708624382990861734002228776833096485537124065128483570891342489350251190933915484656965038868560225804978001739882884194013032644643310956491362830797600523174456116974368912962838198092227586142316296207158739914848627315930419106152885295971429954236566277542544584293957605774728247147902296023238228543316310752173953093718185257046148036939514515070007976047891160152869407806065525171106697552487542570830256631771916160718115115283213815442179371700931694512789044205487480706881460963615108125512990660385884087021841321664594334580846813102169113101089153248695193020034035981164302527156817045632478684113741704408007132186281320201279642458752602177356757027321713545394174543145958764030375033970402450520228200382357367781602655415418419918786728722380158042567040937338538289261438366562672165974629735578598124571887211148897130613392115897716303894328313529538248459197379108638342564739574886057094213561430763378008970931988903904122633290608080540375656964594167954050593041949920219256448772591049281689046505544124933870798862215943003191765274116036290408550854108446634405177555981287628421537687542871320804879948848591763241222676975363147870172239212376546683054814647212996493636551352243715591987100747776551956513153051467425845760237969455068292649067906204757460629581006315114149614747066534200261220494025032634358733295887635014885587684295670064289954319415737750075704145495933359061823052522919842360009315949184206859223505941287319206740284882887329158368042918457010849157649070622177631849125077155241831223442734806191370927728446692333672391931637735345125700860650566140657258042353231342564758242489724475219133865407930627127028838537734463025895870464092715972522749735922438648907148671933485536212432156097302355535026642991828718972326897876392242362601369253286092054272155340041064800632951301809356850838558735472595996731083655486027201000876629012627118374530406945583842363530810588101594368819524857602884376301342927621582085883444013464760214405738804254194246707081812013242307035569771451132947370236145862450096159622210868615754783819825818687500743962012723309848084874550944825347195560957849422036142017706741558834946791839437034684444541555483709531979172204547565775165653377090849274935549139516736237487955805474208829048467265739794835846275755455228889217518838044096762299139489969418731697960487988236846891981262771125944770184742938097381459494879534880677591087049850571936626052179025762550514303413511627779288644797970300340333942456323273799635624937267144741656752696203222031103061682519173825824094013779427180786583375893404548328568854183396072324462895737880989743744854542431490745710835970944250719770434048407601107629438676207506677962986504487536034803413813704252523990013755707659560272451364836303368718620700544902633951457188425670257647146766874262712883679077737918920482188152831424640880552818418875741929028633666329874117798207902480577580821072262349347275957244984123729504093794859638784849321900099898510234873557071468320354952383019077936493950582238135758265162505074559162337292725760508370954235779097572821463485632076583699968151849283936074064118218783116678619349227232374722211816990943275149967286160184189387022300912098596173800400736395013524311982581632416577422185424302771836337713217166541316479393818426247029215114930367379312921419994971886466524992417854592745129622695432167087351295811000208763960457020493437023160662272220489415623890122038139896182003793612815387261931669593878825049120331013366197077481626567312080938911746899282729414753301105311988450979353521495123711892090460482161031914619467085130023121851107386813224304294983604801011675049708271744320680527475678388321194625335569818684702143120278206741943151258838636576515093770705378978525657029549623251933964775098750802474500016442034949244581644734579407636602137664654804982278283067444330625119875605589139011603966433838564009951960949206478302533799415622608618565313320344580862325266972734021633617653708133537602553964051406495476259773860168955283166143002570523858369357283249189341141956683624061632791703385823446877455607107550994717339298956083779607090912905037662621491917144731609362063466031597089400508445119730215544847055372069924848669814760933336858366701297378694745725363524232128992732178837744358627064917351004476083894840112612682277335016061574190277868063975477476989755597182164912672768087836077119326099543389124126052556910721098296869518481680666877256115749199138196232208334156944067589407048918032952629534918707704231908842871184373172244916834129134221933747434541118575860282196383826147387600540311787851785656067056822109409009113991035326876915616881592124101046434244338197418092833410452565215209600754859743085431224626610878789789879028374936783059461954569039325960444448497427199289135434091219105967637714976970975892252904739390681844562412454242629041310313448301075396916338084282079098205518745470531283719419542611123200826506186718968051219733664935436101058699977977746226944245377856319881024027563957578158353814498759902983090222348267694292305572380503788803925234742450863033150602664398576276878399840797330764871145813913532619227341770079858959288559638030192693023546877967862396705431039416914302829040366611130231721050681111560329172170983792589391228186781357010488370051769355185908728440133179661327224971053545400819342003542029487234184835202518254108132728342578009123476048189643179258809229761202254740158785200243560280948073650459431672685166973767557664715969004777572998316116588462455675330011381605063594751939340967081725256468824219063401413341275138289448100057605156404205498493194719691977988120069281105824209327313155347829495417559539344720346837475395317298423596749963379480683506184686191786998669867119357958989125803723929584146721924287846798011654192499209995621045772735947775027341157360515337195527361377735348656552599536336136628516019666198123900596307437137349107236966815224850435208071559632597708675856288213455328453588731235574653225977794881437832628024766093771607072909134554505157509671971140843237370316209832156662386435475075684231504127130787641495412920613453509061907262765643586703965025692727672897368906703409097999525507174999172882049649425078524069077624439443422914626251711188401264714824106454619801654659993612400672733832937630994289010093466963498581761616463305178847793487555861191687658198251391924549323710871086359906558431984665908863977973653277169408737935960127950829462704231136319433700561699264277003343637691093556005494546411880061597951495395240116996229468940422821352894867441837391608860188698756010431557459700950202535821407146563264121107147517736282517256904576323154274572460809540947776107193646056196146190818691338817627892146111996711140281726099220825415912667521574893668059135945851043970285946371360797046644816969043415768604171188644395881793811759926012398607815542056523053132236369515738540887681071330090437054153374105950305138265099362038336146019508591406762863012317471317192198122487223046177062894657165603883616286906038724107935405611167821581294946169219713371966438038844240002220458450003198807218593173924021628520654932955994165299767139437734477195871354406235185587386213998195745743975901330269800304031187233248788678946267235469421774154564547406519346751035294201511204038688200591888409934635391674843392267254381718630630869362256205733132665442703026441259498156670388685711043286100500070479087062135809934474791871796822902059527326639181031627587725614353220253875661525824193676847571620830240488312026673927634583625165242484352725489960315157163919898199429751379236993178435867347502530802334234106436570935057332246359754094582072310317884879525399989845901607587478937511421573334202503119076869952433100175510442747404753344843159375328882748974428273040079536802797210270982417518121328987988036099402848572316485086487347166366456668686089210314721321700538615167692148533029794644736724290739736317659916113026558414717326460734342716775179380143881269088663194887555024199315415672587870718178772160851940458688216223700042859814850096061471651720897699977952820085451230010257728367391905012070629897626136752006543668124071159861681906652467311501397359533569247010658514076358899947167099198206695810350244934772525327908513836722044373097625124121640784844515718830796425291193157035501979799473895722686060035453084893430564120467160552727294238959732356744288869015036727470246204487476644464085736903649750684378959809126116589696002561451430027016077234285019343260352405344602154708307120744086062164297323657038611173987918075899237546714727231243716356975234104265474762342829077756985336634320092810765678840928654155502024400483074409768465123759944264428678077757896612230869780855489413857666223112529669580965541238407689249309186003992137183128187333054243207730161027720276165491843748081371521433060234991436147285777900687897082086117497314936037954396666900666732091355211499539273201572720791361652070159135307885768984177443118988820829397661373185691223629007490997987142160828138607325127644390568243597381162903493259749722162703092592514148814288857327201922196464893984282457241173161316363175856078037886512455271811469811499913038758373482541578560047405198703322879525484684722072117013498219126087000553359944069462763176093313286566574166763066249972169161111776203230929554112372058298256164594285008740939277633186126757933395282699031271857762047319012899093162907959112090929202588952167118111872418762199382165642127840432620774480476002575563818278590887838871602103632554466536198851420578538514877784879310071090176851033485024917964493758991498837680470466043069661685345674239558580320314938273164972570679681445868640539687219367026303579167426136182751149519596803979932737589082490979604580775055280773268760155564540243807110974910351487999292012697051535096545007109816031783031524325049240417240495758333577160045086860715694409783385170135393079143011440668864046281948344039593342202001367407846680964476976230749260679174044868667946266149137865155803238505496070902262043333845807058887402981518703512892226704523183091914996616193305390538864245522414270408412046731346538972370340883943232893369209585301063322603404004319876456813504245924280909278472119291862973387505461839857725153878299567368232301151996408112654773946289862199567709334138021325374302077259576500900310071834274702712957233093091291811440195805908061488121869153043069181252747785727052351550753668698506150479071367945785539186668216045819788823159746678939641131592266201617443851940343873182916628157240079831318297382461221874413231186482172269127690282271928317680937218775116636061231212020370013724607004388079310566764240767371612483272636881667026175177489661182280058521073495216632578030962086398071462029068154380981576041021301543556221105477324800966175751249126632803268034071429384091168161053859956759007480050880324728894743684596803388167591314636957897911757136159150374213984166317296190995447131450815486414429883838105967687320945203156265526174799884480085925558998549992417596010080108584549561087670089283073673661235119543134293896444005809479655938229203902872920698031864174990114619748811828831953387450786892006131105305969023595786516797841060878041519684009968650099606963594133607148247874458471300094678133778608232659273886912128025894581694160006766965800001676847921511342843974531085660428191494129338582692082685202766102208919953138515042862903387858388705582185770528675081288818516599087540577223258806177778151067847329418086742084292647562011999586772795280393108025284050902623833177987166067866895769393936742066066801440552379650864196296495971476581286212639006493222590588477558712763890242072172888526672303953079140866541315476196369170824124042056027504609927500964044598858998882616894891700058384313048392205848350480574871709880885162874793004860373382750734123651154649258793161173887880654445472821437589248398912988033127845861251487924672196172504046009781881125971383067629589011431029142856024170063018280654829943136000900220901747142495515492573872315592660474391275334403238419522841247846426440234733820962390143138157264643491297691789454653092810636138486460403238685716352659121304743533319978180161036622400954269022026797748953275629100665199378194363503470672624116353679851587089817243585640434037797285011794703711996111700094512575549305670897792221080515513350422218674852360751129351145517839178097706090881002459149127093295414537541805461643432779354371326489535441564365507586200993533432573504606372687310730695182865082771988081691032177053174452578407399722158688040545609510183261744063760079111584110691349030468549743944202512440380272545020045833630029376832430731627846274941633347428079183488255587244393906661611900260799912292381633508808685615005361501181414752666118175323239571537498743399778341433816188689002510391673789004672035347157203363436337406628592227932566593019236905951459518279131480201538923515715919871163755391802285393310317445793100427928197079260944697549526912288869319803496970656639440554897415228871733275195225592911629173624015982865168161725113561111950395740579150971583059226492840928444486463962069172946603573548693291953614857617890250606473008368913860626065032435117822333888285053348831897182737502985622507338192164132486088790851924843924249116894988344413752537999758519588532779161849351803037156026482043625766720469662755496402993086028024238792477675833799017691784709614917257709373982468367282332940857719207452089010997962360763848020818419433525277713398954696731404275507652880022697674216982233227599846848298816615460529214940004225827592387340157384185455589098563930938738899730511529123048465957096969712304447944780167919568163322546057907243135396261598738302314121749973900695881850931234337930019684722007939817344492459659182046350448804600459164300349569587253667050362801391198129197304227377502605679076695873141216092570996081298791511718128380491344207777634932297298748763384951194470032884267481930701885509427006633002525110265520678074206502111307918646293513289742968188450686620025276830523829554270289241260184266461738250407157883841827579806500637411149110819099057638758354007027961964134882320549470819129305595935172954239219967836484741102609868679188952022617299835480430471920645983651275134026455286703749235466004501661094478377827026299565086854811325363447461475935529467997570188516405677565712659012486285666710350182813723255793906687203822118914614874740587685294672941041718897081474622510436163532163982347384279034053158805688981452398623301231825504754405751659318036799567497580363223135067954938427693932287277287622146539182586556865334072736368952467315828156885679719038161572939013199531622979889974574740001151270846454176696207936664131212524029483246470996464896005902321274556971743980250016531699337896321235829277465743795546888932736053986709545089367641330082934196311587646286713068175382331640860390495903528979214285874301464058187232079360124245088279512123123029248290336306411265308679723658524031453537023590531131566437735025911606247654712571336033091280892880131511049394418853231675759807052222607789643044940832642271473233871113039847636711947011814626944674452531184617720520860245191579651148390814924610139673739602518246184142967510292109087985693586126098570608738607099703872014949321317258712031747355443176584653010348283533830683222508082037689392042377232403435430312832823535918398042469552701750384518605614464976178195995384756870246237215633645968650298002322207358660616579704774230956643807423860953267833207327868367409557105358880898783111343705918193636395546721426549126226401067539232289511250045809414574163477850367698835397939344673302943141921989141575020804995084369318067046998891296685625690594413380628862124236277383838801427025419557922468805993347194448055292919107164640273809724830297223303631797765454709749866752282419859109763342422695714812493872651474044918229201825868773065534480545869960348209936565546797843663880784391810715419772988405390199152920024682433733257773033598719792684868130524341210193685756995489541125128878276739767599324082872895450322159095502949338901197870724303422295357798978077248779129920510946110906160008335961454992985441443908603963979531384613235885335469039683849802104592132387023346569715624146776719742427018886548725879634719027281894465828815783852383433125482087291202004743753758992105697938290246873996712155073635820040237248375643256960699566643188955085693705853576998140652817374179052887347856151289213544835468000214818703954020029199362321054956045823736302478168418222348487085335023612897397570738927481929829851445698981718404960535671108363203909038418683876838425749434001546647351483890810656177096982355556353362521833500471058184655999622127384169173696875084082631167024013862066553128723102160442759840294751283887303075449653559877916954728103704680980844741410196110806574271840107101924154705947115218581542689062237894244803017409469355223003982324780248479344557747629119685602235179255114831991147717809575282707984519958611316436130641312817393578340889555432742445304181793276421765856951458370141363182784613513475663760708601987805961500511722028096432899055656200722353478149486384043051252874792978893124201282526449498324641154903008301625890917708503066201660258213525446372454892650320274465078693746174479463603756053068289522784244068260973236966835599202143496192963781929870268765128099930271083136281088851563759403934684354995172705448871769666588569321127789948004077919812205601493948224154436835155270016977922365159685568243529707256375616043595123263632918328407522927805211376169622102963344157996029760378174243227958806357688850733072782718287012738155772162320021185791762478330502556738303836766425606518578415607831132395530519487184389998844843847404829506359156282463687401845567143215648359305757078148567139200614462717732321072827439363295312125536192238863400017050243483571321975039443158985377936113442406724767551236042136812997774993065492575358663765699069855829757713130634702546350901626948446297024336696796836184210914861132574232031770925080022350787445321541284760737983809364573111570638464131558700295247899327585807818081904756800103502444926972074211830709534950193820311821834700622504845739619946804289235420364872613008167268884315834292359349331203341144133623201767645773106922646653653039959981982314886072078538706053835096680919269128798798035811796182589721607005726216068497261284720951784070041094791866032729557660983377798597563616771266830837551396134381958548173489861137961141635858660499008455126104713975113226860390975247492311584328639099027700601455194719304933972200041784554372325257071090083092878821599439720861435354755421939626552303173193894855419357186702836012139889193634329624824040384224934832919226650491350920703323583009824122584563289192231422161071338356921782775805246287251082043668476445152738921093069947305349458326844023240378582040766055709785360505650123876731422206607663096113099902054858483359930489865988755477556102401344845084783000314246906663025217575615140576732370575552922237501723191863189304963223736220750018444913330328900292982277294668931877025792549626655016921591007694182356567397588078513175695425013126813892163708382476474839918149033157035326930974218357829952054219261202174013066578398571560374610731749818601044650031097500733475527901756493564877484511317274556086252698071574885576799723185809526646963595672937344877144874102662174146096201884258042583254212766759689167196463751708960884229135714489788062911836306024058851926778791058327163294937929763345632846812429120748863663502807290388311870614749895463272277630290581548558819407976615321209266373188767426695034414136961845808165783087378071145072620335128761797453958630521031162106385930851614683817483052296930702019154677068802275265064646793344816229402154270506440231890926613207531674281796041804546212183963077982968050499565910767387046664275751376519985464196027000005866940876207914944975221380919348737322173748275095121101899185804349448157195847469033124672875459163872661527351440437731845082587291180636966747036733119261088737453488292990402079446083358554508633768869659392307819555702415348460185807381462604474119012633058708744525474289761556411914113744935144705314360553701531291222619227259647177595690595144854850773097792127744961038157094386415329289872349248068759284807888305308842276112932488672651867992690951725401092659361781990280276393303339227994386611275976842635180792931101667175220389991057981604224466164255885772361119393191022142234825860526207506398974361836127575057270486202104952665654534781788955994213893183040149802388753129704958966065282546987809671480259417086256345877116549037233844600844436949867085044449814769614791355791242817110125210705659211922713701137034362300987609689596611764039283212546963369056407604234144582843134772777886640485477118176180928966192447371470388030935295755968975921857648951562867572078403249748777158284794622369895980067998999295841499794908393928305744510463411858182296693074039371267652409629964983003357438783346181718076103460970011637763005420425096623827261601734520913536440301587024137468837161859224524162336715101297663738871811488545160170015539481340619891625866315396982113990830798248024437702891200797691592462835392530811344852827155008228486529264150300780041694399857338824197897781365122313783318966260016528079259591893246879852981326290627896425803542608773545203161531916082693879103175547574812878829365902583880796799764206451905585548147897198183135547095865440208712443664914584382583669017897589979295746688221274399892829921863145841212024566024984612981841991267584483052597573644293316212894331873740664896245831558742769085829273526506749400269137683889389463745457473687047030143117480843304602677403601698038904764991490418979751476862427345455013731565187278045058824348539033105192860216211472410887850909437395886051907977757951524073714661574429851873926955917795208432266867014134810934573809509799023636543424248353871533082682436782826581668658596772158054365835516144320007605286036122510477921148087322818659437588579210161675445495572272208121511842298345856967281800581989055347744483093849793241273790719452419086199653816499629342745665903743577155934435970276799475480517425900747485750397825690609508140590790519268611862857056508426924136213060264226581311074730171818033782474341522499386358549940184689231796939885646924350732380613572307945279568620016053432707123151844105920119673826274804014165456464353380135843211383274299619078557166261621095099580904621805247200935117354865094453217548979389391880793708703789689443565079172645851231006702934885560905931540643811374432056185450697002084480500640265975629021875723082708712458136648530146235980230118210723050045580189417869797890517911555444956002483003815664147952969404081928830401969394877972738262757315959693046108473796270463412564977230215509037796012772228979596606196732173458992620183291590580843731292478906140019028806466732825516243778537175701942762154767362679164717226034102393798264112172743462990559399170713330451245536518433070407028667715451764697582908390855327491644360570559929958790093825545096266978301019291405928253395794678381970175308710391572872181435122578603337182732773895911587061487855745974602001301471864992650283559305843040539537873447409596822894879033205729294856548312041701943494457990600380118900647646289020904103271515758227075923393423558575599672639055741929673709042056924405320644060568460222629158285788685160104567283856644174200515827172975822239831898422577614750222940251179091501100768788815092535938652448663525073758234055239531629088412422951098798568509260009554355881849279433907978142641319685434081769126821572580585125859371187032759859655353834153348052378311138364407813748592868534605631340921040794380317060736813505238850646346561651451820793031605690433498352213574667013789037241320211597798525317871361367780601970292627902267299732631913911892873170198655521422805413393907538371649549915545550003981180369012104320501308013461998186463691451124522592873695032430229137016079614020286919492213612036354889321110133809905985701838464375261104005285395350592656264336930511691425556682964820539450547202292290494238949034547682740795665155071292979210788767585338847426494800311982979916231721211848287949949804265241754876702151553719740207101900511552662787238678985458000005133427656004175775963590190796293710814425105990371966685287633257637380268294918434355973074806896983579756486575218716826232036645644587984872090736538642014754841192499717498587634017858779859867336276764175086217231937574494094721350215533707926267099527482211316670279741992322789462589825588467936183239006751839076204604229933553042270370351342593924589505707642181945308499210885862147915347514136614715689784542256668605500127830710472793335519531757440397562617663595840321565817942654216502658021042726638204022572396012494317669067505644716466373150754583124585408993654587898510046315155241502984780834832955261802063145644179518737643455094120718212315842446249512054350211143741681217207542711252465056905590436811891846846414128816206894968971841818893113348235332761254731755493168538484837232554319419360646684282978078873916792067246213713868563238418061481108720265714390357087814902368850861451877498760798668156792715063970462642693126677246689259048006012692631204475754906683377533959406169778319318565858083723050814465817186965624243266921210456828436464256767859374402381231636773836026384922451280632616419472526780946698734987991596997174573914761359426572946642633131610426641530910994173553183508347419187711384654746653309494431677043091634390476717967307906329630465679997532381381549834834818931839397989805012069155798148265094701777285771454526590961249432082050678874620396698438237241355609863965323564621678654867226766404170876227227552126757301222682957968390957437671965612896059256931560254732271758322036619798951582529656953408829786934909604258895649739017847874337897035089544599567523645884437088835553787401842647282420474304816391815995275379173149134559486939429131033450948574510224983671156146869842771672605976889639985284932480390209638908938879284043629652092290381914818055919666249285719093554761765045109155410956420242592614860184291724246876313343951433355728807089225310707092314790582942919715918967909035705545004739504730265091627655521346714005045522341549601078974019402691400545425052784266812781368513915580889351164748418952455720191091318741118633366388605382208891606364328914699941053731071276126511926467017095589276107349050539903785337746924541607343760738064558608955007832615845915564957700057853787495077580745016270111090258065832589452392563202544257714321195129343255363136825511843249015284479124014650397633427244046697158758648925472659821589718063881541140800817341319280608091149477582366827766328151070067281904502040194100961616414754070035486217721204230966243572909905657394467142345756535752232528925248813685965604536832162477395954096472787333220019191173314248781544557510293131639574522000953529042106506906766885537570239517929781406635438599736878883666002216664858582788213096127614838566576500183417372895764882499753583704453872917138192963215629384619488140980078810809281877416364161138118205755268545363783501004954163927582175554275877486260189478440012612579002370683774524451624639783919051057193961063306197428901333012957770119414180461703059416432327389274317847532136069934672518843701616632561652460382725396407968020863269181867298545462028081745587454089976955623108436554324575517377769664918490648983184811470649991226436042074838996577391131763004001047871527991270341834389595957727218422977166058224637375463502276300126618707465155899727245729562240153386865246521756952708917126652912583638324061678488704036573608595767076406381405525002611004926858896904134795428922554762736132373230332559551554075207070698475938146998585491028996830583261929896504632525078152693056042499561315221429927018645706072027009733560004494504681181008476593264436593656028909885778259660791121820402331741759145400029720773288721915598533164629198403427617411320940108749880418160051749915406388312113631015797417223373247116586108027176218252350164314655474885064792102027778796253996552723563224683799458275217207992056183905375156999060783705036993683407578019218833458312326264874677819489990044312075886135738601790277656025147616537626063354537141272141863972515995830480846585817632584479554975419667094778298789501756291269630137434051413140517497023880338998757266792857969553569042918567282053796311944546702275835873005293592007750735066905315992869543298285422903390173499750641109387088852687421019380968882692974941102810494444010048152643183245536151529069389334177087175266051374922529645073837815329360292010420412815535561049701636916119654126337754448738803377798279104945801250433381211593735630461909474155357650837286870480074254439068563270517964552529984255420827804572964005370794337596759959001512698265842599676329217311290329910605923414071955613595934547216680230900868966407480052066113740584656003815185151862510095602499386588521827942737568481339994411846956617932133269939902501411644701569185896776092328526122719957611106915068376897255565881369414962919013547425466018460834107000093892906106642132041683232386810936885453385101487029425216714401293677098259962173554531634878769589097594064635293093210022919577824408551671430745432901491969778608805700619089281006691899899223708550197831568702404331647372869468723202687696230067098254919292139592463218226153273081502290416861523906511594013438701567707370811775565295123862704673043652677778559152668302705459316430240824671656249913279375847453654151724853301055319899998383883705801154666470517092149378112174537444145817601439993920799783101280797992966332953475323654389896682824217497358007914238942686776093702959800166991235889268576258774402088845436560944665413302061558930071038096545431689306878137455419596967782444385607920934925208207618598143681631777944353420169094901529274989451928695065919490788206558321418295400324274156125325616941447132522083667852133691703593286277573580274899860202038852580826573210407207295495202811311434569936805743674103886459459685168924751354555565454192511827974866796397435189135688138981259221271499227282913350150713171869415344215024945563697515056222295372079376238901851778167380406971473396263892420668170177404453674395622918128705693317757278215958770816886859948170680817535057777792086632485973439715096758180298349917473323236554002939606983893811502732444634612287931405530927078311325205160450527949608755811743481796038048969451463695688201129436165564283419697329627759002071404100517324656206121853869596171919807196996147782270818672003015218925610469519599104602372574608873725294163666683372359798589851834296259908730667219766048801464338179749045902532573586095941036536792810221346331543984328230155709460977182976847466220498475163846409005466577903376356311041101125406357440343345338431593009001755274001689986163427878314760452020142477103805397401005610875549713123188623571995051173331196471939805367498538151242980878404833940581484835807524796781203180633023188541144485959973958312802172014438522374877772263266986143334431783100455275970028071542236737889727924010283039868916171365739996156016076735234770348178799376028098379274563342862421885852186038321042692867484939978424387032796683482830575695793245155623407462135249603525170729198818326365997513383306122999329338391530352284898185682346940159275912799491066535016645870490060103313510142941997690433740730552964957773625861938609248843213669424882405027828216336631641719552437727738007522645981290316182392539107680471492583850225175058035161943136391845903171314411850481802361882988631133057777632431130485310028048945200602129895956264536738244245367674929586974200036303532921342791884090068968704183822725228722960733683668468856996834409409359604601756401926318166573635079274585614699041411163207815570827823043363781469282492563440194852390079119449076260861754972620635826809610090931249532975445171919651899254566469034980164571381735434731323400789453575401911276267355477802094654168058244197194928785694605978066863004691009738659811945913722515564112441863176190366960824953742519150618848998151488179025471461267104450689683281950128728610617821314204881177043384486407085806813047738363639387855640934914061798763921473319171223267778702943415893865768268347320079643588791413972290907491683572760794656983534183852956442040922428563771496100427186140059952379462424243863930735973072309191942967049264101980179922868116839955293168910791203107421123368667877345474858511038028980521723610977418469526411043244466529410757396943958153643755831709110848265344237128028733342741837810815115451263941145924515051566999993368368519555350446298871378569058833895498479367915323705986402491102033500513602515556156017083651988301343859330453608916915358443135547431671655891925267621158392337550706795501629678221893465475412586849500443127890763374322568495493240438305191978539472785337182954735257497932006397304208351578238795873075302776368482590040188046945431502852627057654954456496668983681888902744465065111851047107311368945620266750027545741687897351000356256710171287908615587529147573137276580009014330551698551872230593221739491604653840818038901303588007261274889387937307584970081127921037888165733384751587850477054028134487655069574905942968897653863008443038961297004798227041892773782078971552000375764641610587211018153788029820957832831470553569687275976852274059346792506179077637853018645554239429647963248589359263884168990168143275076942709884540859774589263578246255365986439206320349859321082359809923940283083810734377591792175478206359585537980361189514560557114551199685103179131201474283032082224913510459841130602059895210343295459500891110827867284804697585867178461073755788851708734689271368477524028505795796167648365819150006407534165696755482640061344182744007616452022226325300275277015892794138111559002031571322259210093062744353411436455904640837668421078697046939715975090805414416233834603793325003142163466435972289611282761843242589330593853132263938872913552595731482716791293795513519395563750060664775785005974866032757880790505313885996387523795841066177502472646168257489555675871169047315809977333381212950321110612978244743692579760751514764194086177960921542023367871652677544146697723650658373102646684311600185751685102700035692203091262020933245852909337710619354885995394849006636572980501033258974913607564800280770712265422253594598498372309936041420682548575499156947865620323436980713306790813768184195359880390222975144841882950910373267425683977828277859197290309583503556104877017583862375340020906161814870184673176301784904112920590692847720691789594773333937251254966100870472295573809945117742301108224127606152234365256973924977579120728471238600522879099476912404159352983268238682384466631862731275936897449250004308375534757493807939556997740848857110626431603505089242353417558380012134338951855579750198340133739979996429038782307525119739554916979592883790319265953916380107322319937146647337371349599414306819449174590351385811742031791584326099306884353025877693604335101794605996189705512823583595742449171986312514026187841767100776044553678347120175964204283318274709749361156802948631623827882591354497158150313704720799177114480274563119830951805178729714623909916424112856270826224500438247952746295532769809662859037696844439815466423111532040920295679368361681993037803841885519658427993238274334503554679860930950060974300204857834178519489521314674476760124839119702923224331159781506611714185466625215905644054320359458860818133051818686336057025521041967017115507580532440552503200549790235147939151020865117382553426716333616334568808288279806270181650138785449024131080003408114931808743089301383656164456109960238101985676533183881123246151981964825846158130440564561951229627469422945435542960614230974833500497147418846649912279003376804656064839321887696023398825973922159739333425384711467641917127910194203386227049708301001460049628284814045131074576834921672963493244159060813788948035213639717174023288908221507471798148175084797203754828877291602180541306985220201252569313065077588230610014434458767089945067127592173930730433930552102656894461666950512042514097068565047326427490664381742683398312525320957533925234676689817433064458717322931610892497483611380830320270580640961301916241492089392152764827562910688122999738358632374904299058069382996004023469942812070270892948151054276313652198518443032782732664137572091394812094945409353338369762919252394292135670950176812646414435030193150252056203880198048279718866207265143738842028951519016256381364297864264158235813037902216137341276058972397298261758529400419565252084758945664740309128608107442078184086298528593417818398436229336495335305813734704477895326844209306941207525901534036301517560217854206466503097501819186725197692917039279970831890899870382252232307794778995222028036259089896359101753375092117210328284888582347462955755324159367615758636386855104552519685965376752725482477683720860514604916379419679661462598330712328685334769009489438852168264320309407726689659989077125245491609387395398634014218095155118021386054004953877217508423424392240502609458116955815466557439640361475885104835277907216853500157621685696291031713973514846455062055421780108245784403947882075056471800089568995044526186645244735153544289374528946771524482444842324853385412841937067221723255078967370079347821589299707792910450177279862875376792676684491171494644422838876575697493922931200758697080266135575560246127870264877222666609044714967121588632748274410321396105209459298192644725640022591100748824869388865142495175472651737129389222340026610042573978409359214252821080857785262098345326309846836287538018260515430977540909789945406909414873197419360766018069858704956586122983697981995908975524182737841334934944882079011957897109945266210572323417055073149007002694219138507158680493500938607842568786968967416737664047851790256816133324178214084962401012146660372373834200112232814416853289797768587779941863401152397493705566877655106430098023508381181583862087417300462120420957309791128353668512900482737453563888225423849861338251975036383504742241877705490574898512704497932748002914849169863520187528725980898289562195906854213950454803034679570260195315551808077004614755146334093932732379076949801840276251967933040956788822037396480074731589427276871784862260918696171662208202330380422034703980839088524722748701581169454878618763174023364966765434590418563701732490313521692588038885985776255940326801757893952617048416504797802482276948913781904142863409381477610761120083596040778538184490181083598056569503920784185674926425614955206948941894662644050952964754811116863318276119154874056055909051155393390627388251914808757125444645274748208746139544667555925551366078856852955432103335116102906125463608984812560003240859605987062399970843083830775956448391407670112956921468677657299404055747689957264912586525502582643049946356999474086563235039595993348317092428642220141350355334105848277072774566717471811195989658232860479105007998778524737218298228521183361815576008680567396587020875624601713397435385671368250251882277531208708869631539870093801615223541351453707158579907354383217850343580541315854618899509035316603526872183126062847078218433144075251609370960874112243306615106950328673228359638871855943760273428685132213485663227834742206139057680060372599328603809760738945022230060342536088197765406915325729989666611271737529970985415612211345638516957730094358017370949897324902216197733070968273342067855634718247049218166933573786196011797670411269402971321176766964186763763148442720713024457777679031344544467256094689567993598604311425625586077690853837342254173179511416500753196761035660220318622360447794202025921409619970384431935829627792810985938099258285036442780796099033533875307576473558890817713633628460821930833226032196514420463329492867806137881042308029546519388854052675617825359505499037003199354050014692266350749766046233523357244715391737566442930527252031292942492969804771892587383935156600354352756005525876597823716620987000786678721488296735579009867061193130231943237761133152418344621286411336649407425008743434116651637651474932797283315579468363874337855950115473447109287797876433069397333047166162808527019630198737802845363500752250034142930953874212259135439710914124952640909218121629045924636280492474533664769351191047034874771442939757009592838720922670955143201464685240847663380072824764842867621799254999427398501821419009714647286178762116742444300094778515024471548358228580599334637660991565195832167795619920930464531291013231692208290910081376133348864926775545238314333971617569554042806887598404771169984320684089978038544236226094342477308576803151410733782687787980500404474180023470051121796405014045918926000017343304672621594289112100055241521416765326731332608660535270396370023611839707194320481825236036221172310631997478098577459832386630797897600960099296877119366990838924688943673979124372695806257181577703835444894556484104047359965987372778849241700975123905049691810131206565997252658233755836228969645046068437588226718583637404337542922678591400939362687151535968826119402130087401935692123666091903411011021190906118356081155801919345353506412831324425039762243800306705674074944348838361063195281400380804305215844772882187859385119563461294975513626330665762835817918202512981160973089792066985258307421230798682048839759223931768835430844469012646923123553650472974261650415520668698743979681758351476815275806162794839671573939036398046363632360484817932643373372942341357288613006914297682274349883169631582625704180868785368882635411921488384996309141710439116541970286784962202930476801444058647164326807482942442781301328010930100896580565596755640299983982265272986811953195210133494728354996819855862890297731709709911550884105429604497311976008517255540992197662613887502225843946479634953502676060207320524913787004914597335908179020009580523252090769505991437793375803841778932936392282230767967906698805834496293909986529484603641944314905199290205699777902232071403741188323058510714823977026777308137996659191071439157290228245901390572979798745684331339118430296081363649731356443501328314059668693980093999863967401956150353323465815686528876537567477182568251665322985595891678276997633882036285284686977089862010961796140737933819982043281020130067183624474326176734753323468380925051736016050759837033311879361058610361925855944734796203151943770121768436412744506670750839426174687164275580591963968405188941138836219014036968067351923748898458578803135577794403413628149518396873288261091184962940515462890260471253317746543154153650149110750541883457261388821200991123346027502703415039370908775539422562735510483203928470892318357158467638012958693400838975608774836420801766311408823956459116244097724831959970780878360681463325695917427611576574347478000457063617981956617682083889154311873846394082144396325155276095503066557190774809295546260735970336959042429262178731538585935924502066283325742946769324272214981224481829288052694234333554135459577526861183087670010020979621086914085226211871596831588714332584299717327989908995914863926899039207216615828296417104011407900649212619253342917004564795180232754096571033480332127521233243130387742843503518853696960446428297355038822360438625193583810347474234201411959105822210964392432211143448323232471831688177404315355001060371221591669780478969749632207744030902864598792664830799475767891389417060845688644630267594196525711282802581913555049063254255371463798910566853717393590578120248830324189475706724525694127457771851702107944368111826142376738839995469103367016559704050857909952780682480027502510541702894986010590941283139904921236154420996571331605605414223179191116234854937410035872763496055030270998428715118403366636209431065409197276507383668312382627897871653139543056382334961540156871573394748169352419494527199291851660342475502309931906902911492459798132713884556868107325188672124744762927847392880159143781484466930513053795509439883815600695954559291429928497264671367570405566877157897446163218198588423323835331131464500039349092746025092296862124678019705846293109327480470664718356306250066248816500520465515192518056536260226942820567040438350395209104040694910897383054431675108255160068799372360698312333288027803847425331730758697491771471655311739102808463159949943468635576643734014856481575814398493055080042399284418687252249904479976667886657171649173672818582850398989156860236880984012206674677528196752440906005332859348406330835478229912366050136558423449538332072778556191432170785512921204130236770291834189712136142959462024397050523607234761629417151176826928003912080959139068766220950384807345510368757913532139271097385849353940402941649062534264448075466829122703713306272257550701023171065299557112762670465027089375836984688628434359676492456029137553119007986307103071073261226651223256453172109522228517945657168808661019005083691327597709182644373196976579889955165690103117013426073449868735794948394944685936109235429212929755105530907978904032464993920942444080278802353005568741085431008930409459026759544736914539044319641754075936911764922795376499494047521298748731209814796297585038075905026713699162286722971120378738798973089222540580263981134566471827696509211448092816162474443578139608719328560626626057417524811350981116884701125605157056254618731185267752313237281713646154836021893801048090949063781510059918020514127852899354966230723789707806795820895050532469159374996181581533206903060545940702558116691410113409775385002302049276500114327577976156231426718588641593830513494993861638368699656773342761053715196172852769917415993043926260437254824535460779233689883899533126778506152506582868591168850194817073626225067530325170811541426116625825075697344325648079506792895681206470069988733885724119504703533002688228609869007711044601617044929483784977795317166011351576920624160725367023926754067695054441778357460128086475830176507398784754550939862290813411670430353001068373510294570042220001551381106909273553451069185781528808614313512719415958216278342301906004178105872701096742045090383494985155706149715252560944779232660964388994317830860259681508841200588651796961224303674047181255893901596154551215983714605285474268415331383903587024933214551608947643630614460039207206070171705129765681837451950431723666941724737770995141800649435475447629788581454938727722164387305767459732827032118071648978975705763707966205770441188810635089371442370849033015454566921853272361182946054913153871447173032270193811072981298982793523068266842990865442451368140411137100240402462960230753452569022566456958014318543216669658692972370266158862187864151763943469805322624320005633256496246426913253252389746128782207900189453064265520715627529637187018739285703102715084880502640736097348920977057848072789279482081986634530499903536813955955705106399948429429381415657847069297519076448246773034568191554638574883112044750794635257291068348433664797155333368958479367187676345349596615687305371056180372188248555015956536831066106212427584741518010398193999638415012959037319139248257176143379343281450566042667340495658944833884148335362953302447074108007096762652074439421826154695091775838713115669384009077256740090896164984257023894332514508506189288745348289337935067977723877798780597612590210958664115132841628172194534672893521151200130083509594361076658864344038991837960122872764848973713476525864839014448549370982822864844892657718039052634807635727978995700133176226441077820953938270731407999540314401290517326473214115490282033267115129971547534062448024288479837537878637264622702520797330835228609732682189816094011642014622157183104286601276812395128544346151061677113174895819041447629171415927138835094093007320038280077448117291079367173310154653894799095046592849271818283483700854618448830991511731615826102805658208892240332060801520604157517863923135346211007774888757529751170808332655227664976623580170935403527813023603103151999232139085503630262195349902594903796925408667532256118774902137967860407439402962759608210346224545645482468710606329681948325281058946741392966128951237432961081241741593350625102357775219176818219103573478664537469435301185953952533312647022921152885035896610343492970059554962695189665766633693347876164796658658919548659727664107646950524293068283312673108452108004559696702865348240367788464165423299396420259141287880737949045771377497908927793623273889241654086008890844369723223461242012398014157801010168359294196395865878543025697650443370772719031947297404035594669834876845301312440736735302416866904575290362141595704827345331494254256098339654732655451758862085445441637377868145523118983404726665547755206168766820890997750707357824812002220072919777838140774684722297159033889759754437861241965015402650073244614828793538795168248692325710689346322375083903569388418736476076344233105002342997722406093610320321335631704774665425261353603978817445817586140066578679468608290274571287668257062903923968998999893092484670100001249372061619807370283126224239605640331340486471004469240549506016094409519975748692162569691019899375533819715835890157820743182219394122816438844966764937136408103870073153309108268596744173822119434417564138419287459143306964517085869664717529122960862565855311623595014340058427487818389459228513897668979253574127604679640403995407128589927432529103685397448868629622058321351601948965233702244060833073592656987315280766141838379749092072260421547939847132534638380840212867501973510291810552724677077274754754715102796173018702377554549981205963619079675944134229879323860194720986512931422915162273937961488685535384995301331084852946356388117328948246759865132214924286923933281085306908463810533091956990587797459363568738271995781459439536516700781948734122663066951305161451776988502263306825725787961651986441553944978667006901086639346976857145157774633300409192899582370129015125062657917398419208126044282437516546379363167448280621185031104678132264206346722431419856607680839456462804930329997919541478834915911105160996357984380568134544605511482857579351680554334855864682701201768055734539414267635084438060416704579477827364047248982062097698735843748043821811376639080815962370609677040896587246358030353065823481241948248612507842788984063073288095710332155813720642998152490421394465684221457024541849451871615119929533560314579463090480651770262524200277775695705771759948964431729204933926175860463730128867428476965142351269681288618033643873332268542118545441604916935329982986163128699585991433803347623978559598432003438742419817342146720095803074292519714793925080712862015626740344621078069517181039259094580143232719514618646881366170944192160355577066981487627221278711534820939284355518383096651845252129021823494419364408687039414440648339890084459535617380968252200808285176806895545311116974206452340840065288663920954633363766793142564244908196182276745003787255596144856801655108883599017234545469247264490676005803165571867793724188636472649528001486305300581542036226974894453155985846438765421192624469858897499885068305285846979966487323943760947761303838960070217478677729824159283328288747797313795118567113717145035080124515782288774981251674669005613318287315069289961632844838184248301452558359787463011107971270097359985130438748242105987080777003485248770849732896033136261377643470249309851416713878920373645162494764349950841612144869795019428458967163010322588918592209996691533534361544867539994056885476917800354185666607916341656913259751934007894385516287390998312095516369612797627405756623397544008379811779777567085661962431932330829775321517169219959055799789963997443050016584345340144310960067893316387277169024771772348724842311841245629277660900390061713607353109202219815419199469962124176854892460375430218766233591372842637180469410633483962383497126851041732163626140117174129637427237460502769608699118089587513826006196096359952732093037921470760282968761723866766305683781721571050246872929543663205423450341029258883161068114800556959677975941088152414337730113927801344741115288164559854147087719281350753914406887823258078189136737498665615203998443816829906039843213752923354809566789852418813822972526451094028839962082534820269564707311812564083296813001359567260992523552232989492493939148865371407032403016378949209992032728642059844180638588202671320820575567123572480892468755847141339123572578195580921143294135524781282393557855555802829151686663231042678309204513837865199793459897681518253503641719026912997534474309471509855853771179397753496514971781123704510259916667568881803237232347254826767614859736038017416339762320888967664507899500502133573632417148147805127504169709270444924382793030784356374576060150488039521279950997375099419248187109248311787961082727424120651750653910466047898410356602717971819419322550705193176538254573529795916770070434621842342643052157016428484566122712263987622622515532715088409544969659179282441078017287024503757484668727597144488702944273748177969133008535416833473869698004917884231297471021634051523899458068252623494444243451180551973916474537711462135228673281917687622270233907344038056298347417904627370888249234659319650156905664837684923070781404906464439235337062871226783041727240294160696907197227076513614964541746155877723478297502457038819810179414677778997442974834711985238019241710471559470987994448638448526992640451147286231841796347693280097128995632857656180466725312896447873840258105478480728103807270422281199622094538704082676512806215329861293195333984320098862836060945687026913850352372821456799391992981617613664207247872519226268881833751266117790070103225280536745600409561537329070642744412900185027723561957159506737506400521190821635767732313986750189546251309275683155033230909937951373649639198844646693476232158579197716786972541295614520371201184595122556148416021746874437725173007953687947101633646336193361612118196054781758002793553262859202233205992551765387686030815646193113931470812287790705949086671559420028202736830260711032619626519597454312579854238240918227255325157237087735090192350599009682269695521406054203800808245706382332526605295707618967163464331481785179091880717137319144563822504642717047895966796353303343433969727711929897869164067410549614223174894249388525247576646973064545828160243963419077942649133471368433136287708028972369808034580767041211025488521682883051241164479799414259998379584288256353900487108577166797512677871342084820562601634274387976734106696774283213968003070585716092650212527879462966371812214864903165211762819355185900286064222759931339687069282522848867830785091203354177350265941873722691115621685582598759856027186267587020552460812569515871637660277117753273766590118055324761898661407962939490973672798295270219070873699535458784895955387997234087641458906800566707204937917187959411625000502490242582576691461549175049027391944642371277090627197788492557830741125454168429738866299629326373413608181949535455486988182754540723350932756842965388538027250148774402192012727554919906827981386850533743649964313901879413264876460876088231262362065515338915201701506306422933605607493490836112588012929717637246296902600099677374524064365313714801583200312740162185262177431653928737158562103831778368646977559588860416584940409962317749236548668862495914502213281322768911718605748063286247290542807336857835639438412020852582526697152292774994249227316337641313013972594473816383151230365041158525080491150784649398466822624131336713908059046639818522194137624559824560962792266232889510174532060149751599077653995621242817492431786547855534577933065847463283539653920997003808336603133120735785380849398451991395496144095001021051969194809917350994884082133262892223616227944280820142783139134169871529789619078042004568190966955173730998088283810334926573512882346449698450180979626855635064986220088455138189772207901043661035808528449575010124458856149233904316474268783757255881049646468963462407108473214790047083386273047276097775229496407403420547464681238828567308302699064805379449768885471231420632181278072434722507168362314777278610813114291708455623011199882023018009767720996244115353442327539832692723315596823063214565381844699786478158792108863995409126172343319646521642946476128357040885878429868968317845581794438768759290343558614071649112865092757158520346806667731882028094422390858280038119555518156699681783930507719149453382221067111628631161238901284727724882668911563678245210498878913900907113934464106868199611086685106645801032234380491675902946697074676068684984630604817707543185352929567179803266343060207998226217138426030118895439231104991190896140555765284060235308870984362417950069838066468249615857835699537638871108722371764884059415378056366101011931424475084038712975791127768255894109525130855258710287969906685039257282358307657466354077390851256888862594341364376520121743605088849968641522667646122981758416517885081047751623959954113665728333037480558570321695854507860048322844305775252693112290809095666216527802671986284903157996179063525398005572964218505504335294446245367509498108661153636378487321865754278887537793684874656692627735913478341984115586272415411226162557495360596236040319225576583037289500955861241984592484192127786854987908005271925581319279113067122747187429794842046878896489192473522531588049993657778774689734619991576708726078803274657556817769957864281632473542148372259397185356675268639113861275488251931288302898847334980919558229483540937620457463388198744207945016604451974181035513491019712373316480984068805797097481313573116936876179269768137189836162909573703732878336938517836721427613180423341443378529030187850094448904449734344876269795228716875356297088737491613330845707689156002267956467283704705713933692279268242627712798116082938741500111929793699072045324724559235697669787290913602531332828473859755403943775210965997716166261212917915879606111891185741224124470238191306626157356616550815160438183003203262525329663001258541422114803168013570864695004696908533664471693773789603054020864107207584167172020612520968491053594181912076259834289041039631598300845558770614419293934157549789213365271340746332698962583450257753131628639820850809317072774156846592777972893847480787368320669361591360462643962146329989253908085008128550053947776636804320997773617521792651093276990437178376868380705758536727452533984581408241078380365182952072617097159378050658071342701114994935089609633839221326098420584761853650946124948481333092448379705385824615252046243860485548120119808753677876385197794579866193001614801011595697492571685168694052291866708716046826878975630042932401631255932789059501845848815386599391876825340145839684415093100680768803848293548998062724056636527743523206411987406638738368631271519818859757516433598769852783297708125551437714499279048269524422987851342444724092983873478021852235272557567812089746776864214265461025707685462361515400905373714671117465094348249686170390216314974813369381832481188200119412533395972821863471869419911652583250982110382449422595430128190619588983887271299019696185414764905316145215568913609250771990340853857782124558168502360639768939813705695209711118159914931754567864514002511471571911706524772220124900364778791927397708427810548462294033275912130723470414258620848459780158463501477852915179365344472283306144512342558747918353212200763999677250005201511893499843221669879013357675616085963621680922508426147714988788105680308294383926069157191144395795859385048461304741432210521848933187749430908933512192412746619409199923470672392341964960671146344098672992795004746375220897588356527371968806844992707790058079307346024839554425813535935455825152361316441845447820989987191396574026984502972005884872547601913937554157508913694659830553305787505985603834606012958126816939143497340626247449392971976566717067955264478692910291362432123173083413017947797496643705805917112081558852578938117257616278355640459385314371774555940237198210524842713814201756424289141330831913420099252323816028553523391468518311470878681402503771505099921526943821811113405445242841233011941946638367447542034034442238966208530597402340889849253456791991775510432569937494244142648295879784438389324865715348915837422266830834454396471552171744420945785054565383355426496735203165812229226400877472988733544539038984552301886942951317328015252215997912353052766750410222502794445020565772888308943504317383155444322010865415732032045912998075931325180717995508871506391315527633884385740273964642078543278021060343346056722758848119544247100012304881758028326630689495642136529061029242125145620314528002055046532228956741724388757070141898695924985163399863926368563613583811362498820335604822695973982112897340098358479547655755410709283935864371339233218668114950046602844642295062560963041912099233035183948347420619519907915927617563045068830478066559331417384700598369685818871924894985058661891736071188876426640111324104444791424069239381139619980366198916677073855876002768410793200744131052809990553670234811256655030210909204118629673736319037668775024794194816730701045894748155414367101569134208557956088187593088821174399025954128445029240348614163815508604475372023128651930078519236759609443260087947968908590123054188687871790186029088869085012695443247716240995710371588794300167646672787755744345405264121069359045254885416254564603377540236901281707696761277249946486970175226216601946908620573158898116066775877935012164341381003892825144584941629434664373030374952487535055829023987429912294920919450476910486351683336068848992532825955913773745928683493706039284647840750857518874614889540404329943997313120465330414071313608061994326696017621840023244503966910643628334737440600925556764431003218824670769129922115433938868949487800026389017572979099290296568731428560097669589266365909610272990657243364724661902217099581192092288008775372102496819930268849234527102533830993076292874601102517943553643503918182015216383534003808292280388561691041580952654874789070650280266144613536130992757506337244141906131799407459620043584340091895878095946648040682860165833673839422948715149412747499745597257396929757798252977369867032214141146029254516040752024895095140654542049889321040867433185792226650889699270126351187661568217911540472136938501993627638506409783589077815304728772203315580574256573771326509309297874625865778237128303578203536964511133030632673379992095985066026622854799216370807247782631980656078334193991264730227904210909284272097653635286271541929286789433064258393241087299795176681653610942368246106280521618951196021623289716246354596286665977729020525703068114604977093288025383933304280256307933183082403117535965757397727345953394424266519333790801538784901687109633187850883589864708303114584541686869038081024171464043237685211653823216797897786025344913998989721611850697842146915901902220583419599173070180623083806969299407877642900034616354646554599339573794110656701501455154464084427123768295371497660018405222371655802225993778631748191989205013489421204269406676923024993021679247799822915958866488555557658965351518162688241625773020534262888344628031167456703360600521495160865119055174554102035131175584789972310345005248912840506008572997320649506647560974729756271755583121324735807237812903151466768413579608406627778534878944792404847118277176092240250755728102795069676171011480334055284908292560471810744210797150818154104874424233641327051560472092193205043164437787281851515994763996155973766354229639874117369497794370669060496781655372169769593831783324774547816355384240257771872947023802104926901120357082043577205595026156977660327165611301427440713649916757312693266429814334736026877048130252336294999794121920701007697629924639350174717481050315492426777352154619799724659411283781972398797520297816277632546481683213470546746289389213730013177804371061538501296043021231102113854638737152763833138458201924872935463470446804189676523085421745382802891226306896130870203887133977511772783790800368911456008222366551372268212793879436872550439139424631733816965422447171202282700703761806040633013299902053829075127483415871528309393737679288946789959122629082499305943968553385972527228698714274527176665536652879495295844349554215644139276493919949311547838895764405997696348811165708521302597740050703099691839829718836636915241897823524233829049692229080821943220507776067396001413728592617756605181460177666991943838852284302918158064921312896617720491155234389397539750902370044469339674488460228753342850655250637348554021779655141103431374886998640960116130391359462285511431489887055425965696013206063680012594997701114733885693827572557319567482157195537447954702447600365590250373984619839698119379390755745620883351419101843019036811065476325069570723071668521200533271827130202432388938722443483505896970576643569304597899614423962505725865163459027310164120436121331298032548819258892116887552129312819777455272116870226696555714741179327325604098140220729733815183206701075322142670712257391224826671393684637598689105670720250193638164350628693075436799338140666674195785261883657497873771776887882622018998675870724644875419753189587613003807763341283610139406302851121784172524376983715595323863327855514171325154488947969703250794552485508191403066059664573472028414986949945656729073028922815970697057498586462961112846506353078641081621808631004142551562004813196512659816291139608542833567740024679007391456332322602746197831512583512973973103190377304456631024229094693039443519180092510457939201620743352953346405693231502894365251532739539570563504519620911585429096237752471738204947466218309800626266443489564600791116457069601273381446732556073370655648780807523603782339356485131850545187838241000052860655887782575282098819266208040166275417083842643710980638827160694113249494203270756196165803557644509576028657016512334962450515513491040867326022803328222995920872793414315279511953238213206944335606842399766109379660421979143408595620007645201490269875677967219951766077242207274996155442283557468094402581549013397286299213131094426707302141181306969264614805691906697818731392690583219041126056987485509856727069993424955358840081450691282748696244073830532367974923747987965612730514874605077735572368934068472954737354984878954983661531531979744792949275421116166297227217226374016930385796401191919940686451579554116003219163950522499563768276534256809382364311536993174621708354341301186559260832730797235058350099222516157067463823919568678553081407353780188474872751155516516464230224963789911084555091765790460261822533708269682688115996242070439372558158331627820071660340834988238470048604664502821683950708453930167382129037973215119223299952390844564573869001698022383694933640806829199238106358132437316511678019462960086676684054565624152879879474473533902442755678511158269600823941280030682075289888612775658220915230855172602912261149969887572869973278069937508645103346465451054416629604169433708789226712948842867600521504655812549872030342500613262429121687237195185310350180563733268299639618848119461104539265289015643678137666573433245224887814271049199416348051319759143587837597745839992768798722006432633802464201106447796704741175211063280642317944402943273597395784490583686547677245942907787910894804623281786429148039220385486445608303688159291332967553779416221600874394225970725761775561158609307815120395155198170682243449622187485772499964114788163473974818005139518640493246255571349566479046128185595476251461942457591432090801846744945062996556094160280092268994022924375788279668551731273671880643938648836325173757924022091690500630531907179265622271735300857266727455112626628273162516066511793939340040513308469209362425625589220001637836779417995483470170391468167088087563138747926867683846714436597066533727572009510698224984377743356141183175485707465342451668992436306514319829152223068926890155520131372409120837197820948922884802108606958187767143268479119184024814202559232567414293144240189047100554500416285560060282741765180218469213071626121352189389792711003088028430878812327106498094659014011486925272852602865730909862672172042805399455801290513911956746163868655005180656926379752076883848200923661653154866339069979845847119356743044480040589802735446491997695751487860448085674738902508257659697224310349973944024463713536992674563043060646200419187678432030938738542352975406395561238711927476590883126447238719670150433145844817382538381859222565524251435225336924809024673583657928113256736094745639663340202884939022010069980526407640081126015196217458423994544696692151187563484654083357610418036043789748527071934681150347533938182399771176189603914050666605481445491194284861452461372157473807581495214825129602662495323467311924798782592281564017720814283304513132478756059002105895104194125960530609715009162484632925770540182066671474070410602294601881693274054368113527437686138782641728277607176932050199351913449475426334196472899724478278712356082159122466945813161312086893040473064461180662254242475675214661891729088601995232812903233922340154560253087168787280574515673677219581667959179362822235286791770374548827578024487587470375290167581155741601991683735111223867442966567505600982469217252013725989091552079409121415197621087912408204727708969035398170673604982986382837354386338867054304188246547215059489006442676331026219242023869738699257476280429924419399384073765357104266347301011726183006719048420273175581522273997771861029994818967992473640609503124646550988488298425782144820947781779103245791104981136336457710109328842743184790301865361820545203024396848170938541909212529494522038454668112771925999963206541084701148649267942377385171877430250219906543219368467677683791763122108435058017696295503816249866449459876716226638151974623181934957559664486725510591296635168202273694760890335467614864445337285307434009952112888589074326881217224077757413382690501678618367611355891240113788477499515038225284864366883812084175707805306077108710443600821100674281895637475965218998489608742752640435612428466087084683021945582748994146812211638826053221558319999677529569432411640004889294576172340046315529184231926763816907485994515577001135627621652105016541435761440404510482960339131905664579656239876147147045024500730195228043436685919041852002989999946915481868172777004583073234811324129334144159103411379028463865376293299251724899180734700902148714492705372272085836394399367372179501739349154402198078566359224919038218802297506463887308498821875467691987396884029894459892102438136164682273114488082015830292938387716959904346586620260970062878869764675749955892849644434295788823896235904435904624046367611790357901921919612734532668097287976033693905879731277194294866019617789451147011793433427103488453341235723995457450716992929548930337613345459713106410660647720819069548549665922162461289001185012174654197051217334084024663033928111764396751644544406269840445834774463787221126831380986582869799519870141188940562925268108905512935811924013506502814523115394640819878023455382178197107020443646265111146384133699638342574185977570550855852986992364705418603289227890115110603397116118402884506468769985570341477686698702718277251929940522965471553525509643690913116531623863514242510261068914593031993682516596567942746591512164613138496066856405537266722145832925265320484996193944404587919404070181040063145296054235785871556785701864333304618027431097294889994169154904390304562625862268720693108990277590374532323688053762915516247534103621140517239754083995280318312930074256524141212561514853222897741926553406560434428171021643347323369180741702567204792389684009602357594088148763736577272752833535938827015461599195323097885190312395941142551685435504267242471189322546940832090323813772530792665003044558179323947552413614789903237303257986232672251877869885281690034608309586491075634996043720345870498121904672202435206517029968170392391475874495270012109775139506165678177587958266027416981769090369594956135679129088514865217169806141130975033958006630809083417121827909752790046551376566612759377631923054412747889128950166654827270805036802676458055586073057687378103608684603208398978675057531436812132432179215046302055958935303651252267718034854044621249512054915223049128461424977085683516074088776966412504161288748852271407892850358095213873246609343308791567584609412086303583355905297001212874243149296070043257349098327913034364531506761115011163250501684428307381135108605753396288879488465403987887493717736529596913090897714839320561392662730167172869787864434844151101503985887125468415601418716629834627810450025757563638594775868975372246114108060444416560614943739150207684784176440960245241551754820224782800228683696304250536279041716773641827406964294990951999407966025680902029292273196610246149638019248563238774852825594964595915074476587066498820888937200621042708222680002418397848207602548309468560582139889197471600774011441485208929833245267569840789375276629293228754152955071188629011726240995151640318167311143712901973748497474523077487163272625612404591551301754725997226973743630109633560335007185915212572480211546344859875277982437706116191222805692210138475270383299941069393849707655008184112867707123073962955742096822378843236681430781540649081979185257990998445329907664248268538354396514236369551691344527719119667261953843217589586430578625410189368040644607117291281939351828135326801052244723116266020026482334580072848671229520379270102787586076590983175137977887230606887983133594125842239390587876039960781729533993147381969130564607189402761893706145374190918665122422528961246946018260210675773957317447357673970861461919794888538799773311106731335367191519944025194102512947574971287990509994246694228756419152349898417176944311007784915011310037820581658676001748099920231976683916052013586379102579589281165820813100978996633274737531416573957281345966736569664974746789445124586481125540735286030945619460181357809473234497829672096908183151386080041480267760209542776736205610347760027171183724968344411018886673365521618441012673202902202861927575354930534038279350605497782609431729921938749005308101663244433044249830188489689378266502527863063176124534415210654495406712362517246061781495309904859497874108187619586872307352698101169746525151827474261997668684210782646296161466866745261379606131796478113954006394676590090089141113696697217583553333675534169307863098912950389201153843816472255773599509388641876611998246105879043159273325206989858599981760786177739224104792492174974018694608092729995234766226007404664162189002620903198847743286973971443865293704915694465110154691905484883231216232829293339605169783600233144438600278223091545494607261192223830488756398470988155714004758941788158971877436255466423274170664471751546386622618653539827524286595437337453632774442885450012548156594709179961661315459532530228161241629459328088078378727187985676608994083200050906772010748005960275604608354357928382111003579243074263837013127680022286222276347643753298296235554283377472528215032838361138992273920406386994527285535851830045731305163410664070642630240723457072700229063123015723739983380730889418001314871469579770560601547711835331611096998006270078246860278526072979755442756721189780449045432413162124638648176029417973354606216561026423401912765720691304006661892595374250181669004632209525846642873712727721370018354820093869263864146565431542959985019563679001098206242715747720689916907491365008491282825946925137274132778121023714051859195247603540137157814771994559106318012315488168064598023552382953098934323956739017763456711714018750071524732853959566146686081546282262708067299350591864161329690837814594489244112334094615211585804052640394145414726023866004245343812350397442946442779884306668152443385766259841068564852621252631969310891839802567197681204450252293151575622483808328245034749875949163964185056595875017583332567392841784475033501827523502145929548799377661707667830895271658477613584164220888772040071417067359569003732370421297792124827898884177608526035442120542199872041049866229472841419642835981245904255065323190562045235561780694807636168530978024040116260812610348732610565754911037877136928455935549370590980035703843797310872259479711360668762667314163592804162818345431596438488238879651723253229387811699573405588875886700894236034067092883556441440276341230957145660329251838614444524692966310714578929016879210087422258837742093312469248076433088527294394915165119423625359176778860767695821922252773477673854140477312445264799405824105737774755298179919211443629159239573721174424716776032539667828244253119228960211542518669788603143528849291409299549544436919423943808393585842781366223771092292361961115512017227121835953231943053935607831908209846911449725579904739737023638840701429109984309516947517880941079933658136762684510995246364344244866035380139930354642550154892198999834274722809644175781128591269206245256605537216075662325307478282121400976695391633700870667879006626666135399498976706728997217659625967234363276820197577554340245874931897740763547971193003975322801776103677323048067177462374019224625785597407546415168362755036562482110779734196816821949329023161489669694660377021984145141986995573646264728894962639880636917726135153229026661131766533266676721783651253426187941827744326147913496245984823692635452187459039028301474882660380441919002090616474690315562141266610100923757974423005772324502996176998014387697107797721599265356816451895056646548822101441442879163477765002623005571782628612800513046204377566072551154145063353003612188437430329716443410282992689276499489015668988798685629255290730622880870109541400801014489409954870147033835323926460091419275125113974673247733492685977126663013116551333023931939286923401942219003697326537228994161839049066758335203822522485932176144293547234498707237395726655758537162275606642114140878925115881469262601961690073218177801753871596478129810758871444960104304008320176687708964745290940763976689685782363834015562568446656932144873207223120903695876890289887442799963070753848289628185463049434157315288468697244999090904967456779452927174961672690363935999739912360188781829197141807391878123639289812318777861260324401279885260503672441987078074716290389393522260621347661652941614453931441447382409240800413078244005809694196796999580134056929076226633480037597141609359308410893156561464673176920578446482384144103214449802283362101174743304126095642091167038423272831204731546564373483306598431506059552141842227167187922664480809614390752430394912628385548408230928544050650985464829184840264696080807586967758302108714932830436565089997580515468526674678188232283646132544569432011032394818334181614188072107110746391145540819295181001474384356969119274499413186704281363107155676168023076392862387219772628475828854622326521684282158927961297031717413615846206634832901715137009196530515694446375563576654047390588658354259694522692041039834012037402164131962705049342845235485669676394101082942910017729600843878909070125159604246473387541697705045665372648502246617143722930535827630886208804206611217366037103505629520649251169126795477947006099437206794827409014566976386834673656477758323213903307426840683627004853509810352317087595523698266487854075322144022444562516387133623941495031766002897211920391418772488577651715207150177296333926419461434085780419123379033086494073259360449079044971750209430355900021997511958759499657631695333654320725521578683605003910110303337990486091166177093982230803703036180820855009956351440160631980171255846285858998522994026616745138753591676621606788528325267070609353814227206712112441079213987482013840318429350348644010752899604460257884457369711325538789225127648835990621299604973913310749868403428308911835523081391363741407139605367489530761341226030720476283128027199831802738728677244035985597965605734236231495281832535236915311022140854548984919139157476386901446291127601807331187039106142578009502836803027122375567524256306078031024167261058393767487330659892632632637085665873874589521179908785825026043605216258686845035538596657863929457272436937087804775517290884963358020345957532306080253105439659844232383040594669179046195091345641257192147202627120184610000552138313298158805251491052731203669894724827576572363821016735142565150331618824531465751164460075501577292372460507316124296908288381520858286545760697721552234750248468187215634164200609512880592138959104691953564915233264929152713840744185355141134828797651759118039635782100907050001413301859078410847225939131322551377090657958821148843624637945625433877623207756665786243724162800455112975993509992792934806658301178079685632427530437758466285088174941803833293340743902176034759023947163417693225976750657985621249499088758718391477896639110773344816929863126415344968706736297939784191037134143248065696086002063522693462119303455120744890900846466752975081075519503444265845608775053358020861857919817654532009190506632932771893599544702325657186564280530511393911335558785566116383482597400008456638921737871720842175063705656120617304436291636451007286673544144964348086539435120578562544482689611615276944193624654362539014052651832489966133306704381776030354120004499015085646771661969541913061182057315372848819854545201778039435567046010866926259414865568188945649124525930904961982901481188900167780293040759485632388425921061530719880236045625113839909793465353820024534273031778324523186322148487828664701395577270846607362780790974975561378193010032930203403338762804786119073005808412429412262796503867285425494254400051994068166621146074554892056060491945299411818526638831542328592093054928621362734357571083837249442502666913623608989329326730982975617792723092354941628682782356597856966752980214752434498904628307788327612686157354396404369543689609856132494466030566612364795841465666441653257286682388420545747089359082578376662306780165096082195805927729105270644806052297179795899553279996777697760665656218141529813064680429605784135696913732329473973682251004388388697694627418785578318182357751400776683442101824815584702411443144337520964923021258627154310142042838845939536468789974675356650699142374336116583671597807257096453052584778173364222205386887164122696708889432634973972681400234174634403649459794701324891794858700661377142724683722601248784664803735360065571203070543022437895093323558284989523428577032984839916030070716836521934519012203855575656829778893568415131079764063554614392851154261447125592291267768478874047095634456808553861633866172480281940309718265493973611192948624627965507238426181972416480956087233433596424540279774720173350412993355666266445646300409075832934372823279665073822742606530153056240590914303453607971469048612026577194371447864761745574489548662898930222965587311638987499695801966864350911785037800594891447831607716091697605112085613511394974754697222690145390391383951773884262166012759287357911794959802731994472433923021144820339278649510114278030303541239286392308243945302618884392946083640241444172214747501897042648822853150546226873773839918410420711298318801043013079352786715992546192958291560199655073637380169012957234412899344251372359316739240400667251955326823780051536783433080403728805018186213246858366699793128615684634866378656484539740700111489981320079750371537016698482548713184301843684522417301515485177629150455862141293506220434386544316054576692412001344957167668267407075948356326702429168702935172973248356134958571267562666778336874335888180515908961975191211043280635011713345561134258055854241944984528629379928764549459221310308987685731875189419115836215746272983110588039875682119580290316050409808371931535763399981296706030713062837280558054373259654314375997493538494910396028157905154559737055883412768787195258509092096789181345811436808039664655863730160443116617709678127055086639426983703783698819741712953892418143717119370899930644069665453526488139987950070037186294682028338245644882068894768249941624265428535988194643158120011210731556133119731255076324641949363732599028230528161504990223918595395630487123737644459555555712648819018924869797450492339155073688442045192304539578388305656286881109939976653596781946841695358010700797973853243341406897493971809462706137548432459658096709495262227981629006494964662870564482699229112016883045406303373809865066785984561298906537721301335808800302387713130299977865596328080006473259656922385637021131345252247390815298522797716296103715395395167961273248755170328120786480577758739958112229446744443339853433843089428696340630184874175904511371983554273480252997588357648142912799914952995187363306899294879317622302476619433310662897284337919298028840504950157434168147226614947652874568396743044844696471220060580901539902703734012904079717854531530961170806645879653017591366613406558024462742884511016073399492287057129787506626122933798002636018159692935926446860038665021165537303295958084366128638234409772994420984018127654999111361200368200575247050236498392052372825358433052192905626934435129473172284251047621077292783191250819297714259819301294706608413196856871505459136036437166133313510193567690641788195618941100731541197705930566244872365167807682136969339006559082234259106826529581473536854240691942851848292258673349681824137789268949617451219323973771772624117568277742883922555521024991944620629829106429821555322216054330158943748371029070589679844873184274368402545828029523163450377480574729024812701980644683042386541825496858285353461542745672677886649153477315828977810346776602443438660830468548019335980522088586449732764104391321677814567546183377125024926262706906557784337474703184881180075610414839634452609737648599881889638109058352951913640367042638026454273986606236534853859004305091764082614936092831481985974648488639463788183170601678769139812728507801334120399967419871879910714899539201378226561068394505167285698806997192917753629097742279830439776462871407964031309270113332213855004668588782196162608739026081805417922649364604462163412876772441545087587284941489131529058081273856286897712345748738872731792563198647370525498736219648185654292235445511742302903801875765904240219279848154520329039522142772084321737102014579899666530348501299922994231172885689020796420284769708587055749156126978322285799337052118992026950335099516051663989714463684486949872134646995915310607023071500578604703717366790521575265793420613933628063135331245320443452403260559363143274891349010872239289506109455064251530411722736471753517047374013164533464543555651929166585951120735952673958770025874603450430998800002725576077166857601085901848015613690949249656466412351147132434586358845356048254517858737097464002941345254041336553342549495370998196529961624446626563561997241547829104408220801352574529482728707570058117914323397168607807953796594064434246633471869894880451232733424464721999630058033499678592103539503568896416793888743183359841344247622415813026389925655932799533847400275392034290778990687152548623652015650803107508918376497150351662927399310539682447891806604158460099591657939911876672320590947170556451428412507454255067462609929527007634423242056515601319029574279964958032060068674833566731048885317364324356889135583363080823567993020357336280704391395322870200134039131508696794774900936384426654440528198566078311729982602081710623028512011803280795671580500768234957518562453163193151162089237795090313248138054843311473087353935465734974948515160743011839533777944189725886649046883999279912589761216330122341797235476772234341034304990263404515479794069187256551547286906061405700187788829523625963509849394713107695795536212611141356203283341511411577493535567925564616560515246528007908543305795288890301486605531941864996949863620989846836745643219540346233900464867438010540321018402087746328511423847758511687058793176575893146981759197899033126037970854256462560864653643263170091732527554892244947819951074782779775214283025084908538825934247899933514623965767472158247016408139317177585426703747578664317800965219085761968761185459696290504895354839370784667399757038134422280317588710202474001541917740629950715676872223977008264022042719158805958788698335550586454416490485317999157515592451746169425551473806081149502032986906778203742331736056908289683682811989580615216090675851349575329382966440535148957065733709841991777815444699340027548762799282061581970934538894807913313981868407016872913859546683288875621823660062918740378752225960880827101278660384870150582371633702898274008066904093299067190643907945075416789438899299112720899889491339724384208995381380946296507933096789038587651319323139917843738002283530505069026157964721110626748839387389539093002659316235988450048024672272914590010013236874159964213375042418913106363016314305994176387021983062019060271266611316572794029777875494284374150977470367742163405569547721037067117675556007778474426914255159638083525443145845499688896838895598888995724304130294402472724169476448228258880414548389056495506339262834311378985180719042509017365089894000972468229678070798916564008923809330161920053704654999592953485852212329142430090421952741502717712973188564349108274862144423488281436493449347892879170347668219455223991508926189654563343318803084318609590415865290617184198984091484414984918714107555729285674759267524923565417877600171435934362981270671351338600543966640352172910299289172662426898455398196468183174265948621015606229379542181549286518620888619696047701191250628956863326978845535390600859572023923606197477683687628868899242728779094146560498011710497894626883445909780825963175636967273525580842403399850475832010990971820133981757283821814530896609912467204019854245083021640211755690632705779478867183854657080710675361075824003849155900798244926934750888200564913586034342172850816047999649397173014091285906843194340475311565202715794714506022379025944690078027603469649719766259697856056598367276261587457700564533531096999845045011687820005893909467167298566905435683724725223457697821281052350668354114177512395466760879246380356079946395727187671571546329097379065723835373884818102388926370650571440178296986720488186647197375128495005857664285360954850988042465838178411182752400128287312629836634403354209456508773367065031615852975371760037560420789041684860264291957734655694423105029787717674086458562926735969183021464857554391683473942785546352595663350404624223005356967883593363920282124795253575066062762834107200987154274676491038881904023950285504801571972220226577018594778590715383034639316421610587889338986276134452009018650392563468400494500422598538756827636053958178695392428746932391170509774757493296927617610674458862368568867209208206149745342738516943064142752990029849351952636063466907240322941430635311995352173073031189173080603407379017849638114605453660658433168625905454149535873200550187172639069723002703336418957409403690820378049269488729254577882230141691283510877763975297354181018610591341171309857819309969631700995709530776458101226387375053412120584090818886659202313244249608844360924559633978145429631792872103043823459481113514538993837622201834336603452069256721012597152825376641456193283708265002524400253287785963819431631307518580661725543730632512529707432466493254022639829896748176321740160963043437397779296422568034592602320882381733190642535011795836771930787866141143906237689918787568072986210881353517066493331661666385139183780369717760284565228968066612650490115517611304111925088876393524828076035184330161154484985324531630666976166791023645192628728151571074309834409255574827155018983177004471271574795034388364732400734436058143120050794176296820825964267094736299326620700276526659942333967321318263541465239214235781659793817263585109508465887173852600946066729019637652683527645582198381315610122562522894566338113619679776805120029269498249302839482876716333704502841059337574804456839406841037192845173831925829282673210261381971076790007923941939026715038246795298772434443792505540470455668462279237694172792673656016556762752391246338179870969752975510262041896462777825923641705157877143391739764830289548022595959680727312659188100801692582229201044017031343785955636232503802186529956637645045171460442958668593060529412907316638128572195967057945124173203061739431802636279653318161451301906667565150731197869052310973881735065126173032781637137273595737140028077216277606759972568354230832265258979820061510826263355193614767459296751605149914290627098398583815512099906918913642664899945388928803242311949189724995893511833449657810857947658017049024651389417127996216360154473143311940160441827471969066057636057826576493178215618474161456877134931764663993517031617112440473796248496764864381150974348858711453935879854720316658263613048645164980065200913453988325776292465064800178528502590270390724432170150352315090755076915665503070934540920787927563010781893388810998721775843633409394937642379079741089234354460575667544167440677038658984292770783891650788987210442333104652125538622001077514863937168673386057197383734377170262609346073858098125027327193030205299499537778376174936289632595558782208167326449621172942492409898442988915176157066847733952887210378691796650259504830213092605852481275356194193011548423966184098892706002333217085234523030508680911209013260065183190529709738480806419416212842197084608312091280770248414316864923406143081081466250214113627862474653422089458879058789535157613055366672657590846903275668839380366301505545735566369836761756940521852639802819838658604723191559155829234671395970074677590828137240159662661088065834817971826795975639967011859935794631085249568288978127341230542519133520879130241864901811134182570922650399515491295159163700297724745157061935445084185200592178669787086041458916822721237873118798863586806005711280051890467554604224391615312047530340743650278754943739720412122954083478054701014527286494397130203349531292842035239882647544812212971400533091071255277830841310538570981326629080995103088314618868665337954550514427822459858165856338561999473312115625674197951024306137727984919566119880891114991492698227672663149486609774597042884794666185216366070520858453192718839035887576452661601648669738006204296225639804089076540305851384933549305720618813438973199803526383454857631358780540624834241238777408401612339982308558695777201313163571782478147558849909034593952580685333500954659944028841529521268443062504829305756600770315312083916992210199853924701757398752456313381467769031800609470533553351667372487673159248543613406306281823737549766522387807109040170045541264338327099356694990705267057163807149812771885333904673175604106034290269260773724557522722868915229282516531253573060214962195483693619835147329653344011212614179375468159973185261503260057354589225464956093355243223754339908525675785979701608181325774637492302469656139742947995555178548899983811297595926184541041152990145048545046160460702098954410139881473116987713917454571385061210096294790772601179609677675958024937320153136943894306369348395097798055551257799757926976698133771776672981504056947581986785625472062181429319208003361062985210069891129415832553652831030617020747397322274864430475172986441281072129968295460485099404002255239749624193500025463736362306629173652103529686144778204730035960299899742036620879576591539333126441123871744200401361287417969321768041493126002109514240778786588625037523437374193627520158832879712742763777745662208030111469293073625901239022058833644597556619594800953801995918226017329484624539338663883668425624252449039076542767559582381638895838402793641739700087412065908384669508982373291846912428610100810158164765207236540624912243221538990024609809073238165461094214978262659497503899000149101841204988347369378604693368163230042530614803370430392030846574721238677920171284468692538582081127351677241805836986410893533590111337218914047152010138554994516047009134755733836383753059476233362259470530788061868321167879030381357767851959186317170250037250738333775457550741673192187455474833468754500210057100620833306930078977565813139020293984783089219029566878282193682181414974547945475287479452543283790992549637378287732088345874181585265730197643842110757439388532667382199068042319996349215271687927880867609349721752926843384273181592243924536101612615601952960233494691449650395166711663571640020355739351085336869645722230848797450449958319477202652646581628564227431400217125406202929682577425750511975663604824523500046350163588993993583430064199990814143852834841655175130749285998883053608081018459358319827592917842063553705331547792147206410651641802078235060337192995895530625228945893121219399044253047542824234467719842567922202392392836254137529219070960534146163809418693250742872382251223573695168390463667230676980445247965943131414669637326695771315858449652503781766181015185252414336188404390791359191718618083465830292133125180902769371843445378651546452624798872273315559073941405564666177079139132097279495255300449014025779743613729998402021896040669399159438294667051239757900016102741630302403762335550126263160222279590156838734978791917030530723734652957850182806810143733924012982011868389625934049648824766923118561072898094467493390612939803244376240441202119356457737349944137588393840610271384210490253914915344711812422482181048983796140732724578575336436718436953856516644068094864092235722489215648724813019817214950465103915671135602454071511770177051054012693464026107840391256812805105437164662415678367430226448407508321064841052878313991381965391071966708345972744978364422679589185097483808471682304694270445955148428033797787799822675445480121193610328457743339645189171684207972093493187979601947974129369201098007936922638611729858763723357050797928445199171634489717685260867091202189148293515339728215999470363102073190103259318609012780557870013781240937385455752259200910137161607592387551356702237157249299549411951770332198580765489140846600187046664695657067070497497216253192472888077245136542709921787885227068067832293588324506450483906523747727807025394249987408337321424382629487236499504171541985909794939226433767298974695357656599935819598357685751122996370321111093107143935011009256358428671581614782335329127405053467166938913847672126474667223739474760390365489354821883840604225944315136521073575150880558143327416112377428900752171669404583641708648818304960178669784337405567459038879851247513031503472489492964993028478473555427534919771269144819845577954360400955674424220691645252148868962590106093364728089866962104376720887511452195759123141903131355574156292775594035286060046898146641034306245942487606603202926065654636618563303436677620334029535863242893675415172048694648030169632934364856762853810013950921405936723892011592047673964317447698433621935047598318189604115543249596730312264225065201577755607239413009814013458994783875633829980588776268527811384352740489046328695071347397771583660869759260940587009937450024756965486455872700129430362853325762029290136371026155829856079988954903135641740826004756431842516848348958031789252138183079823919522358890027057659476037714246088431688304667572105902926820086446241021004973645821939350722535218849875927195820857891249053335657042178354511699029526511342921955992967629476008896455239177751289346266165946613743433156101642630507414560379897107900633077181957345710095063254482824622611030284390161398575748721645602010694740016411945058145613514239561178315083586897678667224485111766087272962197439898373635076580070940540776801447049668197335085882513369898896970688710122053469642940481949963279937795285116669562248025698526605044124925603834327337384979249727108952834599006626628745430303782733683481186180722876449825177004908400810743229015989441410849802109749682395711474906840639886728160959372310029870672521883742419596611238285782500270676485321527180151995763560741972664690897004075725785734179762551623002252196612280458346853730452888196900561613524634819602928246447987894693786671109267899225167631161524895400092297982688526252407025429267514480520315171338987433754321156987758254336597118931913707877563552793123865477253917530438800551055452264348312856861555919969832642753383187150480328088533085291336008337064061118495411169500098278252954237192337503931924291865517444004826369214491105570753764343869852697974679422066431792506733579284829070475182550800309520274733058364345095694105608701069656007504951137141780642753800104392287104841070532823868224458511782439710180099110601444786720309736785251720743883113098989815566424786895375333140263826483382797486263122984140358887661309508668871800707333866129279014875399845357897155109337180582130177588594366717310310356379630058852604621919251874227022346910838003005267246105783421933546350262923254736173759054610635430168666961559848753557174195723370157044315110171578906930912469777296021174516734944253402229376219435303080959904206075799501615130247993153739063095985481556930079010663380201608721464738529213358365045491926979878971019652223573723264356008361183233132883237100624507639726013716105473705940976998430777476705446322898757267434130455874839616057924316956584057052909848674675077656422922228752155360426278779129213190973238106677149125485952232318442223254666596022275217174757873422636640723145587594111422640755782092766940746134204635263532878590343702564823397707495645771259050650305233663183315829994266403164857174149728541457488935431629723578777197603310649840250923251824822907147711695483306994221155591340913196517294704676920061379431477258956388394108332473581219213489323196409236902179140777972115278241990599628342030289915966859023187537886221375075409426494501217521723888270981271726269185737653118322072693232213871510708822974699331384886761292449373396884690801714965253714866351176437045723499311640679546191920385320961080244956432626856212965519657029966262124108995930140501758859574422020962828033089776371181740207200071873436391271042104391677577986197186695750371962716063061864006904231503252451534273922019804340818154630006964583240668191727735472230474400431061010181495203802533866274023236675777207847330093435390075361230326337198865343561978462229236058541690796673694308855713441766920244369024724873022931560931307610953845237072915816887159527419771496222271114711571773599979827758651130150501241658413322677134159942806073992384303562069803497484915118190580567674537631153989121992254271430008246905576938965970334980631254912684879779485135873188137757912204924732488069810245503924041479468266881635816023627873863198644170470728742535132216527269943435377052181072524296494476878877681980514773189099107495156422117319774447078540227196031726436914464495176060031412521982860959381784497767747425882423782264308009797512688367267971769690742005086903604627560381295003071766597214020595825368821315210630247243558836808503726007909817185100438826869834877259692457415532370366005536466969953527952663357837311512013854133826727497218595684064220238107842691594839367889759484175413487039932996056919898816603699783106566230561603763243893345003116366657998789666626322925479138166194079646558762591118639472488765364887722866307366011240813002102534625194616804309025279446638599456837751377701067101122366564112277261907778978254121010058601571632872574152549718613014009018329486390690069777784933278897353537198391721832886740895588122544081519813911292097625715147068167739759792470062046473598909134151463610979778884193771561810303292135606088312566836676072595118773697534165482813524375409963864911219633576938310424813680599468250602452889720830349983614223654269514390546204576371571101508045635377407974214251176433824271939549185869698018831200827840925361378285763725563769623205287950313962262777853016729041003418654261931277034213024972605967566834244114475015719058162393510936295781722840604961870959588101910671255988953811604052135292385059796494588782020304027276156832823908527672718169940025993894825521931143836529908993590233876977963489142694931373093091290225070172378958652438996233342536386214279967490404755187748448528637357497103975838080075008034681534731782567563945750782870572150960793868830608309592572653021597120471101607942777472606791378451034199909452446167219869387400112173641491175188138400662000443440343410293637918133199972593613877042224722867826505812994764919628071509126010970011352561854718228778615086023863321571334162216839151559337296295440783081853317088604746473373838638619040060065626649746350125642065962229003604536083182245908417543722493075968990579787415999909983796769530084345400421451339967674553140385597212150861303384718004362470675067576583868429851410837135003570178066863126949188017195491046538554745178381727253963917958918187333223993646027430128802972536747324296637601937989287889246502915092018376373616357245747956928869632268098902902114174284956451671765181498912556029481809226055186651093072890863062926491611905680942457156446143075492314241021426285980275577007021750933538900620450960003478894303651563278118792297432780494996052925010554095431338615239027560953792161324738434792570472999827687113215121380292642757218629494473613122164673219334955803613360045095287450843629060856197263214819689355250430306955540144695072059542697106900057035185337467232988156272703535043406127192689297559527660871733091851113713597477672918133908782732497639273282677374363084328586906533547678690447134262283095958303642385947182515055275070581822493583820782552496518444671499785521023375344689986173764003885956530275131192042863721041430550528527767721781152235139772099323763107980729335965692674614805498577609737723365061660770939211961744045045069825490239999831541413467926425229092622837887547160192625976097746542564485001423544981797015268954485486211367108074548583753788830457419872641164067159094920105968456195838892325280200423583160554515112806700642601926170383427726753543841068184687539216686474606620687410003556506571557849063975861746528836369993673644639176916681738916397862921171175599966190220976018142848269420102518901059989861985389380147078025807393427339696445512444496416555573527733216950320166134194416683916516582001139545601350276367978823554352813772879288882702066656191664126008926629334760769024160417163978470883948030135585200266926206792421465749896557073985830414065886869912284872579302642974489466838817377585172254074762474540965862732144752001730836850166992625020383926011911365474621958890745903063974648891734367907172292526239118224896375394193216230906649671530192813973295720719899706700779843003890408027543643755911326741453839729923127542973109544965837625136373822554804241466907126638475675942606523604228805906348455277051068841937081624245414112748376843673712530651775264977602897772103931468326405642350195152900733293725785287515838318496948761255230898134815052686624131984419149357595277589150263094809573715885711681768867930509883440904528236323995907576817488397713972051806006331511397722731893664780166813038291144351522306999442886940636055693056282922475542169693969399234211222407627666394415279305013217412274688061180620795977304870503860675797918232432968309107007629460102003699443226563800432648177133121201679557631684949126472196397682127149833663783174737474109277339013522550776693391355904649907561794146425679983938226011348067526762332234104881516820324085439495806280727134381962229538590252089638854885530930812227269594167399345508644655233201803946460127890660500698309486119811301581746333259652077180205452119194852751936671190144851831991561260884771026129920150241903883257627407266977548668713825082462301197477819806886172239058173066799670523303673296285621090171095474788802849100895307202672776963215392181822649689301773006276837415268925695880718635482844981461029456649755510019847645857850500836178250037053378346929299932951725757309981466722788994594594039318554051426964927408957061923381400744828806526159905388267538203781092660100277062613483360539256490945591735713726381910404127802695517214457666813758288678596169633708588980585566874525798611668364341050418727556037613238213290470807748129730039643511194362966744920602683637308257811751350271867880145174998706162635507858162899870913838516130714963291395780371198879931673037027765655910625201245661370084669007766486147338506048990895717851761401354626541530591572753195598702075205217519183643017940031097292695208466085366348840247056262618505260984582401467148911545888666215711981412232729218865854993978359982684589619405415027096873058161304177066002762924404841001468812488510439908611151181227970552447942632866336807284215785439073382191184329234126204586792629989365368489798046170854828538397233712645499028404868736324809464868552645505781712498593651323488807303530363438823163605951777855257808515768225010854847915492186817660765946339125849293819995701459315800886141083008237062979213110323046040040050754211038375018727279470450320195044258241558429313970741307539916926845427895523988788257721660532869293975527014392453149587614265367486024458974120025729677191419343999438296217186225706668223605657207280627024361216914581162471702844733280839802138558184757387925900025605367960956828987419771519194613816118547381101148365270796129960067134062138356943030940724630424894483944272600205637168756289205857491171567242864143638193157460894106875715691994358389952191029613379857820003975541703968860878475940945351227875049189117298180202986728768735934973044609249892041278286136427176806958553453881828076015171857779324191326810866020769380631795240194818092627875519083744039383060106680228189129750474199635153841839869430699640796786129620685877603093485698250731489051419734480363393790294784330637716085550822816661305216341492583224801916386660708482878819515204054216222622605938749729113129497332061405233175762470274142341734100202044123700063233979510150911455754388136800052648334949387659724387575418338159420381913399431388359938171893825061994263963391066654134160520572645313789146794157706294032093746379435017284574119744991679158293440169754019779007044925202198730102260898155343197997886319256291346625614839126743158824174138170584191797707167763450438232126392359071314177560215098287591224541893392096034423092167659334800350875867038173791823892145769721942651845180813088683977677375230421543157846553103370454348975663619350055016460616693232029541255598289626560893061047767113206754004833495564103297935746234227749698593952351204451097060438142031145387516908381966347249532414687896365018434223347504498258880348732195999968559831712943337896317849223169938102938399812865188366939895701484515745892355401064744109886925738056218557489903028910247253188819303210610522576862698947019373257709939584635384135493610195445440829637056449930241325297243818567417347559395920440925326694177369447493395214844206257106806669322055789166949209029245628343698010033802066461754550121321170684284653068629803063153238147239340832955575848930529741059540526868360168189176934237001951680791595339167298864858010860852016092447138613227884046444948224511859104172681730694603117203544859898350775644805352004284717622150631750385415011038211526219197307011840231176124003487672911507352135878943332913409995681900153899806712057399812035380797041134186301722727359415123870655992499378917616170897498480711429260001492584303500509586752053944123712350874495367888017616799395960034749198685340696534102904387814699497604442499062489321834768927250057825596696816936336300011496128237723155620396880133830622090009398901421421677382781250120970881213344037029332107552146759274597863936383447899738403450766757778452334566466281506410332711964523062301931170210510237771287510621484168637110923874944461147714683430027040581700201495264736865924363442376428725842847500653967258824900651468761358094044835844475589683306736251015889677484382866680729803255747482511353413692402976557067319325386614923922871788873539912433329450328745341767934182850236334693094910276049343045943377830056986933456652585082156182254588964825281466051025766010043628760322086081833175401613892058464128959890197959653778212959246190018500663316555907907790979347748132953832039262257842286527099766631043680884977887159730877041779389008686482538635597697137684862985199038646998733484458787157541906995066675514514170762701806661831597463575303236742666606911660254662407051509031548147651223777673046401211544178765365152113739201419010301939628032541441827825813452322849789113602093878427419748662112940963706103570822614705989524529267764494640645983213702540841679145865296973401232897686001701909718025614799295800132559276142100860325647449707455268298755614107760600814487805075825854197634210340824610284794786829448933618684753401777912130710315521177613466091965277264356910595159962273529125110675678548439955874800252966241994870432236892118886574860854976752741606143357411735788614218871080248109467607573591096154650678668455016851812309166809385212020336069739307613782379516310337601944455148650591901487414241828335458726283179436253518093800555565166730789956214233944544872793110875114823169168558813548805316290763884420321301260922550154196764268532704898555380891802017229111111625671382453906979489820722598469260251662133634927877397752771796767600686531818936615810814988441384823060312693427277129848435987508976379094883430710255096639532141391090041823781896917445182295571618915342778271500574653046445332376188889627266284714745751264719988054989062591874051534208672570320206432678489602241435134811734045986857927280740627171425946653796860937198749451056194074293351908229915180424191807524671777190134696792938630385355088432411013309491044230595066279124389397139282530753947077998711649854693820813718802646577815029747333020839258107000362238105213474194205433892627328403069939620403289268464441551743032250322498386203495603759530470107872508083267442575278089789285919981688707305214250299084529008522330743530066440119774017036590121606068880941837265416277352333070743503457598697859782129617351196474778423330529031032124848545119218048509532056342163807406181815396393705413695258073201679690131715811949382736811277757993462816174273111563077265250287456104187558580160905056979869469586004183584428930454690222308683536275194751655622958568288695791555597230100458175242699234028239963234092513679845292826632372086080375194892284536579509077149950574925456335923559863907057374429619232017952139627299971720545368003466472410524879325252398315604191405990189519913124371689117717468512782934990624376732347798813207315821131413920840498339814403419197310277818891977994722952111710566580746791271379069350976844820856111138990949864965590074902605606080694205400826287829289848432474089883817299074480573454222439985074792325120825903511772068263267147419873041000669121710728989283501877219176259020563323180118891583635884516731645648206407840233679669540633163446376469447837599301499636792841606949360951552298096392466524820123619468896329119185838884684008434825214331613461527999883237048824587397292307391213740985988558564308514499104743280520986960302120731461045883944668616437746838553027931720579530513311832183923786655403743258734054069576620269291342826219579269658396264631542207799943686544447996851953309790223249916723076037622619977015119095723304134669212377642728286073742762442189075009542268481015275240535487458728703859049216702145219839899833850679248079494891018900266477764501693210611630777915790996443402098675772666057405102676607075476062837762315933463765138809044242309633805136782051134749562361794044285070950480578192980897951298210404391697384551730304042764055884228071583267475836573975310164256823309368852508115247304916165579639721636499581264264575493287516481421625603722851260873482252369607519551303877725099929793492226310159933870130605862754552916917987936957760939188319942066657829277334661607224367446642705528189539276665994718465146189777776764783111472762503091131178835249554590569204172995305602708089710111737913591084178058893520060416721459606105683745631510036894059597287251751030362832394644950708751969288208916634588136468781990131396280439539227371074285567160449771369351638622316058127977303108440408751728050507106275526658753144470061643710142549540045787155764213883470567658135032634656679749436668820893877132161804459400825534669696099274574278809975028674225212009213228199818132125222567252961636841390350210533621879505300827214104429461212798791451721222747778102907910155558634310474773375491708251169411436082217259546450686406163518159776993299656481246555135907960360221439196220065744793115851592432823577595772089369050278426321407047331339595882588679945891573960429768872211568887273725750852770578850724321743421357583215471099522002037869558784550225245543386098597261544050619595409442412039920749323195298928117245142585531090536379592808347565177592075348360588643116147352330670718793671311094748382207792444052759238993854858523682331150953438835377730863505295137318444020599326008134538483155896082657558033853786578507608789829811064183462522595680180324036513276329924192933000309432157069278111578479405674046404005895260837763218272400839686561235569041621645215443108688709164354214827094825037682186266920529608365499316105937563844515435531769770053256057487001595396298236286242670059170465493625242622523295040575246604092300128406670518142480798434574850813270182932224854316657826331380005148258594959912410462679479913298034897297516766189244510187276382752756160796416523436566707370464298812991989507915365634792798550846814174194706211366212709276142510956689614194588403490451853550904298670389487869395410048796090843494348084814977762789958749874594630806269485454540981424041863691571150907358693609247130154729692229135406222141323557294298863005736913767328926609209577698249831770764585529255238898469380657343088633549866427615904183082608095812745091758415679004776165402769698115505574603944542279281471938594998783621451140334582063420765501239595961838791712506366228672858048582852420236827407065947367809914141860564557434630187389344410435581518520427089564195313066917217637774619467517884624418368482312286384080535728879606111337274643319938304795587610203179031472170949280382240781123147801044120131265689194633961486340254241370717148002493348762751537840558359465156142409351930338825502268615978746761505727104415987787042175970985508082718434583700049042854432082167620432017372672121922948691330252628020628115662017746766246798432523876883139242969557348376344137676951410738685490632725635501538810693690954433121090073246719278538159500100772613857493371182084587982918652145617870816886404008683229361608324117315468455364963373841042857779900722435094816233362529005990144686274026031387093856693728933735297508200932934703786982912944531908068520223036512750627716661503710483942763598464243129181734658104233351100907992398498874457711254231193635986574234304245494314932736866618977559103669475754514475227063295690324081297361448821620245252433354471012065827229297119981611234190702541098604767029952916607518999414607274183832018898497216127814468780080311711694165272004656898212896266911362789831327329314607805223185552055190344620626167483642955299497121707661655125946045098360244899021864775667997071006382235385649535240226879139195181531995163458400446811717361315407940998849511724291896811311610988340507512916794215120712876687069906230030789744250512814979632494534596600669560368945970172183083521920943211527885660006155166992548461275648134910688997646895883546834094916376668402515090876859555415928436935955221706619331692143422480990906458912812983679261901863889779670275310299800531299702219273604982486206299890070274520256708801474890417760708920995107018812713485287792778060863130941274037543846625371870930833077155274565639279845469806186849286848499528992029771634979886242970122251791357167552016321151444063634130615357942355170375849662854512393039282169429482345862852169536920930515350845826775858234427854336287884479790282757932237888703901662102128712165748799658911421448112941521319542218103553819273459057785600972229916104060623719827511174442740916500535364969426952063241925099050263194390972463937197696110216633636776782405376810132616179953399806057764691293573961854902247084769534477218285018105906215408148437837221912546711857294693046318984316001638883156622894150671202704772426492877605817787076061680438433439661791073156192887055723177102032782152946932939351639458276385562250253005527663800361370510221432624611542414137853925650594450618257339173861446418348903143111421231125470891524369957727515342449090232099943362069101107623698758006483698351355851019991293520096335014415586196804354878720335044333255224069562004580702450806165311992791215277865897673332076112142745199187189088656226736178831002891879277050369068217027355445166699456943308785047877446808464306799828893850836210425919130831610362000938065967262455630563468613921964741934225129338972447310399595530477791197731836725874892138319574134473370507355600312994421745150118582470834068883255021849241853554018269873524029481615731977017946340906461781976454982809970058795033895673002829994506635623913982763126301827215305544839221218069051205003814080149796276478411238562148678276569050296435453947108565201531835641369412739470773030542291223983387903101565571804841247078840057825933948456148020490133806252363118260281894787633283925141954950754150872874640317781068688817552764775466343185036676206183634361844028426774822383308646403267044333587571154809575361538159548623723406191400507311185953588680945117917708404517519408754682552585942602464728227935798345329319938552617513225586089313786797729615092667948376485183543910872501159088316188804200790496001304368738153754084351866645388720159479312527984896240552798956483273192639332389906683344375988488897634989353048872747573418794610958643266875392451413937807910577220105795194968789232797048998736991175977184725219862243656400156496079008849819704148844662078588461497789859965008189262066372071645334280387079950083843232397194226621160827822420907416809085196792271764487016426416346833224635484760212025440368339292889260282531519480119554798000659268973512149317306152213820603499542587680204682223124855710926080598079583946359217888756695135140398834592878674355914705079240417283725463954107654660605773126515338503190618067221957153441771959038837931465260848225057626231301742574112925489044143230949666315037645942548450693012955938086917588745641265610978317263809214941367561455966521458592554426874780503592585005975088991492701599494998857339918689312401155483677562225673565380227190003549422488613215943896019769243223645021932915710720476954003857276034256287453875718349152061025925690719070281235655165704674607954630862582373349761483902078094992338071884098241374246368770582491119449793586469842758580979479845314033689750676527260571807936060018530090479121733352719100310695802795605200847933048490937083767052667057777877257685060410951557309342662973911966367559783270385932019533092839787765107853584326440301166324546917857155507629192619371384564539453108040582758381403050104980155537390761129650773418466311031588593506648802642015598550863464539427719268082561390720521331858695106793727512218397928624316317609680158478130721067611269714002485911178540955454813664110971423219225555825384264422380073731043495250391638973207999399292614229816998738583844600460055190756509239264444324882918482814429408708821581283256779953272416673447977422242412155685563561187759347226260241798693602912207138417562964703836838733432383371813464964527559975104958984575569394208311054521641206642850870576086127676335305308157798673345523598068399845256422180692743564812808232166551536343070892865506493132387365871300904367375171181204163124945091842472308754320584686942398221705265089765354161779820840102545394318167573417531415895556864477755005490033926722081200242629164133168433670039321207189553903403644325756122895929085212222801944604555657010064257281815953899551280475523560995852776199140220090519737856598923668454720599578328927814216304459005356394075818583602506128323448637268777998501454903683470896433543600506121208801044842988018107090935918047732206853003825041865871716506598037906475242961657586386742644503297108576852946271597582939577698119088597833356217002606866582679208144998794777710488522434555120201153942015087974800107796941998229843736469207429253570295796079610668843022871491962707860271005919078280422149562505772710249161942280433101676719993661918749063829618219342644918437924671006508929317175287122541199755125100240227922797409050628128770465453459228841532090755326468434007759588402832131457362589837238113102350070465057217079783442472350663862359190044810552302974760087078262870435604843309016591475294560634677580484508982011572573710268428505654653226306988845735351492110949843162490112172935014065538935291545162331255006939175999585474883696195929114942114117839554782851870268047151659630091262312223607241241958579052100690842986782605703162721751885246987778269696875302856612459542410135606142538814908805219013644877933458289139482133795360096077518369024532940063423669082757122966461111548040130370960991487228425768421151948616145238368451870928146462435566304147414546706745533463402430528719181105163791372015211387241419622228401201397580986036385716147611416220543384487377412539329689330677161947168117986182533807791682455436552749157709026602294324765308259805489022424935965480468659565799385917771611893627621787170884378895233520126658110017438927201342513221651632520937512599477121702531038781217881652688366275342322768008490894275500041574102607468876364382218980791559128368108988224074680385544038337863778656995203668462796253069409503365765731222261198610547974541896428970769527107340111644617543370104979199976247156705068700427300908629631055808844704173274591828839864376756443769117907861604730124747278552552536103994535180957081576307026835984914775434802866995245689396188099784864198593038047878390710180801755068713807373915157276068105447983582826227499370748422180663548104982724042544867153074629645714730328367074414497475432780059421130900832373463815752647302714260296666119618587710435392287471620551987613977930563160368937917608291688563625183507278509743299113884679615777538529028580422759353297185882599115770099578082702211321735120818042130639611940855410073174242924394647080739102900167862146380003137197260073730996258004682198423097751344547739865624149829859034252013868707168847920076622517218405535906394591226445880803997489907972824370896122764399460676813651054299088757866577273218449135671936549798490184644522047819118135237167890506453250436652228815022896662313573336134337332761915906877665876813113808234618229525640038290824792711089086364394973082982754940012434995166058187120486674823078912907798418351426409807705383506632139283148672962783395759584964279368629149477988048548880446704769942935941272031178865869030883295328835484658151530756946618310336575988141605812677150692124845711329525250477823441345837952596193105074017762660856253476870068544094331984795271016912171263764560064498075366428344114364951571225371037371683958572470368375108696463105109959986920913974302265438226219082214135066959345568283330771718092836267338252497325808909388817680034899570155523769527626879054485335530993023930147182742468403411894261455858756266349912775957781946427470602500832506152946128568056697425524048352634872916127590827090396459992214614627585511458937934122710509239875139353099840171481882947512972721460976584995274388070219681518840979338581023670073325738053393464886259000279449587167837415405208498422378026807301505557597239768613254417133709556036347607398565371538209567022071950356617245979964586883276729030887012433166050753998315472529310316866534618570525257566526922224326622989873611362827978487196808724158774597654106045332626709344884493690871669587226826846551502231030710671705691496994446386778301167430346964541937516094630459462803562343583952649378445145320008165430299316904232863739970785862697835993580149428767952444114361183502931871071819286166012987728945462862411601551699921271001568875778314531664131866497557717089994240591116448866932944096009040582708820823395237582611606461364681739270841600045602513797813308729258490374703149306932596765722480185408650736225901756579752216700972037397710590237618952108195696436632795989200659040141379230845908627715552603103042641648775024634052572609746807569564116940879651764748877382955506394398501767107313136354059205404150427321498724941734193922325710536799487163907784734748966046602534915149421522748067310563574944459034781749523809820459517447839953783266189954548054891605564929683206025779163918704444528642874257694971875676903077205038225568275264026079282591399498780461038435994764108146810344386352282067032258685648071979952712465989774938675344093909999542042268548837250139345651015905049978666805217741122248976941020391261687014365235324592284250877777950721287678944868151515867403490350674681826354103523456273060421316209848874440958678057280484793900070161951090623098934746492890934170749015217365520715282241557274515168153898182883376603091132073156890814087688975581468402647574902814176966466912492237008291597096840696134069801597242863717590716850558892829900938607718474373128468586363392993966033398812329676068141038535881249569938723738291518396261391603126265536170447369785398066895497935929283048175145594562637925571890476984470295802927974343326709032090952865854885408388341723461146327668302459018688377902377829970618049261160601786308733517240564679094947764579394218548386577418315365684165239055161615418626650969664902388999115610481185391621632830509954516561428000100317470678482579345376910604814356519947206385212139467945023877064216335352430706838617322042200271655069515122697393534362833812794388624465809483387619240135154642861628692646352739534157420534694527521446070608095017703568685145849651128900457715370461932619642820523608666334721770978603889533899189398508405837991216888450250437794673536471369089853328716244261748719108347486416793669195378120410348281704546631767472794783106638993290648192421399668228939212987450400980707776468688990886147702242551133694604937235489973413922751452259729657870430693382448308138781626385467977526115598836387869098790657803552909679419654763606826109340604683801863921970399643605146217632362985034095346271175344471629649677626472541294453613035078943314446312423063164691267500200296069203049203571108629160922807002436196835303216367201005142279383621278311848269236127115485543870121639370599016097098280824475436160206037812821496664709144956360921786843294707349965665008068263601716979268753751839435679101781672649768056362873694019473787097235133471409980749530023020158209419030413598361009540405960750569532592174583172489197868768847355194428581142173353208223080014438104555670537242179377320439232312458813345006875832423625789718627421485773026278052352152553948511511672967170588080976508602290529502337892834093515910588960959362496774892894462465321972922295890435057461006544037963797767285727843161579388604284559552173880453381212117725045071116069359541454810394635246730886727005996820687374665688052991921714228766631297395041071959343219067980700860595571081474909528585206960051674300149690269967214712597895304958843177475605008674883378445463251127742551619923346693302651666351591430448344934620947997134742021680345735699091550324143423384546752023713184954761784891272100775788926941008483068394434330191909384758542812506591000373300784127980366507574304948830637856912956317591883279971411621396680531556409208536415460178744226478564989104874308910621321259621318846139406812621200200990862107408621580860917894620653724431527067904926308412647586835519113256890587429886073673733703838593837621582983861891331038197661019664006604551809014181168741380376892784277125429236566786885338983226462663908395228398277606672853494360512646578390148541657422916893776602411256591220962362199163096604763601561375858332479980256014914016045924993438834244535724375666065666136946104805809659017012143896472058229653860879974201464270073493178719026948526666590812762087617133025977484210188737034017225672351292962463683284492431434751333515228090327256861482621491193149651675170232121697696138412263745779524559503109516906459359762178878477871076218279041021099588525932078615729801883851375418032933446794636308397670090989078349098120689546373403715274379043256218096992071954893388216088387997537859777154195600440593630249505370682904754971133959628459701919219396977274927965123535935082186359697657299648456971508840771312751974433106825069279388869801562361971119183597864096516839993224212328913053347497994406921341931087934049324043909078031923151223665733188438854825206632771390108144572118243484029669366589445920283353724152128481508036008497791647609478644916770755528728740245923192552070285240324589753585469365468486030863248711873340204484189168720545561412458967301086164246194135719490544104678884123415019548941379197350859162894799844325418460424945644486530937579654353008531925066199447720758268563110570706711698137626278574574183035036923533711046255168568569706904571176953329738995138450773460188638888839019887209303276640626226102098855154286669252629411495371291050916717270437125596634360839094292610488991505252080487704891483981192246724447342851562772423594217167905314330955408583235917527518689237259390083832675038221035864053328082049506949690558432355042411015614676805682130670335760902555693252994980760556252578824950127579471000039056705643044228318168207601614979879028261255648821592018020721775093630481108019733350638344660606599363658947651605717768600064018929188629511135217940790033157070282851838394631873122195461416398123390849044017788683023722478082561752231948901944054485867948320151644296515441074585529899404341246055932127576725922120801981952991369879086319194250757256307078652596867235316341096194093167212238290851183603830425147906656757895248790318266973721069158078822314438212192144087919966817255204975512149034842521181540436320291862413550053572025202147677819568638143298820677294042879469086296645604620812829803373095456054999749588171218429001360620026606225082048097674016297212591666179154056672182166594736634195794718737221824009831339577900770647345591893162108594629998371668077567984164680085102722009127116260180365156271213813277052577249206781273735377230321950350245442068553350963549049763718286425552862682607371484721607694540847691851790855644058394716716534938777842434719080104113413409312892770185572063288928676549206905680909412226707320107355455654180758795429378240008105380389044821106942815766040121878750565274317504732221057879803584746861063114890887765586579620146084703897430148940249125099625602558896055210722279232217034800989352585203912785999306735408951844274134273935244024090386243359311598936792073182691286980766955841084608273479872968697036541903066869910036593242517018168466439711764019496596761906970463368359209835134042198179416273761521998043101918442992769218535434998208189000777498095388033899568999266126313291358425058428215229617176732706096221715183061429375394548562498711385407493351478229687241195277125195321777583683953230199094440085004345842470657095625272417527699153891211231214786478905771488514228470730052842713535865318168321532655700774267692844747721455052868316760891751003238022408383331150502353112893897163335161734230553749486906246808010847640767603707416019141698806100807262598648179057266902160281927386859972339348936525204390255733121302995111537817205129987770818319597727517311272326642107980361723331350438947397850358508482763499266693513789063798093704498281836743579953603279111260468068281969249145154806865924685868538137089785066109364774291763972651440881495988523938079331412594718843524755609331229248523367472824616310430610332379349146339683176661462184449779459003667090200958356655141228364165543140719914583541385803435945591142424410549690423820157600343152900725454368025593287214587215599369061840576700870700143045965811761514319546998979935899829040760302346125971016821355702323141980908397853730541076631658227033266415336686631841201659040331343369379363490749759781370510353563213062039279531143167988400200583517285737266709814621454886873523674243543161868924641737100054025678567959197743088438599587795954628539294517887131601085027112566580608654381875094321852425732572028272609208800233657221462918400934890479637234633291084971596324709421333230161270567883820704307032306273724014055666669006134365242034427571008654744023663186805969746131625328169775980837385796933122073479686679143324756677595239180379005750698293691203018818339641491260822450939289779975645370509704409572183198799795464967348810995236902768893693403748578091988849405683921110605922098264684037830958678766658133724649661538954533604069568485886394315461361239031792503792558941547683416870255167425670820175997320466164187922936863811793574375687814678704745778724871033478605495565937163932562620445549334714414731361909303915656135925362882914561629204344601494559860144360270753512319533702553998974234567508215097713322074838982114590768219556981513379486252704347685640386135147256588239410221067335820490496341463115961715995834905451218825226845291510973686814504257939504539056903819388016256161941865010299801943145660746734959378705104102416644916723980334440553718497212521719969866750252037472895589760395397691135066256865365085909527422520881256089268234837671654403492557499600725258796109287274068467153413346464910054080406964987229144884398349862963690657941270849872014457870329551118268782358636582570658195522228929486615658426631627677155463128010446027697899123109033383646285480443350583623926805633233768638374985785208664578087814431846451164465479025251676857449731592215898302833676180027948288053947439686086366200536023206731203816261626247624664001390820100465662124403843927064778203179621238196278926061188110169199984661934399684230608262469319338476074593300777145706423614303597419488276744170573082283462208996342878827511619518962376601891382165162943351044816364184018806523975955468187706110958241503710902105864719669337571261235026626392991406639080903104215648349004742325603863445551095817141406235262573452270788021597422948754015159132664914950190929570925895681553950565581759886283498093881813129819629719765986917165252085193727648797886879286018815402056965444097353916958311313617044527563300252609708528927772674966440925458872773809459657768444052122836859080645668288335680189576145366264543837556983734591780568070199306982851787079994558076746167921515149686787326426848424543427820478683229782179207560125134864435226576489829840936776186916277427574615854803134190072388336069959325571339232460724575898326652844953965613561350740231509340206100350458793760402516214011925791195571797374443276259715829673945574172646405865452145651952004876011886154164845518559218274171789465800305905938911417118864690124895743952835374088486153154156394646968809147798655550867833698041579410612025568296939902386471380155528266157533566720884638959897518654660928289394995060782500354484628789373061277807241963943760775663561667864253877799305018872385307120900848393659472138421171899427210223743429617503289288650839525572861365910341449752282192711618931793359044831041851102846809894564663269263806580780336765772734307936271620052032728310515869740601968366849523830959167610652281870204842088656790321361866689663497806070807974536163594486724638538058444440344915563513736984726569334379454768875851641048523367754100107879162462949277491722045921717899071999492028387592702219152237528472499210938788876222799709113568501944900942047980944748839589457897547369740200238820501892222653767458526510175709966882430835813505626878843900230637564318199693045376469850481544875768824242269669575952716129916913773576882516308127133589759485091183341043455074976784153768077088735493692285164824933740746152953517001543298289680227863408412682377854309156855053950721494605227241021978036657084650716650978596459100736744967332499815614507092740125566570293600734939343683917783251150643402660588737203081048085864499181555045668674338526986901331914072475370497025735360840988883643849236723178156008141979384009250000724200188926977902189955261973668886811922290250492198335426999085825791312022453872233741304108505114014401303802198059321925317047862669219714654370344106648376740482775852636303371055496914241169205903917436724135430889111734105314547666888909024037515907365984076238516679840247086364058612967453484703444746847719957557634120553583837323256999837872883022446391686619720557031837043418028943116378703569619838587730567488718436539976963802895642104384922221370307459193067090015354554229607323484167177959759004547131041770004412981344141768601623454550853869033012384054996626466062874696922493577443781945368608228237129359104425366553067515919612116339774194830363942776275842576426021436530693641872247781884341952900250141931832150655078757865990925198603743618563156148672208925406037476396014530506213314132644330861589113966173254319570349284080740968667135874095493979901491217295755739893632977144090062006339978403711776340100071243381385317271623362791739077342753353924479489983501494415741760043527862903995824667681700357202055593259841248303625376760182835682671165987280658565821150402620913800815553672226498925432720606157533931086197134575408981313522338991984221303062125839848973888550159456044015022769021302520810542041745043800850892907441495305852804685605386937991874709367402078222116395954592022145039200702600796034577688852637554556861730773016945063366479854188940349384706917725028533195246614916222556483523956359092681833948417632664279843984006074822503009586506889172088485476586259450330288616426916980201732122868555682653335121775462817669023846248352000177276426896787696558036311494948167523287836663951631726106733971613522128872122484366504247341605160149577955007143843922189387864610946495308096355831820802877133510556666098695169190965220713764169070310104027044884421078466254912977293893596532604085428381854921987496053742322800882793313245708491590356861676151836518087760162260819844464549348482628332661589589049159914463420366426969640141977950435434523136480434727797399675020720492129650850031975530646493882587444373163203559511613283919263849331655958120114373890221568512709431721124335085929108910413615039202058586905004874127596168951756419598735747322568123255643474507298273866962228696741029110560445293682570141263114452477336159098484306084308494399167576252510568755408619408223803626084171472708114016793751616608960032921356185127262692288580823512003746563608112058503122835128747782716903721471609605749735894771705425497812170608017860037434213621716553919954003994622823984231164980892740062406102629096845905370941013195600573200807776722814175722913468952935876577477553440268619416570547529308908601266640149073319098582101373506631780560123095306676718411890831399956431754650654331549681244384151356123857372653316522348883885966592034411619844841983974734897897874495305669283170909756528497799146069460335450851537302506391060452679187523477221962603979766491159694438118774520794104468678044255301932407072687025757292488178295206277820958153605805720292987273309057246785434399465543984196904575558200791905434302222134910510950691529266409709739445286346488212064554036032815954623643742674665905026199411983153059721150052883681974188166001856140529554302773560561021939329316691396772304147512376465885180097375685234393739454736854869590259352293101833378370004296662728282787155464679240839458812367765912513400929592080229256298827412755924978327809787604153950031927869732445605212692583338516055664872494735001953883800039044870291761510853910358975535099002061847919096617699357240554097796090553804162830922380021113645749221304954503199691321934977517603167076750395498138862514244699098034817890189113221759824975001755998000160225838314986646195685922298905823564495360320068231511004249671011418618330756718886541671386288029835064358872704572304119804786602073618286981537426955478722204082614224808997668668314425596545888347702221077950157352744390334237928502578909880824469653164115835080564275761929597385969692733281263714788681476966397807608742424512289480977963994302878644829046504749893487034754359314577549318790991291538742565422000757720681288765157300053842520237392634464054030595288319442586930321929911240039149842110161643325115604876940206306720139789812786596951383200139222867775663809579407286381503080317735747701658157595303815664045221916361627054469863382141001497952926921630491203427631880172239582397181207102135384913649177595552038910619018312956708874442985736322061449786889777331738756798673183132552705386342878790747387662754348747578041530583679728266109838442102166266805526181795981802680942320512324266988438909937927975251470517587947758196934318760390832820129762825748719041331023742573381764071949455347595900128516479752929956106754710587853651130110032439310956470052453203291446670884566941015833468973964907425331975091824781528736121070847134178803371745221781408952530591910156904048062589500991158415977693278717093553213969846428078707571280806012660502609440068267760949782356875663104833693407258592593146560902411932708209440140488757059318992035125699631905005028852361589475821637738081796017912451209849858609671074179107003860550492312582334299338590427427706198703302045622123701274215898020951573942128591536448616228227293014844241745440882723994306398263039664189227463370508704597280268646481498925772554645686837021404312368450506480013773676808621234346625150526781509463283661148927370180118017005601653062337952509351644440718713767357599983471705115444332403287269233677020967734928657364208439587167453245699678157762678645023635798702109024125895693491802889641765070362518210808815706644461921007379050435266936632731009950104292089693491170437665953972472740122315583139295375655344090519983267607886130895201898015219292423599855925520014359691159793848622004795256183483368071571389327189978893129092019555410181892042173315373779052831552515354812744890557730091084780679307507531733249905283630673004501398336528087237683494476446607756324755280962293946343709030574742769600619389812999254558856566318699478860349025690354298696363193648893129363312417815505536660141697349127428183529311419782870973785113934503963388856697164093257320976977886790335700536295423993255161197038177399407118256187428535109907547723434873581991860611947286602678455211321415235594270319999486528725829528802354343983209774946768294318952119862949851758789510996663984024362753995553478715054945517950587193135180246843258049166055854799717037111207068592960199091445537642249417070384980777853351302296192647193624094069759378908357595015995498629900781466735510517172363182026255009631034743432112035117830227148519866683623127472450637340954330624962537595194571678530167438405960870158858831787300052239846319476278003729383622249518847380514692915196049491176516859561918802597688669762917542977763076392577107788280548031046338880782701523432965029736463718476938113520050878546353119661548802732441092376678435888418501118077763748740627753002579972083000337694882117853160452484686227514222068514090213680420347984557210237120248969028458139367159868869116765889943839783895775345965294065989615073106084373154225538055189441164302488219687518226424899944220169220542399310176290197250493730354606275825143925726033283324088976854047947448210950927551043610536792998869859037095519726512979249550987100233411444120322235897240378039953142852123148897054195391623012609735194023280893235805955999516430053984163360990030246869972412725926225392061039650129643656195926840037629587901856044999652865464648061873093614302435269383168268959899660593010007341420451616184605038356141250302617713788930162105385090902503066010335954510091073213140371954664734283512853416783405951022771740068180974797592971215136756067880855656950227937161315220548805255581891200497736566310874972960626583659999186346248115770164474423332682548393786781788258702660473487304477374944425091670788977238726007802683815514926877695621887163037539384236636906080383938379025964074060257170305112116764871933662494583779933381024917414264630559899393408936252033924449206947866825405927201893610025841031809088993451549280171295493209867753338880015367425759353101429320610325014821326652215408826728748442836165061160392401908264456778702828807718286178014972915913800093502162870299319483558915047171905600482376932866300960771043227112556132213160615758410934676629507757307517134418884384212680617055081790970460377126186668532312877723934647575064144830230216723780130402299323383790335221915090716499394906153150202340189618902995289637524919185356721447688454917532427785030022533681085824801419571926029552293249135808260477494057261332879716833392875986402897494534368464774630328504557231283226202484303855911807514935287376248251813126217455695750386682828180744645262103706770676555046946508746821838545584962602415203432061976529149756976400595108704561914833839977220286524105674936754379585977654378325533279020927849022482659443368345054545874092769045476709144061846113448875290024281865241449572571469040166091752377844298529997225111356485637906639678895667917686978538316448899252521119491305809258411500235126917292496484264650116234127042944516320651920193196896133189509464429607374956123015261759504098473912939625578513265234391201201942211026697462878532756582927873359963463599061341149398608487908590978042357597595017734092374387719682845373463613640724420946227853845977102798505144423021387373737814446520497357582053585015610255238061777569174085547256410249611190003189948050679489022093964051181346472355653484443107661495788930262518730041750068994356182420781458103200204488217357388912338447135631053432472603762706209870960626970534721764550328963974647059606453193056422469023158986881406696388472087963142017457413754414604155934389266492014890761309244557211591948541651454572106560824485823571880915047170020817341414818044960154695113466505243105830057051195061858782030792613309154043281979888601434077621675454824910602763812738619326341780705614320932333212028339469760054691384504437602909177461525032763273353902586997611796423475788459656801021521182341253879201590302583243700007225138579077211745767660391243580509141772423410495739120350663355367280209624121241233776823674315674888707563528249938587294123106964826159895181893411426810706657893945832444437604325889636209243905133554247926465847554569488960934599367458569402577405609829019843006946358088791883692254147160127702546671052695096326296181343082503459668131065978466454164400786537918883534888071443106870942715253168494635660088865316331095175126787203732493811949485950895073089866362440779291114559484600123288448831226354348956082386262992317696093639676675665911590997818653522345925470002654011325154521917959494048141410141253637304108385774856291580104348747984456263395460525560578473241546853370426786952297273996095678901979373468593951532146081079159705260329983383805956197123201312863491425153949481541747875249425603381833782918204739296077761842226482330579322546133824587331077882965746415485187407427402125458482038790660854406935755163024468697347832955787462729677667455951738303780201447138669576284544987223382811587943873515081114861980066772779739317593564423873193478595266745180615059651159549484454387414643598240663920682818031562484569599018106421512093190296548925269426038628503202393777464338015129031242815335815874379616621820647555859500081083079614721106780969279966670919630249808861465411611764906118272296242254682203680816488920122264813030998870787501047254392415246555960007923278693598239252404551870357595033585846171132525854246596630303719270629893624684677530756244458164101120488015433848298227697283986177086785959172869418276762212000355258797659815242939862778350352294647841427953701749522548145858856113334502416241680208206647340389346558994722189924050151330466042406661570498061028545160716328031481641704189757706520130921406905676014054862814930219015530912390545497908485956235905257922174670534166059438041619356340399997671989381946683325763507145375591452132556846118949963644202240023922228471534400009727974449266525624118890357061015061821801645642089272051697163622016515470278870691537554300429432783440119387018098372685368313244609485720281251233902961052713650078786462053531051180395555287329649653811369742115510365571390020259516784681275736522553574947544658673057060450209053890374783579821494883750451082512413220433977735921998762700659615231854599491029797667329357005906365476118302029463717610932546056794055332884751263446317206085395140171998375641987101848507075900966807102112870512029443135533443889495520674602849947797263532445655112337557935299286049547191117744205027205952796675901153234810311377549624077763294566415150341169685354465478621608419258646952735730576641199659239301516367217694328529096645144610975546341350128145775733590996978992947962823460972115014558763997674814466364533982891656962406216841260473764032942940073746244247268646607342214772721837986314289991826609219943632537676127462455181516081873881700234547856373869893503963702798703240564176417306193511270473913439345589936308189739152327135846805186767349643471320483034668582299532526407445858203727200788459393115519703232274004374697283457108442619740089445798734560830582693978716692992267308532394433952668307642493028611809059200418505448239645042996519275068077782612743025855166345182493147102364084572074995132281282931883239716582095128434336851667327115004898510007644959552615137541479676393526745905566350569364611028713935298843256301254074023761947444208564758141574643444912673553381413252724961878842231868694883267512058342894239083308652768926075629861182479054034007702484659337310863916988247151198043383884350042055087785664537608251774465589316760644577100993427623005775673459138626286736220706348934385618857883996909546534401511383919842381361143771507006038445975572480691449053597287867294606836457320899286339741294903842397943122898639096550605114960336613895638254566604684776553085621270566647415287973266466804516226649801034970715568251506341864241678924966139153268008584951686694475837599393088249939167307494609315373432916844044382026243569764826651797403396300675493623896425191928106617062697595418856693507534641476536001454190728876998259065124741786394112731002970043405755290154697659085483455760286145975550985740829259362672192405300493196152318164093013313362599149085648229185557699505223285503246730399824099722615166993291632561792229187170528386453647892039121078448935389234349627928990076980269425033500758627075027072897890965390916861251625050763763279559359850061714747771064003385789930516000727065643393965813749160442973540095340648552922893312020057916084514582048780420184599449591836265993323213091632299982203034813721091958273087739202328928621306971213090492611450507666155980125322420290941629353523866280759045316279414417489859478489717018088398698760968795213090129427396697809315630724917113848607506853187088867133971457717017041270890620363231460595314715862975088572633546031062012258875767322834252117762791856395147852286051992266726798814702256920521560082680575874499549717153228475639724741119763024719437695194540131088412092838361337757327375588317451331294910134644279299170947987258081311479345083899138349557370767060661273987405761987776236254672658296826965427466047411615733182426181682116592045038180345559108959113236449920645646949938414032750114899859868864663680418053989609133907894282899510545339226089680705649725194317373954192510784710882286844426911715449691076713447965805309779895340970340041871974213094652659337051820973395168787145916844783131811447364219892627238179971747877452204140081630812393521210297821227190845779027908681289150520209849427675733251043283570122914291985462302050987643121821638771825722686860810865191402766087081640404840358642320607304208370207581907301423023950574529835860787847110984511661222532202727904103833097944047281496049272033604366835267286436814915476589909833510622791626637105639312158919659162160424028436428248371328365457908691525474486486674394436680588740541100176468443243165238683335650790540439528210060937665319275984815520385897734626287552854055165945392804304688094921105511987614889457807159885613771269166625161924335363259894873609139674687752584284008533225441701298571968076336563252688080855934165604539590605481976548513202792315364231793654527463778689541190708252017064530423159137043047594123303766032525702349660925577639467141434098726065765060742850219821316498616075274740616502082051248651141667814694273442624928739981614788692179868659592066257873771787228366787489029668677047229030388264095124254473000707853875319235256184929347357883281475814669146666865842991633547430212244502126619130392990941597779132486671463912627284568901278342129023482501127870049023743400535748759795878344466484861001627691612235150377546991681543354328216753422072453784202093567264314245749191779267575636720168391149762334503916404083883016849691962835121600757793831242111226928484163998722156640846869405846869668393238916133554262995900031866440606102232291706133708056947935862570268641531444533157051347781777034876789333734333556868336783090573323258194844239956995248074834733210356141563647449902008251601509799374698294630930272827084484953993001914326448293599901280630477020369266698853956464119880590366245114155462806720330379433604131656113177252177883768403616307803240286927936331489241479758236292424507126647450092446787175417328277973302775232191925308500893990783677651567449632448025969256564029789471800975003907533019364483299574658658463585275268994358610674994886916625875851740016902698379508408839466194295809293551365958030082807189381589439100759382957839964664173928499935679847230709103111474119971746862610611471799809822492491124467424171513839126513859912707486121439526865041983815787216291978609563659338387783602573239475318963160791151098292818833758726127386438464811455213846501524882166831042239267961312681323047897950905862858809216506692097937297005672728648570444572391512079789501977334095810923392702869486483108114639568717085154990055436903373511043527075660108185932066174238699757379425037749051350997020223701855047295644699783673520446867637200972144094919784143399654637899398945061063428813980155021478935808956485869298556413353636840431217065426078616007756587128661647401919243898209306160126699828987581304600529431250922501709157440843300710543344587702221757302603943015089893284302101003358265421297986531100920255042905572393038269956062242271079329018029337591326265589516468030682376500198105175844795765733571312589458211162548865045018354994481877607890498473064394045893625195340612439818160115784081842874267373037268625901352600362590635359609175056850148922135804284048924874818754160221962126030202368127090955666304597300979793105153576072590304010924203516193415489981724259548302602606371320900479149520763972193858708565486213995951795193056616139671508732641275896443263471400969686309046018641874285543044996163817738657934051488811269498230342409798269569518783582264370196986003315834747936555632713193550829959216245051771742967883131604774401863532297819065961899129818783165583971287969254197779439752340663670872997491714610336883838318592856100339637066750661541321437679045656794114631048308258186175085001961290445434152797428132372581171387597349363030112970272991621877337902233516790081786657719616893689023712990364779540893262813247121422677567232558180169495033453304863095186678084241080936356681783112540424538435171541924433020652986891868925038843149888036131601496757585085001706553325581221669277356474996644494898609149790922390298484191056890132466104782609917555893204104157715790381759404693096359958396535148954341666389797107334701327855429966690675235461932293849403997411934956361686761365065031923094203908018191385449726934170270167825334284236699089188341698981930704695378993647078620788232379782081286805112925921272085289421092295600316610042588004604221882873569439422751330055946274548920304519888701661589141212080983985317810110216522246106299892097102149743808748618031504315032809089919633249958293291096916163419162793464945703644714377467638681149761977974429668375650599494483704930041656256655713373634171392504968406341684792117419097091612659850501758005385238322942348456341811188507003095926125100944892980657927619932083707263394461006099018436448495379798745324374764635592598081655833651253695702011015585881644006936299099942782976082145589366293527672157841502649253611283129118012177718056851728291654787872066532665861230043198552812286116853591044679900879070561531321524206026627282865270702024627158532731175454896499027756931220571903626872269184342186067745765599169271244354161037322263630135714070932931727334490568510919433889653910598715835582484487086332370888050306445989092707408899144297968596803261307009203065891387774187762926996404076665717875253343839304263816110360084145814046903527252998151073957273057234764886932232513645724275237743723961269100582922104502636937514151549816667452449525596306316875522407225983780191772111211977678431418664514099850138953655639328327630841313178990053046719382856700081303865409049489615793636993111161271032477992912519145423659249281004178763730672751011774772964231936061001344051060258476806706102716610374288987189873222385368257452593960153393989538885271441166977838183946190772493990206360068373183084656724070373412707706797847608328924086391190884764408940989337892579174186747065003864984890022340353483825885691509474278103973743538261546280097314893937465882912878053546747017145922768378933827568465671842282416811397443040231553697999756156871527878426692889918522860787039255802865774647703626217762870387303692074992282226471837337313304023672307081336638608897019538344309101337186405636067200378432969568557604306551964066304160148571006278037092023445847916391124214707069743312272384352950734309055016882956634498021933568507146830250989917070776404284700731140785435970720660447135623899439705096125078882912251887317709069936627036806193556910902853234078677219542595801744986875565560313140851777081790035421714805006029019072906567359873029012315660535966244915936570496473995336164447644734273626118628217811634995475877669733525287337010810800182313349004241365221135996159764502179394716675665949040540997481127454836554296210719174028573634504482834987215633002135898711362007679014885919482634214962899922922486089352880145226044862297816371737674679766286343757243559556270247106811252268835256748923774556931397509564344272554727827047154669245304629576331389927115348561013757111216899833713919401145801565164823688093812701460623474530867597496578867465903487589073559050612933719348313737134981388763072955259728471266764699379936532055607327745079613166209718104859262406159966776888975430747560392421231551252012327758147994847132722128948793498209548812903532392987290547389490850494872427358259661292211008536548212177290154833248363918222521083066718883651321232274357115331117504765425370076638572140377553677744355991555201627566107914618958728110495599566559320711182972465474651580336386223632721592773513310128968019380664564084349071070205834889419008310891179893533475831802006434294511005321944522006983269708146472974120919839642252861639626591727571921483193283849724247466975385892586158091356280369627336816791207400035761356846736236343082812758529697797949800875495626519564182451071685437045185710401835604025853314522351707799502929803984399904554742264266505625080461232012095627836338260992527134346845197194804188104524804332576605424753861210093317874161377963949971633737339542310801442723338890963657350574060811873643958427543241413470004060538537146716118407332104757226431803184631398374893634576969966415637964003114147895721707302368518025826739759305535505512998625561990612276876695684424051456289707947491725122768581221535258000342546333999088032859578407664493539897701025447550575084413360354885906245516326640144381107474161498540707447364337775009908232379239333120177232636251288339132301512274936059962407336460254330338846840630994818593793363543744892500859907597358497364996928516563094635297154447648973329861421083874763345727940633616571903775150757038720862157798464838360441250076024123947761851012537174666695211200628417014585969110639993004145946818147098776078222264556134206417142998308380650252809995483586275274688323613111625704921307806858725662440118639222702292187977494317138827514142271869103318255197308130062986941183441167146185238464398419038793435743952667482455732888039525085404248245475733317159799761840746278283048340479338098807465852314738927072038352426329661951308012903887876319162754388787372254382621789929062470835451437882649474536105815858154358969970763085875888493561221261323360299229866567143192407761575782313129123035412604485607199481868847177938771359379162300820133249469414241112050502942504721652519150215678938967713667619157202910010801867583551933019102842519675688085822234119177587113449879598552343848940542657020100958644708931546109544248417355768884435408392938318273651927869711375603889372594260301442441632402607665353451696803534284673237770984742808590361809509719360658461202803955817157171407076041425274143721373357137899934143004192263204560369398719042387765833706097587593514271817415724718309951233397399053368028091184423285020447824507400285082507899499087124397236461684551558773392110424502663699433633850167325641741049436671623377323721904795468410845397195612898746451899956729389057293722969686897538727820879108611454459501250602677820814060697817231902109298699657392864744489886756465792111611926114075050055761219189498884723594419061829225915224317219394327656134379008297104075902865541223311310702043741195151188161590982274305241641695616111538942694916236149571238555241096290182700091861932697836879493328740253691328384106157538844650922487919598242223181724916055897333242812205219781280508204069741429140662548204474202745213272484873370234605152504424343046378539923747926445188482843866838981190940212521397903078755248881597407443056705351318358331654328801483470495935967730778803723489224581145783248122497434920433818733617048223545647518482892388524173548148557463875555118006385517116908542959638716843641502296494181345665684720031335268884307031746544378767352756455720677911772003510960207154972475589334108313282917371784542459641782720419617492058187883422046508594382372641308538181506557683787444498679460030234784714870062205666107872963294936043402666455427536910086949495881903278670323630080905319615502095828222036068333691084906137923717496266345048519012930020395542177345060910588206528226386542331265028438208868960508906538409328216792857525775978111748651137989168673935903143207056804366021184937511300733650566533984032435020711437394280204553097824251674601840036816910775539749847981759234521623970422800510528400627650582237449594391155475913776437455978099527848660462588892018451425752329352760593707441987958882095867483776466946859167829204410760828925394245687458868500745803235202381412790014951887614321922456092825752356564752222093729886585903223654562260357272256119089920822028848218359006440105559748857137978302002186407819872426725066804152887122596315636384669085774326232119368658575599684015882441269434173596737670218386244077688707277893027248547747995313171408733422963242071827287290692323258475015091714436307510809442296744690585088502215276240050040153550263509961422490696743500037004887341269016837612382353843901117219126315326229626144364965951270731563800868668944927501894881310128292908290214008499104466771286662831266825034101933232800669238931471994677657119354328204635187875456436618542522297850411314405710283625284454152859967707025944836238928081748939004815232519505321446392280110815430005589121293099718144534342469474545918933972231164922396484073614601428924175270421073392598338760493559476526742057450230135469211799398746748760931666472830987549062578245562010739850750529291316783588690941485253920771959567415743934932100790232656374546686698312012120858687951030986446019753791243268635141032218015244485764031990415067705868592937980739225463010255295489663311609116780379694634189219701530089007560729815511058583385228245991053891372861603485128245860452281195142436777026983176418968324336892169231833289645287018858995078143213840421399302603430257176908684813540079638448776907221640216763233354698294700832223432520006738068557265480297591647312225737698706491902588696684782322051466295951086842348862079020329198951420386633074229633241940209763469803695585681160895588145174830823166764723557144902529378939876096171913632566685414388198848329591614637246433335051938836167706028695410700504251097938406923075503429593592920275506894683165657294479894966804623621804348443124673015627399904009929266721834088714317169676259331894869693752476414914099975057936925407615112506784013147184669928136729733492015175549665838397435896634261851860500707847837062926287682400243050773654134084587865862202487644451283365255268371386660559585358001789349722161303525407718750687484412384859867413616378498920657148707459712598834674600924224024568860259901517757745762845300220642833477354703713002789733691570303285825667292015183724275997083321643157247983648580241370193736745994128066163772546043030287216049268659996279577385258161995151760282099768101424673341386203082016342190180262259016041884928337327816992216545340339810866543842220403388572199296109826204127897112841824995112611810302028494958620374655241828018882294056365024632702509406253948581628915804213596239347984875509849283983444426566655623861218133938147693058530791205867853650261767741388054375916499468370120356955413713346741464075089069756840850003032593600336169106546382384000080465917802039070273928889647551943839426062986710160154814575052611848789524683922664686384975709284917306840391635460832293724907915711796852284491559452311139117331256936344357411594053783410100881790397660726726497652129161478958082816096425395319144057907157401043097596152342383371456347520828716352898406412179187060284286658008322225342763763317056978261593185092757416245611607348051941887258782477094323909978223852854005710594052858745682288332994936879390802302153490879348607846136308672278263867801934460293435353064506489128831905417479099074828599751605137136748286317526718749720692153728820397464720708463379269189259529573891390974515619723139043928031098404951420987856677069387690108980508076422979457276246179479242323338559411484850560225605548766983359285064387284207207852237490785030852303053811250170691909291060768319331600520130389156622429130457706512218670673366717708587844250613832172091656381646396381271257243173028199811077311614592644514633229772543597559822614912325586308778177810245356764987569380451581955714834335285440357266753079348767389701930386613198146529640632974618390525949023742829897559702242238106003637146464295062523862720875795215783613090694081320357629558602612338460318690125668235498277236609874991153992653416671642302233706706398983300234004902208311401360174258286225603174150008088162631824011670614854425038650060829521978338650754613581948387577604027616267188681544180158014512905910362069092383083352725984558241992969471375925982334365797693475457881946747653359507247417926241906950071516047420467375668169506804847459588222811335879893874086369105262471246386067510562109074738730790219940957873204293927672728405511437082562645686284933330957915547110993626986571397639893558681665827407507131074407476990495023512540646194733623339538817535239961739977845194555070472308613503208411753915317547655736209052372730542928815632846974448195582616679676521127039361462174385202200989796242284171767473988086439879886707854570710482201861157158070151553522713288655481496365095604046386323635197195907840139656599510252506068404244231449214773723096488938651893589884163044772847488524408558184828804832792966298447401199470926623852244700245802694161508697324854034657113771425511694099009818909427324503991771368307615055699920631920679408008332748174624557667416599786161803528133355607785941128774900275678033047515213165193679598546867225791210048282979645222546542158174352152763093207756706079970340756770519288148356385157595157437535129743602624245623389541495926363510522482464585382896095573335886759359334658558111647312557113086238010798843071839776457928628170610319269897329961015991475469487446756632848449175299219991888107133529767050994567284729979295415074410776826914974787349418722098093931283926727653540956703455151036101187704298814119495182070782613049199484876708636804633689447798596434351037185803404262350334525249968827990431324880429706066096557176523500161931907180318424447774837405292203218083540724780569561333248142804166257762215878480275325200858335728465418878110072656196974848714106363655286934575074352894278479184246940509774151034125344245999790421926844717047830230701283270341563939766669695312478661084591960056538168756529624093899124403076432516137299176384393654084172722733329733665508899170702671245918882190426637006400519207895994788499073538493102686661460476145608029583724161472591032402913826670901551648827901157241504978840722265126568988420165821453548004027761991162865864650285337135931723831600606134763043330016519698678271149830949319890304047212599976302976999239369898221332408696836120810059390565814838678974490728916325475535952771142448650975934567549755363620317711259262845322799099877009295999968267408851074704217995529084057404464423882832640522463793944712125917424802950842614011777639462319459706006309693420999273906078098281639525240596093668310414297636182955743390435752579538484954345165978502288177516614714113647851658247792392678456538810981959435399689724981172266057118110856311061617390761076228248129872346679002427645555475284174036843864671082477039427088490025108996732159923755523256876426945692184775157448112924623917058633866570220847620723211566240242167010987855367660299743480681086466429737730560461912540968966002447176078603464520477836129768581485287930405811501705271653433106100197892121149732892960380696740923998393257322807592225185530403385344014902079923335897163649696492242669588145565518004444898690703705627629946803630618110170826370071569306550121894036534410918896229696383895177283117090496874897956358527403823977268186729812453362190453491476279022137810827244907103932082440158610807874352412574899376103741887786507305325028604910649481787565432122690587801510903009682777616424665248182703638644751457623877052154320905084903720791986268083889125033190504148608246533828569855789210353522822539584469483687110826531189193227611545602239514983058421477148963169190752364174034297158351593969513409417286592729313364578491943289535516449158693775417273190864092010829360922338942097808159122928432221355540774517260769472241538408528057988955765853135676894037730014391061320728419141612816024819249484564161229654400637846709486044805703302458093411828247255365048063546377920368181571498231239081527985577995140562927873056922689278966862312070029149527416629945041713506754907208792917914372110963358576698367791590263730125558464719277525141981258998094891169632608576434004482640948403854244736328991600329222224809999896471471618211154519200798421207655875267687161313510244536182568723905139872959788947389517813645045420439059395547365572084592382641775253810995507226914101495186487184510561831791024621991122280577849566430569627269102744039841487155031398675701311959837773298903077819703849233507805761913687989742097847410480202355095353085810989333089786592880969965100937828504869655470609649662948573719357323632795422174587575691410764367258021229389653234390942363358339976377021915986578740869951180963695017153469406522672582879894246099826501451193884845324637911194937033570601319405837732789636616770204567290157111529310697889947761683094391152104718986133031632862851596513797048239640338666185312348027616887005254607619772917241138924289693475481594454170942381544095514295647199920730700954854687751377534747992829160230318277141081652433774038305668552586949770673425769221514573049729403877487679035946770831569591668945159910698414610345173819540159043858061291637722502037494142733668217632493460481569828834161422139831141038662380325007453617339173325411940947115522172077214872971638596213386774591588214289253816387384839951360984462741421918204622669783352680702102248895793608766884100507304695989263307821108422737035359646638847492980131253003175981422181053902688001829592508650452359718729986653525341238386444810651088932029820537927515365286178312638346180982835456981680895404975859150097846251602345170033037896152007463485506604283388327616630979523875444966526061970814830624396994258448628236410541778601495521189965942867907818232121164717023722637468187302954642386291149445098084811795537649083468363292748239659876694916508005461908007830960518168149345316613315073111024094021661267159257275052196992416612721050351427619448153575991073843894714451104287048472919016839045330243681162980087300122673256412136173794051355031145996713442737478283145607259320348177673021058111204574932106198370940327636710978470772849534876731549286801873046323995493621070071183473944433989716399826981981062959161447777334910919626269753141047174516224824252053014365765955327960505198525248985226167181632251753545045117208581645970013513352134742630112313736797596188309406465124016660250400129315418486699822638551371902910929084140241025174218848722420747266138221990376233651778181850213209765482846197186431711687413729724839963544521381402495802244744965824289532578672411646073272340604961649515724583031276674094292543411023586763152955561853971737778127998000108981563794758675636472216912890307830968592965829185101347678526193241487424809074432866997257117308123447873393294332242239030400658908952963837223827981281726155675326069089569407806786374138257257761090397024566576504259830440379661934806973344225170855861641063042071573920264880342455707930453809908538518503333442592685628953246366563619471918918819745541127692338155215878761029278445860836055914031937438657908028811069752216834202852603409195919234442975106128729128950291822545006364051729126815179728627381707591905802377782496297577757596241708416246632947399628217611232817262392618871831517886120791813372298376714234395899508032315805619033855453619843247239172281373403316748250980403679277786916896515248331621865733139221570289808864635728030686031820605217690038307777270630888815589644411256876063215728293652285680540265821193254397588405590046097426987839119127389773416132224045622941334602865994982955584719258244175223486951718432992293420121709124835700063517987755151698100707099583334634659470012419255693966686938302248201636165260309898383355455661510254217044977461192135187385591638087336874300543744813740578294403050880469393129298652402372642319381322609859195864584407524194269631183788765597336635095800800701433082730934974248240568792517580634689572882281716239367667172472947080358293682686355784288832640976841052985878702494221068899327440407167603305814608139262557890322895454390603534103593833547820516976383968434863976294200864111737015130205302550030162441254198016916425217519818563048520117456014355945830623875541789139038148472161162339121318726039272488033526318083488494794489556611933353038892403977796072334938472962589671321451523185002134362469861293154833039023290709840370424320410369222634368739082758836232995367062152817725525929015034232536763345220082837252986659082853237819081860763488750592331263610273042031247022194146758345340234890944269614213975564970689716481814483592681754542491753506699527362177344508840084735627631449968307687625445195061386633050079341839414776989441145124784144701824353312678957868737069990242707412181362250816249562424545576376382241209550471759652425513286619773512100493070930508513446196328103331315930103421488830559488023986969799011424317567385481578515100576637878759890931300105151136495933839026923217883726879264461674169852790435250417185506261412869827687560833938735783210869642413301230013567046170841369462807180471535797889061281682306564128942415689638474210710454276968674319614978658841907054845685323407481553662015226453905603326532713440214421282876325687208848078817944737135758760514801649483492072810594237213921653364001313974705037766787657869261603462298923491010669713552333937050612651691630456622732535539852444359255600586617815602701703214720948459897265569039596140611663237802392040699592440897896850571622256779609465985982253978256520351608453838458870582162268922531599202238051120441502903033506106988825911435122094807034774616370597779182899931522255607344478623895070064028998686384333246433869735559648972757619333865080148777297553459430916239763744229562630066270487329120040474243037976110673335750420175078678034170737693122533115523210846623039648563629189161914499206578209661974347333708195647115877668696845596035561168307451806823061590854015209090270093880451413286291139932453124731485261443632344688052369064353596500975688236197830289089374331940901832876810498310038700913639577982351003528558761893653667298873821874955245675582124474457160370331976279045521113857637431960160070378610984507711415144709266840231494695603311014544420101221605754715147058098549928634723977715240209775153154939372397493171926549640551564069139543410218437264666214840992491115186260367480922605722095304193309445565714743218164567759339094307856777861847058184649519729885900398345453527947600739621365021106813181486321075995763494919355756912048810134638729161725268265786908813642646635406014851584603102012432540495309704190502229091042196581492816300482046730831762541745981417056264102715712261522835711682486390716966512107151261842555327649025611339135500255472461667276250638202426880947626081851568439337965723759514545818486102268689731255135318375551582463521216387447468884183037612373766873587978610722422814783614220848511697608453034314523071996346111355980067277479816224946052374086348326541707900359901439228399967928035938003858655387643988925237813319535620443039014154225613021943762592068432085686541411414078298371325911278351118608249877172401963103886863959450687668995506337726914202380273976846100099562283069358395664718289072548343643837860255303449482424868977650622872663262015224995179583430743878960704942911275590625767661663511040423894317673865206405857930368674501226955402263486348315947148439468751330559316289935292047335872710095048921416447209317508461893343399693157009184390727465861367398808279553379417449021269249951254188299503027007241022600786277326702799681535477102078772688778413092073031252344595050973536528542215900341903220888546974453319635488393678704561879867556258152839246553167438567396778795833447232524276882859705359938439825584101842957925930159474472954640235753223427864055373670622675171620119371993457206021395140590423342995184984848109779153875971982329992399058061682135798704057171624526869535395607472226667823481381062382691368150981302884922363536164621411086018688108485174424619863003302194772043813124392397505132484059946085130862367477999020060541528777611591518678001162898817988132778363867601575316564352873142333766574768164735015708701782385203593438379741197697217809410548063669707714951059212776642828900321957013529070047659173176415268231545762074384416890425258910202303149354952527193725653529946707308243613693825984242555152982007467843253433551687077725476720167908003862204332530367084692789917561790896866769876652565939814948193134054353646042415283109323899354394861956700435786385233622892287077254092079169142010642277537083307542918104271425495428735865583681356655905573455907249876666873283687480170825011895397376029111150182527000008321349739477660788756247509160239508678704582790702273159212675168724497657530441844491928250148662671602859056192259152855541797868749407554047128996244135461900165281464229937264987542256859924243199911736902707017977460429544865410753039945626582464765812418133896204897988503534608323249264351376884902860730656065704470883799723418801312790650785061343240214528326647336630972053050297608445850038122038129082428386764624270059120519611143919940217204230359922887611220206749447016782524923339639613864033673676270181943917485107336359957920632873496032029021516030663328022662183432385349443959086117462949026808835654703974372729179994305541368620558729159973079791436556129474422948312050426846594894788393422234230596586832469080454563612566330026102506528978023698559831785825582641740409261685981923723192764855190944690502737415814793293552195092529592798930567151838094147051391633427106073021826325321753875439047598009788431709939769846206731922029805274832877111674835408508034118215266206102758275328445721442017227932042371494990122720021852702181445232932682357619590231474656448786166551482896929821570618299478909686687950144199500420025464559223919850961293727983198608874504633515994831178184317711949736971058850038355531504089204115251576075761081949613037320459056076771487461275038391008650121973794317569824243560719820604679534473205176300294119381004548611541807829633917823111235171647687477531997265926510445144304064285557762402587572439393034221971017954383006438557645402607974667891055374536886421233822782894066116450662473691455845208627645196368236322561238279092910916430008593596813025962374448589431729733973309768048007603681689841672849166720048002071970055346719361949741458339371199916120296871653132325120052511980722589134001732909141149950365061036551179064521991015103221274841979234734002431401070268665541276678506381431639112790424290732285678324430314926549243927391613798877878851178374568129660149772039568726622365827217606858109759592292674173847523683727186710716647225634723008686847445637459457934872765443703597103825712565731540750897003407445738394897513004721140574866642822883911194490958040386181764445390244726277691390891314900702029715338523088234639824440709837278169551593904928820301276607272858754866575422795454013094157289689772786458829764330584588795812583146554599122090249470437909800368293889232762175008117022113497392922150775736665776391424783393087253502286217573876251129025412119311667276450211475966541192102704720015891886347467358118562944700056668462397589971212013483795746220477015781369308254748485897443794495215750819350348394477574557086204216246558025048020708249838089664960602145591457277411527474659360785553653821993245381002223035447928418458998733306769731318841382524330234215900601809869150368689685099746111609558633606011161190004844588433151555656953502872217971372611673101521586825295255182796222314562851948237905358310729391030616364343362110775300542735285187908384275555065019160149707214238861637485303708350935045552366319693612897984666173326869910239593353117864894465061039212653633207006078803079095563138643405802488970370966765520138562534428691738680835659885964228809501207564467097658112127437053391668830976631937565937463112688154361084611531751392768177356098498899377803727728755437224325091510355361334017066248280961428805294963074465597148766453464322955423106320257923512977267213133645224326290226196093842652352333941973403905153315698934394868065094180068591152200404889033812266148801896945300251014317072141616496732034581333597539751435926898098944732646955584571646986206032466582911545219364365375314464568060466610887036381059610779064492248851379161435850192383988329706332717103732799068908995448491867038547784251841267411596678243082768877711646238103009343327585129681882819531937738634534269321180516862000798741160981573203673684822808062983423905283543549205557209596364813495278345337167997310118786197195597496694053681135308697162942619389831356523874278660857968444320711907432852077281915322124219532834283314815093207019934842925626870144764977947701474995964677598718295387984182336027529081288021097731881678994240924033577484198653689285492595619944473554677356017723660504846681647069306268725007359106227649940887370459266052906926235513738548586982192777667386305276814854555750419789239602683505874917874014101113024567653845122616079115946271002446353448894833662350263340083348299403419859428507043355956697707858335864414707293977949988893700349481297186920548618817496224580759378412236338083996270802855726917134697185280688885808356251147818569966991981203665168712444142008368934869903586745403806902012024329045587627741070140782930527358797838063165511379409882376056539553173873595492862980353045111189975541506449054204738594792011071835000398725553511729256227777527218530009264331723323732155570961974054782179850156923741515344696918994764562048583882858516242886314732952545269463318823053556114399303195446113886753250925480190845852979821449955422562929141997785163092291544535204716164232025283100153367995072822375766132904416915891297992100030227970623435319684519904238203649367471210731106140560299458176760492464786181842791213251199265474371062781314906476231765896972745359032276370134165915989377054491111587900815178633213891786633212484458184210157860121041584068394678176490930296518598703948252041267181424974499895781530290170927864830023673471861060914284159038615389135867901069949535009388046828327084122797939740105660588698943686127189603843015379662880584126313743385736196863460336623622213120786841577679204957394694259030938663164912972506571554297295912411839841605030685442626341741358327181545366285811803207144958862045311728425074387824171793587623149331821381257266131585782727093097651076191002987339274917755075074296278243243564245733295216284327560622156669570983910048096507089235847247749830088335879545031870898159942739107704492322183732948515476018303820059206506553472037982852691361523862201733309028481063695985209579503090561876288511218730244666367722302975102525245237067905374985944219361344187470092064594111956982536907275137820594048518957725823256104205303988861616762963196074176045222435762600848509573018285682895546983901409195633241898728256290715584147978212353744973716604021698359166521030993313563189430319180308840779566714660425441254991432186353815599728727154325903515989374095927154308566948695221589186188691418843724598102145359645808267144854732515640386681253546525700910716274081612050059985366050701938037704073554129722340242346173813569674461646194929014092241493548629860552325566075725315904247069248509411512406818681750180510725807502616499082691453963749355266589065317193320791658135334903242475584857717960011649653685761413071170261018630983933670817386249381523783347901152897618260234531010664640399323537755963725441868686203310112461274681739647154791200263022132636506580315726978953338447793728379037332046851027209722526914674625722945126126060138117176313141224032784163675803998912420500611957492682820894425433247476931945883841611674315664976462117338336945003946849749642134629590413416824329685807203010950831424897074022114751476594309089427853564362402255155547577519086478485165265384713029780318413688392600381035448402255095251044073651704912378025043177190528123656223162848200809888693367377302800637181037737482956973534138820017160451345024106337939954114743891567312763656460854084624038856471880268730282805748364815903962962622790069568429463093026405893300120923435918879534602039128582383080711071638308529261366771861966648916923783637017212026003387077250679687774033665973885993858863538875238662054820934626588457933225297837440231687051714456463409433854115842469182974305631245557849637983407100011705461899980232366484831943013852917056392245025883606524112448066383353494333635278105302279091727244247503927224625538294725940174817804504858281815066352744964896224254215508101472951697251134110665790298105493171260219913907540947370907425965928002154210852275671471099849968809932174277333240274124417887785655344184766790682972907908739884732800565373490272867518874812720093909610184798625205345505241573599096557764797958444712605067384267157318753098442509552044421342565625133677485760483528410120362124716052252808664121423701912642136640276035079601774795363102435056228284233230217037574998341718586258106787308897295058293336977868853052433093061068248001861494661267267637760145050059285516077544891947566995805850784832831211756207696653623387742688419875018642084780719605468900635629394385711849223852052632675745057413482014222941552141838023966508018159701641185028418059268133590912142507749046042050132620458473609380185769442154297347074902052913588855599538636909092824675936053573813868015102808976201768250084770706501277584545574730148586655317658429466937764713527219478010888872213956934812385180930097453991148259732888154207063316818524582175906072398749767481211882297832559822513056031903778855384272643504462095111600082957323008338224664442645584570391443832870496330446857458170852666089427047286200673764018537062391237235880221224866640320362202920464718673691576378412846415779571448261782419703900051717688203676345469229508001122322625171390830718242061296447465094050976151365682107551567925680450153852985076758635866947497746074763252162283774877419191880253319999940165790817669233505941243070110026286463598678106932119064449972960734731896655166075538387161752208106838222846718293825054134597605754973806332481009501640875891075246967051699486305850877441873364585919288026400712455793639488270203354589170923619973699644597030220465912767198340509334775863737820280739581265520667024405379021454523634093763701861709260178956322706353544103438873593104290957461231606457091109641364507602142931670602068923886994220315077175644852446039430844720759383287826922424116873852129139807455747512726056005126537317797601393657240423693953117339252233481310979038541602555001999614671299647146758831746475901460589379547082780938885584757014925354210941776900701084321578824518893971273160415285714849137999839651737131168373714456658869760012851646961233732239921985103655730575110595321485503814703711398291617583324506928641402493608871860731118196419783374650880084482134154380138703122878326568189880760173102243518834646672868837265626653829003293097929683534106422188638095790831433167017947907856597193518339783102598541269730755987089905964723605772466905370814383966294521126540778320143946331140774459076073962728295439804528424499713983547073015847935529693059606274523981519589897195692248292062504939962605813660832798833351132456518890215869588610398650077364757208612873705907784993111281320982166174759912847769936616800551973883331085564323694248057431741229443179910185112413350202652978510345862410629629123855918901408309443335399928639247815373080940694310765655005224964503083890530840387994148569825156490326196635666810282707216179270709795444654863803349773553318341663225363090927581649605290517102675981845330739878338804045388044187310640710068431186880863300267605592166095336878950406640351299342485011219221149950116651653874028067169886538055672279088074408349419571083199443919001821832064793616414246919411400356179757589413733424558706156300213651082728659849251567934197203147572959474484960070523904717501017774063309853411059471127891787896483213600518371890952058547370235004794454001482970767712963477426222164949503701700048643058609246582558767337586952355175273002767634044747591436961636385781073342489347339381915874319281872573869359486622324000553953629953972545045611814317761759139602546960294973017155504185897613458130598819687445192394733719980877593451625823393126057318371340513530401937124298401737158889357948394010722356285012858234116741095543265784240864124362388801212900801236471570331893535741259409356355147034670087507897911548329541155086524952528960010147813568782227016295878142167097460523592606172253273677089108211432503868991718895238759060213581945671331054332256955661511741722351434823416277324931558446480233933606398570075679604944365500907056987096634078188373112617802129336143631489243371097167101935553214829784022559110403079591348624823152793155570729031689865852735698938022452530762590460776531843495255143725800035786888206934909617746286117128692490487360716522565720221371514601098805210294950247996345751298173818483996021432924541437537784745588702066317339342349231811253497229210624159594756974512239912657022270211895306820133186994125204130550420230003939542113325153534415204310637384310162521624700064667977132925585995138792185455995460852451139859029582517055081234074241838487700010197217335711514246730552048598449207610127107371132946407122212484033547001977852044904136956178710737664704348692674199450531479392000455311621924562191260840451032875254947804246800852743196251445495986552373304509033269152722018794261027332866836377314374820352028449684512017048636932054663343589141142012273593087613101541095992442186973002320049707212223032603038874636035804326194552362979678514377473881340253712019342721185937066485243359287503490691514435095697540731933984495804176154610812340836128803551800728953375700610650708248126803003221670136312003159077844630821700259648064765624906173655278780492034136990152423052359301473441238810912054414712398546773477334365143777622626644531449568216519987116872095235376421104609345314680177182984668788023069734611455077607331335649349352726694484039721005414709250148977467607385216607602589008524016635502103855513003438682904764643625760830814817958452260545939174847967146268806560694047292909549543564623233783187550803242788145523265528706236480203637509845591950533241982257784456786566309798489339799997284266587984597960164415030528662359507778927654866143011611019544219206413034696606387047523150839523158724769046878080094050829866912697103633763975921775191383487485636324307162153369804621534030703052482155693925262762542745693527671508264109329500482171169605536240480220897601305568290802839587402135737259337377108459044972099442830386993263408794527358710996460352013047743018164375507359673289857260869289838577017996672020134830019098360946285993164635010090541943907142490783658922258530085515302265903007357670295817987983323933934207014176215734485313730345405200413068633174959160223550027953461337962909147266741112861631895587512050892775073015196625055988327469791969066581358493775811241808437852144973014146731514121787315587467725205817607902139620292629185354922592653593220571873994339826270369634420201132713145799471999395240126935844329795236325033889449467389459872985915389433241726828744356913448937816060551489902171107123565533182279740274302774348111085617261894777436906851158832472264022156206979605061998393616924940576055355071102912266997147327737969817321877756290623591162976840659982756933806105881123702906186444560977649509207221104452314289453026187010193194972633693155556555977186057054377161045777200363923330205391628096135559900400344740420316278107772588114878275236053216496769454842442509452082253718436958278473723169887760592662463588464482541628631054341900091973060696151783955582934721561989596348434434223520106533617882878046735043978799467400177869087374467656892430044331776274342386848178125495562215345389252103986061183619811681628588172641731266103513634152924945997510603933970502025792725328742615372800874230096241975661210824540411379052222151937342895824789523301892785009975659898003196319431343415595209410242900296509794634160043801307129989678242546968352369617556288882098930356834384930069474772762172128210372095021999534451869357522932382475556061454038118232496607347268684892721962484279463856951192467191862638136315022124275264523651387224752637249652132634898397312467161895146053939901691316367556211821543857695482444230216344301830490621063086089478827988915682977540342689698704480206875791236166974794458388501381818962307669699152054593997165796855824967311133449998635861760561464985908011061541501713295411422914852662293834410340315568976892560205486836453119168370719461911290914793636873895441100426671947167993246220335243596363205169305290249713252114846339836466477050075139708916442066050470337181989832498703895253968666076846186260278887982842295029384100749061300128423735215259569566926392623231172116310386064009880414819374475444192504057581552853517924672262969797650534609362801829670703271918857784476314687086931972806757089012832070391289333113485986666404030931694204866695135177513772342451215779576169343790722614483877487672411259238478462018730022635239704291439880489384981695078677522746857230452567526904218345628626597369188401619438744142081460035522485740553375842793273096831361020475795520652799476718536375943965866091477417404485532362256914486493184235818903277152061589297287367562330461265714648692777079103373236681771686714339744027830502756237796252889133841386086275347426240273563561476931159489223020648539992031570444315068802932063426561462642826237580013872542411653587602994035474334811917019034145296777548008807645264915950902189460337745291874219434843918217670151169670282737217933463412868003697507926553292104628651581377451096890811409878180027221232045230354243420560165932680135134951880056489353134020316133260074751107627546822818082263799156725421755767498781082224481867267959908931478805710382907025121997312466802838691502164633460637801420974567201514532744928471946646999715540164274427614242072075989151815115973070393541415077546174062391991749455601458985600093242743691291497856466357560229749270891447459766211265630283354156627008180259114996704275455097011057862475002853167286321031727181083392636050008151755016084590885459286188051467950558533911976713353050895082821559218681442830899391786618040993359479862189385730627466542196621500992648298131457381029914460881879157463569596096092671528571307161133279500439702060694308221117547269260130764997783163466494132999807843966944050694319444095945510747987418881244722865694478004013178165411681123186380656615135523172621745770945358439607827899378555165968581713461897464401353116162650565184605919984040638353206409614250552299546895994576917092784499279094316277718846868354761805845572381855122050552923354150859215327359040020686545621984882154656630075792495403280389603757988596285146749174348835674990379489627825944130784205714074922406152706676971248935313243231909739032271467157589471129274781661521941342688758345700399607721963949949664280556928663100693726480127329587792458620549215602643869295240925252496090028879890760787217462392691986219202543584714536988869786653599308278153430163008962811211251849382627156942932520831864791954543684032277196630134200963043858756243219631191310341417092074669685564472307709584488921237829777058802448658165241950702657283331174902977781546454772807960305812149667659608247711168850933588666840442650817087161515704422792350389038736136088358145173011941367772757148528977054870789998638512434056196292007381605457415248741130215995925068317544572415214675801797852949087262505941994534717016905249826640460246577664410328465263035895511357317592521579767369484846153986173037064602769570512017842015031151036885833568725313234267796147019577951959982779638646730034855115244086805290333990520990569493858162570459503221207874968808100345677540419102462186414258858470342990086348440964706781474807861433086223694528267579227498306630738743248033823938205550399796282190581349486176557345795710356636451839073854308069915294011559287346538475024815105750229129644665588043618770913457148680772892463490919586804999193539313071684012899871342953700916090345533024583063186663022455419758719758762440136129329489113386194721298260131104202818204149607215381110777806754714566289194665435899581061652650174010313732507637344503362761098257689539540163917375050613044694137803606113435491365477357159212993420432823718281392560840152005584554197230783285816421143022808840682707011511268963505125506179341331328017343057644466426800367697454086726554673096035349538228818147062458262350253537993115276877766296251967015037893830945888868784823995661809767069600904951591526626808665908211140497537477015763425983085337137446019701059464062429882639676946388205995306409919284883347080428086011016358044470437381901409018081784801923070158509769712632294088681171028123069641099895685324023783751043124826157684616061441406211417519249936916433756293234338878229865046166150274256272955613637041546085265094248313332138179768982251808036198371399845894785936997311106498239309829325717955397066283383313528005577744843895876499291527755768882384020178082665014500207546922784096967202627514182431677417584572148384529958920038110365380725610694114535922132404069557089110784093503619741415754976420426089700473107919052781615533029815932856389514734332440133604818620360214306799320395158786209444844053070935728213903076290024089086190441911656722945729400630255313895113988878113077418872586483651346977850328348049781877372432535638736189797376101219629489004871637970390688256519985869702653744234736160563386427883817231012146296724169135861913628239635589189103566216857542459067623407878860492559837356869898588395183878726553863808751214268516262091838745585333931293900653437748463102391364091949541046978744576938146996995539726691528671946664297437371653017405724775443054159365609409171220451575353210526103768374047208118016556847718626917935524801443330433546609628670228264189264319929413977233696561709355051631616542613511716968471693852942939500417559587265628476389748436529079754963336261645974476832806370117269350031805069300677230516635027122291592017127194474659979297596235703426845212599424641183976709200090813191131271564318894985014493899827211474463980836434157646643864206449370286033614869896422404726541572129672499207678623930435954848148357823832985566229827221835362934400460713825458977097035986538507997279225979194755656522891164810052866406120501866755390081319756730665388229615300004871129398669304199754828846995705502701256303146430877608890778075585312766447169882396269417333973209799620338214108342761801626631888965987474072478341769640912000128792235806539571034870951796687473325994338524538143009485400975896618170930566806417308468130112846731349902269715284248729324366427041198429978827908016097386800168056182151645860649055388205088840864464966651507075108807788623825048967921269692956362560250566355322680690277063031008769376119981415725709492586488469707402692165295898260735160257666322684399983992992002520941631772519905747828079282982663103666495664368701234556063587693228684974430740975698854943940858709094186857272020730492528814506975165939220386968333996063875276346741797601170392763321083299379549833042617345862453764327612120176629117204798823736535207470920809209246478130679134330907421317336778437350476691307623247685210784070468367185703125459708445455032302545375302811570946628347964751661815603374965502064285850210233834882534284304225791912380341710144831874669429563570727961266096358290760755327578919708717257478255763922517461695711295265468228379572221435643749652443774006772861119982522900051722064524615612652458858071264111116985082896563981761116847347792778357442690817752813111789164308171953320836408337516614573541306185195922523151357662967886176259129758487576547455551445540565010091317419596486390967128520902473997809022653469807079523363220600680743206793598773808360585058064281922225533395063736294170339126436067086871960875175574821715770749275041148563574142483629618458760801766690157487665791489315789904348939748675872426332529612982991759720523230870331756887250992037986889662216554981762497567709850479388356409812221597623315112881820789205941895788771244510205235669587015280067306412558785087586690969665184308975268740770446029740806237267837623336364660336142329210117883396774406971888042879467287799985484769262222424791468564105017175039699155461080765182011060749808323646271437543275091421396471100501843588441403813212394860016820255264297432714724200876453428916619666116464607285326415156434272480761939031121892119657273640720797802752671604909435463160389679487446845097295452736097843665600576994355016696752082423323549152747287151588798558806432481503963358139970293593082369227674011151618561143341587179338905076467775297511364817574349439525477792994865670420948269804636603164334473093493127727757049110583241602181642545784739709735391346027195631753652278114400777283966157628649294636565426308854993883634263746779003539039837443007622265852827040010410940518409213013286414545826425572084427485597764470999062762397602971219022817001977334854615207036026275667041806171395379080783420809861925886202384826462967232238027542476627249397381590211837850424486867120549636405212765865043744330334650265164314319973913054694797951126382385063025360004772242532245367267926418644160358638815387919156547241012004809127908487973731099016648403575509707522704323789774353383893097655263826882849833497888499861648006816855593033353189616375363530479063273391443441122184111648496285066344650359207399940486420495441571229320908319948823444229863623617401133658302571974707757102917378750227104789732116831559076220266563733546393472942560728887569241336135851958921336253342952731779469113464878784028043693053069260207699710366965824930429864454462913355746843950779781400929684181464235197587367462547052703633310513253905648243836380898473089228446914733291742572570492884777809492356418512642393603559585952028981103528380957464372870737155386045961284455889964555733126644655600484599457252744215432766207026041290576721436059484540926841379846845359048889791200959376817758869146091051393998054858695921906693602398117435635755509645118257249264278053398558131515231887565488650400360453286089493512468831703551269670990797246463540412609962689434333877410171768453799853139709152562903420412541957198185325926355254892212652693129032409436057497779198207413763797906373957164374253069414901256441170594647374587770971345718413788527578611275694461145269755518053975580587637790206144790180364378968918030993221819087585671413295183077578357200743686884815229943786455421060202827747790955152345339105765790463960493610973010196682837680528196871580881200378564609451799681978922114575068051561923226055268230445790568344503949966288207841810801471336977729234750625377163916024713344372788166011448373147587827845471554490619423927566919236019764177270734269422929587279574321097450214388540505260616835296520521946031405318604961495916138988243604803737521255675384580680817732273227820601558497287194741854527848825759839671182681455984481494961679767826993377995128369788677684289483792319123667395004044346293432184355238253402932152340486272330810023440319519170388311882989654149774369348278227593609118520866033316009567232170807058240715965228144416216342053121264833860983271846210841652853279627578243631089087426560081148482475792847888748172283159988722021802960223649417861810315142828822266470813902934151500920232684877280191897676241294030773176294758466057582918490810655270551219128793367518029268741628005320432265230077456253346446645135234127581900782390973929562217060005900624730187163028240324065042243375053315173195089571095218010937439420351093146093159144973135255589505750500839413657557436173673333246622607967747312001482601101600015458315794303327004823940865723247318259708637286759455440469684189620572678408950301791374001126465141895753622483660233623149264911388692007883360269869873048866360491308936152101811611704578630059637954932633404570826336698645131665872695725947096107100742727986411056897477012932830377859174192312514515504485012148345913901828210108202562090108549827418108865126530522141101445208869201594669830927824655335615706857561750588686279490139160509453206491019767272896001015930562799128215317199162813721882325534135795136211185426788862713256123735448487538311889773708168181646238934526574252648707840412116646468358126981587223948742264559224156451101105810194677455216736698287268992815682571716265226595169973162370205276179100198480607198691542938406155357477170945967860408084296140889448121652977654742338846345629706344398514396883897735413615445187059283177409080085531944268155134859967538631936583311157258750108882222332978810173727245654933429276275293357904889900062893369718937835945727222027251205226684473758921637221594041134889369318345722905031821883105170082814532201684449143804633513882484303263865088061904161341365368743132061914167325047485402734763653437534209771599982460607559238926499534791601525362468987627147280264614023659340221778633663417993064539572692760106485019908730264401289774468792294165871421254217958707413090777873037064726520300203266939244249808157809213000075242090143674621960390700506180611458369204043330166665670531071432897675704906668891257704526902667234572104537815454584949635209282111202795681095482907114711395979578823414288118129883401688793393030239575016742908298427208784034314350159328543115369715653597668875671934084501175028520129386973060265275486416649376470523180395182704604934207157042704164601324086085084434671694746736316441619151300380635634493327099766509546460442534635007497901829458348720690697387047890736564673749785573416344487464108112561785593906037838799544735248146768022361143342105381316952031899775061862976814059855008115604908787236591408356214639909005939940365523213683131443273067560164958699498571603875807080105940363169388686500786851628641788974541978607856543926918427464640487004334695226301618112568627591960806689678767912906519891847067652047125870682423457018785556493946189878608892122661502539320395131777161988303602385112135200236389192475832104263030053217272158054760685392596300957711414858959043810239708546260264145754276391243284418050534559724939951698473755038320040277887990789025684364298362844609903931363042918351072192605020417450741867737555702419933748418660033672891327312110808510301154408982958949072304378046492204028517370400481265169966406679369686886749162682560535226825751939846866721515677933466769298941875239473771494592394905418384269627358347009042744703467363059028326211513136810635715264436227499909301160222648879949524862943514938211152048074168494201282916759619400337968454702705812937050960757535435082687136477972203705046896525880518407802788618728671283255581691044136333033418005628756671889295066323385028981560768212638666367922655702241536652111975621305250975280236146965060320222808004187816962711457197641047076896865630498040697086038869650356307757782902080476437242974516064121251023324978576705113961569944777434780621401898773740844150364110908250936076326596696084161298340047220532408305420620463897734078391796033075763151240371854282627947372723392839541847291306145364747840136751833698195411162104674402775768528722316022627456665298698752823293676170673136531791329250839229372528026792116298970705537232513849179697895086274738000590041904865654704187490334846385722946494479124355073574906586039095948068575928221591607215670888648725240826724526555166254588512993088709097005469392260211092614208126395646567621703593784579172790002517761404457346401520015122669133552914373434128193863752248817661459541038929667626670225282030003305998321619738929345391888175261565619125965204309150824852313436011950798644189691185261313504394452272159811737277589083313495539706492269095448020162430267822300320992503758979669082791794441774976142890527544682499106750300851540025158289108880549716855318736533270616861806146407712083147831377774811701715248623076031683384422734767041547742330323774847402871563775097852571958568182917578579358020428302828405389067907829025172971586794145353666037412850749145152337329750185397778054926138371423754179478819708003694650301973379480089284893107902786721015544400293118326869670233694921533239815817043111891163720886914365396200632429385720786366023077518004560801964805176552741046089866766706995613322484414641359002445364750296346471144886220611191263801132647870264912294086807277511534758310066970164044155268695966732280136736151703496299588516857194883320373328567022086512281256908416057300246021394717773523413091610957881921653684539911194527431041496555839545515016958663326829240673691248276699022460110040474810048715450575438996872657197183264010276038529237295815336378116050158412719152037749764389602135000851963658154843239428329761041767325152362165863446292818455076801681845795131687514314954061294870895360683100994465868294453675656296312066738523496086201997845345225012338324535884562264078856961881959222002974656984534208025196694091850177911953212896586098951135554914609327813264867142441597612463817613171015005838140119539705916388217154653468837186640759033242651760253537473640680688716904713705742823204519836892069211548972444238958366930688960019015059078599889359927252163193735760548025436418322099735212106998787420002434739414929491817610969772385142385967535062045836720330604211910431674702244465593513950871131532572924467528102452523077529454084504225047978229058924164315081477991545809312371614288127628772708811132782317781626475950474790959859749751126814260827553958629301266660435561403886166646687485687144533332103907201474775535489587804432663585091703928487166036717085002926852548369413978268783160602507636743812809231440614787997946057671747070820245862320652459820233261156067358423715727870370514894199024162809991869975859522475628144615653329617751378606504095666089549484398530867483032219958485253687807278541552362091088573004604447743639545798709232111709916734347154486927588786648009803369486509681761197864094785877366745873544099115643432376459446661067209756168892297212501852473224263774035312307604612279793558145877003362993706378394316303352147410432770869207531344087224896686841381120969729830243661127712154484240749092575547305801215905532075301961794428845639892187825301922626083319747020073569621541496464380356475142546122920371924649363864553224507284029703228069490582743242233449319118406209983962859041852532100002780128582150083220254836117954719424823490853908765875677370680959629452052552943216190865442812416512349410356842558663963144449331150802193558637734200977493585318029902247910411887904569729441694171006374479559141955595536360058557014497979810189480624638059653924593923068482140581961317902986878750499223297650822671172317241458744276397761521937629551385120412664553816718259662609869199895780816917648255969945717916795143098612307437255579945772024399364034174989497298250843692444544644567417177488266662657206118433864843328078457367616250807249899453455854763766916997383072882704922088501094088929268364208807465113080594877853135630127923496148697364519739372802106645564386735766795149538255654693556603385585589641917080296970245016401810675476946044675052734962062908723426604235431378133851357169378738386707236567949217387246033562817015621140741705023337381137181549922006411573735565174849500793350159749654102423421297804480557068672164097938968221228160161869078052165114785203346134717466191220593588383685071490031670416017002046958665631777302198886286871097161107956107356021952791835511525563411147686621301684420991448908377171523573837847686904052268502975874043917912076465847797140326598998422213483501891095337412066037947756757329825511988828226904969434856343830116047827861188488581367650889923778108896908414670291411854472129793648259985812444812877197743598166348927491445369516244811577381170054324912580862180093189971267515636670632219211223938824322783484554991550569371140513275758806822560906940434108139064381220019211981184854142750262687034486381921719760565114951041269854682952953975410844312461836725101502428498158196065025921323693846401783636137101541458490173409851648598706520947192692760878284457872235617931471053643517032079131059511139084060979665659318972205745260263674027144193105350177781720405364540050097880732518296631472011647797930165661220917712949425074224485034509968061690248356668400116620210619852519713372299578958763310965299648076969740840057127545761408568199665954627670543861448595604306014113236816004355523393415461023747284506458971511437407357098828052463020611230734392640137815344359904152649787750098713164073831856520720974809453335642935374506927998677877225195913356091826946952391797911133057851553571284690400628501612175770489459813010331848053265143594977584734710366820490639789720792820338723917299370644422181519506220314036246531941951436944190552772889084014110959698642387435605679162843272596912709527861338020561460742335081702154790494295310229200662879050713041782577450778066711042069825578662548066243116276358016676565335391214371170701481159513038368182534789076665337275342664798724125405315377833626470366826856594156021948082079487659070191389884796428895560394390396252354612912978197444561599092576886367649872758318544974314205289026645229047552182917179150431671183649544531995721239937337771301029527181709953704285439763962081081030536279333838204224004820396011612302612262616659438007319662665148609532331421890652489585632196497264169340748864875766955847837922971654838713015687551968694980322320805197076683366369066556384643058363586348402835082117805673323051619994227076560073115628515819205159204860140380039680627756358601999867702286928852888325163481627709878556889685294074433824241335236026064907799990847386839367169496916676078639843995107666809363690773604220004612700970500897812894594074280175305082102945056455523164658883668484057007141178267978366789647539814033110004056166592483839599919169642910763899481527332965475724361188049114342531811953029979812996888371340871244622491237189631410730420466873654833206209710264748454509991491297809732202607673671952006989284212121285600567795031567491460365077639206735443228590052713857459785803789086053668690144691010474873655520620776937844109577152717876071430819694067513914830578521843407963888491076864315208583711519538920799977290580575495264306184169490880563612653328347177557111879256036414195005924552990867930725557954972128344264233833250406787490510894598671460416420678518126896340291037110551832996255392791315883032584268006913215240313948781930786250478787713576791453721310259647849483052977231003433171230556896344747444649245639716079795684263141317245481147068321825334633492761391967737868659882263267847189829403006908724847266008910496252679183483009558968098940161152196697415981334838227979823282067813875807936514891592214959751584841937870247915253357700322762312293793701183543572645738492649754894674893799325177510282096967442341051584922852252384091951021797423603292187142859645762366513341943159187697073197457688575687428002831581639198553114719265995392621200613338402453399975230658789839476967351720743099205864656232757566221513149110872925539367050266338289968799458805028846204344251285200975211624938988316374718170434892449193983364047609640594587595582970930761456376438874525615537524788380186275457444337410937298455456140954915812549779791797781926341716314149661485705505602859499136879016529799692797105394991887885236036752414036255791713621192236438482175239158882705392425791264716237161545675702906742949274315657741503739282785122902556588109753213680279420741907969864716128934597840876978357441532950991719323763155707376718411300243248893636753899246769322925548254252359910374890402032964571504615307468192301302646615925243654479782969363733886087407542217853966206879024759149833859845066902000525449756394044888374480522235592020373123335452290336732237059137008344973807096788352187543082716881618030468798258194142688204435505986580775342383386408085175494922807937461779597917548855523715429918019010045723766051613371785856970728802734814272679717631579282864546185515342365531536744870706564248095656530520335308100497991385853302245301973089096585449490238550096767975669858225470049431236684638813368699642219186487514115731187073448821442904747027020856076525975316533063886973340816771107961532666184808437312754848930716103571934597816131668437536360916091151677957502653300310011565192365453667889673312956176497653174088274066052120807558950319267538631233521775738043928300164384393666672516475674654791636615441542260599329585399698519162077968408254371575149533778515762208932526485427860975738268796022615323049642612376291601000270022839948861978783438716878058336237359174446166128864225031947033388775835293225382711392185366175031105277731456214884743715078729335217714688834359263289286758324015250306495254457365127197683125654790702345790198017628532127624424933805454862699424268291171708892210772889530907769115350492681122935304075695578676205679833756658975405851065280836952080676892290841266892615090616785975044037302131243879476020395106147446286920097864248896095477237720752152726665459994011844506237213438704084297138904071782078537249624436632240459034144883737909963492505359490349518211368762656258589772652557815314319920261389481114917274892061407193700811703606993885696176762732069485932842047184908173681390985717029964135870055871120612931433524645176935102427267006181724225982368661936736285967074554533819513596375559501887029863358286462442178359316965862410025302362087690008829306804298745614580612385486109932790726301576819494289130841257010050758888281848527181978897500429085217198756967953260244836637757590230400383912347559315033708467180129339728373556063343542602081543981531899889291000390763634172694250349861518130474041279581227345051394746018808233686318765570830691042798212841075928882189801447663740653663014272369670825486385044632730333164161042298135446499500680456584792154821716910550802727700865202022143846566890267697398785652206731740782032634055926718367954953976852497350451367067721114695472523934061827295679309511058435623088366149368590948565301797978266701204418319259236573733623406819935770502656704835791650089202421214277451764914600127811268657089398112534387543181200553453924235219247383943458742083859990574739167682507704665064854075898223077720629591969634992873366128969117637300914599027797996717525795442365801144598472695995901230441885318157939880243301504588750967989631111917571891388954424967297609188213214480724485443904214714819076036892235925016184728291752242217306595626112014648744911990766531810769616679608962719573557233596977984426210947721363946491251815875559364626961224960003048168755356071408533040998946189690779776887991686193292653908037120586831257130960659584005393056732794321688004712377374458790605819546163293176378654855954850812939393463836016379200713159856650546851101342739246018746088513676024901870933239603069904429973119279238630596234069116829529936334962902075179660764969663767134785362400804225435732004838217990057885238675016553330475906707205759956988506276992713820988535903151500004055809026470043879904843005238485160946756071140799699837128047698726596944878870576942997001962167423445681821992782387333847531387806070166086975454310586706296436523129791508000619361237763805246029144550253843748661764182010235473389164066025237361416704903432672128851877117246028976230911977728595369681698916605846037679681896476188772363959076247755138986199196839170259823616628945648230553616865312371772268341313859334324474636457532769924108566950629515231095418157990910394642283759953506619734502068438789910755358899302909807492670254533586739528686665536736829017866200365153986790444968419307406813739777028407103118963596156855515553556646344962315237483722662525241736057005898718427277765395966319784149242985409312645165530850561446073053609642548570002826296934296347537454668136266823485081204246504338432202864064032070375058301627071219175620142503356044032740273901870720837519956930220147788925391529713078615740795836498959687906598766365345775757611376232743726713050397936933254881338991933120977362770128396872080320835723269833227636200532926772191688891336058361798669743932049289070285044635219308899913784758761137075709772569979747441996736652156933464964206939964946030809945781174203597496974521545473281895989978779263353892127465432210527514941582107075076914346504779373306207433986634085804142841678324172847167352712163419979659684479962903400523463505039185911096619683690376356465456926848037877923297971149725429909535280831494103625549735230624311702888632271112057274817897617963401383035269082838459654144282211247493905419806790228076269014425193723195255899316924669494754662596768675888362834106182915448236863125891852918041160594020277232374106258570415534376861735343662765582635329137471553287272572047907141354118989883683558320966497181056241030640955159169234509870255100033635302809209805066070849838908807147774499757405062703517166889917040831321028994966112270962780739660584241387458871601262300256975513986564510186327076373473047246824116224497572785333113564098277751846423683534385940555162338069432317468261389715550819344173668607359660680697442970202342946987944429115146379810755828494784208681600946950573116216226071686631816346177742415294008872463766563579544731515547411051165277626648986835861240028098045506183917681773012982623949608286797354960774053750540328916063942103971808510967015024803514636100835900349182594348488171637574372275993975117843912206386480162407594913123880905414078325305791378909872040916257812219639645305383065891510053278757018485477989057773133577921431604108290384642735812655154285608740664932402026245769885054374905944053869684553008612512098781066182227747441899016690289501003821087025181172206674712666681124607701826123234478324990227795893486090834135219376080859306838681173672983221319495133523334992575169815594696821690549179552311427861701484466656273978983177880362824633617867187229288011763859009847022313842995829971698042318824327285804925423089092011778841304398670259906129438660205668393533148883043173586631510143637003285544845662433936752268739827840618470093615010037207299701401902119259065328421258468552786565032449279175273619916870446663522807308155018606608547379928753632409630998842549817235593653146167429228260435939554378001710001249666804707404481361425104490383270396163991423655384092392129045340796322007117615036771780982656365516631564815232713119724240850010262742913209528336414591375068280593773999516088957230414058271399434394259278387210446037910787012309093099725466126815736962895316648194676291908902104538083636324702620305664226545904401834914308132377208572962446961213381614298378085460805814040549260591103812866518627553812979519960419208448212699890473027965155630634150031878614950695122062647354375073216454226944562720729113807891172804463116362345823009320291161688170517898450750317736758847381251316993117640804999305002400126435895386144631573011233842205647557364408535420121852725765496639102759039578432645352607462161280539754773078223833254141213274177858334541876088239918696071185561759977195710764484094221979481705317451206657939392144474500210114477937380721156100213068707114717984017946443164419587015543314580208719010825180737968496036962776742157787135022363166230416521887806870314295026279200232313518057643459855123479833560318662501702086256307654650996929006859867349254211419635919440525745696431073299299439276627999498475915626274179345146297454325940200659221303303695758545228893052322282982506904623314762246109227807061034619327019670276607104101299943667189245148755758236097113763076402752848961958617797996928547551964579500692629543978550131344253006396412735954794094807876801709090173072679371813806933515725768849587183460291313290469233864158898969695261515925815655680547146545535068296953444646301091318383203461689049110648355276419058369179022402580731834354557010781527174289850590669340611402469675373621829211884685499194638965351368205950257580342648061669184956590739978469018073476295886036314122686373128786679174302037286347266879326190286996106597613237544596721505625690278394916801778517946167982724431588449635811187333561967490997205318476762876504806476999129997625745845865237253930365087415330274121549717055176896774199752157627533714609420055054453312875505469353396332417977452212566254636344564297096770588784480353812466000613318825675287410325887906282539971144556570738583669966928583990324803785242480467527637865978267181659135146850351282963330390924673925624046153926626138947690307607845463852526806087765532101847115864224442344612122160434659542130551389375819812565110304624523571448558015448243285452221318077271273331458945151712777492695577496140055845235843229115293437595595872493785850646039212202136006382135169157263045587923344185317952543715404498103090318393999085202293601766047579404829958530036764364946825445410846456499941192567955124337895569711429649401988640921121605535995003256165613000479103156120234361266566657700796821064519269373770760269889058817783810987265005646576964972369633775155654768534376422119302329389752916364539564311462696203834001881515093582246088199159631514434548678712430011134981827422099348822720989935144986781646109379833977961101707396988674722450473302424149814443433289887251750088535314066064233319307975829962657426698924265517034091290278338889387436102824707675136435918686851954594919131316747985713479134928939340366968646121689251645033904626429505254004545120745178341901195055683819470037992470973409892614280819051822107389235399082434783220334589003718292151856080381523264939275963361394519630527012543730920569213837424479519767697272127211970143364941545720780347808803381304236427326935354232843589173548350180419343818402111256440524857485062271662750800139550241042785870116551323781829889212085287571263387142606188097835219249095787318307151731426540532810163750537904623983513837866352894209538111352317865030499881340800575049390521122581531790640471258624872072184975837326210358811488193833796177732059066954040202915165489215920953562453558789501195769672425934553763487646991460465910722674250636486835287283433409950276925479626508963524296399318678385095144880628481103564576315886904162535805988715157774317431190230734155633661365950038384164029044724529775946619331501612077463878976396779123211977100753549888016965456457795808668901651856126039248543941992696147841147928355427283138189193371699478249699511748110201164537081301610263095689299868261374660542646569632616829444364987858235487585744064559028860764976333110466685536066525921974163028842366330579119533835471259786754829846169086671941467323416455276888054789663183874942551087979099772278622201518659394665098964529380822094670135110130214112195650326834383604427929826579477395326764376728126269852044997655510998651821787729749589891396250354164331038462635795331543807237307410186987127959459517276272633921163993047429799387689292488734517713719796362769868101745440428931371459338551133625090670171019040432098142750781350739372712613758759178459520549946017650021595902690756628156474954603489687107801822071025880161202006243014394121993683252323040096049892514053984964039992023815718618274765399034527825528751582255050292772167304300272715438595220672212673554505987240462144552114846609298559538791517322582878457951580260286378508755162100928838516765484784246800293918657571080146226918920197392408500966372114561913350051901788806273874863540092495273933137025304300595273440465556464314148074138707167414306748769713463218014014964584137042702706774933788837993326388472035204387996998648954709490057231897119317853517489399016485824126891535940678090057440193941925133037317340449567977188122640616002347533075911369144108526038940817623394614326399372194704249370915710784677283109223987916382887899167978858158481516075524324675663467210355408024029442174992050838384482394804203738234094016695774130359907074140098483945757301783676709153614593249121707541784791349001999695872933601448405798624544790033156730858853517502567123258572266862955563409651524262722369200406540505682693986063184525025673988730669519951131985645840448187947148136002157743115359748392267673407485337890833162201988783025501521048328512487223602829669907377689595194452483183245620851121193478484265318822422187632075582431021944407825546108973017925702899302213077122813942157768293974825615605901054156094603648930819547229060038234147149957129475756468847471389935727860353821982907627630611351781552499105867341694610115703912318167908825284112165235674856189172876480993941647256994251034016868873738658135128797386773059728944369490666452585503960219616587382127354787264487018389976937913841066887901943653121019059738247127318664570967962752255289452982386061098166544483904706736695520521537468164116204525361848501924880314229398497264076250640294889759329814490801276281312279150856574380505262726877783947080688016020797353560504135184279194223413173467266394892078374551991257072978800198681027768335891918951176182645899794806505115757967451401934113248353291769981579548398826835105011994721319389341199147817710627198587297037959105877638537694877718084405471460489715888069526845342618322771242442449141783921654121038573769487729358420820795834548620473490697266586501787047362622121518024568996037508782261489225479901369111577102400539749586368387311976865901419889357965261455811205285463204266160576910433065028189663729473913187246588178766506323952285856464936485927314273041967079903168704111328781212456001617115066947107756630224098633814290088619091904918379940965979034914604958009621032587840620791825128560897686650036120574074808422990016325418716467110182954233214878689366300061787179534093789416141025127626988715339395591618217833203481134813981894011892711608952614710044617291112120246161706124841869150882079728147120951311540130692500233070316845172451909456811165324292324594231823753093841451001657707856155349089678697921629051290464148688163909223678772649794248414331353030427052402371699044152292696986412778423084541523621557055208329476412621365014277795258658803426533111857682740111239428298123098607358613924455951891943898612536668596707428079356036402027823703911483223021739117057747751025569015744925297226537295060121117176695286417021291423492585667241125931968331488872237875894953702516361524568972425724152180617191671593094225135136693692089512496925787577530802767407458417132899203976249280535281053022410842341287004307975620747997328146936666473105827368672289240659988078826464494790696855665545500986091887202526017358259239579521528729810280227000660885571978244190925229984341567218514932402623768437593177303868568564703023600731877089824242386651812946144384509378613902956186954702615430807110192330779130576032778534405252913754379350284742937682901684128056513234057701080817462587480708945723957894998665463995785391312341415114008042053156972479854081122572358570450110827097471173683789048390367679238542436684512250989220630106984694248821754514640211285071169340179789879943975930436817015270240186786130666171600613313713249251702763362768231203454375221912893564029323456584524201750948492603090768338894651547304994050456906757326431585719979111319479820826817238968964033075149918905264323078888678102911202100420979808782608219068914511254009343615986544045563457437815860706305364876810604092892752066622450794307106177487388835671907210905777388757236943010228465521461074638086078180017344728984441463328810055828465950960792504158828111440258097825623997659870432159729271995608767457469934271165764374597618637879371212622763837164002817635696733889702537694090025603811519432675971539517002082194185719846176000876584636896956642707717571764211350247508001632221127782490281723670679919211633630368217726470836548515425418003471269274252912546320850130862673519786118732056373392111417931754659052751789949937236501002386661851915364147009624309259704602513580993067131581967867634794006345794711260889679932907330017769823174841363847180901049239509980625836698853532326793137085958310711923982075137576211032219416121539803677663941393016595251269174205957315423634882245257500894830860726533815919822972244323050943523933275089426060457379690030406524825951039409716773664951020514006758811693068715915992715676764531396165537072938555907311853990345060480226446202902609528727271432653068226518737137441427978456934147187940737602327225371867268901110436003216970691032869897224511281140800825388421185578754840848126517309434704634315929267917077732133152632490882623690503256910424570150521913760768284545525578475689862130910947925904089961880426984995525688052194268516905471103878285143430795175331384745913989313696236288502741787652889219485835716821502305950350634289613033405418427629374911341848246388280551982669560889442070649458701623801103073287869163469007614838376174455539224710246009188955363873339044512751546408595452530725075307641498268490801521897705336860237539921099013824989636380445396736299084849594362675656073613396164481734531123597736548392521446042806782980803012538598891014785491066740079721835406936304263589417887781775218758884926606571908005887227066030877049208424057010926678727402570797310411572186899682741908317673238942863907760831596416237108829184675577360972773667151685258259030123933479973913016331504430636288882117629219108578021422249309525122512394721463994580843015083890405328487492627082730384812458426405015203821278961177731220648458597752942027494805911396364340480359403963548997751042781942640303070499107554463751478543237931556717231017007192532565507650947919039234663388619283550098137064788757485472049210099864894244332082734997676411254784679150654502709909945921590841932338186969699948954100978019062150257932324713638349149369112952340488368893335296169395918595100912200509641510906236234432459961922990764195871148322581150630278287923356322236227703212064266117658232132252124543534392210939149438416539264554596476309468770075183663524436597802739065260655068535914804722318744981615926776375646167303463530613490440794777793549335464765908417208232262003027047712017578794817026001142097404188321896504757274422057288412339611555169871106634249210506318796889733249772942486885695617949001983187425705955190636238151330839767531652841452264976277509580738802466071551252573867551100053172908766448110787179850433762351725071129148424599219611543405358524893389442797314715659542779197523571481144283649590848411159638469637221714699260884996622335727091871767216848726969687348592914328641654284010938064822191665555210143307585159117653559342907189875357433335215460068202046266364716205720047696710305668744059483252214618250638598103381766620640914076458453805229113200907276489056738499108141889586514090418772946418935841143415922096707456880294931624908827232195954174658598738709284818482340156938742654729317436967777267239234428395740791383256549626012438644062168701439793052742705414316823356711061375909763992456800564994522156484854550232881500185846815980832703557321988537146958484911078495692296905311161091934677506127965227160232757235490653648293888293062955137924686492581745262928941569376480667627857510117765462597389076896625426587369302186738662767053113025429801227801167697906338513504202537084286522941600813397248480565821789064123352662034600131531694207352391345248540185419526049946951851816314889759351284456097501805282801885391078321394179292229864475597162448222787180078365574865033758048580434972218729447849427238202245666310198588001304551830130152685127734923579887037333085425391435987315022900733213021957210122231762419985712259898896860987688876298459664614547691553616764053258248651285150691142963495589768195179134348918035440937430695889650562859642178638096330878477391507257356868552205045233237927863892054305786800159136697402600110470207111283441076135099693978678089415588947536290414637906716052230756359852327669095147619453447242023237977947414571010934816242446220562142228786604189641465218184366957710656681582901992385900049826203050542978553802528568960856681962956182798446799195511265165505153538579410901666403482222127752701236051059549547480708933533351424493067227139166113164396644308395023393760448960815470716938845978464657894629064306319616263148558355127147737172779730082592377400504620363515882779542106350000469761283800723431219338671629017193535406544922428221928235684318652333305297566682462222532322613093172019667848269175371829345423437227189956791009363029708456663816345053646439295897893924730256188219105488504833690289908198319733417312983810655639034540900331931262193229997236583104680176204613257066064731201376157783633811020178989636527021223311200064957500618034084107719078736666120549797745345337927353568997710264385702848815514466528796721066537199314930724936571910227203338758201200619586036101623583661712357192619284392188527473830366901506827158516491583619310807606646680242111233114765319443142792977002914993237198753245090830679329902400620675830189550939690441834863282006356157993811239160004361515168443516235469547488034002790532657613690119300283318555127939037003493833077251308118090150283654019097745075087495348852838499193891978511484605401491522049926448947756679712917360621935777707176871772471510375800215712210352415138021003036421661218226542479693004439401131848691961851903634720364035431609005768959750241364083737097692812497144776811836464600357229145951416236946335689660905530601569859252767122785174578093722090821458065542518696726321367779526278841085542072550538638125267798915940405494740246982670427464536698999776938195987325948791810448558060710717894592385836359739522983043933046762918934579369874982302606997476951980256401459374358867239294161908084518201329290351094732410959964505901498188814971985239227215688559035230470681758062378936099751247022776780812389947090259332085880508748707574519508778910450267147040427628446617475701120443999851292159871578821768890800130050150686739453266973536191541229209044801519265009871859299893699422578187621420209195003056325811857153335022959954599821513117949547675511075042065709956466541056178907810641705364593411515596619504843067429469254543519937775871679503224316268284572999555971668959632274557868871930307340879692768772839945517396500504437138301930150943224818023227609043737949132197569135286241341561809958980872223119546806058845333608425797690981324724064925978266888126572744320951317744930354162979126499214762005797604936523170364231837133143749164033331928166106838131366150652345340082252618796305424595781767461639044501554691650741835488887941250929152754669033853906995920708609280173975332557971060329853712746083891414682990753726137872380088059178955280972166133844786384071258824001387006093784819567113271634384067720987221306421094313893235133350856940434946806011785068118759791072402151910344019719361788205916007112300359434941251365028837313011621288125287781897049924462748821028893901895260877600004517335438902412394044445884807250096258580499910486310172004275121101664492706345771639446404251077468242901371667206627375691893717575727191461810345342701854464246706770852793779192532105939785759115480943039503616800876066307379050991742657813885013939141162651856327678533726020037448659139431567298213186447425895090427279401480917183998245087043641700847162075830256232605309419847740246405970141424105490938118133531718873396361694484285607160628304503172209339671589752419919337666556788862182850935234591436511733994827095748800726094222179674918842613348417403696260243138730649700128379306925419241703724653507373986827098303859318840164744081889456240256999516448078824149881895766319619122744309655015663448389595589676309669261148273742804090654999980927203496055273426236158914089208168549253122832888711635873077793653138062973673803698173862273117282231685871298794982440084664797660437618142060965690602795626889756375582710763493408729644042680730111622441207589478861338382170211250153145719075574376913042550226556358888510670768646552605479473439356725243231847910717845536710978851063702594140871274252839339284798538074352217419391033492896175017686916041212801063230685139239437794633940051557212596149072271646356776486657299192377475421039411231652772045225004019469216744407632782529052575947567752600202294311837173434037152441420093981381392311487112724321919301991760740921343100200607333449817335263425168259074970686647652937011485074907079024038654558858445562205881890580216612451347090956041082917449735144192138995770756732479355155917219906940583797467712298547279614333791117487374547104609141041772881028888377540945153549533944030069012053986629585715903883781478571016959300319767312735444699308349349344912598343466947684033925196127298406505743249200801550173055699064049016199928627003331938094627947373969593547977136824928949205681234464036510587267452944553281629595950213899622561018014029827580810639265940812412450586778933107950098765229800162404964759832058680702641433933335634267186297629730335304239065711579504483373047227697547487225976810408225226654628124044896115135279573446608569213271383636269316757968261578246053736793293936857252160407229367312514019516098242278284912043674304125969695251502015837515893716290377136018046519396487085996275675106664612824782730947574124161379631687415311353635807268620819545711436794855496575726508315221063853531474155687587378080349348567953213465936869889166112458241848489197609099962323731477437743851504860999210067657510362046296678295631445427477073042222144140106644394156769711799062916938188779575832672995413604211805598811570853703918345866668142902927228729636079261557789404257902015032314505947613996755094265670251128546116811493371255623271298660201795776057675443364937510868487636451404632567255154284593883656562631704299821897780755056233574104205580011451612799287720516910272711043580051647013778329643077089158829290213526768674217683471105363572574162881377351706763427471191230640945013098986701949588266858359658545663697228139524284764520494932475215774418755816942009422334560529455916095404302217557563634233764274022602607040127182583290757810862383063447311962091933343965467625172596616553343389989921840222847360736065811598248946809164485373295887616084129131930451676886092126130426732712581091235972486626861720931276720553420525460890403181363545671984657216564084816407922600573795189095092985577912440981698035181274229739735364794361648065199291098572475860607538660979555955876999771867312271517521189907393643925433372167033780193222243098669336978512054367957590186819815985639910911934274560058136662784236046433241173981005799824555998133767199313678064540444298276453468506877872333317601059013949365847420126723855002809677280637727119054666189757741455391626020276876425611491937986072576330945837776044484503702093827570723029436248797731703643742620946703550862588170266605666779687299665993198462867372584378620371110379876853537866637485284461105448474584115445664555620477878363724521020476515841065993307182176101858922519893157520728512112062818166649442563091661087327001862160222382155223530831478552937341270223671337687505932178585434546670310426171549632282423382527020341977664892162740763200001940982506233281954513778428663256147701188236212705256517586513782558215618774592776724005378673521555610575369262825029848976842397299075759506086389175380632028564385733096823988267852557819906823029931594748470442600695584905012684185035364215281369291191585173963251294126332103509558616576749017791222598365793491700712191653640492555188643262257614944486133399437254787678957669450968517929821895929685269123210107216240495522028484466991338321004413143163931740803138846522760256341051245525025599973836495673340404199353932371613250269086340303940711480694202398852221777503197930311073549125712845769282757778872455460709918600806126105280542043849354237575573142685932094954928541633483157638667779067060500922805349645971747070033850831682267165331471982315104923375671655183437570091609875416265940418178602349108755556632915356275444919403969920296287007342966082815748160534913517955265915093357374314728849964767910256379655422903226516100319871922429873386153540360983532632316674109702325379181484447024692289432716894818896107195638430239419322437478567066339260505494118311733435767012443206645652034275998217734540163145357837994407809278716965279826955873970782318793564965983724360337969098059209658660784608336121876178676129014222719081193838937116332939792569454930013480582583734530338794477512230846065223009067534258244358755414217014526147607352630824829634630556369838332247194018433644241038617729904760340011683301153202605039792205324459234832554074801193420708794500286253678802278695928299446372834928117980526800735612879998454239052442625391249657584955885463862361741008092112974542366537958942032625251904515856043968393093141262767546723104803266826614763430141102910392297510002405763965218226129597813389362161907935031671242826678521270632082448636213894670968252826817739253207161143230055308667142697141070107172541128517621063122562490980530350444826620461390118627679128190126638643618707843323191507952836702319129528271841071172032818589707754403654937619363348402661900624421712205640594313702965193045048741901777672705717636420098438700192783897775467583561166873162940519952653411494422038845871143808134971639181159769195561942034521173271128799293339413742776048000950702675107467331851482019012471725345419015474431286859068022641704438692846992301593082113185845638649914106821097855780717849914095572173534942184028946795823618763872135106755205740611032714704860070384335951952557004086061501352149975925429859885873680627317800579308995611222361789560339039848570579334430774895251205004147252931598712379089474212439738497621919039572271646500544008021905838778351385455646615009545442290996572285962885468205572116490359936145173412983017822236202062616503019019138875212429624438031341985156942450635533105946481212973659010000836332582529117226301765681344637500460055094492946789722129238440301601856533286403739240392820317501675808720519575628560495611328400641293630449448594529505674192156054046718454794901235839939935082474617448195056053366036398835588228378267221325072353758982381624581535117958683279492957179062939994068913172799833498226652666999098192924091069529355522214267906253273034669150282346103599938762760044425668336394690582642553374784284424314304563466676692672385682941430086017274597026885554490383701615869325274112205710724841197653659542109606784886250134011627148300593226963488208978674861562707160203825007660226433059207824191895458063908828225976929390910610284399277607757864119137407949713758664427467369671431853690937136868474347306188284273194532598191504149041759677581205670787399424404052048343509386577598629701626146568890151873763062102211269826174888438349656918781981046451855624992863797638043216400568244672355145289661872789648574487609595650197274381853695495255962391268013668880442081871764562290479350451695182710230651416509913381644808597936144408111854911544782252616517342799991339118146089785929576649904352972067132318207086248617086962990692765804303773048266710476421382581727647854774597160972040836058908110694631831195282424772586953408700922355782552869879936785923881504835658168767976046062797703799052508198846226958663476224619389455453345979789741632112648473916087524757279251507196041492050331512930758812184186341626176269185735989875735408876638805705052416045500182008270130945223850950823189721996623508379492299482309624723105657534304437506549576336408817397346841655321968898711297276155517297035838489893821151525433250069333940218729060795198750480553216625209547794269361533286746017000283769674710027447336844078864303088846170232653986206204729966055158029625736756601710677313184490950043422830484159420305657752728893548866393714964848390893517066104783883419425160143263312245052783679781718368495816803508061915095118562259005567550882778774823732598826991422946939464537347410104610272853076784194817902028704969508358075744457594434427229509908241174913247587070813634255586286719926593082769268824809187701972650288527886756269734664483550872003899520764292887172248919584479657782276451470898254844304188867900541508168119914463103396516898107205188362893510029112149735048978278275750625737344698616453693725956951776481104538152255844927229476181423148871982201002580138683257440823081320556204721944267353501376140708146390863741731212105864974064935885238774300945040790784909278639148006957575297596082828203336924647095605390264871726129621757791964228505677792162278017561993433069566349122853920690064724256624690088466471707701980586422783710342303689009967151340029480880247986428971164693171604541877213468440836650275239964391231510831222361060654320528985473218155097465740564879103295506600612516903186751610357253830251394163658280514435951986326730200333502882781132329497329419723171914141087110165940385732660853134988311230848067975308213182015937909740773705701638823238998790384903477997235063935228423461672823042890094709073763006674962159231634250103244975132102377933317523171740652397166633157182275422182534377372963399898638579155202153577398312293516335935371876196985745865856587007637481491419876361428295883890438883723558431783381575234336233076564711961760828862745051084039736658944355746895962984632675121840393439107044110876373287946315417564566944192426517740484036716778230474504719459218433738509145492574926410782811193810238050249777037309407968820983627056429365178191952093916443182274487453558182355308447862387172229139014776593086427112888791404794538032458836372283805383793822142991538874181893816027253587928100359769373618947311303118210278833468319334004317244614647860745270065670078139114543192550701377186218062776258177030219293211359098848023757791006253631811663911788843901650557974850727668325177437651502614606553225655738812087362165051339273128959680233569036148919819229461309012095709330436613050522598284172375684372666956013268080932425018817669519294537708620441900300302523096129040339469360136208062665098175829905635282332043232083110885277024956267587016691959264909594700085325982736591153188205041204002226264368000900729936565960611179487788062512638477203594522802345335540482998762059272285399252761448131536185082278581686652833824733743987839254352715938641347006376133941466993536736448831995163741831826368209750897630388119271563552162864023717707144823827049753221677668729640596613428590016997743421609087614387697378319944782615801056015124119203421239755184604209467468030859583347562702718386692837393063879281394675777222834277109540408698575303537669450422756685103251091530407182474301473276198098735408186366328824790869198778628579411239788945718802021271100719822407817458312665553019923016827231847957394548935461124260505597981664340349113723349901337385816313936494529781936919137181787788099931403035850140353318943294790930864186825900316230624788975414263282362029132299448251725094227761728016850677261234309251247981062590088365232834113949390460137749278072082361024354697658574855750759226758146481036770323124092436481835938657056375652189422692972306343471408379673680665244273729824970175100419545316108521131707481899206184195214909354656213361994072295511737115076979886512058883831104291524857164227059504225567581463760508551121703813409407170225703603792088168216735844446263758086493533041185399304351204279337908804188872955564290908206815964232082258928793109851834249391673313365658699743329288924804543066594924042561186079384981981201562125623122234711284969365521329213306653789886557200237941091939606098270143601503647460085870692701383138247313407368468256363090165505311586992742594432846334522668245629939124607272528919984153973971085127526113287417399091873711361947697517943804395865921923609326111978659861120244211566496069462521945664962436729245311896108390053990587623053239191159819094347441331315411269721445955595753196019347916250966847164932002039566973258284982646861589109957276786416766475976730732848248795464698872265948930650066457055225118275896112552400146441270286859617454590245840121561094484168068289580103144766756718957080080131579817941853889504282117947796317375622453904659237541147586503758632446946294535029435775544868995765401992780497397432736630885444687786282796256548270024114919492502811067995281614406071005254699336574663112847362175583266214092576223365101270000417600217557048831973331250810249567686322732283258084157565568162905618863908397317294329145880299356597152443380299457774064477667726152850914423413300722578041668132990418879465824887975506136089007722286306368814074141836450770189566209137474093471945292795625344783544990289279036539343356058316107958626983954317701980132807552709009226595266807794622888121187288788548731520330720627841535271478341514815065383659282649419316703766111882700297153975168117020085036986635378256869280860166361920333854117325854981599557347567369256261905761378766956993868613690534081772610101835657273869633736412227909599791328677345002217509057806916483976947156554150842875315462554737685227504388935937399321531183023901112813665620326095142076582755291817540229139259532411683472551940165247806887209903756468555742909295235150902530371466304255385870546555697919987446857733315766159784376911635120801992888952151552666437807672192431632034705994372805831450045176370456862283449025488600164353693897382215337388698863761115586248619709682794274876649101964442463720038914960091809690250352064400246278803101883978003392595302742664967463746534226105632753561800967012109667759831205622592714730925010245446014216570018113831283170836033821007655949475229715877793949854257022281919315348811364188086655908981114108346120643359258515854082392144745571703362448352773089216335709756418230675818629893750199408133867189561581770009661798071644250404775089363887642817453084667007270739717838168978186695118384484810435786822822686341754652945193671891607015644710128217155014604380957516115837003088239068978196829098452419720620846121411681987574667596774659937022210163569001303500295798773575478434490978301435320371527560071426159547808548493883310684707136858218061074118274358744537860264860593546724968836964882736016172463502882734167198295780767603826794444375910704453426928411975013664207411945784498732753159000456487962273392284431640084738831095195764755157566557396262546979371235711421344914390682787636768675465517034960977787845373907889896055851562706399017121089424216036870361452419937908061198209627942376356122543977652786242149022110196720423721056441625574185350371698101046331529323945445250544821576056482000461122436695900261938829156938610845400214531495465707107307638758283624643304597085896080544987545593545299114521110975293365354272183830164696937320601374322867090472969712155821023238097898717382160596365009850349956879011809310760909677316289268916023648699720534989124718203606077058519414630568329064134455931990989040416943198206540907825961999239904038806045401474271738205432838324316920426234390635181434560619847166509104163883194568583471441162433944288281698120789090882305175863213869824074211104894633452728250110481134426363289379624068486823961991797923963258278212458884601968321844780184185493681521125471257411378563895091562755438951271543725683936883338902839501035769131268508241452520578125910785392433908070550245654174923753062028062552872718995189145748823585366973380490248479911168609772432235449004060918636232137479567737406811610225679066576313591694235268844742965095918809271231472191832465324186410553686914870969333502303412544813299800256571409466266813448376645347447010241132875351458849656542255026945556369799258237713579970287912785529235299696205571403968902482047590374710657598335165705631627002238240732224503140031639217911358330996925030435779112990332572940014973228574300626931377362330301787756800516052822995515416439665345274265974134468648052575590227490792122906444863336374416700437876297796927557712162953323881459735790956815036390704925897968914319272348415569868224599248382790906922001508310993144549554921024491442141087006318929024213463872559174169133457113462434346855142270800270646548203322782669679677204945756281196640085056020409361753306118850977732039926794363345639464179810232320703997786218827878797347507839233782062629150935966899687654606276267390029660372388926046222437177900679218722735676245976521494846316603925057272560032707962420858078075066706434188257751406522033949564993178220687697329968800545302074026668868315694292833109114623920642148527336974171524576363434389734577832795189847357900017726854790618245951553837474872951105473530774624287983600714623464670055675565472188950336962931301892781729317293605699219755171353327703090056612666023805186848143209149742324816813673230968285191928908729932842756696455612992064759218000790111239510881524795308431350208723708449524663000640768474687926142821772294180108758904533743055060922125064904339557616074086286354952919179319210789135897898844097084918375102999773751997071004525227210296035404744914729813684117232186593737279352459894782753854816653655743494436785005806033618346279450311857169128965527422759637833075498621748600998028024435618910995126168269972400913704153741050578373299802382864860199360619189957084882283865536532073567710120936524037831184720620441607002519069399549813860878216058078411899836037646800642576355138925487462301152673420312027982969457063047720447808956107482999561096303557114224590473486788742997667978050243169323228879724704220303587530735606624890677731311855711284150389705901479596867875632594186393878815414429230120756860277300215091674661124101504606567341351561536145234992064040774316625677097007959221658149488882229487107691400907687915626074500627275877765040116431438775864877404114636766833814061309697470861216456235753490646817168255008881796695234986187027522407172911063386659847401852171818954085308549863924421148449651106380723631582867138301398827731745319493168105250472116996470493898952686101911324480213089872138653269442435198531584194774113057127249939860247771783641431825589638023772464923119892819415773168028006646690104687827332024369337485145251941339262951818768851932530488127380302870468605037993475385018226133483999522665515849618179152057055934281165344216069022231558929465000459342887978219977479916384000085084659408944073480134015078864673940056760844084563741236581022395855556947140737951438195153449219549845278277830665289141604335849417573686264228342989648499763463739583598285805657284962126747557350320099700500274346060812709648668511926697337906220745681892027916068781167893695726363172188017819289623994267502326811182842870057004914428248447947453374077082620770727741331804001020160264367003731002597140102442681875996928721543017764842507431216576105315962960992673875964505730292727884443361806229007150788462099886993815195955200915543332855187310606492209373010833769783657150132623583478422450988128778018769008346344207135867671970037882702318839418120917830101385402707450529502301560864805904209806370714979418262282009551959458564494859028427326670828891333871219885300606693234990519776945913528025472073504083347963395528738815480564530897162986712617792035949527387939685973624706829490072943449346963989594779079566033937417036811655421196963948308468608856464515850174227614010905580310647153920533708456082026389145605671526034159738443973668115893996287809084380329103685804827786672563308626618172160419555532745152946169566573848566240920123856293118183903529514726764816715746783549051863474339269498804001329825674598866525709661351394168153908373654937376928155827282724307362561616290101104151682639726468477971158855389692638410014615675725473081555196999393615857881099903502027934112396793504293610291657360319592067538417610034838008509782254575656155281256488015324995447600180981450363102773476195934169199519548618067595525285948862227724854539021608243767583673305661716069244694039218372550980016184182696155646990679364473112165025355432206469882976845786805395561057845026837778406288078329244981060790843602386480833906384508228429377010697565742248524590670593759565769899976042552645424216819116116426556517377329064531188647728627002215416188493138508783136872857785169550423610105781691650762406163042675950346523850895584330115710626598122404586893497630947144224506236332728931876190633427022138175948600617723882763232589063265634718406202737473545834294054694767117699358421589737348895515330254965484292212483850766120445648192178751567118159178455504415279744166736236961835960411094799339981267583144554159104619362520631639815436171968724700896724397125299317369824473389578603338927853110089600109411457738542928966849296240734141020002923530241666155653617857513955317894413746821203792709156825597114254148630899537873203475299777905471308794274613781211626930685778970994480165960952407455264380569071133506650204936583518378658726940893521966579167665089363364784983688555853754304734569515893586436733917748109286542829850808180197555026129294660024846014052338399919704967463015631590596341286936278389944974019113606872292434316519287871637006963594771980100561424395504213173569168361274170433746872032865686850409111672662287477353321008245734712109466176404901957310045846036690114889682122680709132560276893434884181453864605516290740260731981576468352795794885770260666199548772327421347239202284884158427593768428973885296847780827914265759527563739485791571398091539946155136206153768739391149867172422652613027092389589819352163463880921452214228703895057019120178997182431640484370260871964071348296216876470916502393168806991139508361103136427660977340324777431685529260300109233177233685199315725897238310462822975993265312007792933893504462944288481032199376272728802680316075827851748573736912681798805555750350279051708733425026384075103705936034599552702556295658147031445796736330790381370416845740014608592899554677377114794577107544067302044383028822587226279010439809601940813168621792044280472599636212843542814742503401100904845235009396814524092566931755762783744495760641843864492490160495446740702542455198794934496154820982282835617761944308358347754228836556497953958144881419965506183823356144039870101866264179888992866679196097238315514041029165839019195390125573861783963750233419617162882718463818973696071288633674165908518474061094874393574235789922898968359688683973164787918294736243633374130594129950049277410286147944558310971588558462632070194290404799839773568746909981192273457118272705889072188359253238132920600110372773260726547879202304590119362415867594184677820062517170146219090669978551723689102883038328503957826019723182571464804588973355801752951919068974299086781380783292527997409171713558087096874753027421012098155424578818773759790109704513314261337429572995851933392123397970635350124753775092126323590353482865132065694827011578887757485654491091944612571295065466220869585150994667176952025205354596064363726125398920942554276235414125070868211999805933247229334030579273438934610441033981667740129990871899768613866125040466363541920720193534481587318935871720696773935592045848843229097004260429862926473725710539269749113787589310821827119272258553922299775231563535798034786553639364677617161402024284532411915280230160960975818828454696602618485796273967137882965428172314194023587255900483236091895287404354700482426480256543449735872586692584242573199397628835019376767311491908514971818760872197366681084920981495822791400073311846065536735795546164845378217602978092937073271699219951898469502947174502213296444297343757455354992599199104903291542875065730081648076428169212227369623051516296456850636782174286420085048970838169159679870121707595497532083119297015681472247235821193420281725540659399206000613706068917084032728729576351769657147178633060016720100122571092913106889815650691255499526581183804518064850127686612169884863555443005273494412824774533060326262421849082030676279220460185967594594110574658228517068589095373623102320527225205305558079404924236869964118476545170045991208304705630638085389691629281321319476440324956541790717549021720211526280112259371092839399561737079216049753976731739747547629400519502500612894008625967117500270971426911226086528180635681085525625823900943824919234151682137760909253407585325087226631200412633434837308540956597209395886314310820899174390725058532732846559155131509114589890558175096688497964870341685431748593462743596062742487824995815627193342180545866769705402382198838648637648257390998095095139753060450823662419049200880941015618028139212938617566385748572860903592303248460470511935408310045109573683998946197074379768689223787535752466467988331752844356794973240957298302038670611932681987510981159080873564991599474472933377978987274292200985522110414603025563721430762319372080130165288006361115970335463500240822945627011680870799606036196210129365755737160194601253825234495481272919684926849945147494765248877603659088111869424590915743975351246700676402753580069638038227939996194529841756876394406595548029501432062067972852139020268240640276967729962602656060812050594454558912611514419920695643438509526022102116066614762411978415469900472596067317481412711838061737995817161849943572978113079547640031608833314987528591250065382638015570040032723880443865025593048699762774468718380468452752038463889510611566331139130589373833870573861304114998917673227007912671169709170448666922083146284404946509599182808783768999674560463255940759893685277938388084182684246105194016968708971273132528052309119715202811718817502096730491527045286739211531118175377319806301882948364468495101631238227146185194152073938186482936512867759217006800386037976354311416827504556246183025743485835718157924683901188584017530983502945330010096607223723335517051260520090188966278190370415044579211676571784213181456915511611622727934313889965556623918164276533915381181817749704176134338379276928881334785885691785526614184515369496345695170551733585005509150840544236218533342799278747578770598999420774804730426647625709927010947525941383706865604866979009022152772696767836516680588154350858383906160153622507535651671354313440277652473250210487289590175535976649710800669455736411918565400601202394700269652650344436764663967114445334073174343281229064095315674266100713213301894166630511649603745047130227753350315067192879694972873633798471631747541274700042383234804236466140378798156202474943862615496876799720054754286710741187249975376232368280131884390204242196063151819799520460693509501211754478886531012852336929358193555985892965756466297235207989035076512055797072852969928719983984933407163032474513019897774862459419160395382874147485955002548290435341755537690493688584087245646498967422008922692418348390262509947852332198706149997712233135563761010447618577838695298247522652036282284682659748853420842967108583317569784527070761205680863312329331291612484428863969119662258523757897063684907107320151748815679124453839351138783000280906701490086989854105709025450973088348951541531882739484419613552154614082513740852531513051198550438079080319442013929875137909169578437121525526075847894394111055601773035433141222929394566580778845269597775062690845390157679345595247317153085398740778255437156606664622774236166736412132192555710241676999727538173884801314081502202288753026798735793328080115373264617499163939401536619585180328790133224068926884846200822658901254684343352127173687017900763146075200837363382991062427282291264494124499647002671133399224650978394947033009676164440213481688288256830832039679385129726742001786524305709303674523899582272992386903625508463397146802500021765758037586956888831012178218111042834769246143467441129496845680165643901366094847160223918323991427312220661704311493250553803785416903317157080092051130585396262155896890578764095943580987693397923798130297775318240346645691140742124537341158837124034301606979643692095000471156169286133923409106567126281414294293213874746678696159476028514454089452059780495887819986713397769920184258262536588075090934598972510881893022371688027538341360868500053002016819289273427687248481988799232420321292719007432491079270458076105825306944124832821968736448590198633800942098003231036504476029102130938690014868197308091045484890506956229162061293818290438530683814123905254697292553399337041652562562486603971925036714735333475478611436886770328206823374152623792836930419863421193694524136217858622618556244115692159181481356991781876706719490591022974251473792763242864575307654351063050743665371872564410292339693602333289481326174972377275878715404886860297557641258577183360585697877889048234031317664619091311118204075553526759926786043005998536653864245454434563439276580735933987915369927704542083148836373670513978929596225946637552128663520025970091933727872090986564360918683208378350806878445332630926528978440667012754704986754538591658300430050943699062395259429707714257520950089720577894921495247017751017425334552027988110415239928719678080907136967302213077282383002376857970157369785252451187674531481214319498946830086011144490773169522792253128797692122238952494332564555117112614200225256774866632136681602261939189987950207616718656359295265625404479176599369866417812631772930595246792664751197497314716565367817847907197980180602827544274813059443587923400421033510809751972694803037715261171615365410172048572686368779052804049038115367500025997588134706560668966655405552573136150495874483918775107622137435403829321557906937977426139680536169737974650445658942650009519633135351111750150949986660270287084638467333357956117137190510057707492577381008692683776289029470941783343196850235297930028569289298434677564309757732010855257993195549063127115881128178084744120747481021541795117845384476812305926180578422740098380833323960912950218807515445093978175912823497954221404259802076614241459986212042369540837150731736899941291946937525561233913312244147037186360750312265732493377768698665751343981988900762443231350970238214626607736760649874290916610895821379912861380258911716438295073163785904946448520560792292367052189343790306205962806673392314095548125371070203787615524746501764809352009211362788038285971326966356928063907534668414189472964005718945646477128226076988131742550787739233691994336729092517859406737063928050508132952456807523419847782898173246207291591670546699797604883802140461657589944487147600378255354813542683961116273819500981400821388516239663489823630223091718974589462175447901929470906114630954734636182274898494834274249400080898004588464930943410924119184788226504829233913196753340303782765721464991734853663837323672739326204819208839381447371961589843085940491262454711809413281983142561789535354720639446111752922543654181412012119442519153321370128083010477340132997280439844344222054215125621658838632433227660326645831258181635233190147553840184181058139752818786912947747812992269620508651372867035042371717059649646453753424558789491786377377361741259650934611771276896076113360994277695633073809389388564172436891991842825254600812522378855695047039966160731762212351610431554856238450670223673434071008976191104484675802539983117417513044296251355892286200176820168495719305400230957967025063136286702391736849881264741544093091467878008913541445382292823713165274232684171213582548343097141047656676243227601422462560907481790867502744161535970017540171023679954889835753512711711461947824627450446472782220215258255031534923936550834655764887955889584896119956237733334542143458949009474977625329704247962311214958651922463546924736307122550971449830032755684236532782958897979532824297412519055980010085904238231467878729350081825409904761020390426588590313379329360505126653509264741404007577816693770484422904394378211313416512760815924503684608114146153019617713849607221025974272345423076407530049694463047053409319082560980901190972614229479507802750587822680951517468494130163811214437177082014046119153776505343191988871338915813360388388639216974662433025427403862803975454723636253767131893546810053683700152985416965731999468146081709211803566076008028071740504311201178836529756496912556864332759212155664518544585088660096437673485507304016542587098784400171262438471369996611376827286318469050880211237807208803802070813901857925775601965335462896916104028328211597557260748182646374583252975252085311147132860268344976520638505440026415095649006548242977703627332984941930781203865093223783908360704056225164262766843511170819904137821598176424131029130818567475803058621402135569567454071458835214158797566430442745904760466125590087173281236531161970849863370784032151127145011513202123969880564804930956630810324131002954435614375771683475029001037700138953662692732186287214768863355932300705967559165509591824058033586693253442991451815591321802861889463585426333765188088772836773924835984612932618565881699165783488538835839207822298259775227590464919080096467799960563109627770748588248144275850972942898550515639082307071818924125379518247976365705686719014167098272200061091689075323548249203667668057490212657477401511155708407621114224113962297184161575485449566713125434574473635854074017650872422945849743041588917474020968382795334701526611188144640824883977619156477821369731819447269901353961546587040186638325605725443268597222662516522012300367360834056771924155996373509089821786959249343688984774362602204618874038115116009645051340782545824205313949027499531193792296728066678365746225277627759393785198612384900243138721543898284698983979122883775703531531738412054735110213437382230157177876888456611086781457274982519645078846743137198411200644113646134009236025752408464558914454070810918938539704994491743189402567548429871096142439137927315035964486885291641177279275206031025207252414571110801890061057832485324855967377550302111128658218941368785662644572410591052780481074466885218272486118583453112796809895091303623154121126164277141015415810472857053097528134295425651215931197273749935503037069925153308917052243047237908289582185490731215935075099020906900423234045193172249287088805835170654671034644288848650385487900434221567971955685237258268193619304290332572865739702824966380613486557302289152234429701977380357020552683539627524028256767141673162734395247752846877893581486925970175214841123273154814079737739045651608943270957700024691296361393409351241667732375272728220977676746471263479553779423514997880109488551297558008812774542618141797348104852813347004879999981803641616745809400618400041449344900204770827406930018805969154288064570403929001935337401311586579008027758063773457802237017291596681350007659521088112276387699406679916392516488435577073492177592779678776341524202360701786340217688581663251386194516924925684646493928257854411562192712395875350364117874939959599928558565199604728744253951105454129154876922977872044752967000191485185914065390718200790457455713253508177149569013116338246168209698223640265630685397234592884864490323978419234716660322805849261690673063475544411016855108067002322980791875985724508789878730079623935157050489267179244092525140418368934091514281248893483977147796200205361458322235568443760996054610608977416952363995605595315301370201647691571828620349623150752453810474018292715093094239812245536985474142034408097744220717073153198943470758271266172663296018169691050483442845040161135809809049194743444178046495724906999955863985371364071480199423226735453015702658951418044539764733879658324048243349667784437151117552088124961366853149478948744441604905749939388835689219521904881882404446170994811546656736967247248827624501490051005098707583288665259350162470078314337908646062948308683893735566449022087858334081439150155282937869666585419437746574811955001477929828360646945972893715950908310666574633457431401372495231634155190070660467330405805766811441041158938472502674351934131094375465849624481505140115359833576181723514933525510309012315867961402295601378635620291442386314560390336300026186656607913824803539676649566913420014588410255416065113400337572531067098575858794317968059133225773198321390366254290494187127477556822565316567627017442002652141499764653985515140012655669163378882722869923367535771641162749170225818632584931320620474300710446751820650066402393912903907748412758367465837000556597049125917391813594584210853969756012237131221464363615209568666960987273621396294383598102572438886431108205679026650306108691732900061676035828404756079921103530141814805527202868282857530157132295416312434874247269404918125347667875387820373833134368856300629845253334141318800209609720772357334659175150934909127665599164983841572175470800143583543826482574860560637344024216441432165564085576021889731954036216853233939586626994556066077956457135271602532096991663014023695617238505988511483310060322513985264468973398516896366125392363800788059697800044803908879332799608165535948905223657739920183729203548514022683091343312064506362118348943441609013780315439198890498825919825806275733071032318723825766183136128586083491413502638739722320221722676046215951572037335642726251165883659848543707754642516829787892869170506440519678715157823170336851280512058880619303963110728674289200843272830321042803639419777150661404549706869721566995527168338797479293120014865697050133797529085958002492012374016212667515752963780717848867176806345165166286507905119093679304522718085716175346567011489514773170228058999088829378360275427520217607615694623073010664639857337643922399158338776311325469285281979366975857393541074438516765074202688079489446503654368720537615843799206118653627127765471468547739588805103126225464640758757574791642453270649158361272933434359906176548890425821959393703678888837775126885890680682696047102392592910401003205783010032112278254789924101677996638506392976922563133209564435624512387299171603169046560357330691122159030430632352718711918164859980177405206581766651081129428136452748821978739485313264366509913470297769357363171511116845714618340132194581678937630788040810652406363149088637481318195345746551054514953051252599758024445693075979295681457463987567969414706568077660723009495630208897209395406811175518570232629605110808912580442483176405267207412480349639130530171056191176884357120102269355953711059367590311173742683197449915865561539873261250522875530960648107358827683221417498738087772921393518967027806296467018657988952364806566345395820680507702165076968720539159280332795493180070727602318541724127875505542642703537840366781109034549887614060109609813205913138102838696628086535604091305301774523426324912591561839510601977992227807259667477281950707966517579093763249572982636390448461160931636563315832330385145028273191746115997393515162558133777535650795121377094518085991760129584561666680378828577721316648683179723457188554324272244963990323537951721091662208734695311922330726275104512508024420733706089364617419268480697172162919114723340778341067322837741422864079411992294403677636825440481880692406730602949200522892484939433627635581189955123591538932572209912813315695391469608232039418384918004202174244899457268366182948786128391051503425459832581383038714133573311522238569453509372503730679288116596533425338248939203934642480988670631448357022606025889471810699893955921515822459343420278142317462918052410608062394601649711820010455630073454478570818017332401476915697238241801027043494698171250066868660622244462792959720360236148022403948034026541083935205490738560665964474606639256480855922145577706635098274830242379380956778282973332057724593787968508895550132661847879947964338467761547164841118529075972322840573990943838254288108139682567038275019599037834574961653041231059006323311232890040555372410957063535057623350419146438449307457849787607024799896571543993880446355686193744169135361102958310532303445715175520840779616703483541010271882724260845094563565031278524869898841815568365183284774762932757388886064734648129822482776394130069774753115773162054588787663391788673018571226890746416037261896402961036924183975003359148091616208229061669387947170976613196979418058366932694218152944264475088859139865319413638666066515086759822509391589193641668759779074998040447667604651532248432246028574247327136111159440114927683277769727330398946604507714374163062219889426532553856492705280263797815244485143023728115880958952360794666737928848676022172996582955457777364915013838935247597624229755483215738468541686397833212136061324252581165879590301678361016374860799524217681210156067694852631114574570317958669006076020707562837118984475136109270773616173546190384226804763742949389745372860702237589125930093680432443318846150191941173741409803046411560917216911481924329780685296807089866216169641974823939149304043886255959500032906818042947455933134976083991403474241518206828528253547272881015169996339837631190436970311448254015609086532588812962213467098289719313873577599951635480009906529927437072728637461951214617300417312539488547582527637405790765051298123006085734022735561075357773166871229641836656787616139608620782798918624284032313787174505385923396102178487715139790918905215102113981762713546082146318051227191821634956038547218576489255954380043306924355232546897182499841984889922148656593617789995279043785944247822691111779752317153872989431738782381705155207774854492154737533835498422366828497651705944709079575158834324775753916841295230838930690757619474885808455928272421955115986500798639311774260853022916086990069166690685566919689237533917120184956214769020889589405812845424189401233016009042302286399819823181636059394109776422260275624659177768245163100253117821345235695955866295188135772889169278296009597379936327755942059486220071850487525515019732008379397401059974311913993179523578832087705350267143458766434182898935080043504528783415513103121137025498876987685222529063010241851379285178178361255689199072558860358326871147476883937854919811694786063725416338301938053270664382307336909313047024104488521415747122778413461390172794493266276625848571516016103405777486083520752395201872325548430356236263652200049086751677863324861996036668016335545915822937493171959048164883754083096237830288273460352503117135539838922879958797014977637595452714012872009856234840399346884944734109639729655083219511101198919189717058684287610425448837750798747054209683490728636569377763797793754077027459656126450290799494341429199290478960069003231427498271083960523565443061063002057296492023262816436837949723395133892004498042836889501649697208073584695187633011746235749866492879773063881881743499140127675491412430021999206630860227760869314451820435316478015741726616951372087245223972660034099124235172615798253825236712450995078227309416374848569574753514882274563226714015249214759970834168701540606106500817266675551083051463931680469333375059704701299911395546827673513050167959921848144359940332891742224394972888829452452451894855670605758502613523030836006287718110508628296652702670162129387969933390390672281603317714604337197818340676098087393519112477534477703886299600485861428655145878333597590066848468086613515713698085989767747821860969897065805752945343049959270028139146770139396506027887593712965561733807324530409936953392927760209649811793183206365800373280048041276580627686885519823709983102245618000582711181476569506235655069278361401081810234989086900796698722158496101422485801896106478797267427333078558644757292420999907281975983785293517898050193310452516201270410309103163020101053833660574773613418820238252112915686031215863707103279166059002696871909542532877873569716629856348101778324985093978581310825876490569869549632706357210754400639384476519075459286672389178266142476878548608500860682527708059636214979781522239279903244782516795329842614637462244465133514352275751483183659253639385327641784964124320859985959363931188991327746625136984231545528270280810596539951571658271722265669149637223232225872608022144825657666919344726222996421545868703656553176254372266343308318196749456050531278536529965476264838565845782704343317187910833796014045614421507825669513006279527170279490280412037121342682542040451164142622343070132184246964652943358744967550765614041614451132621395849356518501409967198679510123182889332145204006443545724349835305109995005514719195376627220300913189401243153971823252082948466206592994371138793692113836349109782750669311558073597822850349710958368341117385051436838117760481342805663395703248323968882914295171195684461020174481667303500778311102609571200201726886702393074892036209547986704897310687723484135692937587243246594076802395975280354866486570591597991599044582820536593668507222364091118549959007558875628477984427880613069172813029483202885381411048403759760697635233182052883019387882016216836424982009959917633155870632813324911032382850931418951995045982258112487474775291279647296933684679973584302462622387174487177798538761455918761135811405645770517248321434553420900055443964060526374469673299039792838100305723637276616557835320545987323985460730188066030098939910382300695283707011032412581988623835679140953034241491256731329934616600623853495374549782355147862536465660462012125864202343085685097088258133383156566881087853544706677188166296295937463435945583164037846875038104396537116446941461088326935219350396623268247270879084029245368885294031066032695254284053351157535583589679920678994379340023878965604649407798103603126166396484572183306511293105681432292473441171408963720660960189161437703506740856920608739646922976367496904357214675295378451977819186430342724315171791047490353755806520472031573877412992108214484220823165264537756390877393520928557851674651843690642296449770363361866688145634811762257371897479043003720862334206066942083324582949686992518075177613056405179649851719606636380054912700576714966488953819645754098422950151593424234978532516853421058563597393860762715718554124440600409914983220920099140987992593474152440824186588725101112916272031515184253258156780288794384274634046266463423447314840524203489765089481720380699808965176001033394602955543587716445930715746204192387370074349511922736036297881218933893565459475473008819024195603668991016295968964696777480957936561804520269714880065582655144295101452099163126324529313916565016585055332980988886116114262688810317928835267123238903366064676337273005136274366431979737657975713591460259985919764739173398632098971239885260056322124026137035756040236990116583478365522310364599496045664952293273114356158443013816522806608997020417546806176238034225295773991747913915994422915121144769077483521054921262894099238203141217516663246217455731989885569018105685634732843038960950049511799068262249184655815512514312493015102496830014833955802010610413440700107852826796053269531629787978324896058050736909225246498487772960047777162263705941911184148259801240712871980414481055109252162474805034865725000242319194636205959310629115532282844660892272310968861864289301482934465028861465358994526871232542792331825315196724175625529348846001003849865164075878052318713979435877252470015840547251008423270352589357008328157242868145384716488382414222261092169280645472090952413860382719473530516720602928987825656854198144234487017570898057663625342726783224159326974515015520000693836094467065020910384731396670683936763874489858552941309507709693182869326437987678445218916645833111602572799254162682014573171598922674548699907199201882532686994995513354406997780618503883726334026375664676419975498686141126157898742662969446366063851250929845443467541144452938211007415985408861437669974957373232139178822221630915261269432401677942249529820237241493759674259536804988648082604556146975126440785539910899617276582945244237665787997942323374664438338900823239338706630861138306743824071577868686775198887193795676649350621235767247947722950905159338690352260531915041849580001774862571013023201405736667912785419497752757272740620879812289346514508195460034005189330276179609888666105455108601357092291221371223485048537941734393886207894227343438155870421832471257859814034681623786209883291095826614040206109331778037798034309712960926771507687078975593262373092422897681811625723189624401187850123156120336717918947011715680762285041810285641073495854701957239039817461300724697898654375597556258823129321133141757764501551605450784145484235996731217604572782452434870837462462302146544843028068953310184854829512462693388729681924002166992109078202391726531917844505664752225622647271599798379513294810996515080671016382930337766743300073598487763690478076196718882621867662648619007163608003958710942114256678629231468101025292943323798224108760859405334300244224710812357661471386935257865646505629982111353960206518562405445556742464248391778069294359639745620485800291915069416433704941535705059089149107456052570212159362903582585178974336589519793242453600359744041858675203778392079166054148465378111088330181956146199594457829137169988703167847251569048414524436027502354711889129304970586720928207709058586795427867888728801373761260642871147441771120331451056001922229055396707650054379796286987154963597283845816220448241368719606816919572707053042284479084502108904127101365895857180611556394461931094196189882113139627809510754170812016624952427589784027031297327989052856492952420432674344275517547412722890730143221137850191383391603543215992175243062323235055878207997656640335069857754500745404883691962208394278628216262383142678288488104240851949075995798087830361863616789643370558262040276161362718918905419238571002016651925410818244458532859950652551756564290331051396439092775515661491985537783164074114998458927216407243887585145967557630502311042819929356643974731051447529867714742758548591409143359386147152364320626545901206978339884658360614885818038522135209349515544852301104958797661261964364921281515542789109417936355485444564874767749777633005666195478077736018925148619944261392455139088308943309363373803673311483750360960377476295539520959035533310067013287732165409808117142791499397036579551415128983010878086186021647341315760939741937076884322043786700665411924581776836171028837882349860591930752742447243641640296540403535056867960584132486703047387946484807371263032706507044425811198588599006872102581134621044868698166223949463009018355389018269380905159999327154378416892505789650408430306930692526240636469562578314436150469610199031137851234996856582992822450935671347194014540433613590237760986857816364274078561470474694652025237205865248055880308271282347208558872754135424496305183176249121425133120481980125002161709118171827599327702497392296524690427614405879155220321885231572972827046465894855868186697669023582948152731152754773794453940611948331156746892369972317800980982699136476474466814777544326884183173036177094351338342604301727800740802218560153821127912271250632731663533132271760094952725830328878760509511262333678973188524453757873152033328427851143026164168108066459551766976255788520878272851521601320982732428565678081293343341616455708561783225732557585737135673289715297240409368464957213457573593727636478997844607842341705411995297337242341299184365865522066509365993917916410493342703039149474651185002298916394230997261825673267953230975245511467155995667186788555764113863182236913594645513200775491210390813295082005798174132708979155673256215227402402763651278920176503279514213388792756926038233661886491521927981023705182357239122622424475767566982962777597838946278457032690495835963123155730904355918628733095049903968469773764315096581844709183898435154853133376789944711520008732643336841820209651609990992082901125737945316025323454181744213939574603800794417304563912109496665298275215598368351910011626366960342899347518418398810915865500352446084508531523971112344384250763092979604862537109448220064201131347610762610162828666618027482284793120741964201761579951677057235936360404242361456569314414209069124136020739596608703517615078105724374265851179279153840389039437669390205736574560162990270370455709301698003336557288229550109658531704511278014158994917497550307622467008457159454285053842930265803038892132867465416760152844099964567118174984057782189383270091748746533143566369689080319942500097946295730250062480150585654935880446702978143144492314370253087332247804656852080578047295314210630201637148312602748303875376636438268521844617182951815534134914206719954723206941897638381888200551107016828626484097063523609994552430643004207965504354919641851081846838336587753545458343611532989330522008071481353205922062547884836349988053920795943977290884136920686101817894035255446810401496266330153957008673976987183077706429066452169342509839607316201249320349499671673920588236382920278433960793631916673431401315740477046740092285084484895513849036859224207386228561512960767028867401276245404094966864405064098753988804777020816594187502713556536556071419849479666216190447201424452908779374653833810036168997812895862248141451082482343168349381974899553872588740856162522937389839455102138671505511792657434690133837830861923359876050728736782389718868002323028578523156299564812615982665923061384299559577002732424905751153884632496667483081678001869876778719618244395771916071935799662338213317100257011295895474685252092999625913028056966012077588402299517990645791718519231853913414118567910293013343211473624415221973915489079593025137789321344738223641864332540593735723238271620111691623174451162886143633772821920921602632747858368560701539138835747710173055202620045699025026052380934859334796982955932718272624630318629329071513465554516466925373183901149387974383117545749626582218189337032287422325809148326649084365948460816641506003808195223400684007826233940122932909573637482607809839800426811699578434004630435841615829535344136143631368660210824760521004327843739620409540924243400934936978544847688130915137754704308332323978910470826072322773058783238301049674413375084713071484636422419311686402494108814411033068476026263647894846630300439474684324832439459983145161017983323040968308015637887701653064721395220434010224973070338010002475906091819791255584342245858228682851133522263554566599222396305225534304799772173981315133066582613495347765921642045766725404483265812786452653135702776422269931458962959643981298888893426818705059586176426900697592219932489814919242838627884587994113914272661494213951617260507600979357303437888664968870616900520393650709176251585428698237080325781388835677667254481895414868618994274203481390331130813429755923047530561025147798195700863260688511221411883850346815225712880008434020103560246822320819441846754282378245156276343245131470710584159535447715924194921971917273892990828367948932975219693560130524762211782105539206157827736419508282925312275717765772732546136771398525354121545251379990873626699164553279114587636425958518577441322785197429688871084943825638389718158422790029142857440676087085106253654614919736441854288459854762571232358574647628490172700140950466645358857492441245842510712347009167682355759482873428667957584284301202697659587402182131618628513547862589539594527619559873396024008241744972233185254434789088091084583394796497664616892655670257342639948873877318311972882320551490070110755725759698065360037205597632017980622602071948901744241706050297635138262573102729379482577775868094607997744175620870962540920144273702147513185718800181456534409228922689534269584408723144773300438650151710555881505632971381598001764408064323333712334824267089257911890862188290194851048431427492635558612007576784802304814929476149463020120527589261084521971335476935824831736718472357807910426428499325409977790666168118264651824268652436133845813011344901368148217153013592416881626423721335577713708487822033439704279297722732420366481581908279162420423334157349304716436074299465034568748811768772379308951213262062580692573913176502874391073270216539612814601728123941332704082527090997080645059275634869201733022013011316136298612721276659243302655501540792227439378668563137584527604571127564426376023224600801398097691060060004031644041087646194060615008500198209584013403250048853613581157269887421271467298620583790081833790075426570433599204927417883372378087988929006186352607840982511266595246101590837558058208146656519175294902923706461667416890911168337793002091252516800296284010903056277432480639895175110717876494065481153925182532549614191960787250801216278275927270996613921855615556632359835490366486859196030484685038074883189114052507259738319084998118097243295367590933491074915357262868139497804779760145121021561082195996036831290311805713826778399507778157323955714419698783312662022886362938236995884160298764148008651904549000862087576027673506719711835651869295558685025911135676331429843385683289203210247471425126930870853984105211197841310657403416785333474412914619609395016720148942390339603560174789308019917495982963181882687598225847097272014243639211443838264908521853196915590000251305743050849173150659662595618770745694874336547656983688770965356000443216995925503423621699936405567145481981578787100857222468872252136066754559217527862043130116002639162876932383095416598035934462774280521974303191862974890811405944083217770656679226480088950028350698797821682395965797392571252963080613780731983921387430562695335336584215307963462121058471916830426278295887471445853811395132144213991688604118839874908341366407405631935036863290678419018121151003121677833099335298758569891862265745007172046574080931462253331879853460605070435387335207270251591345123746756299386613847954389306260712000421326440427206207792421589717105160394349424835546116198048626339540210538312920885987459975679309917820363737084964781428443863645389845316583824861250179654815794472322134683410788609811054013143788920503710074392619803755113160868832362099626904015048727602344805395016061383506988399839479895890398882042040608712593846768471261737064606081269005892012478002193275852950481270801130213341449836801837402862081982830762648448876338374560283281500166553419439679391063979128913546872045020809394142344483938624809833482257276077941280369952351872091646506985002108348119623254993877151037708037600234037001586069914730670054347192659206082720480694332799046023321951256244491063915699365902175590840594389668428103778707503083840391918433434581565676618197872581398538337008360993997276389470873882370125372587381914997211495321498697575477640137388726969086138925478362017289727321254814541432146727953524548628039081902480761623982287995028069396141280940531845952806241379183743051672839709011091820571660548013528651222319234897369187155971805264219924844317625035284275341624568398302938742637515779865141459478557511401295499351622889019626187269324749006783404606127246658157481244429940926135084937864625123729824593176827559543244676668236896285449702872727339855234342132759123831119347540911040166962487223894098441038688384922586605712408071217743136943399076656765829024730902453966937706694486060255862856004949566964855451867003774677593527635631129093476779969208158569036188370292351011181263714401881866503526952943685164525999724556453693529568760831946816465966934295692487794332586511058637279624137439512788363929946536064818679177746712632720016314319765232505805940698819788561915295003217425147867811839011634180054521175928047453215074653371609558502605444873030125740289815370142661373235228222831846516450431549438716682979511252181600201966911148058855580443561992546112494188301976982330729810771051064495932730539185354318104951376450104220800547371537239381974693774981654337801625515956315472976523559746000022793550429905955952978794636778852397025647485152345332218737056263473677269431694581994709862057869517216598367204386152254277556809352487579589352067143412346872754434988726115943407191137529590529704082997871340490397504306325316949448130987275121984323839739244483903072217811845894907912817933201184856613466555856949577630896266656188075032594384577198657005866136852208019933155690192371598833817296156018688164007003633879179952041647202373421559563124650473371414474287618314786226005129812666297317331996112348149705581780553967466518495831138510210632906821717961304451816511371330593549127903568648971669221198640093191228048047648529727204282287834127116757196557366756190991037505147506165306984296160245663277818702449617349593441587048544533866090264095514399150586313213053614999049483946761760615307871928051750851502068133785774733350730450317180881635543104678672106603009622672780656286234089303738067549359797972235611370982996218168403933318903171634120206691447944204494086709342048422292246501011407494939532424317655721094317556006592786886698606410767014529452801641652664456676153235886118902012799801412960935604789542920984307837610904495886821155255823708192674609193763106358570129735781973389887340738997445403702605304445305584944965235853143268055957597836701164063161750922612557771580073350801393422730872021341175017859454751910365652213099461165931162109574885366913448118477931609112951795001022752525869195527853922910934367716507658105995197198915079968270611192693222225831130168364663718222380572453108637644112579092308283514231664283332126741823463281023401708602220505855869041072334234541877869124791133621872013605702531082981010806530243016062036572485720197245972736181487773548268991004025140907332448231585555489537261361715006042300965800578821582642045915706020124522392745940533672719361202232882954886406057135896401850528608692592776646738030917180906149466681794487293747314540277696073360505685411842677189793326679132342012515603459898155635933091585284320713439524268414738979778093134749366559512879990968600809658493663574622048337226788674160232499831537936852257019613156038863619635609035241718738093391549126552848510134969926271231169532064371111983828765390277443044182358660076246326800756029271407923806945253086842383026683358628470111722478976437236428333468711953347973208515941750861598954773058412488759748511772077012586238132126610212496394273768224820129192555253010562676684115458394908145440080787722968387449302259437737714173743612485552248781517283013146179058826773854693508666288890427940888101730904132607401538406889122554773519783061494300569862562619198991843090863244722507973777453456701950246958517805393474808337180072250567658220243632556000582123642960078733253111618321658771735364839111798444731433050067214020319300837568436553885100877220765966011047710359802895800030616150612336442865289130977807399810997652159913241379815581573947918699105131333156430512842903895476315279958615655271830320985672968394716473837971204589697660327542940599240964226032199548296678713735375332390011091045122908822362399021655363331993744276438287327763358269208228260415937674513752079689015377833816925438466337426679794211669189255114066253653193136709395960727192931566107215946112889775337894990874855618991949202216367453893630895338348488575083767453299183911477081394124400288436230563569666416391895251680940809620588669247201507066389847418356031784812580666897423670869460528840638964518139769233556172334961490384272848576435753239308925675641775216294077995595643899880614375404811935606910090847074821004713716819529183360596521152890601772146482046858666418591293457235074419428855818706773584877029601766430081448324751273105007938286483332501670152514888259800573588610598993192096486192108280647213579084457655709858092353879379165014956692772941629618044258424213474454302220589855093529399918300458330542439294187553869854812297920474847492513124773596646901806494181579940532334198826626535233313010561466048441131238913890521907036591688524413319018443352922278013026010001059370523479008880520458084821370164177571644279304603083309367197375667618475579444550895531670495524667293945896266669153247087697399171737089937945573580079238889237407508762960114806281146390369392225683071054727996498286852268932477105631578011313561466948169215955364437329420574397539696106552641003588884652949087555767344874280297977109839835160813996881181453954636724262931006233360523065630624806632107728677234734825532522442626372404087616153711655974778699370176102055089946166617729189397485901560549510092903899645025888829540431541322450055326163050121123726914935495317401769768149300265525318803662433233170568799805460668707093689344828211372121619134939943991944604121330803288792558834724356412419908201412639279058908496193724549342390762422040871259092001526193667269009133367947800585775506045815480006086492683200353008637674169544623827949383295555031728412725590673240613229296757364400350476140702082401462119637543649885958407103596543543114249829861064885911934459427699641303036912988455463742516353755872384149372522263995469956836123163828390917592807394987852943360297273091762525587004704812584745693008169596302817945180963980827279348104633501703822044999530839866703332503492368821112815101563616210459526526295329762233158572454094392243393431962557668204777287450033332096750992644345261265642063624313952754171490433905068628885881754369508165395516632470731564972404338553565869573234477932782118837885634096426265887751490402782185648373866763947895252878412060618009774716822522788115048912233495000529566476725139208008973939228373315814911339175506319089773706319644487382565539111311744469913838815392264407011901490401359243622519963933331953781696437251775420619481787153732791945385621373521803749774367614037921178414337725304084571195511077851575626434330293922504237420395857792404013435470200704844883706581849941831306859985263389661437990825924866632253572972887345453910674257643649639496978080414385258979204990679328985870475748599585615008136137980421906432566664576768483589284468521525231776790799614464267431391976269981119684639849296498827191886228961168183351629992394526296986759913526280431891649604624668217612357157359870953898416896406114908290755979039445299852223836624685185523516776415682254674543332370441367401261449728547771164501879979880830186684956714122457636206537325687223575159755684191784142387709645457738878307766893241966771678341579900493094641538473816920156775773626408671513108139968919675684510806181020783246638693397061909393798730794213099872437576154554226253682050793350640576514515284971037633944897350234875184064196131123081067711485800900033586649064718209075602616191969681705191686066597611769651579739121801301576170098158617803919254394991663695072947002474068471031357856130126067467709508694009191832239915837027398778779829180375110855613902685247730593260401254631201126583943129183512085456047140170250722568669926573172152272781673957082268343475009196176207760538580226875182866376928659872256456390508582593333314372219598202203648182672790324363456512150373520590873970604975917781843537084550357202766451878452150261251524572618561203804066052865507380915635961186950968526416077832470625178209975219074182024309062351787881590717338766322189423446868288281645075220251555021697400589789474015609884271191204756938386684462564010353485931583454151035541976778084277940314965741965814325169829460974781877059274211272775074667166487536633376438403501658871999118853321651262194101237860013376667245347280880771613676372386427903690873743481339165847470046415355784463655899208150241435115741503538146834885346030979914381806988006464290133138458114774293663661913831676600192136124341084587748212189817037241004452335918565826074757060773206612680051865033323509295191342260095208448656439673643951731627310675560501024617218815731570212434162130958629947298914232859025670808133596655506061855604323738891134822817836980087779701277510637335264799160463326814123620650231716640619309140128793686817536969732669041180680550640046748160965531207960762420302420857108833074799128656434088264130831710670939175179937299505455373971275854863650007180213960494927546471417512029632008930283567597495907943259700260133300861205994239185996478298259491397867107570623159033305966824132091294978477645275322657716756956839987713549501194308092863233838230872077817365688642424788183707647529041143077608520566127177667089207782870816017585432212301175274009724220070053704060251217107880663029988056985478076938516802553438019034628937615619105215216042433774750884969299241487136313684383616831041535071173246921012369843241347682099329123297551343107053815884609412082793455223512668895579408578284895315008197015963735809936149979287312490445577156853483428685818354942247055767961185459291477518478548552839327932759075972006941653837108682392125105622145127765491695141765512282665548130288176208101208270205476969386185809555110771274904977388507717329723531985964516337039035587481181407204690217666584939900561699786400178150603655320381903636978128848747026566326742694111038658512365845268433349374731960792019577359004750494730429143182769277860478329811511329088801421218355209631989213623344491617140508199921014859841369770992873603609483454162987258005483637872441547555550673925190137411432399135796320501167136470553908976141004518179644384523090797603538244251402395768266839761448573059130729913346486973207824239889071658775651495209128064683141785738913824359566262506394793920589503760050673977975680912798842796492278645744820822091373671064408698087496490812470814587689948659029607954711294424520315978790826448805708947223630653953661256521688954989039966736834236683012319710537702062630760855749448211255171314230867061219941358282947667187863928429474338271844627780893130376795420482477704158893135239246947447123936945368092505215488515048614498508989136473640120076023919116987572504634581709612054154713421922103672278665233914058699645553166701265631388102012847047152001265228180940214521128878286943399481325324818449608436444022243939507880475107058642493266433234035018156276991093925118309186331407017780153816960155140053355850759422828545501781249377806723333326156272635011282320415137586808628211661092092222276319692545157294785088344145589910313539318163900650917663839726956132746906266614107680544882749851092451861635280103026656667792786071649074819410469331581475381126365512763706166969912599263881748552250763168924475780857636490182494123092107860339524453520046154356694306227545098578940034736072406930314060755841150199299033027102341116734676105866543942088167026076050442585651410653799469519831646007887918010994334837215889434458270863415430351573009845192918147136771599577115986207141034684408108591273179707330296511134425675988516530972078084397166373302185452107743792063206178566458033575222214291967078700746303712550057832686003604015428803130539418056226250502330374184764983401793885745080759155457996553923725132019975258699073647245745671617283823918651925394765401176055538208578902225698010887803829432115726715813498460098277872790985319946364331393216967300841109523354160000156123920221390204546630142172662609610780389234473895990847401596762102205406523286004385648340541355350591797444404562880957209645032318947214478271059202195545981700236533347945698064332470406294786300359043421298320975010321676734360937249027710648300019041247704873069095765015418553249325083125521920631567952988916647461155756231565375431325976714091704512784447981087822520725989517875421925263905300820806134499283326716199021210711471800213840409857234339106816596806166812657539286185817528527435392898902412493359326524314761305714522122626796458777683091075378981734238854224210086642632994528297949106127883256892721519918416153862186466301601858785588409707997514443274381997001912420079154809836965723109921201343105050968828233304135287836050668200468496937719740488236001582273511455669366216253748874207479470775616742050856234478852815139403475132664399550437009039711495304922781226208702385014781780806830977007380378315755828080394369203162987818891516792984942571477214536499071469781564743350652418394030140938514317213678937923056652900999518025587235009466762499224234533801425085062753557566443213064428699103803917119295228257006630237954362633642893352496715854805237537492746186034950047262044265672906900009021550581342948594800287041329252730015162176954392687595745581814264273213959218911442112879543783691128319942857324834551200317736094839503576044321376259065631173467324993714568107114264883040047093415747186472144356441893236983480364811712303155397048682949923455333016906121043899123401570078383793495835585923907346227947228164397187134080063014338223197999801566606133325659136669309371102097994175013298919551050105374469331986868284528438594471868612319345229234700978868993334847620081808822404880450658152780208154892060741335879600912879249962229617701369942979507278273012540736104896073470665164098959308449363445203932588260376262484430146355147804095558639983321619744955424817567070098207471982559782121965028163562864908261625432254602022147805420393152146032607820309837044874251614189503323043583888629313907175691910534405293748249876591327731633840295536996054116178487911274040903370418153695485475429263507084429434470935214437072757416722885990562443556820273750026016239286104656612267248416520077166483257867953480460003837536711227540753746202802869429718665444518462394693837279496299121881311893133523209541828139953942944254594534960111877319993153557777739568914981960609967554044821893928453669073565575435058843597039267691994707808397476383663244253204167474204230418605943401156457171742414542810435536522995245463982829951606140494653520928652891262460747841264233604770749712530224532395255834903757022719991440462836760275449613913728633277449344480763463627192161198833112701776048230654990866610286835402943259703182421830002624672319772486942438215474684815182295865796710402878180206198569501954338795441766246726344618117765881631467202007896202941263748242457738021316936160209287268457535394620447705775144011113041712816213741810541084577836271457753607988547437191089135368233554481715972909632717369963570404107757657816365243688567680346199639445920641656881688755426518194287777714133162956195720728346937942083803278503069975386627806773270806083998461993182786815547749106388231423575163273955257806393529488311508411571543996788040366140721921200001874214853878724728058506608455277671707624294068215586174131231075433297491192599837212717927644140068876415789896218165127966312529503760716696352510291518233773804552611246063652902774177144064658109554106688846491548928292876822170086646165150838001846244393458272440509222244702253905742648930332412055454101834550944701265966579853154942788399782414046409545257659585121528189935168821483807570245000446117030273395721167511624970457923842412927492204548308428968441856240495717108961724506982791771108732664670903919953804820784442469164441286744674811555655209413863697956268530294318504012945710091995492844295440035624495821828238970553302405622266197081710664751080847557647550405397893681209178393649000720392657822943851760560707837541088209798818191331435877222809356845713397803920761207962080083886256761197352529929867748671198883839303653035163709037670195890490872113026404514259519140238978483538856568802131438787356278297580998436081781190689560693622242906638505709059569850355154171911684665636783363012245880465178159332558750272455468364530457576096800858614325840242975322364655281494447268333765394873991874406385521669103623747582510474734286503687711413176619419246086454721758759057600208752951653502854002300399199541068577273632339177290553328916744497862509641044607766418797830416184935674905378226386671458705152208713326285216016784104484917578927859769012405164547595555755229559259536348499065087743181175497872091415963304703838780713701817883352988500677903240558027209328919149346934412195133797916323837777328362324927174115726663266472617710626078294402773775001563209430008280138615615518054588563333098439890247074975091520319351849208923295453322318715454624392789120159567783502933477028880674982780833514841804407732376196915711084709355112686838080022117384028942745808746666361967715978530419559400889212407756819874818274893261202948039930658888625106958714200058683982484239318453391684372198613259538840408954513128569000940831432796264498061205835192421786805600423416795917093296793296946224314459450124894224261605467643789042948133137188784913882574901229597897853699836692664762470093161620953127576081715565030806136076829725509704347646788323570486386273052782902408669794107538203124489254253220487281682250396686336726739014353393881416475629505889097659662678365999298742211949850139524322670107709734345666735170721982327219472898500622248711535558603904631222069480067538264739846187640994063175037686519971252117784725410726463190063155606018471597386836579048826849653930112561094637117197671505676879496645458041535337687436345627202479747520103428361550981993621515261716694403660568348111569645682293152059138876680574590559062955943966245480560549426081903380391460803132737541039237368243664354718790508940954855465056502780595559970300148094009721369573320500397999626898039073938176628386020171316788437474050077235576715031354476072147655108391036830677601482276631885638143550795704693651511516559686075139105804509611024958195455761814345003356689679645447818751842610078137719049421015293812143708441162475985694795198737317704128242674020584208353596215197195150483378756140263892294846300546334356702568058351110765675865108286021106158378790127876509894178425131030400725793022972038849478899418571549596177058391710879091468962981835290341133925687566362661911213820056355739013738976004593445007920017360496647914580925730118031001005891881359861254129594192961784855615893877238470423801698817459905959154055576542568599353520784300756638717872015479769368510810656595858412123305547544299558893031675041854881830815884552152212616435337667245314770743503310760429094537307935685441921374036625260769841486215519475021236781644768075271641023691271868753029077950703425377101189311816592530593278361107891194441293611812371318678520007856671389975212855794366325564544552911903481582302685443200614524840118005091228640183964823047664007776841975926212065039346928371859607218248238948502256560851223517640911498569610772014430166513983726254551321813599244835890694837945896407561777967880674118972474473437237720468417873918920440000595184173742794598630675347170558631540427750769541362014631062928145252059727127875693763477305666897095769061934090844364609014270053300528412614370311567953088446281939590045367521358094045486467772420800477113637693052231282808466624199770168185315839921385180949158416700000611830082067221328763643370404307322455129590354992804400211700586853347555999442937900904663171045222318103406605898918881020327885916905367090075192432282827824047901258034877967026661788835228034990822003482101478391720467495057113328435633381856297758320476946093229003212791075316292177609927301905119831161814361182847197193817367524869576369521016244177998307396438345329430992010746895540494947168479848482835715142995144141800316573955754815261766913198198531637952783948317813201590430521613830566917604697318142563746062779300078271325457561339218577958309486703117460848787169998631335192970163439360090828625380504863240869383652731447886238628787790994315642518403955365705414838502128914244233906025445270802978324396145337224300094058406703603783568923359173731659028304353981391565536003922563002511721680410457114164752626552014303342629019950886048858110299934717900990232876537797917005344620041584897029660045931823486146465807073288702955483664278530749339538648489624885459933561649851586355267917167672904649956554888829292173845196236358641599428074256261300251455045402497896324409841267372961671110445794463931900239227163586768692382956390944153505893142267510529434712787476352954467313082860926106570284105081137862588380248909059206510925934157443742736744565195284256307290251659332914734850862752760031054015385493977563378134963956703157609370996794653335033039744029696456626187523744236457365869596584272984952727965090380303722835760827314056547221228810996461144498012979227003606234422342934579728454846344938263386853420273546228636487602638138531516631174072188393312576629307492410317747650754540938626493558170074011260347552428699764563853088113872315543071975729736570779481168207729749632840792618535823024753708360406033133111525235626441916554920346599413205095357889930000747653823568078542779734968065554818257442324743032765104004314249137853137882199962066608357929000985714920357975745527535902573248889582480438990063060287386144277488170950865908997156889247231982313424260712409675905000152966557845097698507795914256891504197021621278561690481785715870688421112929516143052386228568531231236743125269015546903807823877202201053859310017565262782775085620934114902108167054367918450933519841649192253673541599668459470263478806583674985769783383972174328536835106269715548230233169998734450005035902208978350309682960727490959511409762901743400467497263653104926018531785982833623040493542848286731581585769900066964864880812129979670428379099333836452649951070154395775729927414600429437936395874474540771720613802694415616332869182625928721227055817754101654013426436344853223520405476407800542597198508197502963054396669874049759356039983981906694669611490198634582578661881989647426124125235837563226645273750137737264617535212464162785088697392878519532210558278722991125984446164674617792883678687900938358040478101805371038871102662437958475580913724515242542096961517370098147101540598416748947995253754446922151393475602476280740188039276656324723395170539324056299265666228243460756806868817362601761768609268069193051163754637191147997196852257665519987241041615787643752093408589099097989916920408530991816057027990205034058513215300796477756976087535340878170894788746115721837944572619209080274011573536826073099014272131574052428643779207074813273920728927686792737056855902134560426747576548196774746917790829621828182737401069636810385797196321897597108268188524141130761647599419475976360817326446991187595758977855696934315912707566294722445821069473915608859951624009182983428279118122862458879728550690738577872936421952341174920598268840657354484399054810810390923045167148437858030521560832691486341266822332449104120841837826325929780731165290657803998188601515212815289317117531876125952957652186897089118394395579207029237939122314561687656220770510895751163003862054152246292873558331082679578875430992064737916185888054984306064806007833785485687282946801862436068499419551214378750775357093358167663217652055998517177282837804647910547016725405248264619711034044819557411194161115657546735880416452081583774841360098832619982333067411623303510607670513325573937797275328603682697616705497859828996420295538248112067244972585337996453058048185618917177695825053046237940410793190363945133787685726460137220973107290681339010145843239863132941888921288841996359678985786735307894368715232054576289067936190968263736384090894043193630976161756542331319080850487936481715306543425474891552232255162019244249955450978399585632854838839748809927997994906622438251720061274772331236035505073457028622507627340416270364478534795548291930108753488983597863603802543812715580981443858760329891919387877815936940720257601204973938992433071095710913281031052910357574576606401893700393678318665222333297272176738530128287696359411211845110893040289591957476514527756240414731773107258739884402416707832171919144985896241867584983605052341862026523638933557970922269873347776936200851877928224437354276255407645692426127437646243726155824647552153975157920957321420126938183551943134382388356608253499100713076745682262568492598430870097447487647357745833518134546857665086719623908263537473877413117030722491939685466142406063369532570826364134085041727296618843637042720790736579226223957090821222402053562326537410301145290335251344983934288992288688419366651377646848218960064198715434885450546239893058254457845138028630910490622500659835317793216088585924245401253082543931402014907306538626647383358949954373863254497578846209677516403988848248911055792108510972849376441483358945548315652537601967695007181251902964437318149311853036900586941052027875329548012527581633756111867640990810549971723607595767169294111705171479994418081087855072900765015356394098348581797057235658967248018897355696615981807030469312786335736818956215992948939955022440024212601632009239988896172169951493434134517548931507971482300724513533962800952539661527267108849203195506788457239861775027456136024850780752322236738973819020307359941995719802231262286110383804522268356292050699832182189996715246286740363274712342296652798131735701176024591464554040553522586016292306372046718099419761582863527519797812727534612162709339892513522960869224257813303032163767274249875075158432390716077430484124661210017926766190734536352480665640898785853538272476894512237798528094910021942247521950522776490262679331000663261014421058542736151725968712464200956355288413118605526784325683807805163470538039244009847775072969300668247387865234070040423819569559675266522910907514114434781707809202610343570305309576249034935274907356129800124330150923831612076236529906408715092138011126877738277355973590058374561518996821889312297432340590014079086583738205509528193965927496954223283673662670162074498861558165957118245312977234212498166449440273387183097698459801040741589043377415436741440937781298901675400639967938432883845949310326306139730324284713959980829507718775267209076347034366332683253409907159272127022991709421819387218178369136724806693737044142278651421392690178331385611728143471023339805018154524602150852861572365421360673891623174836371971226802957576687388912892148909020359971165910155357333372154665780235457781120453254332984321127387602331446566035006846068216972435206653849178838452643895442823488097724912707344673065760204844413574338681310331931400542764453648010324321826298430499477717636275747155212784683256541549813877024164283254665198790245063678718547950405388280860943140786563598678245960100129676822177601090541689662061142677316037191346893534984308771131959951307720905991946756749919134426788592144770873561356800704960019491315168586494324419269769552929534773502469897637252444501512156650120506082262704974867663093908126479397112352645195295956836850942544464374954455307368053576016141395870603226596854730389372490129327164747036336150140758488679233911746602692077113146986139188800188019415052277678530991660804605517161820982292979461168398153352441127538411613464459301927795856965152184186752885266480588364797419093778338469384821395785574377670494030491548895758531303970003559665769867637798752329679354066755376726102495042653720724548842061906621016717875125708244505946136061173988476915113363210548548553300759955488735106146277727450324424980192150849438742701139085253981834975778254300279248926260907078758321968253185368944343628109484304205064995810147434283817434466819776326274637846350034097601359889100557895207787732470763176785255875506463560366919389485302792235896268965884677538238635337357295831700887309434089122851661935914583686280357180374242917905526550812950754870811582990514734554903094624065372772171940704462942120920640752784347336170106771201853331753927025275194125918097241702757244135853638438161630362353288531876120942790916066601184398638519278237894559555525283249744638745536392233707829430576305117838404856267608154250087834397953322110086259886614909847401196013028071012132200841969387280587955977680262620280774788148825913906830660985652597788789684911414069269996572928569920853820335090708045074643197081151534995590045639889422844775302064128077240937811098064542242686110068658846537865103449578193727200825034111602213877119461910422801441023421540173720600597174104847018870596094569880199280954995164397903196413670367027141605855085664175474909454834151684644009431981163859703470187185356326902357380584589744608051300594861562139598983742486068078994447586193828476542103345278560798359213699301956231186312582822854277286059957022469219542504326072412071790764066554702039430999830931900093573475076706006314862966765294449333357094429307512190662492591627254860480221025614109071595162609909538790806160178708703931896633217267049635482681715820080882743213602592051506261903634843997195815226030147139960468754251963924288152567328673519048060275187549232376543791902475046084378493049369427138087996415322345810963308895818644726662982765661343224604388467667741347371427229439329559704107690278495952279924644442130977972378681478876387043078427326860678560917148292254848529895213239064562886273171796442042920923291360985166268271475127509985698237508148055621391434971083006477544266581913144613314924862071737211938911743940137432933342605315453260243831445953708807531064843728606086291873158874693822312636096150447503106095239061654295806589510861407371402959130854426925271536290822010171148850772166391609154574166760654408551825225342017928896092087232287823312607314860892993278365174368321280874637584638031428221148417675824349448175807010371545218046275022750397037244340931291263485604497697155329795132453463911629014157873258655171542186209122832081682328876759328868808208277372585085782674814661544070091102408693950213901699130354827366926314183104702284465175854034938114959876155852483246874491571559343474931676294180530899998732396898598117081919741182973492324482060762153043084429979701834606761316740825909020876442434500119255657525966256085739078933172260816386471103287103595900219080362075448096165702315495172115145823901937482747307038815051577338398848797723669808622465652089173390267508919477637772731965961820255152364171492571212401197352977282246172630844736456277749351643922041035475252387791426113804582215888657023832691787729945787390833154686833368838264434766685389406531244191498024820603312666059899076978442035980919698745333128731824687288562719139728233373241268674828666345343182300210269901490609918707859423797346795064596818583962168885251758334669332205552919681081837972650616390184812490195567136580344167807850912946145092835947778228825343955032952862298758826805858824700076683942824142999558872963184659496254820864422448870352206461600297971894051558583456154029468400893128940610476660120815452162136825911778681296440129232755787332060340341388870359762166597126890891325337282128400749386241161532229872677176592787157755914361507667420425032468878079618010347773981274414280162277303726082632165513302009016726543238710158279148382865996634882835174391588569610498279548890084479982497656038530703705664408412919449209841021717883893810034488294913311299402613501551311011594233222838565870229058540012971852442439010936416624195097327138811858081994053803799222176230225429424415256556141221384696934393349425704090312644260175941886999161217390044712860321387618682864655160664966372532528301814993380981872687666617111915953121445245264916460255963470636805575030439506803715265237872442761887336472223936292230012457096129870435678722777366445526451991522417451887323278044470035035485222323623997486266698411443973835968266222197617730403641496907116284424994188610736054235185377784774976628777483705798132444750649068643469661306056758822538685992059703797179300397818563546074431226133710595710023395921276678084611735718236338423282080356189594293228724491795976100312547733625618220127652995294638318494456003741436785807437096071526592771119911492138730489062165226940027034439284061912068861053115797490005382213383712927511968671151891852004902569558303251023784426305801224076707084191641977344785889546328709277615045828329488397993820459294767031512187897847263721662050732697791357622716512831712367232141828870419709572473628383922119254976926365498569076982490964336359207553145452676983265898699401428325816435518045432682358595175770910250631579658590091354386986509999564172197530414040342703878221704283476038501521843067459716297611441997841804555537692196616082471005728018090333503386670878797970302058455492689178555331606190790181303489606696565926484879456585932620455078725632001791245460179163704462097329156389607072459701302306456345497430540121462951673136455883055573144412801659757161621543610862806864267911333442067901861892089825515073265739912022406186886774656990182986718938824694846571127252341422953523661770186758895858577407725846932031186290427898364185973381657186733472674517750832805857394213516693308651741783339485150972083220194992901867834043773471562685709177515570527959589979441054939344638964203864176526899264572433004747659162089621843711975537681816662868549455706060123393864854968534075138385312999320589468664368779733158388237565563745409661818957350275894051167721016579376885929145448420585264806299351853927657768197945655535616473921286751293292689316616973336354697212335217306593337837689985825320606524730705634551301464129738548512396214545445874441071118229381103535980643040674399492161327468047747352684867673830260727848383442543433133047074014469833964485440322422945323524048153310100590605061897346113664246625773207399422159187346654904510683484773057169255672482545426916811232915432449772310279899411613286294535315411602293389342373027207661908440632871055731228246634117771978142313435952520302430073254318331560653698419149929298471123088432864730083555238566001087420627663335735161624057501098546754484347795191393097395151313300889220694666607918551760716472853027279124467298839769885651793624124722780897535458509455876900391766031275029032128781628215355051579057292960699188428411551461227524687042476689491530508743942598350919936728209553499274759682521360929985657702492626726176417308936908545120066690504149187467676851222775751354839322421223838766403665097029495934444096733556241178416057542410835834087926965649171368494860263646008793351126066391449481489280514970439106040680837540839380069509887773214535369356798220753334771090950571695840867186415615985667613275611794757900035278118972830559993011826645522009056336951696003233093729405316291057211174683318379205577128046582746955286102056908290830695166648315724286883836050021651541027857135752300165620032870913425522765989603924937000844175435847831296279713637475231882710247713710836098309520092845822527139977820513897012502456756734042844506861425475949572709462558440499737872974037493841505653130856756757069957536502817281994385043607029122775330086397326109339147036501956078206175179318080218093108024096819716112676184174035041699910353256413369706309185736345359433820831836748826916416888723796350876174192686036152012710036038513021571145883990902817757634585568213257551687224724537890461841368213047933401397186176778852689372005742571035391884837802743496919949711161694375034806819002841434712507617961124305206034978461831823999683400057294573853372901173861934043915174437930291619882070040685670309638673837627290541614910417636503268064036243987453079342753018292431449602488575172170710121714923702591029826536543373205503025203864632257657256700992546975221615674976046662882753743504839418951624869834014101996409058896769107176889389041976075326137531603346943804620490641926569585251848856242371670754762862137282071532554098916962500172205245020766323394611459878741394030167619614527486649695953681982509844869063591868905516615937435412666253729187124351276821550186096255904227666070493670183351908476850470914230289930907339839284057493902795270807718584932519910073864626373081456656560015792376161641130165586395859770546766118032442779650256161844615684592361284835925772721200467354785266656827898410052947711132820056947802617485419099628542702954896106608875985307390439037622015730032601101204416180697804870717162871063172439162836070577351430240153907206511117474038971895310653209587267977252005254457752524757222316609987269946617536517688498779051056317176814491836780835987100337644534356445764467333166292294290743348181550513133894285203126761539698654759748463645994407321993432282670800618992591789593341841899328121873500199241779610051623408718148491996083145553260024302417321591275336725331309220394409362679809589176483780758000527599612437455722109507562702460587584211013405302382841131885124089537543359360815244508788586359848725474022954036594378312100019004308238297022535957108561889506369325445285870519866298063378026710610216140102533499584053862414341164865392612771656293020927297709874310467481163241020256774930306300785918307147403134977312154251076616061854076771276184747427278973474141298189325821605001446952469749778762361981416639034299710649558108995758525838302568207676594461941218654144706790417671001197110523522071526663674757892778857676685798737078935537242492223234454932758333439733402137934719765928438678584172358320940582350247570924589467155240590786288059529070599844368583164402377207424100621969949764287296105372328534240588273660341752778229478560030047365187005349343669492170142304589065040574574603959018057549248752452117835133856368918735871291231562646377801262787221694280423574167750605971721593768216865124641775809455452424614927227965945565354866291941137333373341611990851521697266208079129934923278988357778941268583686744841150626376565127620614778231632035109524823959151224030147666443506685264955141291177042803153761901152113566888094964059309936217798052651470388259325552218337972266914602539025061239768526341322476873836407691541238304632244699933093118682865236273063847942947837179372036044896671103794515682234815276813062875907926425382408467699444323012646104567298463447210272368116932678556867427875412896646934344559290312716020887065283904530141490973526949956650064065104750164456200862190410628609725410318988563649051030430017988950616678172567996624924805077214607620490180828143114845974064196909402998156251501912962007095396978894650409878938477338003011969663716262022482219303702254854805676439493220726949912899792727509026850709664516784505995839697975424496683925167469165103723473684147193073502026772974098895811281627370582797662651636422994330160744497180416025457562625296156417903599585348594895431710317707266956556915845977089517002801798216307576255280610156918188920328444216383896268915829863047680905469060380111562939081257629951816048716443911439985656752917421879526089491778746517406954222030333829443450348439847039434990420169474916672697175106352824257578673579701062386376716394275121674418384284841600116521508075066271518241539217113302023557564722785379652785416935716083384843187587168626184923819979974681773370238077792107814028165301557319495894894578617531190549803298468609180243839286706271188737573584694193718100290673245197930447138811986423609573775901298243517517794773135636766609261335968241629384953111918300488407611763770979706492915781712981656839817689882631803788464691982254753507877690608486285385440672392382811061084182132993747963766770898287603183398629416659919597020086330330636121745972152543033860879008194221001891611677015295479300554617198746956321994489722369906393708397147306947047045944444220751018174271926421022244294967816561148514739259297547611542254492179593493871633453886469191466185273748597686795695012957753002830276205785293137904904719189423538402379141885911315465335026348861510100490850612358272698802033136111227863720764644096924518074363929164867958073547538470793263015560892841097764898043321553830961661675936563481830358783572267618682274963762964721088859659289834911187777683452685349415879850970476540474442034752571265715910525650685202580867069320958712845685141791766410074945691927127971112079902340644494131522082755442667814988274741801596037027700797991450137464904020315601245697290314397986872642865080565331565635978280174432678248396120114543382258978037301465020665927158247935868508713737409345106049249804315719263528082765448592000591323523323538180452841596750226233578574418440077073187436519464928654487562418909240993145009302479597644847253768358487049008998913469299137283606218596140954549848847316355694045740861845789723166872627529960003149029949413629542887329624217412745964801735561707584866532055739468179883569547657576240412341847634420791796886120193661309282526043372990504966522053736277680370586669873812047436833923927071867240521135988003889718437272641909287470907348959971549822956778854171391365050444021407651799703888878767275542017771487248599904432355034440457750579747718399615286153585644031391474108598835856664189032365018492420200566185655220541191609699292074467411403904196528479111036837199288437216958333474102702537998230418213963323635183302712069438953194945207065307265217022576924888560176510920584651499390852530473448998997363334847580020908888365952263747107069567007616132286146599374356409480381293766587735442429114869824628831929370851605954247404869485597355634558393561994915906161471209538633128307190823269225994679038866561033624643402103854190586241848615983407891339832318253060186665710079312618477711124660316174113112226635931163024066363517785700894112244006608313367070649874656053440971862742080144123445388227896338776414261602900782348752327423988855248224458804163158517117385266213261496912285022772930046766581849211280455963881849488354330028865646098391731542507044721748492764919294139238407587129952423026256196523025256049437236057311230013309348519640190345360700037828242479853473840348764162430708681913118828121378717690958979439852136422428648565295512670448885213867461672623757011844369837135078951748096678931833215207167890790012603522270266080376515468918806195809456494636739505344984911357414607866450134171193747846379303776062596638891750164929226609096822186934291201111156666849770395366262085475141514007481740727563428175766247560087046643430793369780858836157992757254053831055781381944033610950589938957108839749584069300714578691167340851235955151782294956568119809290735705705443351876057114828660502634800369895706666301967666385828514443405591237693301676248034834664376506696780153824341140742883672448301523903009142669497766818372946953159415022155644987155149122725449051761856067077866758952611853028759700335425174849504844448522045780324409433276282867299461319831108835382641206743030642992035947005418030742684492078266039101214406853721537661197280057114788819428790947456244154030174995260031525155449031955645954622547194246540369200006084637356292092915319810893020256526067045015260143918919852538753244721446813318231244053129656964409600302274397866444062598108707331469399668068457159800250152345902481206981426178077672122123118826935421825931977105423719614863278904028958225705405928285408201639124431134196708434278686619322652803193877390611188293467635989653345161412738168821161267759923568515435921312498364891246042745283057022052991626695938472652323377315396046767052177522320227238773959871651590889440140087784502316592894280121570620898551258658212796563417461989931183515680162601361806406959342615283586568394636474010519072327451551608289688361960930376440455691447814952873901763983315996327069009017664887278020415958210837255732007867958281623084230044595442237540197771096845702470932761529779183890662491337865339278816224179302730397681956438176368375137013780942560224964321020550577409997315748798505761851136889177789439060795603557101862727852930326899618269235459936146138476347014501612339113738647336043548723580449031331002247101413489048247084215992108246589025655549372170755218165694669760045492666574810512186418581964591280420004470576517144312359720671470917902127172633439097675511665880936903016599604935291439112478369753314972117747553032304942347165752306199768005712128164293782800045568115251138591667139277674370500515650136706754363521134568695994988572688729877247976499563395667814140968869501759048579363422966725114577175046564796741419596135685830403239533381385278259073386540044748542198084168990777574079104604211548369783968853270141748075670097421613680587929888971161082857765407196406133971756100538284898297753458764277434380837384956337211254346248852667897589550329293426642654767260647185216328372935292109158421708990007613459595233434417582386790278909756339551057444020488544911097791093470893102313654806465488159181331412604905104271347220852647563407404671280020642649070780336095742049668119346314781764368481758202421840712949288556677715405963142424009159908021115567749340879499289145859142168147231470588273200818825016479057311104638704391221728696544994747101144973027197757860604257848413609689456795620023228734871712432922363266786701027245871849493903146427990910185155946787075086771169509135637518868988799371275314506248577519596811876714732791251864243552740194580062749132417716461554057254521808801379422152626864070166356429666810921189927272390159016290669468922463434890335373312923166147977447660936095731161436270412603183230048543962326842999380505712629356043223490559468095997551758694319107646022695438715795333755820003489718678684037266853673256489741331617701030263500750903126318836465318815425451817221619916909815667732701054557359666889732164263388476734495325191904404108378582631666629943085532638546377146744041193851832262434750732868133710338875671098944949109270947956704319423184499720814571827642121136268600548216283535254611896188618387250532639277358806335591998943454869526175485915310479569554831142098281655305097179912198472268610920493783244624993787140886145155799984832854793396863476518550962535885831855490372798050789568099897356953235809454831358951321495892692107260186096483030405248949607415419886894748235653317135952667475056654798751359832716654386351530629986897135811257588779832320740112654945645196280014452621338501909516460203381075807158781461777165757513123321743844825717771232098715493946692866823670826459701614678003140939964886931638377051005351479332091788271847165462453602169616115337349461265124570687622878777647593677455262935800595190756444215900136342764259039488769239503625411505760402080099147566547674859003519322755012244662272734056815253148789634638398129797267595404638384475982909391106630563797948110993233593198541366864445306702455799653242498670579191403177887306108028620867258614756324891900561202963767543070363503023578661317147680007434743441606995256357661503571477514688913432697821427561153361683032436453638550975906042205051376115723920426542788383206473962445893887350624352987814396218358486691070614254147859143054201991810584534034354726066357466945175939847860517098761582044930314317616020921130221174941537602419891558923891789169771533054675769581376967920070688892396533656683726316875022968379389180173469450163728498360281036779185659917603758828175612027719757911950416307758810903073453033880187729091485204304504784665066579942117090364691210583691808876058660694131233818167230332523609376204445912148904766891834359297546846959860862893338783008628671757332331846744021684727686861557598461574399641504388650080944696494063511491341232980424956124975689668013322038545824549968525490017172331326472566618927137435923404836348013202180396820139053233770238376245663795789118159150534358848731613120260575159193839239939569294991772616864623580153657954598398458589870479466988074643821025817853040844036591382076027014444966005166274264254074807369207045602417401482167102374441425777015973085756647570682866903128521051848760663642314268733532264612502315435346191004761074174691287218669969964621806373690367849449814352061971516290824140332134175126375527126798101270177798056874303269850210308862423197692837164315531511964032251500107372760020523579663059297692032109286159200477834433407008730993319849656963472076015172315365115707253367538280309074539301279038990490920624564956259500916204208003479193222318471042950075057193681290787415000381060766809951523676048348045257995523085253411045377513092574464467224660963536893647723780525484570015082854860713626920162920297425122619650414678110598767138024298261413960151114283586727269922859323576587174343051297267694228159187794465819506012599477003145562961572767101606956629498527476410288019067620005635152537363830919588770113596220991836387561920955527561595838404553515367979783375681545151888403230793804350056235633269153019196362139057967330234831990428888722356094102807788165321993083711327950259234376010257677844959952931517883193186658060365880449342312157485093316091806951559881064408883596733851599699197738576703685196844184804437296724846629287747244439522968052493734821112257378476216343548171418311563540451248063246649276120189645605005084887305063766554086412026038385121782054539118875406203373603008432312739287614959670101864366954745717879788098750605462553167456769486886372880444130911000216355808074821553270720636300938668823312708452543360795054183750832854077720675691069766950870469534103490939198198134856208792167524811391253214777960906156587067352976742556198507727204337694527579672143354145767270821015942439594477513826021286730462183631979271391011241764401319952739526390156646749770767153326437201115162583753762000867181038529048090338111200242905200013091078048200287873286090947230416881748176649143007157022810086924163233865197696067106157967008334728326274998103335141953247886999940034370512007265331446525845756496527149459506454240340273331484751686852871750818180906251536303649117250153739344800189815806553391412674353302111311775640763175783080514556887378164127064827980128316915910081047593836562905955928559393020452787316499747067835692112031761656182464547467131798256448868165258706324140571652646678644483316988917507303520392461022811164772992187884110603223010743296794128467354348444874664697028409112976513251914935621779121155010864431102254970647036759501273483590573946068513390482226234425855762177119107223195907019613170614672083505995615751862492714442516586730734344665757883262346636973894764963859742421203982532908308439680812803564235207852041961465362608553945909487928253835098437284635442839765667669596055741853101430027403004701483860997051417015789457899912358972727960688997357118582592627219426072391386446859260129154973652000894852335654852762090437408093222589701770458321058533715094365288723976132691277604615137383481605859917926130288562456806532642929258105237274342831828330175629224851242798112154532945445615596371165160514768594321382947873266944485671009483672232097911840643090324484351541671310927695414861906080276548331462037123039968593858069843226716718925476448754142199577503067324781528680041368986526935779431544412768826139597207512330721797808830380648977806039033224106971261192266389060136192624791171180293325603954798839745885134050421964006955832395622020194973757817418577506667271679014295037860165897266820630176837822203922867381992039679892414072642943323754193118997086189803739717486626194801831839249623047696448212363534540770140031748876620375406836908024668527693979664615773586403251770019062621171801648835021769528837121856230229322218554105555173190861178486966239925884760077751320020315327136188095322583279210079445178809534443521556527848390759947141163068642365049736142735709715360550903818804127039725040706272817967368716354007268896986503419316204336080767348371873878518873198738697551822549300149254017554901485900729517279241454157279785274783023975452901342038138472577819662229887987704606465170575801865508020902352777238466867764364891831318855430501468819490842815040561178069670012157330504105796910113457533620926406130327146009894561676393160605895013358213947600244809337069523785686087703714406360056009824703349583549726746183104292032268219232340240389052887094341244010866815533432826401438688412193237896915888403590934432043946528771173690839504478837223109752505037857458843349379574398862180750739356334788151378731011649782818123810877231344032217003595628227500943945001872165522691458078899902809313964050621735043749609832606483441371818836463139988555622578010699637555200811576888785539990894051475839439567958075029084337853384411025940223083344020659521724792368845447076747374347288800377848703678094479055737702768380267030163857307518266664447017087060602317076658598339794320106014511279362068812331298248884045064009951073029861424734114525595350130476339675345614436312010881430176260328453328098593710864412711649348425424448438409936739960188883605665059101609776893692379426560148320520414060268156646787703668906247564956893537924948379643853444544250276627180031111410382312877730810117576789144695416528524793469645375079484328981997960464927038587193047349928404877457096937609656936010174007340220729810285921045596661010379428631198083018004729578066043277161044318523361691852067349545712730651557841062523114789010576086116548675994137612469808780620932722364586398367667862864338965154662676558449890725654879840702586370742030676691916488754227174797565819687548164101002128227000760719313030044455340173975127249405187299433169227119018453055936982764397554062649164693017661695529034945490949297018583529217862638695888414577279853715617310968681421287746976515807464633851213923461956162777823283473342063101155726200316083613904239557256703084017851671982148549141668332760930213402525989542133689133189102871622388002958421102810880570059571119952426726323418172560475536556929324725092284318422169872209217487274218922045389625668381026755399935212039255472466860697503601500671329780166890291122289216989901996328342031192197971987366064423556823573028910745664499206935754616451030971053358921362717902867251450851924483948677293456138839699984354516228658745585862375703723814780925847805927501310601607672755931535837165090821800158330440726846038444346913563247930094375436817480747854712507943420735369906142942681422356098627853289048731106257162030805356431300211604877572253913694129002049776117853920816872872240546922586127675231801247318046455665396211090415469291342910284812348819732100820001126748181689250474364918590754477391185680441034753191501952759882791049524386512886465900007649492436339489841884717621504680119676383071289273561142438230025444438742963099509692956278584055972686492410468944035252436086203435658618177028814084835650109438261807937007073777635558382521967381512730360994573921586483945514984866272992131165784299789189353717128431675844388090406988074893803680360201859735320919017106962343705861119668907898022888702945195241904742318258937314099051739705361378785622205025909267637265753941100748606351441264043112211575379256094572910546384970907184163209236189000596169480643207340236298629888074409270769758054785269098852586687164992423562750085390569105974114575998928958496659320851009766093646832855544242301433065173876805810115577703839019998660697086765577272612565335327933753466007833904320203684313983990351261784453170034371761421025552373566413956642052670709144290936214747033771322696861513184296842860864426708272458633855622741769252943429736371715714364715829607498001781171461442905565557248428973712534636743622409516368969172116185861188678206339035724220610593109749146910973911190241121643185072530435371873943600141069664524282431119426600164405320546120356343683775976051411257921734512999354794623238125178421774823374892457062277381675575021010947824920212135003571052392464498970710588555057271836200226400369160709165734380934864790918171857853340320008570450868139689115792520850327639054899486874515210748175049630519280696913969458483742010093215378676532576842997817086447816024068436899039702229691957587725930668073459507662113234891870964614790096745383238129220339024173839856206782825050194541762190539770970032296621980301520311456440622931981402356928567942900344841759247730598170941371209686326629742440173024205545708636483687018675837967394171770474494008096984452330160069764064110968722035046289881075835786230105581223561962365232508715972427672584042390090548495332081862209043316438112124772771911711551740509535627224293291672818800372523407365099360493324391575692184508724555891261248837683205572331090763768266630506989899760822308778030337228418872470878020519056190378039517690716574496339180869535721269036550077820145043980064169241907184502326006131146721540419341652911686870437689833971160720312001289916308281145939881141411037163201675550315169203290653474004444507229051828038830031457496920082012387661624293933438686843135842701285307720511818674444718819244935821450222800229159319102375817159573540901291344637134915847268332391013052330389052743672493970513490947402783339027225415580078423763809059142668150829159838145358927189879303746043309011280841333529826241577035977633716823632355000156618416309583387597404664821954501199887874078152709971473226086083987246277449357663049859089303386142904960845964053763303950375282702304229563322585236519504782203824021990909659579966344164601850400772825473877487839727302809654476193422597025749268056540405657068376059506299674664814995151240857975827864085742684687156784255644113061158592940371065394421973635969880205815949356706968141434720501871010479070077554323091175207114164854424985860066425749092968185636884592751426744660046253939421587813968686245703519066431847038423202077214638229183574048647143151883023232331030767712046531265619212861696653463354673954036839209612576673668213277931706042165080834497817592717288299386671214267881696665901346774017914603795622564347690806996953435922242448164791345021121017971057512493783934581243863112112079504814959963213812318948442103669230465363048531669864951257779724683106650146204880151536606027426857271494309748095953057742262109714759474371544004191825592891987044377149563508664469088359449748672212891529885678093332275334948573213062417159804552668913781304474870143321364106568091401529216658755679703038937086463403286444960253126401649432815198189939044731152091537433071764959654160958954979508362253996126526295004689896182223206761136397395706139480606427974573735938711108632460414616779903280975763517124076973923578376359398718562397784549585883305045639009786962699767253676960641558031398427436648535904741573141374814917914212527797841173528411622618132624113089570889145654990684259724928598477654591906923687412692468052051346723808908271869690590344438904691608182622617858033774959889519258295934981791891026199961663693741103166877476327974159573854322064694942628478908193555897703311149924723932343484747244326935532592532442099513943137547920234176804659923997159391035781911351918912277719944340650039344717812462423379693175982925526592656090247390008064181480214957160115117707989585032716478668517797044262139647014474306460942529192655818970377328581418542769571861441085378396318517499614900455584854452631985894978434334793394659803232322234939087898130862601134639440053993380230437074516074322567783421255924296435702958017249826295940729040063837776013596901392993244719829357432518106195475554732664130524182254650323816358797906167621640360451942049631275562719175629406593992227401765417467182789188680458479025745965886751674685922661802611325138418478058801269490814726655847011436062660527003863181674350421100637598514880047140844636743555602850388791591916742775129799078299742406070750623188514408524556572504361950736766658814933517359122764629347448842056393434104045016719456803664404204009703802831682636666836452977278457774421258437019472005420322776475401221057124153182980595801059360841140512005793700889855653999237625099676569753035025264350248918865327653057390235470416947751180758812691076909624536671953897513092118440372514187352779039146355459355753110479314184036078665937426906279340988071347551084559494165684114745852218208117550329587199565145516484866290027032694003136179657785875827360170761901884951602346055911552736765460613411879088697031913331054648646742056413368703837810907816441908318739441623734260996506411821831487492924736216249860075467548307386957498977417349805657624850902393997815717122016934277325168370486274767401336905244555493667048082223470551528520738858797208544449130193043037717537589951229790953352034910374671414095847037381193204407623577469743131810420588973618943864331008611586097686895063931623541671767690978231744431902608854015420110137245803134991635174343811980023835786462598250119267543699192084082071371522431611387230045147444343180310086488076341815919279672556510679665278603998594836265390179568377209774784322577762830658557528648703067287463362310474931243167505173198290381807969824582905596206971989259529055664765021369352348775924079128390135965265789364297125915132396491066211646123497162437772725879737161505734593927397341632716090875133675226426994535909845942848641373657901811960519719498447213110229619182342641028298907666167697894142273131733730694921473717934854703870065146186924416764767391904371327047502629818731418701752133446135792190519482503400963508534184666160359660380486343019911495480840264134800946119521622287405129090604360698167247697752415165036384040532250952495658245050356592311029783953213774304027963473009185346389654155537534238617166381616106273585604860139945732754896854194244431736096893526194289971888499125213584984689663296196157831162045251595318463558163058225007795951586760406703826846552397063957996062795693550273443237591854019647273812100708775389158420463460985471567327233120092316080426555903653737494762993683711616000515232813313259921620351777554907990361886159852607933023782478356808869421298100288732652190458295407345720564329461940647599834735138867970097468141448073653694675859182701649067190482012666359842454104176704196923517380428165020758279430090210632950928924669025449786791848641873435113448249845441864561460427874280639472498415802775770769949873081177612667217137599096789098117265516442223186983555735881925933453706711799399618301750603758154197107823658246413924204809267584687307262090561360598397105457395370970912548301407907534127671104547376037680532448613118953804292780416681231738044443430891935265419715632135241579593317559396789156356338854226299015320949499894218691886425851549939874097023179705232158861445257216376942598039222791926018359213728603553772777634899132890831778541011354780155299801516373872146138567529485113825477077835118355638762195852399735606798306482963396060659756720143955081213044992930091509678695069481642860405868456858939915235117710586200406129072951450839631057891062242006459412290419848687096404725007645137060912286548700424375042031424896406962521823581273055696774166036859756850265527627757924224237122784311669435621873728195798318765420812226746839000724905485125970393601561879398875262055328427782239462051561412648939708667985347828407336278199770736688457810003563638675590510414408405629916511198058888898909240055831824623446557533317069598295977637737868632797109913582029863791023995897961517674228529646607953596840639120148799342261866055595059504465770436816468055408096189993840580135457639068222851120886554290196807148560213832821720942251610545485213744584479619421938424034983323363955738906959584224777731515481753646715070502051742336513436174857205136016042709822178685537824730456833846372386326752830637152483772428090414434692031770855950488908298632774758993828763308979513662603357779377851331190011541757354283465289613610377114501520900554945362968614021624727933753134902805324445864583494494390870992061795811863458114857294389695100726173462571414993904060314760452673307061469023785839869019796616762146709586580854552756752032570960244703836974988468322736027432800050957222056390124472465255139305949726938720729044484908696422044147510237927784279671632276770622510518915835895301517561451927743042107609180425426851082111439577323175899195442901689204571108922666765690753216781443272220195751785145312844413062777239030141134048650952657335492844694198827031419964111593834252773817034047469039564112286862694298915763465004513404339222215952290609113993467780970909826564072769947274174366741426870016845219817560726150085877493985606007479730403944818318248466399384222189707151850528873293351529383781842646428843306514313389911463617119471659445797608274464855433411467742145441753985969344776052525963372672647393128401510439399269935712241885233702365966152127200596062970242499190448706124203020094304736501089209169951994757675481821674720239713584981971295454612768663147836663682620854151163330640148182131349119465962464640399355653869347004548318184105703705930890793904609969062039063980278115393587358087346835044539946892254646062554499560251014257171440675107281878544741594403777079420667019578705648698691389061295361597879619991014758155102202297481104231122469972115504996208657742121588690106184074216608744919301206417516781610570937988661993528731669291272273153382549996939899753129912848690312027983359889479570793760816170847796165231475248449199897320195343098120330753139276905741829401855777486805272626636734674190400679628576144389458215696067318070306444901673994351114720428140058050735361357216995933357293412263839811928431825910261829757071304043474318593646385763010794412147943297156838222128956344489964864632405997762205762815541475425734906434374452895825144105583722003634376032144281616849152023692976115448386072298834972076741345615602883411645464020067980663808119584042624185151608442355803702843983489966984723776462641864930644420173789328511674581297586431915545650778055676059327987638207116565736098676835584485227897148469699536885160072058698001448675121723199358460317233287777740177587012964723920969382211251714362747973408778163087055405820268915885404658996170663219107210415108120248842777451870258207238620912774269642798023744433238968374932096203593405210138181599000609393928528055941732552169787204015209786603488271548154932448775431622012635957247533748306276458090188521751123044204346159126078251916611319787384644436434834840792991387264905649423216778279259198980508634714290149873396066743913839040651542478216731368663242688637009685081236857005603328934924812751976351496976826990010404153055766456776673963741901051277000147263733807792511308761550489446985957358487449670053207041680267606201938101657060946468341212191107538525598480557905876079911160960016051479076549869132186197947919452441788385471605665874391461460312890027750060680719135912100831326000670659641636135062374479764337111098393976695752592625050597466122547368618461857764628724360859095439211437664940676220200478260984372331816248546842026685574253077670245842107979492177335287666304752845915610602049359647934125287749897594968646380506653040477022743139082782549315684048096826295914042129197872381547434409814437787877768192450004687175095418074820658161232085229784723945935592987468239028919339557241302933797413938956321478310424580550803728750723681387968089722134440853083429910188716459877798205199855023199774093407952996008139202755905387214775675135919604478767312124973904753070978601338747970999199943775429101473081282571087949071232605048531228857790575851319985189792160249542346426813313727212505254632575139096160677056132579452965022860096234626904748340234200224778045441576768586797145499120649072850693026953757873551443786420536334656890358198992347185935778862255803609435816738060755780177400450105547962469822237700599905781569883606668883237005617817027149547208083577148572879220959865898568232376112446182460353973855996458265037805976003138919110271761361807992576014814445010365134157162202133118557647734728717623769049546105892287919913873732822749748396566157160924770809817965169793009974593967383583253271521435318072232657782594374051454979572249217713298744111360472193113451901030944735891377488146450441901430019520119796787551246140635616636535121743847822028310849946640715807023265907655287549206866238282386347042611151436637963812099567016348993094152323621093281692718976176300867164593906093791262789471607088929642548127178715004877220328347028132119809554209190791683339802182099830139249612710363264721539214732685779068097325711816635077221213195430965904692587282873999715450463688519136752622931191197931194865207263086666964303313005944965536565284684487721239544847458107659091960781386058688085793914190091235642744881706239535629929491207666559085007924111484503590488071793677946286096330306778691460153572229825290949165980542168108648840519891372819647395097850327168341861574250173191072486804869477044326849220074331254616187685338199966549256784984699412357614910501669097191161940898143928854808930092509133728288323040306317283740821779758598224666175944752373435099084744265229880408315658643638509510683159482702312832104268348320540286795284458321312395147504984267133811009809558949328138082951361185112477367740783739187484876283736080506961341596524265865189682910714340529688614342601467934239022184431404571688896205490063554510700709869410237920914065602217537496876253616998157284226277039409028497180027258399369035056569927825742889898663454499999309230919249795274755099446051875027558345038928294046524029840233034164993590975034187738299621079204151079147920346166165140599511470505678288092463336776457186980245272500093385132608371401472883242474379819371143129815982599126218066854694604608824541614379313103363334335212681450601184881076919291113951252349319339647359129966986492587394345835351347291152225724113470615923656766689773022745460546333866800206666910960368525080044541809479337142648651532260679298108721039529673946670327732566421652805417830580271430355010507822387215996052912964403721146399930501732721749976663295509349773644265897521487557959547607576299931538548845832170169656915984970346508737082757747721312889515153977431054546046904381857270620751380541501532867885495236835845896643838635955185735488823969601283851676929218220638524610349452728697012088306872262106617668441230826397823316578906901898893046035472035545073381377598764566280314868586099438754785882571283666566482180988085592065926103398663604556353685939910680323247431461511784906938172797935056589932096102416836090467039488798250553690867654732441495471725562317513835384153008426601096725804301780065202267008244590291942540239432465833725918312691100276471241843213345824379149564751409946478490115909338488328956874833748789754789043210531550151730551294101290651095761590678827130468039345247223146719067062256055851116619004873467821889511779309658125289520365584862435309830649177860149747657547443577072151860998151529855950795598844845426897380441692741571238909742916417661005620743942733006513160716623140053969747467066008119810436878429643090471301915047344073577569312524884541472272552155480334955810081546337033619991190181903841211325642193673132166211396888560306742758889550333272054150168308566392138556460052569321931819577964240297286724204761189815087453065904798013869360485960307867318637630595149541774635224484750774125531191859620936518297564579123630189739877657203795632457074354280858622991488646451082566809282746724223744702782271830503413085253268144196955599729154346912343434184740636500088312109744145108579937818270549640333772940754979015153847352124788253130208915266329834638986795147859968724263034463770007309385843344985164384169393053416187977760178364850937876009516134458217628888357488121520979430748510910952123402881660828440576362482470167414204353593207610051115026095980961357312039540797026237222650068584026210361639122826122183735509162469425344291567944017348531558105857824950310292147448346292689552595049678276293817785262004609372595006153983153593377218653821570841929790183842879809020987028920957424039915606087831653126819044047133425111759052808096652521912516566095586360783400366312645165228775097997764722920316802344255665882015855041135553552562524130410303095759454056203674445101148783834565031016673490225373960937607139002022363777469731587799725634354104764488605453447635299111003426955127218384473165310289867545942516590259717053532501850518239979557637437116669695719953273468834515968312005759868149796689792263536463327837738778913779726045836928184747831289537015821058181660296962496983390419982723153569213803635584008900606968450900492859129851215503310261348486696693015559219413495920996636549954392691268428696986953923994086510243262364584708604523319760734205171387423596026623474281385648223884567037429074561949745601490551077877933177326172651807082098319103720199799340038786761145677898833745164010776329567205157570992578760868965480990625028443122131569284199120087374243213985974021679431013519146496148575241566577647234589538748988632014763795304790221133550652846571942965802251862399386213087921296469852719622835510483771524387510345707718979118869232553776181047266818927795308118391932132529563226198562087719174942569072519522805685017339593514631631163941116958691618274259154837349154212902654261621393490349011334938592256171522624521129259488947390438131848841284739352576409621791392078179308268565658126801126586139888126199274495459116208233334925195359924157975914201145511987423676108053536559668750137945647364455660316103567300648996246181623788309958484469652536156522929268973747843504049117493318431330784682908232941134818561538361633954327271367677841959673298785710971303028017599456309671709018754495397236410306444084702513834748380684231289184280120190167790811600965575062036027584363806063658428169033431989794007313089136120436665440944953145730350883601696708784122038600208344346339422455771439217878760056185195490498917560481427448304116903506388741989865446860231351724779248977876651081257413286755938224989697293955451134998011074571843850777408521299929095547419935755256679902654273744113558457047716062409567590682885926072110350731017489055586356827270853087159689041774799007691350729123042921866652205224904329907554353846872816172554999634768570837436645234203467632889868600870084780367896156236840838751259845094048243535649223709566729586572672472871851891830301491212491021975705113669255208302712374424047962699436929780224755048029670112845947459122831308673792861454056612519086740693249927986607602911393515457502387262798887557168127094786482813259860764064599255443613618769168796697278421196587913440713724074406949541052929322753262802771429083891606123175109019271188203095066462030111191826644570957607473917963175325002931964825709902515877477455115726620139009786898784924145609546094566241811966125620854443207865138447449219513944021308912358444661210489119615378894098287857553109318740813889997195163150033178832794820054201030176196200058093084593342394587006756687141272488005801257077665094393459086559880282110814995124990440284341600047411287954660471716497587897735969654340910674495072356188390367448573091554452024476540697786083034067355700436770563125174349324214395797675351917623825486600194953031341783547497533221330039935187981192288538393143122419599513802330096668787050368422885221934528013008208687208348428307934614775434877212349031286014365831971469295322683587529232087052583432250794521307277889543258068890127042500498921985637665693829772095781755197392189163495907547685891680801855660776573665934550867533399292000088076306140041718258337409700208040322462976205673886594925325395619695836897907922353024876888863325594722175952298044622365911568694093229423291313449342633266069565052663724775444865189931439595865715965383718061081050444055635344753842053166153418861229538558985479878408051236075681083631836446482178073913283026285917338876941809870269931306262732240642411252042220123324797192158969564909442192158434385988915600419037300082073432059380361142845637600871771907225761393678812329324124479895033646566947553010820821076987541851029749150387382990243644013480290863764508520814050524769016440013912780762617409489004551318897121534880340030683095939590004496114766080127805676126619716450383257582787787434361086253830842135105335109508381108722988369333605140610909941666023393771955063702759533455998449615790174377639567268988087131333867276501040687949211327886690471691369058959234467682690484624857512603144157438620157635454343753609356790061352456071139160286070501796992395577330924264984176324590267443687485430779156663541391131261356889343475198356399076562577817669646580597442686748859508393767194089400168058885528859953521920870688714319481953254046111943064895347052549690554715445789408435666132210660474680688459471746922347983260791586472315436517038464695539118497346573304128895267905379416956432175023617310560262249054797509502381113911475043691778672275367553315755165400127035283520920733606933234988299580085316559637232360733689058063108545186941085651038775909561311825194090259678326646988714096341321062566698459475494185228697729842686083056857036045542229544962872507718007795393660024626361632476024990482434968056190902058478267056432241737018383462983890855509660375158013218084915471978671331413839183330915684943458318608880681448758039263254210578016543076129106122407213121439475663639720489069889551581411304727455884296769025392840491264700718759454022405910853778842319697108382564860716975188630853460188204939277306671765746032666586048987829543594239678224107930910654942486477512166914000074852246336458566582668787254951030308366656737246375395752416957831855838158077538615192239033467086727401173657831841387394811434410885196917975627788144825165384629032944593128645545190277251117778427530441033415943946125313617852083730056090301857613650588962154087118306724243549589549862516303417270937782718136083516733290120378801227839701340106948922629182885201057259455246126579988550023224353753313073274674076938953525734035870383587054228360467661493811461503337709718498355321225623831440515350003499548923949587321541087908617756428480545100958708632374286081637335097506997470635691807128260920249612790394894368916025148218749652233632612227127682103482829717994043153580273474064791249289869311095311408178776526023303720228891839626428270319274995393435776669482174173611233659158860635766118393529851689313949436506067997904934275939414015427827241513254920692548835483976310252767638009461284133053241901707759628678166414849518134002512101460878528201861853373593441207014800836142350089728247171756117963275763308830185403633504408354708291378973500974887982495726264214558872481869490777605259776199115551470527650809166439544216128854976834083248337494611430466351212087412896015926233504248892867481640307651367229329066312598202200192855653267523139034504464912400824536266462199381740624939048860316658458671301024535729257534045827933826946247986816855941157828230323504321273783764267061343750069717958335202495814616481291977954497396947836349704870645785221860278471359410002590006047299579789312407117376419392576246081333785782798603577311768137980861548152187315806535127018538825152267612222047481570344663966073992968823071842548125666601756458802448292934660988793414026244150496029520410387136641569607449743507779219349339547472515875299441602482257486831349144843504319101481967188751564589327739407011090743588544964235484897863819272778839289988774334357241267667275373058434332656481518268914721181606132030856290479894387175591944825261967810753388735575700411567020992953578163144952973884554831742789604256036462423740828373820340906392842391414523369317075015350570413125046456696065222532673954068520383472619744058863172512240007221660149164128016608493702068551071931863108744567055374482698180149531089089133551524591021934899068783471905598175421399121733707458928688322650558558741679101501430840043149313678865188994911920537769874354608575979208863423253406573953570731772741627045182693292542312687225153918795436120644016740724823835945466512652852131204736566578128044075771966245635303043041647625959676437281017315730460829363551755508202884515300984857842687278158954285110244591614548105774836164063546347322280488096365922454303303663974078825575571786644497745958533061152329677669194080209939787337399525140725900236365901414707731844796476560956580302323118692878041827692768280635891485435085381746588354508651477199808898080531150092700803184589750815244386659131297800870589032886562884093313302304536848063231627244388107011934427708792515931778904645388554779734848668941764059041898298126186224773179683739574177581513062108465413449489075109246933230670973801746792987041991876274285434548244715540313753378313756975245524082079781796199110427561269416251126151097263350852893112998853119703534047588310913279485587745259400488136223320203662869322005368593809493220982745065310927076508033679423202677976976383300625088227996659698398851958594132807044823626213991075484150540015419283708698089657052179299511198297139752194319586809740804312806243673058249702914455517897977145924810259433196543117990843967566190458670066710310008681886073198654480855134844091855279474886038950633229414362329020660572766286377446761021625962387596794862145195771868870980530105602719164242563248827603071967221943404453184364226309482109657791511740234438562644899119859641999517142216634985632984433923034109480203601574706946575937617785643234655256020917012500544907327964802574976591584202435688462628297839383803190204248636606936644763766321917624046988889774429172180343941251940012517095671068890294302468484455333993935722370825174987740529161475812396124899323817743116992998900099960114515431777418058270881205935144575515832454134511708769235328650986031524274487628824493039863096014444881980963468211122905355296639692192455309551575790514277792188937726233280154363220568977960345884072305141895248680360513194537510753377975313715753765287226569760577384683104820847040257611635675737488144495997325492733701493813420445073763581370797384222381369841665741319720879270035214518876301560756803176795956886793686360067697919749297014607106206905607145904880798524249155432041114045466822836745057421504342950818580501700768859269715076826446044540481977509629884538172517826940187383931550751643878635063259042123062439436361055675239011660834432541265692823059714012362642360682973786136402439515438511518743643566932388413786566064432162967946853681588303096415111060970137508004184440705298578030008911947595627865321975265369262762241342096339856712465024989473621644744598622300621197440330619685270362798283943602909315205097359878669295178145290875044440760389451422428792132224196015193502207002737733407979845044581852724022584137665378956839259293627057765325080716815135904382630635197965382694453043166098772176306826725840885560094546639859024366818674673801088262675011786296833374842852543745159310185327137676666483448780138475337477407107672670224312677003936607464915549802014024986028207521613629890702004324309556643923520385060892717264752668317685855345039154472548410655984256757156964163564172203170120337202317495813350451166797323917095195745819063409954875738523288132738768875743779961619703045477141274179779977491720073100656732568270940283507996938225871091331091266321442815897150064914892569192150618664240164128097402431630577779712879876129562939992577876901568197930107133588517564975989356671896504610151283577063840203387539606097914474053808359731653931015058025178470066263117426939278382660117427039887591763324078699921438546150763917410758452505370784016196683314343208882624653359094479231749888135118180405429075025435080151579619506924089733049762801963026417260371386043461920637993628592026893630161084376963249177212284031499732002484839526305305906215827706095585134183397845812279775652858162650550171403682868410094829031337157709615388438214655419895752829642801730820832717430818762484202405065712541683262280524140906745078881343162150464023853924622888165479440643623894140224056803844658439895338701650259047917941930000789992872169158853920953623118758296089446200827355660275537700061777705001727182388820438890732407220190782529481486055544018960588447444351748877447048270542617880147328249974772276183890692249093269407276144349405166854920043740656400827879034453380971898566903503026785351205947474177280859012792846413669740867561606036113878073173708904065431631216717693409946184364224986000749418431021799226963774595883468615652706673550795228899071324048161881641120435517524622496018183716209763529897673706578125024586801697078299814864653583253666288276504148860652712568819628500996720724600848106547641208030146410117590094005170121665143317548103160574174828146655959677173361705967195893330807934276806744670721328212824251633920788387815455129147915670368152861663341766770331213306913492348603463539895613105948162662114315111448820149934617625071417747578899809006679608726568891179963706807770856394007489033632663367909724835471284231371990674241153982968394202982727207383284357069252208574124306465092910519205464558281078406284131356670270905298723521963591545830020526892991986514186655575334342423742525441496676539334744635002278171390431422839205692196272343840036619467227949286031384215467062059513767467443278968622139883736051641849985577269970254285179271875494167943694482000695040539785428910787879164773172406694061965041010984549282211222498748502397823710025046479868561384670258850449657789480251759910291723091752062671347582860446638629604752529734867647804517350873786292966758857465915363573262886922009492312981491739833757122157152418382899542886896567683174534231917943148498329465096966257904038208809731458547718904964090052122902646111221066144211634090522078180783825646708555731969822914522329012179988531144525715837418528791244251547084376694138596179585910672264475594391224983242169350888665852834454391287380240532548127798381164729007230280884663353712423261813382192992033202562137684156039928216955113580096111848004773868530618011323962129565554804581989855282338616079396085574087427614721946597574123831022423331756729348247326384582676670949710878557309263678987044522579983464753460536580456953882505281597711026407611470792159041635574923057462826481172747441721147160122421838517592127306976737497996151168654991775059889975021158529769115622017576813604162718913652996436172058127293747174565737341661777220524579046492231184436664786154603359359220366544716564035191770998412889588027540334400777647558914054008860980225028794738954086051595318211271480939516178509276283207620711064290763675876935029248721222880688862909233387442309413408940838035167483215185587163130057722903917272343074659474530520153807236716249951652642133160472250110015895832084471558327677990390905941191307171313184489041429559311653744272911005943770698513445103392389138886585231203791293833425046136728257733902311766826024871524408997795347446044288256597555908861165247268210551439975851096137341520736218869060361690865882028839813559901547023592363633575049624032253437927419950537401503104050530051163317488479815224359358170863387357721804324409733113572937170643094112163756920297861479849295612004944929795610370472496606266438558633908008946439388002134744947719188128902318077992851586074595056321248175814001494917736088444547198970087978215908576518345467535047914366398555621510815638897290956088197257017385144339665935773501419599439849393335171625886821838562551510930511956606008863399331508887748498886702273299134734859464612879781571202979475836643155141110771880660931065159488407188400822417547568931708889808683118598451066674379767474112057141483483593710489914370371735960427683282646663088241179733384114484931685862835776898966486614404995592530425895013970378025297091182034217515283337245492286207560652076299107465789738780573442123644567877628005688979623304332960870746937642443774809136661001600945406389078744717442327965764067841244348221872484129738349592642550204326694067477582678265979330224298462417899947504643389970843465800674491978408936513740034934304790430281195283836140754748364838268068822211593787338325629092597664373713069184257978196135756572933272421022301688651687134805153513745153887822269406498720361890567464106653798808122952025441580547843641446182712092381869541994262048442209224749198392159220614837928019145171436315473817386712281784322662880080754627436175435833023296004813543683247289989215078778845803558433938385018963651667379834992369785019398718624700385559297907973041159723850607002030200739940599772698357006582655718243299574802390448137375829737467086516442574304106795651480932487891531112677860045440719916043488520529450780253263584122718161811610099748400705193013810069395672158009459796984527392063297413169917776394014887306379090861753586898747184160694418154099201882545619946729151249748063238360177076650419356882621135843893186213227344394514564304274534321184440433846062039565314849252616749873579924196582221216945508046101026210831967724401809552192104349637468993968422903938722520825687189257428567217814363331073892149059340304946921232773268336847163779454283199233557618152465271308427268151269045785681312195617681459486361911118965729019861873691385447804607107105174527148031918123333248767351686782187606591888416638726161282766849628745362982178875971984320261285110502525692852426601599953563871450480704553019270295457643561394816924241713547636114302983259781723981362899530213846846805265537453470051255002836834055788243736958860927782546397545301125398559185600914942980576631341557987803800803244989775427229241979281502014941181866727404572627324198191987883873377978942712768839679225527123156211135196189158392202707661006373958650254422948553878744589031341489443358048658447971091051293091775321701718972204226100968053222421644929111217080726411923718056014240793924336665158691502139949945269783035773556359592402592368707372711593114121319147345718769244826765481273004512531598620565885094771177305203509639519450144020951380576221469746145035921962897184056458974436898386969413968037637923312999568515782487693641186430889576053515429822069669134781982471320712018502052060419161061723065414736444582430527568787322685175641447291283222383946407696536051043228224531454520552691007091244008585505285001189824919670589994233394883228118800146326867166699198797415768771515564862003507262124696998755302860229257753363765667909202538657476329091526449567254964623744874479664962977958669177968488982460407524594608422086443976473849257459896110089786695751403259939879474922667117212377122313980537194875626008570848986098628877046826695420009536290461425715344480154320503939397351884755182693954808058619528903904380667351264021847423542960393471742103930324046268562815937549854195181196805619576970331957871446696697353149390981882967084745368407344515353897103902471841397183363247660362264933025489488730951976162891382712576522291976372280660951952272880926089515568879853349131977666430206315367774021460338190324777271370005473047840324740165809098441153859546936156230575738428349610160897200237710516489194046915641485361774780029010510797030668068854669988463180096254069227374284900999347155278579355189515395793148562341494831942127056193135504424004834345845529151868608767298213428841435473865351208780925824421320847462945786516887313664660931862578056319439737557813588449754421615633027424135526223607250873024733115577695986082038028503930173432869088787770481538526609533566779221749621578051257693764593820631557610942140237813934292345557105573937802538518969518898365606686931374152829800687127550299258158859900021862573718499484735857302164939690854639150105128238663930822474655094179126386319492232070165119287238945494744619360683481822980950251754882365870784340606941613232193464674215994112389701077980015827581034310642256894962007870650489670676669981810522716751971284334571624656407865381179325484893806437630717063515998394510052321718337315323536540732044005533507300476758570202823977498746655350284433000967393826518961693123922446893828763587566930798764965019462513532211513271567937907968238222145589310266284607585125929346832270321834589003921673659738303146118622988049197711022557843608238525028389058003518672322284866984550419313387649151330576558489624720263171703496931689641114390124663357038518500993458078846708536585716729999749238437096787782692388287004804234660988963969538369638394225755062993252927743106349759537021923778764489651404340169626705757143978557925303415412777724997003785449688890949632478718411790586150257541051246435351459778394083426308355559660756920440669478769801800938593512745476660086467845031667917659804239518161552745145940743436577422731335444928997158111067436073867747399554625550646610972851311500640331397720900958803228668249383382754923109427558977711257465662383960491767938798901899619586595791916953614713876830116935125842892244549571198304115871801911687729855509673724518548467828555815472189434402636859845050216996215775466355438174473176474596845564094802223456687950318086993064751932224415035815082963658616915021147196514629127015657442163620631323247676176672246048932696315154498757807002288234039432687589214197090496398212763336740734446203039183042617266223575335478772569788366642756557016628498346786651815206540918867390842115454169416460846062633636885477952630867483576534386873671627770615929571977593177302415942285023572680597924224379597023884080286137896157055110074187015762413262582207771551050536849203567473156281170262866572819914006380677109869596112379211911599385683741759641291497636713166234035412372535601160059343456592299248010700408585536068713040434532318418668267710499677810521207175123814884378918913684654940770370409046790278993489164365021121911701663036552532805982585205525286636618958617647601124496964762380681166336306983229269573413350874326808939323619847429417439704038583632805761844149120790419283015786765149926645740413428171030546729706078228399000020332075516015945666738193227282901675316063166767230480994971283365083742589894165249705242352011440933111984107721838644902141491027545972868669117324429446381503695894144601473576148079381436437447804713853421748340563282480066977458887965402954414544781681562779999026471052616385701597961063624238671461508550136969820750389989741959186299930279344516623279519397594247164391805879969914760860947335859171840480409527149811087387150043107317000473958969309553798936985888550501890013772190746817612144076861053116195751364518017083565022685919380961345985857525277856597578993901078913277242000517233495419294294798946397848693978922017712461607143698566396614410320979786751552907814740647102548810852022163829936762831890210745599168338436938484847666667168653140541331857927365435837718516483689468333873691044630498200196003070963189728760126858407070350800818939184499305364816296671625377592543922116694937618165447961872204122571464175497113848673352299863054067440437017367229647825284111164969137902769117452661075536589785560407709703403382397980598490076159353862835658710677243992556077574537148728355482350997015728489263691165210348774440856850088490483672322926886816624566030819354583982968782059905588217439968286257323560984590813813780243811249157423003694415054864402292882620550739292746020328951769317824431220237808956397006044147142058582936664170279832789625373181299618487858670946997187099498758115968569545080885627014118963056149406446801696408323094135928089709352134278744520597146527821644249380833368879417996369995799370658958656259952960168626769452412706065697009954220098059931987591807690806917311774304183352363008512784792464511558701793756911292883264223337874966894945719162841163582325846071789090066366571973407118038766061631372500982445464264932928430631054752445453480061953806233036748247657408569867987985956982772019937534460694287180754030704316956085486738287804410078942497616359430140491535621088426008243305922911353542335275208018448430246411327040573147769838733978118043139537456407108280400874207722430875174858300921092117674868183778103529730496886503864436713106040189307349709786141502743390731270556567650400760598438905503953589219483657730318932884009137467682249246825367496044881909931405473592166785367968779401039085481434892227457781096993222051433008559728680638756107656287512012937583826486364647362392399554858860392133094521970223076606048628242627829265989028866433911893974525260976266652182147137112119099607437513917196233053028351899434295501670858178283080754448435653834482530564549260922146658175460194043877914398607377048844954001427637261664538582145457020966474865237206832347600477852251136853135457531396529035154369092810722529490484724135714288222034859451776096814301309040558702447465384671035512998179356279415170212715643138613522601540053207167177358945054690475618111741022507564896121622690870105801822145455954655818609078395368225637171558964104251343148112183264078898657533117432240162659085439813619359730076663668416157387129930025698917602305030031335884679365870391890549699769688791660962133370551609849483424350327676374779708439881681164852896875278189156471573599285261584471518272146720353714760763457769540318382931564848768566277190475164104296215707479345162786345907622169681158378860653053340517069041305318262568463946576904245814715464444376615173644541530486426834775518662994001223057442308428335962822864148803656731221718459992065093415468267002941585095194900844515279261420629504875241712896197150032047509977287388382908041709016446335548759990150650174719795228214715669584042702906771995479957369620740107204482895052345138341214600978547473195349798545896789611377569872412315917222443961582678981495937372047743377422868608327836835775512040428892463952529293261875300531607950452044219297442734765766571655315563781335983188123067453223404768422066276941139458975134440987261992469503966393681340132173207051743207259513526887742226954810571870867944850848437440291816778942834393986745453114896859338891591680519406235682042320169489203813304094956811197232993744329026640819331229301707369491628457538041456500604043033752942090530133110071820839595510409900331218638141564592414126548337401354428159092310679480816019137602034767072715077935689657700957963317239249022984607261296063396971740403361319086718828752969071236214535114087329740043260940769461516696970053627404924175187425412845685039897238419418609313063501936487918266329457726819627130346557416549775341406395169806895908486980479957777354075887948388373252450397813219000763774670224382088659978164924054958163090620568800387360621022980181805541220374242686222311601304465954559070268138660414095553526994191996034044368431853394132004481076921689816088454463756932671396985485872804012068619685691202682034023732606605126532391925385148701108390952190070509198260237400215622034456944525522613588215966965858502568842872331651781705613862929775630809923886428096845081815963313100323827289530985790969951159620114858219526843874388128214640061552181033605614094784577640515065408955649237472989903435663504025288170074334157052065133156010555772651109288838250376527427392415370741604131844786763369745267927403987141322330650304545591537705456806329413510961989712570205173556022050384351329470338099405413244868082986695468451726862492076396370325250925687351725475287442920674086536465265637455071001796188970210617925723401320394223789624892141482926857414286043352025475883845194064019615067195707327459432748082584472962872730417913519034290401489681680608016405780054382971596041316461923695856010664850935419710984993777348736296227892630363898586632161862153478267733415310922926225670539949892827464623949396177631171742976956073545140556531838106479996283411355759296680181708136727530488489005910307362255694305914401587460228928141570122814501669147892975332726081696430766844267761604011174610940496926134081205651652464149542477431404588721516806704973080198792931626038323792957899662322478464902424760550478742288946086957066313852966843864983696112221486972561348296887292948777846166388244090367247986398016368593885309216528924786841332167186022554166921636185143904610965973411532595514295626692312318737061071023813146929274842298845249887660467799097651359818842890136756481353728608413723891418440970576248981842165259315441692287412927792761025715977421536002829724523193040713446601613465089213916657785528003185187631201521728918316105167847077676949925786102998636041540747804813184211269103561431049023524805218575473860158146453243183284080517434216166627250254258879301429161911897215441570777733489606463556730248701351476330771916834748800119172783400664976140715010486948444761801647610471757970896497876133210691804649192812983680278807996353135162729485654040613502002650251376067252743045733197334765167097296606233704551547659902376456891767296939587933258220480333557120017915743619669490973931412557669180908672181843943245897477490297440010184259554502139370770614467458577383452575479624043767280236514141432207143944352205212229913795227668798860283670939135902636346373795151451272413307957443481967171480417935934039700349031757831988068674115812192951225522811954319430731779149402822579045077498288303721391698274463821058421782956481945221876863644533320514518325239851637747651823984285946069540957508228537455709861618822525501758389615538440705751408396563110210822679692124270145253967194754063319558317762729501073476806523753483174802947489915968453470161546034678688414659073660416018333136953515633754489699592244519882343856904817885617722494530036116554550518666210736075526980955048140060304511043583314794083253825524093296142099701637846159229908408894645952889855090456930857623866098562345203077058464331026887847692296823727578493053209651021581619759723018078143842169156125140005731283631114358758415256023241752002656012502484172317661713161911085165780037443725949827998699422669057133324544030714465023112963079684589957990238176457652992626353934043871641057441905116657455027705983429216672388446207278290909246266057188641626594496442962775124160322863332001255307067197954277293458385364096340038682864100904276960799182134719927386442907133446610118040240064784174955076594316939099793784945882653424286534025063472189748048583514552406761099007403069786330179506470187299734383068731311084515444673230698947204937688886579130630734702660285894255398123075398135527622909245121514996696309031946115645067182926455437439136538162247528574913268758131913737002815657212371873639369498986583651990438161924055221314115540009494288708941491339017169915460819626944252105691600721892657557030401544808335204698543413738862376882541165394025481988102945831456519134095984994401094714427579589123987195568427707281498319634033844693519529324521288205818083199763023099097419141267380467137011558620311115211848692966723157636045882037886731003720505655424536114966910063654943718398143949886768378443146340977032774521828369980870424694915304298987754495721618622870691827226479938194168631524314677264556180275023120318488575560663244772032656344229247690283551537037695843920974728170047610902654844137574461223631436212054854554261145999404733149479437607959315369298770145466660706289439804381601978400043919628035010443328088849073302282994586399736550049981186175260087291533041627063689560373384257701769577867869241039824929953165942394745203298346527792749769865778935638193813299634804794568819319670499723384940056719242285414545529356299672260385918995521957773763943589346106804031151820318008494308860494617913843564644141882956635486411623289992634654727805948763097155591096080019165503974338067604787591501232322109390504329046136399669194122518052301978132397715347076244001707491057103489229830893576967815150535493620442305926968127570397011177749581946701936194124399748198841039686987010454249063986160373840459474434580433017788938022749503882027072633377164035032384603099374989658788659467161436492068141726974260918136746046130920682073677331090995051845639731157444612883369315010806434571115072991133714520284102939677784084303874915250656813432200500471552999713719577601476642411832674432689465800418860021253936314311876184581628911103656993006465568915292593454416831101185381593872072028816535934092540556014354682123048940705465484737187764922217571387901397102033607582374264059710529258847763038289520786472161872450838220825329793484212913414260789747754419470397714847681662358321425209053622529598523767640202238348420246050604653470012045287473481910724242145639915297948180384524023362641853513687745272868482837333532798755843910687954159169693279882881797328238316867859289467307349387641338994394597532579117978756688282877414267294151948381789204251647952731322214702975369713215693958068537098064987754555862187277133336462788946564412719047795170488617796670290002925302160841760439257512584704685499581849126000086901296965714426976337241657084360668067942707178534953858616272996126483156479834853875587536269095912368530444432424031374350851668245080857955237118876561847781086594549278700445869987870400145956495867593164047447691636403971908203353183852155317762378410408642880700518730759054023830638470622564261291889013586863980894667006945168066137445607939742072197614202499302419584218180973774821519879675262991381199134243137960998225917298330295069911569233363413798023167131073756819359065390447386451324248056734210443753485976743272850614495758072539614350566937510119840930547709785776199829371130099818427627682609750801957491690884186914999269623503304990361597958233148856517119640676743951361488312282683278015870058291049331858623515277767064532179208039892653148276043166324110272218347680342369898142091800780066499820684686765782224248811328136587015628103317717698049848407500478342775171566564570710172363769598007725800590472882810146214914492140725983306055965651126905553769449369041081617428818348346060005524816564638685846661267194947373229300719518072027216605064588220514419175394328435624173093259534641612162859752287502939485076307977635305124532219213045857395723267383950774189115702971297179084426783946252049795934662807055416866297633954188717695863367593911472378280774538342215073738033289053383821853135434359661352600513062793991592477904677341889318049168625436660031144172513409563336375153529609079234865301657449099272688782502002591467536539125510278075960470294906377428653045638606255729888996584453177161534963390073952540521607408649314261534654588408348953216246540835636402641114937349267471224702096628679624630422833266028104218086086373727235216696852373310928198787670304307545891761767554369693548329619524574831721022352728666014572137790756725363516927463806842460884699453958964903112224641385988277131472644935990621156349313419179741759469580068653924399323199248306107191310088145376982363937077490255240191943364496236829659071745679347771520066447925290587517103010758972463708532190466713106235085447418142669960301125130217348929273039986648547360934774874564401082125621876782017382727831559164505919742237813131153575190780270172121563074667328504352187011845264987777290499746796610952646422458910298258426827291718193453192476858903523639448065101104729711638221052792414982843685953150336319294922421937430976019291707453469203411843159672716663705037850188491933829916053894822894031882192551263342493074529636301038206786201669229894177100142936448176964889120436912106032167864874677774775365227565100940604169792362856036318345787254333029379619476941098898635954898327423481426320631516954642447442939416860653268697875407285378970268330836908645313758231111879672031707006020381701327229400433653287949062575884806550695873338108254027851891667932913843698992355268755748557715559673610139771347047731177698102432295819593037711917699471545745407665390496333973449617431090022571697539957742376104438913576912171864313346415515477361593635671040900582263421760124953563262340693613692731065548614026882246662456459017589529213690333540430624808049609710313602181352633536335560724473489971310158283405174495464026441446089361337398787046020669505272050568663974396631210804015088905170816501138190439474170167750238966699202766925319853268981406454715427861660566078142586503450676662607893830259778000990439954740737635342083139987242395743979946450368153834308809115826422097564164844786068478156599715073214461390050803567805633348074292057107381770151528346283085972997819858336639087822644185498138312313780914111845111240715756418351965691957396218393748720701850182553042236591127106030021809178052559265263864163347915644785881972400809283466925068374379502529696981273749074836036842092967466214149034174035421253882225011758877744320375969235153765818461419516857769887753651569584376942491718583440088004490388409434990183791722808376179467765029631617990023200080031368429979365715384603612486125639928075077651861088451093602899938219898617590575765933426601875551540250417309577472617381344455957715199263626372228886518343271321658681559100006731740104271279542968315722356933843967271117601778381589803937720563007467552505350091568791974745379455554535705022242535254541677153953933513753162664162606482528748069942035822371651572767186260157958086773849230360388315997773126956949892026857415327384378727320243421989684795140806748617172807872541603228043512026753182941441719937669576702950939676078649942505496820546656610656480646221874032870119874702656374794599007624299783758882249634034996119909350911424515603223545963992170032136086643499027484583889218992092377290553541441259521525572565081540617298612529135161527750552631927418169759494172424569435117160636653437881558675711624252874242321284224514110583002004271786610774156230408819926165720459105087161461689037221941306519678771113754888511241877610127652824546564188638995550408639363107785136145807640906465056880985082672632653591507174472387292276929025001708960799662171428661884365702924108518549405810975750338636154160805601065875436794741533953652097247761771362622867900617308702853216871894045094302215156306785223453922748953906185518464711839824438964389632446233601605188759140006262251354138762544803291115927458798970689061880924010946432018360414341335448183736885331067495953726878914779887123441280797747688025877676586166637862281081335773396087901816737712518662925904033118819450937807912775420012504273938252535930945518438658843423458314712071437351649625638375574686381478279268907826153906351485533478014505923774027525913462438605756367223467995359434972935762423130523853233465552742630348601702211933964780614126747336414130184760344199918137103865906834601768187917054065842978043980688779276241130513070195285247607108268053251639925965367558308480835950700828823899678957726677098476683345264215352595104564275597472170205756316062817133093730100534662271969969301920734793932676621232309574777803585603762837741448405513802651067655596797690685344138623118936920923322337840077624479593615965884591814024628140026303773514168711993104542647255749326671217256323614313592521883158877984496835257498866566661312604310371971563824999637305654878251056270945020563181680916120777524780880121881037597981688978611633755304702455377249705641821219960160597483468139348193268175964143369938083470569947710242615397688732241473340901044479653724380549491993331719432443992958635022390300122681785714063249354796773614274173743825721809814837851822305469933904205439286137703763290218661970543248145694957282958534959066430898364457786758794533666686725675970415021085587397491085555365267171084182211814877782373898462944013709335309087667206814378820101724874789801874462003718803408200803396124945018654495616649349749725924146094994425331272384058390473937573346247161179448756102792300877896012215113386730056046861410443562770012843774086912777326708532461470897649340108057072036669086853068382286812606655961884105753479382519580778966625408880673456616500198506211743275663949869090254505536998445813631892732294547400153161610177744343898953630526371503535677810887475289437822901255733075360760428856718278922745423713502345315497933806201121370958304427688281495685706621824597928250698601710481681991612818125235684385237813740559824167170891594926359406430150517049581730805908891972808129031380364473716816336176598342073893009506697546033535121007150958120147882124692857559540143921751133571332767600476833603395617687368570465616800976721221498298601717877726018234854387462285129869723109135848565928465141160457509067153956303202292510851249335459421156215313967996255470266126162274635967179609052001662724869866569458260261190684996350170258525274752363078928167149578586166860655612406508134645824319465748673794629702167252529669984847848043739438756656508083167459902181520888661146814332922884480045786746463272439673751947779088023975426648793043025687137425714661411527536053981261662881371283418328571927113814308128603817381108980379846937660821193921142524366291784974419450942424790137349764032702547341369538733233646972672274407185725807980873518321666373091725019108902295262352118626622791538200425708026015151395723127441362952229095224146516335032061569518056404800544349394003906018838258217373016631772139408723900245667757725231939084856061602361116268607908977364881864026710052378879396350315943787508082016394865898403695603764928035216305494116416343977916593166062200479369173119815970842541599594244972742366988685332272726242340047239658439542274808661967147689427349397417789758646856487995227641679937435037493844811668866297326560769323130036989520498702661708884106415754846907242484178344423457174451026468086839423229463998377123970004791910191320133760314051223884886050003074947045764089680094571662519499398501253863209404451134022673243325968278558478676581458609969963726973086525202662150883737298185870367335467860255720685521130925354537333291016792481032164389248206867885935511860974368933624389386154217866011448104410086226108575726673516884352410775010310510424609338643940702256030591661969494863982695023474588808987665536512774013012774382771456224029599338424778891249459305368467134575776368379694601354071549793612056003803640376411311306350903362596950731181643996102355100571304368726902394972222017801144800704158803824984617728045286270865361160954850296001668612493406763909182735166552001687514379436325192197051752041902908912304442604385854777040430795512637884200173224117113776511270437925591614422386791940309352224749949575061734826137478193059249333342078242804690005007442790765085830551365251195878118858036059212410533149651185915228757989792710996986294081120644082342947738561985833446377549159169352396562082220077918219755232478671181663507840336104633593480284061848447053758534736192701628744099292960038469676235253416264268514279844724763642952463602437311682335768989469781896121748774170328732595499329511986363518228455381208248780388008029457747592034103343564156253881068241379599800127595005933276760315414693384410126943868860213073217601217011705940042973062788682246818828136754983735112792919282784225634433890907764933983151451687900722338340111663371347757698044025739450592588294939987968481017003991110071361632531522188557196798530373183149744970606582098703608069282837517245599439326346451678100779149271684347965247681135472709645638377722462053682434905245329181159980921880848908568937926534913116441889486516108665980260057896200669125054054378477415685722833067624109642974553913235517947650868003452899224742397321121835854053535198759785569996210104532664585598255638495571073136477307308354633018218376201792822227434192609716528327793836127596313808285055165178957744584685316222487088255525665738078137335110841193786250339637363272522215372270489204236885560576779739385450664835772749438358563733387138137982552773275558909366660249252709481088845098158122541525723533732096374873041192254373900339614077071773439007844380189795263569932563236693190038685391900138614812111638647142609060430775459758313918650660755048771437382659374537200484369451599116784328571015386189601974931713516993669950556313986337770967256092399037569677379133789356341229829715712461789961787965041452679643182814898706161539642368647700972573165749764919592926371007006822948843856685694616778352579513036510953238623900741496525822756841101563889598638267929740226515397740555661066183237361258452931457971700748194143023163044250819546891455505045123658933139445786919336938417025224553369943416280078048023726523482920406576390146507297393058698536855776096140191632387638408366178142543370266751942587853015560261224297107923537952902716388794229874113063654090494654649162798181810255698151196867404750977335618276470095838530446672287687159297655768800461517791170556248880496007609086167083342374346630758160478637918063128581282626247049365217762284359837879892946926876795201742079700593097948883299056009118024923318583638684696774099460169853533472800071224352902068250718316845441413477141663375017583539346057972302481379439964133766710174979299561592555329371619800082555848588715751160373096220724329826810330225486061680144927047941924254457640074999766403496086985940840910794291022989962299747858739346262485087906701622380791844742331270471294522526809230557026860271683169040019035064593843038064357289652602005681685358541971662821965666320737192943263524117562522436989372475613167237404029389548071676989093274346700733065180356638197417043142028003178241857213221770803285043819984952188276165433414503414112580820078066724915227009859610453318771042776203253912611166204981636901904671423053518778608671649312855327949044540409687990812781365753684451379725068637940021249793762309627891487168861148922221956670928580966987085128883683849972274775549035873216077467833626540072521229045084733645027709073470530911821494319001047516668501713547666591525464414959503745923376827680555960368490480162710900053227600052461494847736301691868554881627221793381584713500332463599969336928420362543273674519176632550522560626048263695502789834940476580436518412230102103815163527400341499967098608538453095894901153643076257620075223851038483790865255727907941740321500612612956658698079909952749254063937392674036133171533976125925648422786760918290470338683604778114831392695524266709994793637934053304309638686274136920434420015722819513179078118120507139349656194465742392911719288174438841492296307097547722787615742103835831291683725424976407608097242374171812070198388349829676581029863511820591968732304805735676840324729675887770431327630412262235520764246430813490164176865624881264613697979482942426294791717715223963460485188810457401200605980086937092215146473199468665886735493043721305651009057710529475706298519402620302999271007346614559149253301921796705897051478570578263930702740212235171410242095452617078101929010625054303155715249789218764430026042506573620990648538414452681136030385556980298053182981973646788311374206548778532158635650739950102587201866805399673239843495486231594969414610176513588012392876713935637962928746637408199325952802467003928917660618718186209014968912017169236370446329487521401825762766545019495419930035838835779651640542081188941413438591115578806423528895051353679457919181937090930298537216697958378254667330076180250145807334919738199546607297045843072667823923544067018548315633159462403347771459648987370350393369975986305512736516826573805224853703963632182279275567126318542593389293021189738549931169852935784329970367586620855037388322000767232510931069960676818655673340488633291946447609812859296484491869437627740881817093816823325007304232752007005899557211105653143959082117607362375798340580935869402452745253497358465350381366372841335494925459131323113931889599698222949596377978275908449631429876710618848014840816734653756546748627311616046719504070028660733324263305333478857270432890396986676501588134919423064996874826529399586610412658409391869393927398447624681325990288693045563684751456390867594723763359914517028139274931073983584975142267217870791171513912961129279824427802307769225369774558253375227537209073997285495620841642140644629194810581968408083906305523749493886443006708722085489581382557984664091292018313921749410803018837061680702791950493387930617850296704920404122163683608638429804183070542565295430567740805251425699663121839173686382776289608402349981460616852314366855773787065980244409880308714190309388029108093914703970362567306718690097611823159195682581661463331078855558206153410766867313070063597753122041234379544654766625041686878535695867492750908921968225607450304963738803982300376567054616126454751186589495358360318744828008187212815039217957977263383691240206268324488274717905955291939690359061852954682873457380144090883718994434089052551196224023769981387561173781372194067388036972287235017396850301582813801328565872429568400299182180597281573500063607264450164123142421313514197825431513692348732442328107172248976238183657865404332133185084010821842967078289837230835207655529233520296749462097709931974698891653023409596136597687369822910130189036007976043053286448696399511664299147260978030744660163172330620728916327195262487835074773975172247856025747912541312692787541166934294772717996122039639142597444304162495115596928808485786010241663906885979979571113207303106577152807996115392298487009412061339936459483910606652799433271834135369603645924993694968858696174990028139924330542556397598723874782625315693824646437828843913086814322038970690819185996795494938154308381452930719120088046906274425675850876566281666264848244247659296740424050285634203102211553077356808247802615079151111848262943469311950577234184949661910757964523602003077247064629928680533821130882629343071779319005038835630239725654852978013836464252532084216118245673444328865745334335038636519380715598431448136371031239064100356528134806236646676804814829922324780255804456230409028255196319909387984988019270880373625351966610162412504292286241684658870020185625421718901303272914636854543598697332991436890292372185174876560019608256947434331006550493546763852575106929402534049876909148204276648711283156869624915645466180725686199850360422228047267994136515208490850492941378631732579997344743938221996914629220406694870423136944959062041464444697000264124332182392631303832636746147259968088749521535339790410474158278801676796464429648832325682119009139211982924046426524082913027428417962624252005939156015508248794344676655064415199960936143735457649413768868578324249579510305128119043698815971449898494003365046439095635568022433549303237178791039968077353527499929466572634329726194945821445180187459259459342969939788794433448232826519729949788445695940862880866370596333082575879761925721194113051977283623325466659127498273354381882355564907023492910730608415970029503297754819779994122494807964578618666860825825496685046703018553680350353260405805425593230917278378702959025289467424969705521200550645882388129155672929246368958197672693020231679945899695549113172797268515381752983816137504720710783830050073583402348650071823163967176862761968249564228320241971190866950019418639869170713570933820508236915670534144177113548245368070952232854930096291324044910108137165526664881211382590316414964647418859380597530103412687000694697168254007948030034604291717447792625571701724430378517219711601842541583161378713626682811345689115907886274744690951980172768771692565332306290193509543984926845461321065019364667138904843828109675504390392141865259467591279593497247068544201847069784360113931753367031075209420047601805891256397476599735184582859607037836210612940710015304809292245292195094369629492138284864215340624149857082472207399404837841673072841899788371409678989642379036230901551898171259703721290191450429011242602550982131087882368486272777790413956315918106289242362754640654362599745978899375777068742354189426601765061868405167437829706982223025545125615484887570323877153915170014760116857079085261520977128531583830935140091724371551145279930953834685730920237423251603327066114091955357351083243020279954050839495719798405576030170929118090867677462156754625503855460236763058533704828123861316698471891885172101777204151286877442737341270693140570757713357621807921660485646607897670666280191092745317920473757101188327079109249903032731938916415269568585716990522448265152768637865171549280642482670813827197151177495447174739502926997545665833396860959477515721845342417568906021338795154424127842522101662156379887014073669449995491680601344827812273930954384914456475945011275144327735565919275245796458001679023927495103779678911643949818011581836719656582023346321774312573949293363959841083877291571092526720713413137927455563675893131435787896109522587451994794113997578965114470957465066171830020522351837978475112585229968344416306913730099786607020866363572081973542441458092816631917469943213196897135577059435966727823801623095949054969078206755429590205993491385206684697925824570523500235834650377299020544826715955966919610951227618387825796096972148339301915434969111763250551976120496050208546075128531107633457875046126851118644731067691757941600294540116125820678913131116485723348219743418620318652965948106638799819083432688345759723932611349502150269779548633158913511560269973564854216983767694090133048407899976561338558823102327225596246616493908069459122061650971599153717003153255658163333056612249236710739059808548744429653802719379828178621902314103681286266984304427874208467957207660883883036060162346039392185166001681732891300145240719702736007845873409644777549614467797820629512430468908212738139556418576786257623852992161847718921212766782453059997475360478086694307369998966415386398485757117197211061590755110133651377272056423339263181470261890346410878820618972911280538296946484762800698774288677438156436464681423092236094793459552406738792830009993049080338703828382210704645051639309367415357386977231532576397406912971264244613658115041823453247294201854731576304345538929849073028801560643166900273112548059451706659880464739850549258966914639926765049919684885347157631622140092121398500757262774103161821772092498081675110162939644444231248219224735924301012712006679552205323826166249894475934679135777292031214202298888484188685429355941345665697756979473733658802826261276323369594133065834524149713350857476432794017707147953537218759885511424889477850414725263374521363474683083464045931006712571791571295049024049123192167720955048403603959648710825912200100907340497949303191203099445928047340025917608147831333652259549554279152913101654714552349625871592317093711686256381998284137757577597977832754610717798693668428828337586496037588042503627523095433867864947512704900408776393646830781785765434921707525165451932904101789290661301014051186976074742758678413061768622598059502816347027063032649464894558344620239978295022166200055008784323917552184317090516493351874971680246928434588207759307844003973252219979598944864123668621452195203880599464289359175052931013128583550995232709920723032206601519578331226282187865728100013068643794834685361462908644459590081898853594826363092166504812794801855729792440028660270324109441845977043177051765631036164140433759705975863953207197193363432656750370516881157967266079284628618656691656645559996086695954118931588554990497838618483670895507872608372709896736134219047943682048604625062427933075204867570314934895112021367596770812565692729297097095906828100799417426789492514510668309277057442730661764143692027403874667977778568580405019859466898957740932529223600256100936543852512436528322915668271129972083630630218453596480656020956417953095865991158509380794053903234911989034150913909950399177050390944397741171905439434849108138025461357023044815955317132361636071857836051402128582034343368061566565722196376054241460550764055745711256901654205550285186643825511381904111522826329437991779254935989131790537733560948310388322891627568139988412676976967647077333244723345257390635588112114534208247305852925438542276621501575863427975682149304864523966725464652523971992346041337967241073582672877262247922937060096687255748233217728856925285061110891005932705156456286485090272050356870813498681462573469050669436416395268894385048854860858232039431496163772031731845419214029996851458401744952147976820457997951207169717363347434587244384224731457339956683519921470246332698765957988906641390685244170385228648000864215720301358743718040423333685826888215608280515859020585153289172788555188178683611110036260453701619786781618017804411753714348482427526140419233517129420435961706669685139566806084145514478155974246767260495972941233255470638238517660566207202530604897007379972911263012158352555997485337104140901387826613394642759267957155065372923556798517760871527209777630067358568049968209421120710095516344697283761733189579666858129878764089635231448360255440293585167803997390074078608980755554439883328859045837641669624158807579731614161278799370604531159947977511088654867371269766693959258937524625432910608419303585932357426478621768387998979687710388245815489274136935500502508751686596256118889939911864371683059077665194522939471649725008940496960238101779528562256633058458833605792248443178443636611974643824755776536766784465728165078903818714674760050776453322912459071636437961055425823067946488154241490385843052600770136555197599697585158581341791429361849012886083620851113736586987093442178364851230451213504330854449964459817176129523831822999082123295536140642262755448271428069539542994654621140476243574124534473513065803237259515923289232312360226578985099271504692601901343807968943573799082032029611117684056507912289281735480044837035058318145256705646569495979986014765708237327417648581973429650989309515534250056399947999838897690015631349606456690495737010009377907212952337576928877278477691390905348004004052184587639132110107966020151645024794958720002782943472468820364480343028422206902704869505247302994240224312433381216410520444172852353922700612863566015170247901610254597005805472048089296025716672858854145769930313394686246369758436212640862280401341194948968878818580884667830983006900227490476606288616040999903278776640634859074561829168933249987080083963259892873032690169242494313988215706284205186982082940059948163201108201902491082008106579216823299672312096066183909081833168292359803531014818704657085525423935544108166062744836809756107568454640647139603782740228525123436081006264038307185047933617667417078163612177380357844177823534412072678812161039193175120550036998611133200540937835399565772890881701024508841075480888516079770614738575127253973066938223626997032055851595315672339493186689938721081299771322031890735669128475226104245913629181230415481726416035297740897488443637345465207980482495325405335147714256918738410642707347690229390245190843210138529316141554884772135651093663905542207579744321105032778741819255608881582137969495899287093403122982742099249124778261217551477938251460813627798551069610920161467034401870036413258857402126645528462242228356340376522338336570422556690984066103986588162177355042312564178982235786198541447361308070160193929136976488778899084502966251340321128724697921827384144830833561686193506177190704589772182106115398893081451094849923932348918389969310882289543902112635958259090772821699226092782977530834450734946723224157789441990962595525983434432615031503947615564955944259804211382041820591723807921905524761233418748716658524314021881303489693775741642911366158872077509780870098948789556893539026166664216969716818805298519802709248022755460801632823790724908934773383316122227163313155304103874090073909489018639075496742443497883180205100238917430371218237283032086369964502451470206035089980062788490906507862682393617749237709908699535090008135198756088183553032793162765382815788857783547585096198490720442911826505709257650805163244770221264114992888960223911990773468497985854503222095122376182500416248800499962627155918552273696353855160077178231105713349821973329565333649681423151993443450824585674518991888355799444303121071721836206558788133482035714164331791124892554826002657846232124275887370607557628042894505683151015478738452196803684091858004678939008640989878092281380840323244930722871278029309192537874659442175237539963093204343990579707229188490748471656426237975354567201343412688949810133489095613488301540673803763858271905930336978479667231869107766436777255598771215172510995163763846856100512308871395932894597152228218934134441325047340666550169461370062373842883979766785585414096623508372536909118871220618112554031543803913475984259141861418815214695521617533330864631710643752714769011226427825302542812813797785136475298554888089347176383165862012041928727523918652041102841157560366126222841054553007602200403745156450878973834495442428313809953734357721943376311860134985437716571735083571705925654531025643281774435429093553788518264966834766200215146922735673203644963653306256695112663071977177092041985945951049200717916615414030449045392488383387319524594546071707866379784357974041105205952898624198067540745528311246592695079372642971627202770458957556886252522812737882434601859913265489467501976282776596745827185758494879284915369880297532148365177579654049401122620008911801972188782179871711448803937940982331025966771929378956158317911541304895816653670687857136405921161521631099768680994358161986176427238628587436074161589602918499852418812158149977995050488987626410454320553913931650266403299844640813450736133622830254884174985055858611684468786289626383639692532699443734881572827197686370410293397677835783316054524888496206309299562284227198563398575295284323838824935913087766828709031645638371970653849761162877742382041167695414559238693260684272475549444399210753138358378855112076909736831772597046601280768291839054726734722782416583947461256220890613958228494593992101231399258100364841208340084918206794294786349620301995638570210987194447141486077999698583275240181932320351630760412619179313742466296797797553445390468584262195821563637706548010457201029786694307301682544607712665949416204799292205964430613467002662178229313454548981180038094577082963314183956538498890694568960499692299684837258318713911462754602154497684087214792311434474795613732333663646198129683404514515328037284655224779191490496098068830837951369275786594498625274529530603495249396557481793407636021847313656610512130762307702202685839992386186232740947263164689025454684298230621755736011873789568963975389574282727311382514973166849012837994003934218388140672868301523452125679668279388675194497170551830256581746977596198286109694356104168419682804300362305707020742243788644047895621240329463142132994609215530321507210860370628208733272494299661117021728589363512268373496872756939479097485438872651867547986509023822014746170749112446386623054528021394808457843088707505100681595363761836035872847941638724209413755114198918456778177468408774233935974496098727251672573057336743003535422608777731327631899513492803656480713871043822815404705460614861047400875924700962692003120991553778295249657777047204196060680498054296237058114279879842254297708427080838979321749508450301200403901222079279454176057850701363970460745561164348434579821002762959528240335679706427288659230854109231058119661089345082536986237059619846409553540965570379924791350487034504469351071518397594201713749553869782318610901932130751137306796257703812072806151465759382840093299829391387926783994428523449678011513231479713199842231022500836996696787927713039663023862164029050557216426974083998462843220629231972818761383515153813664318431366042682439396682679204817783365755102925188534405269348068783602858526990653289086709043363897795445527668045437847444588539944918912143896389978978172746792735469637629620040151400398034517677658980407100532680714581905312333795429521791302903403519982644876565138329726433574137662845896448199101374955635497973257732194427425385592891323160566717511031802514129515804554187363328746838662004380635793365572591205478157241743900141089596482443747408258618799942112842040431004073812745721374642990332360121716072696199281086843403479554517022772825160300038301276617600328877821646143245300694048623801404667451031380276096744817502319482586627950156903827512819752774074295696700832118254237444659205332190873473305326732237451810870934354130092774091799278208625863753785579803591401050184010570471484916601636944083865021078275857512637226604670216081891586316655182376131085855523731507992123237620418034725681439646220093646935324345644344129104191798698201980803192251000064697326944758847425758766813917385266310968768847338118737412511761593696947459054957507823294884113127186549645812088994118740244717512707793502898274366583081979460966607302341409497207573622428162432988404983075792498525948925724058278563109363586262843609563695142728802121146706380157192286832144756403868766417982938312280002223951342141749487385893492433399858348288752378655632065596040047108338687578515637733275361863927689167580347558678247827592110173424238079942581979863693725132568979585165403568073567110282444641663784901549201451875945105946657914348032718478660529034468353532029084071245391515257094947767053968316690689970868848191912187676222332988738155080924357953047695288421006038205744860731534176134335840979843189907004612311880137292230938222669801704294084075507466029911114371570532043994376649008430077751148074101100667435352403140893484192336523148355319776896775048250838582132886592128550194113483721281844836061294867676554758824104534323513986402041153651570798444556110749963449301693880681412522881046242992229535054086287400886459479828503533641884931578310075346368913962021772499231014543215247209754843362918530051693029608670741230655853087936284945724566568455977997854283348471379473883909689505044762155204851656228746027870706251233036399325732668224930547783302996934317615403457841551167730775309637628050470700585785553974701238698877745070618453814430857214067637901225230481501194005091483638506027146179088853621766548053755309326415121832127905472192269051104468572932817145695727221254617243389339637665223315646806344229490228201189608777735167945284977672052706503075949116924511824254856182832112751585553965354177747842821999469755473357692152122789746276805361668099655732583794028721362527632749726277673308245789046856558762563400616313097578984287743817319720806904118730691514237622033007927010474307594112153640601797098985836799364294346164954001192686434517614854018123017808822762747840552528094144201229122899807248666841557565804916448068837468818898142952338533558847323434037302528844448020179561603980819373905397336473623601907783827064462858798550124227843389347751291798524101937797363118575307177488648987454053370730666847379857499270587815713977447382957657309310016220823537098788523355500718726869175806698510538437431707019293656480431029467503442012679415832589421593355609679118890372580506609869384102654500169651577918566474232428152947767879258312200268087053679844498857844938097877560261875077840181388020243630962050513842359960905165939590265643613786014760934338518256904153177069180913573992257976591508064313109272370788110288674860695857440674499929135275713233558381212562258779345234816216128697595978141209578975823103584855810501545776576140610598315156683806804236403917600418507121958081803986587442466966968563285330497426624735615394651713606806927309872690621882793768662186629524746719570603255942863131540625410567983314521828353412906429778973220478733202172777900830230019827462159857106535425723703417991900112572323124498259968979933487188024881824552834963268531670843067796395924349904268882223919193843073467641096032304942376666745009070608851610849799772427971327123556521526809232476244219516031127586860540442138268302154418013303497726459014030573206549685814243837746994481025441787686199798756611016213547369181580359967565261590524100878424234499280855425991801500284890300423508422987639342813975177973393238418512359076923975034533114057093899872856670185582656707135396683797106225927174104329577384526093291994824023821778135674593097778125519616384917859938961938019387158049393381592220728415968595845540684526917819906334507240277933873271200171971248197257533762191200987958077549156635568442792606702040462215859509600242669340123862523474344012387491799586005245861106036832779851889210510552299133675841151013749699393202185312417917402030886401428178077254666068860692401662032485397265013246009998326591180729613745840593935527766920721082714134658186512914826544005243032127702856694769183697754011264056607769920216710592097250930942573098590516358267754227807198129024101169179295126494688783703858969085376740519569957558645610660125054186225783634075225556410657748071042046530797012395434440271069910874413428328732487283627086664888312123828084377827711304580848454844951557945900127833047757488121864244843845095963916029661053787034654787580897190987839231542232646297600060300441526618810145415050111721767476820619714880818436096302292360125615855366923893374093139512104736876573083741200163325889200491993426172204986271428042294065588690037431565852980633375620943907070628328780121144059034317302961157450487855588952811848561986467821269129439373178274039761381503207716151538116792417778878540094521625914150138786528302456373461624275246128069019181242269644137231148893424341329016383963935722075838334327634766744469552005933154351739139733494891830249978670869151347004711318001582571077384249267843462436542632809966995686276679789191358724861803052323020523228883886229782722467404849458414296896366844145072428257332220188578165412417681013206135617335841273351031623062575899412369064964631882416974797221500381104454346063225346363637719970016134690310395651057780482362897490689297194363007443258254329211488990988075308146344451982484066907758982983178552367981159897776374643777969101045679332195801504752438307402234185274967369407475104891755261086285570927215501961664444123207450112853390036641928833292727575621270677921321861390864739538368760253474264826888571369431359192965657375553476676270107712158663559822288493991749683290689057774986500750103875959878626541193348193220145256586584715860683792327034554013783563960274091190834667758346467395222579254246841119487038423502926986499482637867158999614445828188400065603263267121126646904740444536104724858218945659547268956069611668435997456996107517925551827737817801621001232371879567384604041520529489927225845093378924659313816143472338866463283950928616171144871511167006866988149867067055943745751956949735987531186564040029709269447031719119320471895467994185276058654336891300810041926725096919084029917925884799754698906315935461079024790820116184152394737680385686543706848757254530406608959332340674783389738574088885411361733152465324111152438057080412712807029391176420409724259109818739138620814155807048770183943185986130577691828572712436662923260517983578434704369411645508738887956830646991168540579932453826481741733365199714628064641804863394762073985032916997624790173430040269161989964133422374983097215674255677276622471466661738559911332032003215514624809133435771965684380648995538638251363250475510321895669408212937181206846341892682476345493768102739190495805537717461804529538901000547104369306143433495758580267147332081739634020531730389656964708713349378829320483982285639552927327835236979446345418933528360955613972926412157114398357394804650800055220113682693279906483349508009568961248689312782945687954016337270914947146932057641885379890097233684772177036394667153866944531972130956180091951846516970676006850804677350003661688227136973678569763331109152390280525019714239158265360519881613290680653909820522573973491221665416037929686638604948698838039026948278324720050607957079444483998467909943197417479765662036454753364531113125557479123182678272259988529585886685445492039057151964756597215634692838948648227176182494221656010130260290276883004792392999281442780153520277142275237745408764264759146224972522172416827022578727461967410534847336081938175279293171878319032676195610548220451781333007336346050670632231084183761457594851331386326065417293959528411856303465414653616584244476625516119838210660955017156620898331982933710681861411668876423226451314714254888543921100269321113330122760171929384918000322046244061032167998376056538568646553768416785450277655870869787014933053281721436176565005388302379619248116908554646605352700746860895768762160512590752502587582276932873423740348036680673229858700852680364963676329093790938228379991851198352126853361772942470030262648584794762021828422025703517090337521083082385021081035555996734428508124495597719282855785583260482365750736128731368645768796358188550228998684253928397841538290625278717410409520032166063627221484246506110230084518505237656976788701532624846324296694040772338513808276652416154734947498570905604577018792442565934889822063747605700601839408254351516482099914225517089671212321170219936463171362659846640052177063216837843507865501160479782286102767867918835747595435453089945016536528185681690738785427636964530617795474626185282891770944163541124789766983885038713898193282000729359595416065564167444788918332513672037200349894453682553552500307860556058738853437272499061183849987348794526572505490787753681190320425325093270280182412507029811670999195035140100814487463980389601827176033111086743383863442677520555606704429889995459833490645513411150990618137308527071708609377862212803995583883484425228384594457895910635073974809966619638369003095976181643421084518176592348320012230355892164843109204033514766760786116849004494508123806837052493946894437760965267330077566318931232606566580836351105328979036745407692017611960937359479566105062641884594857784171956023413760945366361399971794096514387766946537306976852579615294533744132365899389487652935444721134496229938662709985098026751040879630436740981667183262566627218832843728493380423665350666230645297306307487722825418830648339326775155777308922326382236058786654994377155858350822929125893409255860995977117673557127341057786919815113756609106332833805456964161189486162692612687227049503038134609940184228981300906811132116552512528842267816724541720643807760060161779356977509032166978734605724770890377177827964918015542324456282465244836787275555461766957328282133544662475666483987908687881184777376262200532527285599351160139134293908344071360828625562641540733484553230344974728882959313370688886579869299701699157351198115600508688453810036386388845095040595106495850270954494228433055919482232007196216160473042657293631671717337167308854632503351345878644208544820304258823944424388463968203412853206760296184559600489401915098735922213469975313119326422521373071543839033864920791920176058994690987956771392961239746510839438656741431383019166156119797332793324213054255882585634596570383021523392311482235193354998844062393988187710933481231481398428306488786821178352962925533758219846669099823144256032275153033007098944090332620415304429399194658271897365386840106080852517821785269288235940792289756208331402976781573963611820609017107117327299318893771070366034516275000898548699491468967616892751329784174687263186805649364960550225322493570200449803370045113375746461631986523109365937220674252879797566154389014341551981673733075545704518193733343863491611361422829128634798309921614764583267328842971977123531681662334500217988987244962704580201727312860801361039048856891844879017130974348086596143906697191084080641184116457043775108308875859201047197714068328631819918208603918299716464627188282162282630589607320130892476222121778829856100519547693647590812612481869090374998967898357873001929000563133645591016542191361787726415493309040195412464419671855837269549147359862490690078961050843566129867433432002993130773321758095365140084958681345607785888020218294343217706719601175856848887129466056390488357131748969947434514006201741322730278124662579993211453444174559665697080692911410424776853274749120776751492111643518288952173395932324456612090156010072873908524197968157993592622733761583990307889404299109540413178864172761532866199563535922365434055413917742932749065085015622973973117043049874671549235768725351934486466171647554035834475187366047266490032548649020172871572931990750149973390782464953743503523659603396092878561509831092147546485656517238272487225220113979653660523773988004515446647454618168758695286416242154683900736474206544016559976996391364036289182712243734387788352085403009776066261320107635578093612043851291219553027883439116440827473937686040108082276706537228427521165564610211464468600032954139120174996275842676377229607598410546260479778704303791269658982589849090570592041878288433566273265966738409596126647140716234040840341354668334799488411372828819545450607964408384321458890987246349628383374751666643356185423125061677357269370602009903535040870019376222913377583072588736042724794509565719704269328419143811635225154238125791241025017808237964769637533534880281947731401221685096135626404611876510565348160193616934388491915816549985813945301572650114012949223247890964187207558866047381692375279959588320107372290772823758395856888727186623913825932339368237271709457757840713631518052463917749710476148428408331409271044101776343418837992764524171863962047410800274014452517656355694873896101863435018723534343533047507435589872047710858145601285679782699363152933227240024335421214065570411328249628117163972170414265483818191493358215814481938493017400645262553832101702601487093767490464647725415587640534058471145677340557922943026144915564880450878509927806703394310299917638108413683356274261610022570759671799135378304813234963264777154535615210636617975217053903053875301238709975734503671382432965663523682935013664288133297930371349913483692360478342233050309065470027075756709972986799318023663472420364052737083641069510456838347744249063007148285178479105269440325202027232818449033674635857310041137376039740338048565825269814852558143720055535858862092227863530221755324367670331034016330874483556789995490877677573058437116988678188034889602622220675312725042674178283978833502729020874137564654092827649935016152217247545638454703529142319317485703443917578745404093903308919510383270698120251882022972078968297793323607373150330611283476829644483525610706447475792302516325301589530058765020087134834889099079888419814172073448955117243219329691748698880831033706153027556594499889663480463841773019923695246197673844989594315344943831647839904671084610239457922769285851778369797105226439690478052544844234409628369106243465794060052725722193553401102858794388997183367326197696754361683421284049098523044831855784503938403251805680384483446016852426342016054582761365686620359611753192649736444362096601705114296063463233588830363581234664106570226120107842173536847486733434819374577048360903728941152395233861503332430231051675760217384176554976276125842141715032728016423601366761627690620863104875062176497517244826322580636934865462489782615297626386707838460852352786285625349184703780635526431303604732222008750284009700042104261045258441828398305887852243305431126997542566180116519336140247309893897535580206414338553555619387608175837895937493772202395691694421895595521773338321953882742274179856982329469521831927638235956116846537821048500094271178674416611703883691106233911646697387910012742496220696751692908233338109305344948420870130860401198211347366910564340714878805522710945383022037834661629039579421287627694084440093891055938496047377746623023360826922681018723856348034861712258013039788027195100829907302023020109767332629285819434405883859297889759409365333693030290996098511528097688791470163565900656387082417474271488619541317163474906771790486570144804983630533611020357167598955558597504258689794445102334394180689779786399657042994747729478667944295283903764954727235671298845820418351686377266127965036642695087487969742525495985433869390173391192267225007757304609171713531011579865353292694889363104415509729382703118284624586766912416173028739608073490509724151154756174856980642982370752504295478754426415309516481523630959467295076272501434674535357706928755496439191573896372840175306345753842823694832659979833783002600156159479903305769364815504576831040853638157796729919769093642929857967586319722344803438192297935873611490158906535276108236396711031109866227834432193269714936916247586371835711480268396206823950344147806618946118344796166021985767092611205269767566513615056122984338900342506098598951706637877213824458117060057891173879374417992417974242672335527517677646055031076472115301624050027702072085636736628155940374718090406061189823514301747579167500678794014047530854567681235940031730478676014550776763365913139463246236513324412069013919682804863169677289168070880640503699320996085547821952967675744836166232616927011383334553742141270916237561212665334255433447033599572541121726106186408637820918117423057722696770586142620837072673465308034765651288948138640343771577673858725781141521529658721126036100404505766960533605615737613951243651052741354958820639555228420146203215598134024866666281244114858128089538123902597870036049317512095230957753652904841792029430527087203610577904325392676822558746866059589166996329670072750337803329033927125962683536803897580345609112416027257621916845283704876603538458279015217911343292115028570712813228043952470893645382305838013192094673011373371886111342126112265033011565750079516085888781681173720199728140948252987234072712108476760468733901511632102206947150853518983112399006700445294632408935025221838051317445382161587229192058547799668150638459487658209642219245787653821030503538038431693267099318225229377930392137975599392294520765178176729398269701626754292209739557237200514673565437388923639507131886778084451400897944402816451747472809943961291973643473294699919572221605797739810782089725365179524914093305604711695002583070957274702368465112267414272415530981403162895811516850026290918872221566833347559681527513444270536453857869666725378621624900746653234273384624948816364485862431697020591780188489826634575055558309384987355434405325665929134847460263926366189329042897816777777753040409573172476321308737883464523677073613886935520417010310288146980372835114001727729577143243620359940536378461191812782213154083931720196326665095274864745490207219965179593805369359840025684019149743730555287093743681210820110221813246090530733605597121208038864415448153798020833800211389822470049139100616399065230969056860185723670760162994876379624125833343580299700380214637281654720246875289818289009031484696557047288750351964847029760569440348031832916029374476449416853802455055478782149508484795253555771336606215848537432809508492835511467017342354297124593699318527704994744126858212341514687620248934243976097252846179699326409033294138812578043871496989759628474810660071701225868291534849563675815814439045781592068082441413943578290591815719798060364163471170226951613400859893406458883124192908974831942759237982061798355618582736686907848160182227190738772230325049008636094829304926891730335957137389841823960686652000702940321248306555525743967451400041326155536117274144511971866147486344709797767770424552684426116095178496666523919202394562562598420873418606838978232764823956738608848252614455057827074785732994419837705305228791031372822840552350519617570481277462926828277423867297693864321420526533507380316691016025397297702870070210388290029496628880439218109116762393679494286951643602472911609996366340153908842511418217461092938511049032586907155995857759661559796022130441483523609291468405926709962414041062687627305746770871766107820553963155721018080569244994059140375364109939399057951746167548088309953255113223028027378735152628499319476476860071355706958680838810595766556538328874789615271851039345754970535253536349307205982319933547783086407683143542754663420155226853455052810297635506925244620110667924548811619643643484755167562897925174899595761199534503908164466924657985521536546161439402936208197250311812697111660547512359206407810586677687470898636723854682678445414439904795047846028402421244103569554312690827009981313099288430933379781315328995646926189447163276007671750358287895036553930814163460137962897882876354686147894406346641612311112000278358516962946641029317360918474129863177511198773761692502322917171432963133691908143405253483983912946784630304852525703109151558265169759093247164454422814366839821412888087755547048122362334660420955632754465825889990629425732625556031758677656362215274878048731599264296499515804025779603250638473884149438044435309923837305632204512883163518145277400091330310730530045465571347625050851666529219581967394163279479162054352478127191701541622917565659795504554030647820227664812650441020422390138732328955795524986164026805305359658507174969561295730562672022074666347578277144613807506817264845404542057142470365798184175380284161940918972931174631488234157981811041382196174318860061780610865660661600916303347523340882813349139903248621454669047819879562317548286954756008867627415324755536738802966760035967436543207031197363376049352716208592861636554540009765555705090073595913958138439102021033101316798699928934144330757965984546257049032860583660513100894017345878803481164917195979099647169439745247777459076678142248271836627483968061326093666830472258912500355044278044287935789078011181552427208409285174367070121129818649570440834857514032938089441472695463878431057840064030754514504938418730209782008990967621053436159142288441382674750341274948369253000614929552368373179509285309659879843149904681754555078352525487855635438550905615313801876569160173928048186645892876261795417374985792887508648384706515005841880571268909492388286894596466739753544344251039714847349731733739368129125182511030434490015477500736702110087159320119451535445110642253787089839424880047524797738371141641948503406575759258300653726021829455545482796715037304852585938199227667764553395520482032193278822388534818890709861509617532496825808599617366125661593953558029171562609443065534119497479125928835966763100355926781973656424412753291125830478285494881678612476971077777637793890483580377231667334178740641104792416595260665720057571716592517202575783049405768581387205008338259104174556682010394228082938450114848419251605128736127642946263281274135013396723848159901697368091304780455512984701098282502338121208952326540395648195941300809553392828432693709945730210128953693722508877609339575249863131208992171740759198789881005752790649525243902986964731334188184488129913075562717361163512866870006781528196316368496610040298587267622792754048509939549895141996138955854644932274489618211762688202511460034061659857662407304573099784190024216658010438334026415045773305945539555678746255810794298099508610907686763971871045643213978605287367492847563412449941336547316148888537105619522334700954838453705267071445181304455350483323412236594348638865991964561637682566297254456387034417020354341687046399709867346718003956382144230171091979690683438408056133000932911500385870561768418367604738625122053915370636560059310967798714068284121478673220606106837156551332359562491004671343661966202984840811381387835163318700446312662946186283338087954703273885080292283716140013059398524134678161490807308774646958978755952239425818038845115167446187281105074975824168865753119344509236774533438044511753280545447373058996015971104888725147952152372388647524342472957446109141882218981858616103991057035513395729298462115036230072891088077649502757804666361740179735813656212557713461129692050617079819562873246387332272562910341557418119538283526618884765214107116171132398458454130497588111027962740446707648099636645914667752849563922932874498748694641794245800284034451395486032797006308208870129415467010827140573977640476436163294794365597973359706842605105968499036130800891967623265688141979461318475012135676838273706624481758492417172657223855068206921968172677393529674479044146549592593238435238221282638607061580187704489270773678230622471936733260500390576011007153875754678113393796328985788588377756568277144586001494438267277208592923836227519092981009641986647054969329871772439792159098102491240153776499066791049583570781412251761170503163038027110149145075362053812219908832362623601414905795463240091621516503106414684942397347306450369203259009488349081437616813104542921320049087501557648258467299094792592227524681009271797541288487734921247631394031575251698911807081332871730801039076838779409480626967926721098916097323886177197078832574488258315551410267524597826276131559078352980454399123852709000394017914940527332510764101745346976311068812734808101091878939869784803537545741157451259256192882144430185971802187173711517918945941243129029430021308826541996152011643445182031246232776845734307754082713464586282869049999684977530728361986663211826489968286731677301775329980300144099829828584423500766241522836722899414702841526914622773413524920718124870467670570126003205613480222268396773107119023671301301136490100250833234878206271135360691851577310659010887439182915482300979461746243679941995093296526848663846891853888914140992948349156068110337200774637345117218517722673040972212137198242828943245881962256624483807684767824822898443419884109037411003306500892629474225600348542131076066388352216731121123683255478489547890061754490578751907981959316883936518217976023682844762041883719504786843226062720151234435410420005898207993681193982082002987387683809075598886911117580854013603192544302541265738523980838218390734600712493924289150566244374431142785541551961813809909960990652425371440734103300210531857808483903883473220218611174457447328404356236866923297250580882639607254068230831401704636349053519919493572967054985706136415015349848579915100095918614123853863060443850351346513058388158740334452067391060198519715438354527459045044122541686193792282083045131321365804952846012811456498486364798508349580070920899139122242948531209166574628071872249575702792398409329801021022077022631353066816068621379917675191201619837724660178906398023838781927361341996904107983861845091764434129117217645300305564355404381539050647868705153395442596081263895249637947224791934663632448431757781514142365522584971081610308247194560306136634885646213392798648178229874209750007628200864309781485316573781660620899743889262463355647301550383518121908786506356250640495816584779327964019185358490704985273360689130837484915692781236372178181159242713327515194100432116174633549642106164292008553705695383299002528407306643439889938221444630936935515730792243600489236548345721371179990676223434826463779888572526181088156729221260039280671881434666149095921589006889412386843033264202199918667560895112455926548150472932387378461286055101468234431781287115378514647567979809179769624574627906782292913781654029933668184650189743601534217219017847515563469836763910129262118401603884203296581240629269892449051328679949546951977902035941543979111540107974679928059958019356920794360739373421859683303111028869506471232057014409715193300478855791430402549233405567220621586998294934995323273089356467072705825412731822497183387485209436960065652803811948987512782810732885524570182598845261188223914140141080001040059473334394050213188218451077805485085399752997934887829140003608057112169752626324145513922571923257536741152974855589731139213863176948170413979243819943162195390579655695366494673945313151578382887840145293452326822075205920620349400417593518654247130268051630075753398183373061786518880492813338858257400186914417310871883143520543422973008242363012003254918825159660828868262634011578311276463211185443240434106667695046068306224684531417771260694820274989225332797141403436327929578564761024176810162137200952222809511229522047035864431760229386412107539559628865928421500636819878319225013527991525361259889317405747001631936884151723617415430262439101484165983454224772032504522345394066923956962404333515150595617184616067440005827967234218666098018435139019689502005255755628571836160723434918559002812804619973893884196347198672356292607856565914326846085323315355823600298661469956053404687849612454425841792705680639469888407018287211275491498633428383002292516303240946799051280956307123117284989608662447201622212496356909368905521090576435739526354831381813549065600943567753853563921635371007006842645933598943181334679939416498968729637784022781085615848780280460531605535580868283304004907212857212097094934025137885088295710222386259599589540044567298385029177424973610176462498269524937904781561198808178564717032419101092473901168481990631892863693727213458794771910150794130627965189591757590522722957034333624081369573602939174196714839397051190225475010070273245983829831862831241737825101345442965197356647283783789468922617416235376148541666989803491035849709351742696720229514507231948165207966548299132687056750290449796997052326159747405369872242251913949149558509171873044234286139669642583270977373064476054194330976973518785763156999494230646217253831685330540338187735708300595248754353619425522057344941200039439777802983452391568295211972851311054484779314192400358209175608345608985806822623832999361101726677858924351909008226679083775676364091534491655567586786225585063067846244816221802177664205465916651974998822936305159192558078902627497929971542054393070854369331920077239715701841755659818721542870232353431900397722635207686217491303437624013251624265926371998168991443953229019616133289209428135610996592684100643127122727367066848809858394516599796810823638808275975215874190634934183664276360405480483267266860908087741778754329630273548570398577181597536062270215044117889467460676052708929805367752655474203399297965946040734432043727497750190827064305319774709485814654050612187312150820208700458499556866975920140370884070580170221332956152853779510243158049984706699289418889559502847462634358287203100933935822287198241978355633251997829892124608055286681734514903026626605217898267770307470289441545926212994621402186577856382451517942765099603877344401915961702799349256032216944734942237873461519803637884110685788832743412730696617477198785060219632224943774708473761569946267767170851611222881684243264768341154128951310845028459637561962930795333007289761134475974130375814287518580011265060593311835873086262113351881818673751034478303251036061697879699040631295765312766067996529453735313301640299524894040590191103233362912117646250427360799629588208142331615952737173014973873395440384103623117435207000434110468222181578866130468216881817902102428038201448654189890090845799132203036787681394380268471137251126913598279248572225058627763414340006126881135337520443697727023270483469329766901893880981582574840340991123475873310710980949413766602247926357562719619018203150833926439568656061893962547038765320924027705443673129072855120519618144333987575915803222096880155256523786656053373073547738182462034959862437880872369116156721981639606265043118773383356186022750224296243512855535738174875466864160856752615514455042774566798600213848142340587379631867800072646855944687653856911253084973377228320670713349229628704070032624700270466552256134175179441695961406533678649004099361797806844324635815608443575918835129426779326601159256254435008258234937828707019944676023540168638957175943967797903919554123133610902192760830941512989209563392602811702007976566458207632285871534679527688010408443373382278157355489321941992699237372617868612240514148361991504551507337245463376653431128728898465048228353714977373463752324158629693761358208514817001520093821020310244297801807222476720210593978817065799652968437852105665598173781751342809210956253931387685774334010068740259968785069180284759797916698589971899550005419512342902667738288303576237674874078135140838677121115493366581475128202952300095918673528425176309785095629754610776375596325165134266500244235089662447188469748375760278004998093708300048450646199949368016322478087865415131168463925601911162281313092610745318572620798103122225089969186752933927516880478596476511986421171853886257119677583970024721971565235681153625929692544251306934191975750758112168884426919986762109614687719827190414122622810805546436184157050673498304389499584504078497489128458256928180929876784402328116251516340387756595968019026062655603621304261840524225317158189613901134277250881669169936186112988129871975510784620130648242490857758599229213020582168087158003188190420256649509803949936196077966141897391289517920083073112252499948986652466677820742314558660579334618589372683428613934340361063119929903137303573892535086562761027262434445908535552329548590208666217974647627710355407168029786525090210152836126277156179531243050463573722374113407122261518620416311561802387249802107682314402707617931496654093583895336130878792904191743677294563052611829415497909104715250259260752833604392939822645389971945024360074554261703935069978537763660524138169843162346582872895012999779478138103208051069418475243297779872067931588741804712994999717494776519694648605389146158237995670630223679730870252642997012065161732557094140619306240800605583536995946613178521273978844677447005670107964302021254021299148256931254559659955069453363697805910004066479059881397536116473805730091751498195169452954839899418750198280417944793418202265570883245670276423217920492495782237725446760000939781492912454455626430797517113021014293954934672865344848244448030928015278875123827132517678973497837665306484015064844736245293761468280762294918777529833659535062349001825954846163589930091922540668176122020567609211273551969495211488291467590385308106125785136824103729407559665384393470296568370343331456487844800613649994893948568376215003898868858372013260933119660763121603367029712177612773019212556852017033568024829706422881751172437641821751503042510455759119709679982955592068331527600556744251665059526270330787495193757712794371410338701242074206248420042415005051910665439502609628580553529126665689684044467699747140601426002124107447996205270160558383684464480464942305928478233901117026723952361125268405722738590345160221161688556307073205584189906955102138774693632018836565659405279537777657200778833326278988041711409132502761641518396851942905726873914049282219946779716035580216403039037035593631682596998521676955430017511286474132782479976341243691387416649770680094710571854577458552222507933104343748769492639031585316425953529094993433612228771126437167656552363722970722453046386825947283666512147418643918762782198804299751096150850718301674828720081811460211728231785469341749842089093232131346278623694760115627374674976594194915637657972797540856335907134197335373625642516004278473416874354489758911461331121753614409409675651236429159589084018256995730721262985262230200555219915787258563162073148043593113794464407885122011121967360462101083168531832572874849068629517610485713612272529585265871497607054358275057744194364268410251494468781055255846190560741739249197602287922112121534158047175779163784073541633595626697083593938025429933651502783726016680217015523755690123442332176883706543286808978177312210437315496730521297441003092606470269178122997341680137054586944123119005473680518984406284039673704922789480703485081511851215340744172271784268994268535321427916206043294346518617354286765107008255738596492607383347439256840398544584277224404637210875087334815842272260377853155441799361714489353880087323881818238523346818996547045260447957182383672969891279623547456864069990183972342948273056873075846423874212015206162069744775664004347557691276953366560191494267389234372460202288793700224752397434466791949468377906246272656631042335555931526759799736603560509266812176042728468678291288717679996492901764822359207587498871942679729452317813070800645825769362024975025845684176134349972665229825540263924097121617842362624636775244917177208855910926904264012001508287634741407029089154076583347398657675378530552013822874778017325246400975223721517610248431996629013942770808399810294977321535613676259963376311424485849362539030906594364120368213844063172963820537851329503267465742861573554966274569320528878694855746842995808201866508320809421525744340156313880768766285845911902131231044208462386698017445030716004554326585532412344902057669366928993159723708537157291911529670307858056088021949406053121126234737014970283032759803089989506070218329114447665999227219222552835866264449452095596095249953353420315242850151834606660512935537063679057570739230622940466487319796789198478078004335231685595318427713929558514228894520310600479081650311398376383301663430245255302057367724596416428240067915683726360445095891307941715213474004909110880684248267189749270917724706648122287043812793135329943967916402991063199305171117644647843214062542808647937974093976346357951628774109518347187142618096727431608925813983955966954477968258976891505250424350887753971694575368337688378405310158422061569475798615029546606114254715559222956383867581764790515314382890884920740224295099088266072831323594767046971101628919560163675445489229215649930007944926525128567962186298722803156568514864229044682587174538188232095890247562769252837977572985434275256413037188511663456836604483537908990464507295592075566195514776531204527525804452081874920994779330001134645968771170982764023648923193458512187559007070836002092037076191262773918234509997504533289850697248807948225765047147927314791836920730783397603030705174689349213165830930570367013235694877629698472005719900676678724788375775901028858947079514593941473117637219353685310653948067141325610598995130157313301507842811890096629507549342439188697784736526648193156613133641689970878416158894164916729046073283242688613347315699703696696939381176648739990748038139208985746142259337415878361660050213435278400044047495134749853875263689447697929768026874629585722656787657880686453557606958097445683840992221144654561410019015355656385725991911234050214818576884014278100464070715238637554095068792373048059521706289026082742373717924633948771682454074105017012592576522839882471701651002299884695591987587361117934920488046531199391083232413130217858465174410663230973186582905099154398262139667287185282654754296271486149531712122012140776442326398063474456668404840841307263681769073472964226068615371395542783271130949828088065650975625797130050616564990469398125782452579873457974498317892002018877727921256609889862221099150770950142174425643031761957632054181684835960803314181256745317753020397201821073026476276894238184337735676169704246993637068370451054404460372143312052317877925894829090064234412117991485041871134480442386864122213236416186390385498058114485601236251360791023433323964029954845729987579868109948504026476209589246193046625812323663471847540506637196996283096001899589950094287683286489089320581829763921196368110626907450885322696135171410793467924617839448784958473260040306145744834481085596626046495224803334882601112731577010154615312003185781366058896880036182152417696432713630027310477238240393795571524492155748364508798794168327451306838531019651345063321574530761818729692538777049963083110341053626642455803395186838155761181043794255712489912579011398968369779870021783324255284100823727039396142898616680144889817589698141096141112567263113176648862955616251158499897487468713663276697743272478608180637798518572447482888989529065036850236499217604934342701490209101733838036035294560679910054844249650504095618583848680880112122749004802836210166783014129987165584685362249746296030073404137045528955428592466822964178316702290850555791262471685767214967672295598308192748446653572080916946466406218122573099307468782456131766655595411355506513605247364122043456273137305971360588475944239298020895453111266577529079831331140203983512237987998466847454080481623989992146718485925068797385340893671360267283976151484479723404553482716460087422567974128013050563644062863846649382694275115282871453237659692012244780696681010827516209506310827140195887144340483587291330422545256222157445451297263006385363784720409934259657461061238978949669766423620099949767463003395850693585278255824626273466775591222855515252157462090672234824056840067332640252083994198073903934881430210770268797650664950672945433043985866176224459955095683117515790519602769827325694725425600555416762337144398962926689106392070921347258764464665316754399587508451215194931251413130926837262997251512970822927644851308437825303910616846048345441638667777797186986725039072422190837067177470627439365366582871293892860100678661574781077578408515781197011838362906004143859653653742569816142803319571283219166708907837898977609306900812336994422037624301384874170688387981944311833761504717471080003117534289191215259306026348170036149566966011624726433094539204753580277945823562378578055233664049643824513518109811982894401084565265788811627829612730171207502956971285041419990760943572086640736574016053881514691536992481726477464230528863310080013408696468987743168791902050703008445661155521088625657635140670977809328039055218245628619855124345008738064724428708323363475682560070835386048158028547117327702229302095226067974129620659609670960278862013523284733804651549242281330958888340630338528113866197421455235992177290399068570409340258838212196907673834648984104787441928273563259130581927452294381726086338979453098852281373002101653528120903032787659802092979116883983705643831576879177176199363958911425636405799690881898300862618223109988034512081994484710359177892848364580686565913514406407999204093401286522882189500422503216521499345177278942423300282119649834312862333638048119592744396734635985869086544637187591792505756206781484025095851582416765781298448893783461171404929317327722362857529980154221679645247742054202216529820831917459041025008063695265067548302089828667047340050247727586649484418690875340752670103970847751810113060012163671669776051530862981131766863700716582120421258868678898174162506042522386352678131817656225913694838792170822212478030710031685619701819589317256900818106632124937168220769501571396061977830747313308107890319370255003475410779995685801217974606634686176400464537903836592125924850966191521804961467504144153924276963446858735558200778332579285677237673100246504934892108090363057734788311882337444223317527081607608265709732429677890753688193932808747541668617653094725042007989301575400083644361661435551632417127965730215420795714257692200313376355774648246924960135092076687807706496175526556640052791553851166092468518463633088705368651572308830615220434761807672377068756769754988005402627208157241135006320932940989866658487617301875966084286778276765460588786986777198953007434563371282614109744703605816353371412796968154802157001908245413129174258939050237017685041419541808000922340722032471067691421542887582758925807117430956407176036705721997082605494000396440188009063527842260827123969175613406285917897938083988097248047570164357623671001834128669914849523891146362419197922925919554727750411160828967903820516171390292452489027673193583429380773217848447431765612575097274083299237422308309492570651804301740245990140059944469032096437754343183301629604938034411472470040624579278643157258734820793689029485675342364420119228071642263017866826636681153608986057960728652199476024158922853745501272591109194491203063578322779368086852066939561870582247701340743418754179929004619379299447596899427742243310037290147959200493046113608855104376446149198009973835982222605753412894701610854399850633523501066738863911458869842877146222450227097958514943692210581195899847315786503892379204180889255895810208225228984858323217169010829290637989018219100948062248525776405949371706141658801748846867687031652239805496402838664332783047346032930574012127825707769899924723937946458993737381789987467503309871020578543766036165431074164275241565422228015043811832745809966419095241054249038486772936679524854918105864943315736367441906183616791751279046984080528314661699498111959644772638044414593164922817100194621110754720549981412958477552780497306366846238874023840182693882853833509905527717359828382083091986931109322288412030262513122551777559197234752401629799993970717019138193124419770950771011916688214360163560435138594512031251421262992125059338298309093476376290844714834214543596768850619739994785246330984945341120880915991404825832684452159239008937226096186769019232963648106890627662902246338902016488010717841726858935733078611117515263366822806713651846049752362118676151171255763844781443986022539457208387806369154912825226738310435876070518226695680351929506946835934537824079233526412628235504334301216320996711015050087213419400155113667675876035268937134364104838716257614264226223826026929959531726571359185680884442482758370943533193898025890169867093980169370702517545775399374156739673741549619911726436137493052653949561314569849601186223288866489311260733841479937453220492139709350349506054431730228747973094312282556201693505021777736615150060872325823770839637011005290818795641183454239073002730185879416917124521254664828449933383502257349235686220406203636884557531013740725082152132847947909706985444524218039972244489000087024433430295882842076885768633943462892096372214440983512548071063494064052110098396882170877713430497377612176524763984870618058931935205031243108826744536517319631361786891401179838159684927831579517602535731054073986051302851902415110270300401694858652595477958203998290743574419652237231544044107047202829523197915769165451970090288576013997464155056968564494157681149036979763455004293255401117842988815713148779825561833638862805073023997663434271690252785501365367129102481509628253265898443713668276028174417291826323688589967349173376776675287643844952968724568837489326224721470426855890189971754512854666939792221697404447517843721871172612920295018572814170196283959537578950863425447332957692358820698122634044913307341951360724294542629807388977888776567230089266474121804615271016982051871928958830503055408393436750074733825830815747734529956291982951382836906321094887491114403863242362762161421198257074232336121981932217104437802558782742957683606787432885820876084849563038852013277925149990635124119130684086532839533556711074801136870409738935116005928951084236266314346753537874097772957783330918399199174818011123597643559907582285726735345763832755820643782212198699827899819216659450389419964753637907929823779413385566734741945571568792428914032128172497192887176999026118122659107319381272970291854983743784338269404511961267176476729922521874086340516536742773375763032828934897868851997616319352359118848021030725526240655676519899024374882629076768299488988275379531774133853311326509419287022244918028697167803579697700488972956040415363928698841187637499435307122885717071546168721886599546224698286635314322500229031452415038815477821280668380941703243132476358826836420282927489676505690030354830914112163634524654168785676191817717743179240923096705068344069599091594903798251477797078976949659086244567425679013649735274369916659900215994719126479398520505804316511213663722868465270121624332823213913872294709817963905695322690990967300956325027365381674141345590129470118871980972441381053553102157117948853029719257624635499652657894235608355469320892999778459655077729009210157769874937300092789127152656122651769315896614295027170053565087509683209203584932082076560654843748112275167004169987171598736409709088588165181445580353814570091554769863626708124017634273375326072158432655466359850900287588166167054610651656762601892103754092184427971028835867852426856674487735736387261146449618872881833226862151318307613266081363110405152071843164608627596632319696538715262573441999748087717050647396339117142560488558613265857617821710044956355185877971749517950104845157820609495604137109889263780007419984651844256454999412295718737723048178901105266749416448666258003593540186000283830501032882307426848419726132424524553902293430063586387099397934259049076413584918317986745257997524376774382945484796976627983375001130344580440644313874183337072029006245277176429037642305150539556105779953704501342397693307180718705730107947492795723716444191202829570921058784673399176031870617010751772502031948677443476868115137672072013850059092236322299404362059071300820010183872695334157664165489763366774818304005054999624899447074366849927393104784080308883682115232824040353938533673755928418280353000168088812009914412526641675518989066645299285253035801042290413807420736314194432250406257363130290101868241660720954049306316074635655744017459675271407132111941448829853044789203122697658625323349152672108963921791181151872962387323237870087542480194489718959724526135668726960471200245201419516794758073294281401864018506985175816531959154498325782470297918728319092909924238491523433757525281521100523745932039372717275887935100818813446083445968228903599308969656870644762912797248988995912367101234834359528635405487582597543428902996232055131673961503894946982686735259703314959199799234548334546417261560256379340128559874705420168963119191964539273020622940494878295490955455476726181612032371071912362236632292361430009824528548708879596915786972752364194948607163494620372470622789048624430097157935869478888686244820918368012037547607532364091854437568896744466693046977143072398165133566189125254105578195567873517768777561555375745736307764278809500225261343174566865387061060672688062141981933565104307221279090835868753460976730769167052868140692826843406654012180757955003944471818146424755615291824098522880632564218303142040720201937498142114925862931747678416142182368458866393024425842751753652354778073044545485936710569293168055160343127199568861520725251941321710203630040536198640300677021978821811802833418865952813372621177390896870182333008357303953868883721602209953967741496441295269853857468596606171581926996246602458235329008242777284903281482993666622848373500579853078248164594904493015427880094296145148181926927215239583308116468693150549691905046137556235155318904002734659879018079906373994370081278574193441609253932537901694205400818346028908550745445203568297284633842178926074389084002156316275483088044295232712868666108077351886875135274185722065828075555866746843597714902687079904304652317158409083233778113864020868158571079477299927781161684870425078598885202695212814126146935106684946127568353124155093084627868571671087713533456857758231736348197316373538035627428555254139378922625400601631814276212812412378289656940115577593329816035939605359881972190825163926447234638235783368614022460562207103251557532570196480088406998813191357030324643422753173031579871842350121237631758314316142968779102135218295261831056189000232391046946555899723832290965276084269428687720431745690115659291251087196595109349709943349282554216544858369703791643088490451314228500997401932804821088022991903295309818316528538409919097451605223866601851310894637320907652985560641480404699349818219269145033912934361175773228805552844913561001510557638570840755235783017445854020036841804171616808908051245744514963288530351306489491138122905679823575143478241246668823318535669227015380549888925856530172290713584563655648453013079390889901303551088969412635118093498345616570576186592220844345767251053385101528607162979885540086147264142555915393308661228549325800843169969198339251363138068358827556796906184181303203841133854461506026451336583796618236580982384986386143234102571945717525777678310943325496784269269534271426726390362793287293768020855354418486441260002294377892824676556205942763202295059798799617131683746614762297493725184422373605698347817693085556585049011200051405076880597865891986824662139228138394631928090318697978391925753593122209437472772349916693356697550362152721692756898334947853013177349469640743070555071200114443883488990407178525702111211800523761851642957455229165008207036379043691679112981425118386638543052438652141383559535644459108933669772557171782068254139808155513817482182789530375056935208180235082941892443195437382081006963150783839972239570689327346840744934811233179368461926149123599604903589828062694337814228312655357538098745303794780108966842988056215143187058849682302107450771009461080696322206227880612713629191613418457932329138501390521905352179763507003700278175305642043760285313746156346191035008350254855902064737217758641513161757660012360265733001566047401685990120983419154976384715958221129859059189426698810238178304881473038472033228632533371120630649645331284991517271077199250627552296173881024267244553043696936497696493590873963440792999918022552086614918363779458680388631874119615426067561763874666399629947977437281748538701651756394738647878524131289747879389967369029597464542717368385547136313238778750459112825951673964191758020922997532329120745954121557816100024753504010588162709832096339895589377108934501710902052419654296007451487057771309706449169059232365850644075091514041937218379749181033275235153736179047335088996130134954256837619431343088041449699695478101565590977772148717819377821285602087875684371465030417608912687003207815168099980371553200067696055060057931211760707387749872653443799634851564693678291652758334276766987097375604558363859525761934380577216266064708827113251213576507025990606842478903628920865958980157347649095555783748613957984670218639256298177307849001940847217710240774424336968593087142096867034708229986794298954633521867315240295873977944000378617499746305737903320247214064279323584038229482849943633095776663227587075798421881259308332177188169112959692087564221373667383725617724733144744639068809812367707903359557599344834138309927852178092716290455013153559535790839386225786904902648506389466660252737206730459828433495936941080929849142026445016056728913027133193625142521201059558611715712588532360373625697034605917989312606341296719792595915834009975128188815012212797801684665235970465681771521061912010182065020822881698221818387720091701077150512121579560512243708160428356456335069158849168437747863260057140577178387708967103328169740168002485844369679322265417992459092225688647074774317935521511514658655159998414364697478802928972592276203709355555824145747822164844232118485343174214876540812339533596116204657107063898172363345311275617593936467209011491927553927041837139911678718235328891596255948542555758985687414164140787790622432274612457625109014938537526645352126763778890105010566003042032381903721369251255868880513652898164988179181519445589499041100886877708592109513779063371495644609334781334452552734190189195021869189969338783998057629422233970246489819195817565045262242485703382306482072554309845213328840677790578738382113877389017115544417062499984480362584673237595950781395419769943439028753505301348694437610729031089533207633500733554905945619841409991509239694678222131638985161088066715697678133049502251412404689243566048531356057441616239650547352258623419310039229629458369437395692622926615055908570189262232726990796553557868977252787484817587841837558121048106414094044530570055608123245270681659353018145555021891669125105451442570921519065741019452867937689269654513053987551501243435585363625630171912164385994321757427418728254640190474467608767479626123074564228276126246999112667910502722197400082041778944657653803709833682150694611385953102151809907967669181929732701677136113122922304624736735539739013579897943642128727871228021820520603566460102512585074079957913651244850921965044954571413246391690266077379464942949262283474960786431681878556554804646542804448568011480609778942555256977521653463977931288579000417750794855625507982044075609741488376425924968589128934882103397875452622681590189750682549176389642989260574042918288489707479228649937709745778376295291821255523107163175918330689570599895891706242963168721786836507175454641996932644535442655376782932226935837707352885100596589662554420882623187457406391549763554873585210852128755189143847656465440523012176945885584344971940643996956750846756446115627843303937049564039270506624322296278025977859867541859794158455591581312561805833178508677616647038634062603394117409704934911149889576833366312830425035804739729343151403939243642030278999634422250358127693638621522732945836403056340676673839418077707733974963254732895540692636232787365484578504184530848017410589619755768422690815848505986537251730632903429338982079118905823234829977085245209633186997279752333885859763590891056647186311417296362954366964997840597775433841331455331244272565824089501568954812641719858954741717357201741218989591369637336788968333256394678030276171287185691124752690213612668719156204702195216051590879098081157557551247549308083337079524734809934388043379608281161988285805425981473850425172063349583235135335538581447733054426543544695986701764222161597711345652165638155073225116138798237320584334222732889454959180105633745974294147608575030997096111866731332992616896058743991750039833715002056908992394105090939717675514763030052367348488572174028549849107941933873690150750259764279061184496240633765226085363874448305747726267312573846175275245440568980408952272440277319591924260023023736246432894006485455789146271818203549404375389721484133247164340273118855834340041150265457852800210365151876366382868860252241059638856298272504897345099654089362660516182638246819095857929843848888999782052322628918143348999253329092345040489652999757632256125865132851626687711075785267308088880723683686706855582627624887350255947487338325614030313005171872362466613745382073640087573533431894634136532244687510798576436163349332160903926811050411565575444554058170683268552410225611092019895768497331729792066847522806392049581520465380937557168370948187032802645372494680843450656343608701037681221856656013307645236821903293065041785690807516087503328202991535859175771027856438762426666890660243695814643903054638964075966381179005723476754972098483102417484662421502738768801123517786155151588781223078694529010729848219389863444576875555537158742790393026776573602692966026831523487559678689262451339048127874107899571361938789192884183210631352007358312884203856515586272686935811934291141586755986579885274604205135004249093694260843953489946607823529566955327243299692275754958756072024599807198259074846494320712330147543421593792854857164903748527759268747099612558111694169337564598036330514151729260215750638898552637055963732516793770091650218423051640086627753327573576773438585032385623782225538904127207794734226137503688727249080313357068631057327747238170558714945078257379282578405825789005670112994788829690939913944361983228044784906270098198208757244494399093259361000301160047015662779207901466847742833892502576198097018105177889950681718834086564221709325060917505450569022250301491844504429185099209427080194907772278601197326034480347111347047411258709136698724147795961006564785640759749098677006418412031951153847083395764301680330569831773393227761977575378891207970940485617359538702720264253608459284164013064311007600406363528169137228938359658234306781074120774570488529723756865754989210108556237399745839887202967970055599011371456318448074293493507768040761769363097696029120905007905283610076763774299985289106528186006972099000828987799869512598948609985954607494443733532376688375930989621813228736787845654831133493397432804857193388911691694358544517633688927472149832767231935957055745481083396324163666112370234551170825340007096223457118856645666962440677176582101966284941170360991896699716073101448513076608802594268457804046571736278938579898768548279272338784535799377150768399440046655308775701396639451036492833803309627380239692412661378921805840650720192729570593899846997770925415879230551892060070911179349791449037146098565789635852888025858978370682326914951162995265946442569699664308320864792015450655962456457630880421143031654133566871760823286224171657421235232485364288114884294032544054734615169128183348751020365053835666715248409037293304137323118661454052234384722036876237574908502757784536324647230964148152404274469040328799892256729257534298852015042480800972517744868547963892914412947063468783617205948478567235389701652145210522562014389288761551895075269301131373294755809896556771430976418200528617227786040353929004163484031279962454430337955814351126018139212178422676120811060845431090618597123514059926364329252590691824798304349464808696800251867549278499801187927100262525800033065382110840210161897215633024546495839233819036663499196251412689793549227187540688797550341629692086319347305681355843113912784357190483626994391956396281818569522711872704607489479144874412946834338669854854233887462013178503774136774490574389922210295859081330950509260300804498650834049204299125570936405597563920965417287918481703537570400554324074432519984419495584681017125866525483685171364675679380830560697125877181473803453871094279107894607645006434415627860976242624336165160049955968308085755682145983375737305337371192574183058872007073136553174796255054747442209979905188578997754739543004119790000361843935661722660142586609240861745428736946132224627874382588952609768978175867009617973426325902100679751301640471827757688998405478642729117599219948336103770355971937709852363690026630942853062352091740464757380886105267937571136537538553548232367674434081302902923219008090284358179417129225002712553434556836488489188371549923272189097045306074703907957890176124246554282489063900762007332645889190180272471292590469734444597915737771476470936552315517191496714792770275416688557183686387079901091887975878748129630608033489125418045990730049310532052312686132126524568433831598211801597346494579605489827773557170074825869718325042839069010304109900852285994844004582208409997770820493908738952701310058792035108389437221660997445136147081269118919118799523269590897990966546906857528231320813028790469698024834045806423496854062504548115082647398856111755816544635593122832365206760177558868976708856092604324930379157219888043850124648882716314160948223305078776875266197527274391419598156613951105949493689792159317452944275344991916325854158590945531390628690586573586658055549500161495751383354347336452962312712859190673049537602022878375025084162054857062439937452959902913571928957370892745386385631822261360244958446271924985872585281310890167334298977441322606699482416272168761485510797104375526732251891955348481460615592256982652059623281768254462011645720607382227573128230044640931351262049953897685501835316752451338256698199690992605814865724863001798838872231849694777127327991452557183541842734848696874995597050220449278484797243333646583601064629886339837734168401318290862952845899456777845318066771273281785009802990158224145084181103146299338383581624818606493836287623715002391719139199887262896123690244772281977896820347109595582419020001595580412805661483760919959967366708619998556338974544907787874215832084624242203418762659127368909990510254249896289969740802569512210200246197698804015814598806451031952113288225070997776613452992134520198706837601194804298428722520814116188212350379138383391725156035428503748517230602866282557043516001917979082831131930128206827778230180353102421433212613633381708405934573310738030991782938477911620100674077962717112792376979474945375092912008728686375378107610385585942599881356535932039871104468251780169618918658515361126108538734616857106426358259755712605282028407103364217472370337675157218791316341538571325880128536560718920204031832238584740313290668686840958903975443420224837021541299287595128731355685053405726950411242437989471832275883681257262934433782659815270920279879885249899431936242513071168822651893210325205995733913277394296324496007576784990147862528984000889151566388033721191302750876167636189853666016088443146145984542101369781742152631115867484589422486159786346416372553640474423615138721758764580583139246236938198666246561056769571165637834124014155673155325657505489537501156097533600935200986008829630468631777457226957664921487797357358133987232128342732000231156829656733035473509388144137646112479185903356315979878169793542222676355655809462973217504759388936830750924805761877052185240731943063318288528647346097054900167725926618893153170301116294609092209914188846525313401254343536990537496806567582304782392818317154392300411458304746368199826611133776673550220330521205388602596197869974126289717131092729151443305520765895958021164436415626104991343893625281148096518072298377381332258768339885483417660482839010358629065327376602032226550098986224576615995378725832798365335847773219803777523790729539247286740791979576559195609613815615428946860817997771800427948367939366714037917754397315389489581020694145834740619067327659976605715147252265420511949180562760624257985876341344960234216135779201692047252704098724337864626259308699457143027073756636834028594671677716838612089646711171524722893689314443946665264869006602966889982395590908147744230704587716624260450976829336837782638186291150295538246186632717350669173837118966236367591250139975774391464413534714538382265237913747914778562860137195483451824779275545518618254866914878440811723372607844997651693248094144253649864831676747796003687103127304146086371146116044923050788375347136708206114919779122250605769229915832719083662727822333084309856962634241318329893126322145258403545444945478414474667390550529128530209418779209255294674365626598071891040695489711295971049119684622856951405678111056390976714179295826329731514243185443925322192858844593026500042613386660808704207134595628591791530595307631147468084810475001312094828394561223895642582846278547391518060362629988616851254784383316217366996935889666967568248015499702002482669296567928511708620182221923013212299534104483436163342544842265644538513672383570524641223919205730372253005372453268673611822354092672656800122175943266405040863747852455787593412126844322877508965021748948192091989637517973413835435099988388827452651661978167495329210240878815264767042959199097346477503465918829040701520527571844096982224276185267102134444713442212579287422491599309663592708924254509497509446582617135049715894292165510046522766067128320864796137349693880601012888466402206965071264729062723289135232326135540577957864264720326974910862643200398233265353233500990686404985487682621084037769893110457237756889691758329732868946329043679277325334244314591225303607450600926826148103136843613369610047127442368505918206666932503229463617100316200721763449965580544011319528726478377610906666838900698316823104671472973308760853757053263580727300722898548202793314670385591986576645952740863295198271844030343889255642293695773849014333276488922988886025611371636783234666838715689410095147342109528802897454698960588672088717317285209967814791778527420980021251497711710185628339741754000893548748086762182721250209960115999443911006264986494989493208222104776170608608404179787997201004499332953744557947252241956997487610804086559322768191023934063867850737747870507093264351986085330642346853745335032312081161324628962560601390493845781849856561950615719771672932974292761425530414911831370819655483528298406100686173180387608475194944055919332982216230429638867447807413981907847222675600429071877618936374918269207912948662017281872278311576950301459658921213354917477778942748339906006621461543552157674789160582213255098476718493089875410633010739366990060191461474568880161254711521105961270199907501225477584471682314546443546336305857715523945041318549712464095264610286941367869073643865347365775293257433747983200995602218728782727550802230286142437315457413549434786908069598955475375120951983945960489336723345932174329534104956543970529701343122295030894595305800836096725787851777883323804520181273537971747588218495602395374189898635138884013620062046878349873170627594159183027770888183567006983861867501562362240646923614468440960281443623352480065792051588100343927729342517973578543266399531462051571479098218182447289346355223002702465067576784649763714019147741849617334359656673565384645037682518866720223919527930100804404559880767537328485949965792890861854830475029726170641672600674300203484735025602877209596307363478608063078445321723208757820831328964111637526172928188161721236878618841023558869192199150215356162244563487323666749627129018895323089244014965287829615591741554603637070494926961902263872250435095511393991424627246192396361674123730839924165039280886369258483571313142156722434819276485882511325535268628185103714706820950522500384154648458457826195693705540467576528008072450442200804849500844529034961068173001027884034620177054848337987038719041181452475979976453552878241529961140722073648940476440303916859765492298456493126866011083744227753279056021642219161492431402923402263902832489345164895292153051662842772068876498080483969753296218730431500088620771421130134304985422610609408620504621316269097050106518037987517975460801868193610610012240637035596026510823850369191155099122449321743382111975028092824970039032129627092255210590223402464687622675284397156249276351235315481278978239986220270405088851763109700080545647903935546234469760794018567388398711836467785058194956462954368171395859452642559542466662140594560358537925222268516734956761939558091086307905025102320149716814135949869474052863110349076659595524753887300333680481402886981920832676959656590920045595681182331845917624374468380243596705427698806460010235764925003727162715149610648688940705134770487188765439414239674389871316843478130904705228998144952801124381378953834424484254324476408521625175061815272591366324816940894422233904265578528506146287005176833432015433245309680607128464557508279562501919917280902800238860975249135085155593648432881628852129572074934429665447343801751536955602463847275356617132693346967489609206736952609839182367151972708247646985416116672963442971676550300324040582008313021655544653391086913105712313013718512709261218970068815113494580964785824167452440383941145626079610135351962616603276167129033766968835190233859621926771555132242490967803670045375356690854887604073249049865821970076878367362199102948054812546826036737723042951748092056645561256192179257742140642816425056113724600170599422011127811717770642522673605916673668417507027706171935422556215278752928851767391837020352610512436639404158702283583766212444075782642667744597548903277445092229541040195314828035069459495301719273168122072695263585285879216139791667104312444869656328437717765606973376468664523348183231524091415378506191896651598125204978256428465928950721253806819836695607807902843401645963721651121677580967901423181812974622413106691531761204192133029550815528295754731884711865514968502168996357044804630608462448994032938462440061922600645987943388349134202893853023048937602959391753069618409032259439222089745252644888993585892875970510867540033646210534004924272948259348209346308978678554698137813884600908379196201244580344466039940025139632487740264842589437717063186230107711039741264590603351464345232832360606286744160671774094380528855744108282237996695428823671520955218614445699734122803251340739236488765504668419194337843602763014345668417424031873353401673197150529655802661033700521069837548029425422274354122542182753324649821942887482795116933226228819792688248709213534231514805160049754407662634935511281939836424229772544025394066060391992409438178165724116594830622552820886818632775895188643266541413874853199299716973968681797935600149255875258572656637879522169346924107445813013062369297060595997766799772620777744826994978471381396437793134703813791530323943142320172499487596194573953166352590387344790024785942768075142357633864127898668195709912336312456207097845004510303342814050964165052912833231913264080312985227948276787448671419629591748025489067372648508560003672361639994624817778809826038730768316544892136171121390065046466528393015651156582133487338258276319655422977257673696894406019947553077323378186421716309933477809206120982740783850935955575922632102784971237749612983201043358715388117637402387182778955741896021050248059264154433321991635911549548393695912843217357298384871743536318907822614970130268161435762596744815292067925119519358270117844177663804688252461083679716209558563447114132707012597329611992090421488837361233261085952254527503380684650854004199902600666648893811051583154031329570515071187714362901680400998016443811305307137854517665500498453480448006655462916337546390113032798574770338942320675182946930998954464291477493587895785053625828403311350405704932118753265310139366563424279141641596629775835004382255298411050365322752391981560287682539832840357615113373985334960175101855315863906154795735286564356830293595066925387737273295523190282743928925056097670256554088488407855940910628707005505793912131971364730985398690735235990963334278947188532623374381766690875224715581998399226668650051663272303160559869976935889231798855139808853353967631377698772310831406703313516621099971789722212609799476545959102656813518170637033434626758620574153917587173707010392727368330438132373820838796455667680859142625478045877930251103239837850156437572827023017920740067469178914295303084773474659052788099357373158338790862739739153269982760609781872780542417437089495276702120893645553330230202237199732543346172970448154684767319800907298608392816333234234300518768093634779014502911920828820386223745062123018313139557549944723274630899751126473467693108497241421131193032734208501710149518424007478497470154886611380911568368527136843518947922574246370569605803197410728654874548960748908729812473100828806989985858923590370086708307002945615147007047576835842941094960670519389440008745404160476926174910267909320982546934663695699336336979676985230216824842238234957866942071427261209697424645241887546677277371693686067310920995022216852994620800044625127846719349522231404181628710514598357146119588180728869491234257668966183755647424403746859607711527465111346889643479625893302133785361559334586519366364187780614260470688857382579811614883651153281457289270179608760262807974570359728169243555326484338443420754564872572233144023723337234114076692196822008698397340352990854333130020548729202214470816091359265246657301147053711170318876990328347941639551618087940530293872061651431175876054478664591561655585580648696910943968383092338012982586370528942959500145758749919001808793676294735857935637175366674015317514221216318564597939153289458609454253800039743971588173999461202036065032811534481079115652508588276706589833757327566004334590121241805746092148498479372807697513151020327643368509060649037054866707506969202269354607985959041673457288922890137263110771148806419136449045799755805310282068017628912903577430836433147873847521892973159538150609889888647565487163273820811590307446091458432284776117446560538052342911352841747758048637874626149566213061523844069594703901594098928703374516097745225750399843867008866396817817230278887466285262975370629852534633020358641521449882149916875053091071017669400092869330681555878680653486729699111752595124976606047316960615999792271897612381687060884803048902188340231744768416190991776977650348295899096853804514123021845523051820922892864625073550168828114083407466423944886569373230249186612824509825166047097852847724752233628479071748101719563266368753241671461260406285451793319029913254444270649961097709862933708964453456641930006364332946140742222415606729449660967577808633882755029257714375921740591472305608939343249283195689400916111787046113897052076944456362972344942926006610962705098435352646940334130681773732567348828884792719638961786104468276551691167704162338999256837983143647612282215558694078785902414274449646367539432016922960232230590465132040742394009565308885258685051925493552979637846275685494744615774180982170180158115770523791743208437105805054189488758648830668357979490787320700180510040170383415018409616762957918974088675417931891131919045482072235239892412198561821384601906809838271300067010306011007633800061863090742483537133991691818866316587688625197581315945926750325829909096563431766848238101980711088040078188751609705141236297761107503279706700747137686991008627173603383763797644673693048285013915332354768204110902073629962453841482747268044902357709462768699864720226601955866572880166102545359467643111660668550254127485154724196806158344250875689998447241041150406071172505915855049806214073756022353364227088477199286214267967369891695142427895739808560826759789874950249676853345215424665450398814109766900101656280044852436063732062883782868905255038221462034053630809628320495507636796824447074110487139177289870392388603344612228644500333095177867765705715896852072015636395106128902135775245155233446496996010413937672302445652055197570384788336460868680863412919665426106138562169745888698083796254610834410205235380036893598800419605855226131372748836888868338122199097955880333520915515125658176354602229324464696569572487833463277382677070544929897653317728878698704322826230862343212648498621528989262471238150169611442979685690804264142697337450540820689426732134037045961332890564933691202610143482279598372549505904447816169745632426935714118200273591630896402613103212262091115461079113203096311775205115673884472089242748949299074885619670648794865843123047757397443605014475768903230554614570105894849580238043564237717361950789439521304664400829692370017960269684310283598322188986961626406783803503836880793100854304198540000174400322889880234595735992847753469836560483063763596333142257494402862471950336868612013135789092801477857628622943685364869717476733618174978942487218339693206927907758233430518899629371322546956040823176718892208716630598649145079832067861804842604878996180949678852122432379555036752033698882757288023497587606528129226818537988575956500899578654984947915145983831775927485639170167126841595914474331368631320642195414405886062466030126619520325577774510786392895685740816362633448226465407780065295424874287263057886320296095383156715453198823179904426151337256732366713707005894041467751945520645857403265015038386904640052386085369275239591833404772880072814382127863428689058060729144717094876000577997940968576959425821561074827530536424426015410555181731086859494729658621090769273456604697247796759677854875916146387887678045201259361433072982439386575724111430665616241335565875343556782106393713189790179864391361639234081730409648409278676129341199588452158633442524357108095162369147457613749292614407838771410059266573876827332708910284040671898492038593729600474826531067853282256069391758055798346059879015544898931867571974490807621776078332596443096100628376469204832019309138505510032809202921501441595613994442374649178802305709262329101133494134596639956059394231795911085741313197835381791339399834068128539329236959902995876476751705869477253657833126761555787588045210007549330140826295894027167455708695906941107072531238638462298662270312154277182715924420112986041987439268223363771405437780798830453276918587299139834917045168040560114332177879820390919667490741273568881909783894301208725901737242029479509879140652403146902633719876110545466893234380297972509450449883672331736878394629761121659292471186877382778576810175196676609675205007967637053486134190943478257358675282755268111935573557098807116971991859194789218558764070075380957194459392837191698194100841512830362145219886573026903820456977475884819706756430628565225378196794338012027465732865805475397070305998062692403424064406031251110223963371995730760363569391507994956036531306572390967894992008213207958107254997594481027838079118447753077043076971141068627370717516490937854546520096477288231916101474540698373301343104511454519724020778169023661337627614611867541989027966246846482667996555982859483312355728409423489880741524655935195975689685089259341314266043783227236854705971413867756395555004676764298186583319952604397000412492572906817326796963806672841330768969471145043320103672298858000148851368555623602632842641516833968071807059917497243091008337582622779842238979801732569514213223051150423413532865955193420015221712216805478008448248555775028745991750387572548212117452503324257400189205399489307564786125234032898226712714718399825237639273961353214020449059497088065961414581584781578799008577553303079850802859566593550304060806438448170586828856813395371698037919051938156434762263928181064007427993651756645626199352474803514778246856230762029813849344566242546434938349351150977938651280019665101006232086079442152018036531115892927012559197935675938490733850296752648259307489584860841505990188962985232715081881203685419490046496199714828065391557397308671213015231290753009924297726920685253484584094213809217677908368827584581041896375172253452655506004680421883594212556534572117800914693616947762770513506842401679964167141322540179590688039130460856339867059925854877887779068701357248789392333609257705190770967584551580681421406880579548131433903288308008388447791430532149415630676774472087538968375007599904298449566332603784655889605619361629410849145036999018201972085393817198964279368403049364494019940603851837932765656109464906057234283733261506062125111991698787610666511105007396375470811701217737429224998992190797864232367864838015047937813035475305672875892503944965024486429138527635321056438462965420816276274064962216467168698550360681742666548526489943596726166855085824393308831378364961480611553013366725613767585836050379585604976389930609282476874869156720116171981611909551303388548407982150155194400368285613489592122371402266809781655833142969383965734682095276323425743481332862625767504636301427901493008224264526615204962393154763146718029975575759389286374646574965845088041084153804019999392187301113304176338121117708015731006179868306956566164679183791549472831508971775232055840605673787919690042402153713076822753222510068170058489692486814111389808397119682430856171235671038579412073163732217393499230609201304890193914519381237490751269281739532842805549286538919804170058475933951395326966568656853866822874018517105510276061085330465188412136049586937191866468427141874130878196018220093452343812299300030842732722123900706619420371476825915687238660235096095962551059976984945446865902973554203707863464682115384373629838507200319343018751320540750258814845575869139164494382370108752093609179648129021609710693871424225547713814608945743176776907013372549667450773160251377274781252757345254514957422483518577262147963569171712648624328691840529289557623417293933122781238848889321679417150897456874063822779747385880521267760931663951744391303290975933608837938321311691930903451533300111760119488834708285204544444154083710845249870392577117830459017910203181887673562086313236975674299456699411778637557397701550379366049139583786813943503662811698197707409086862446452710958027657348835394085615555846857689323165726944118205975890195889961496684106156787000200927007498467780955806486084722794289425465201268971954445265044760402271410243074817358711129530401667177777227853320135714408122207348939937416698903144652103614678358451227483842414018461303347115198977004379160436336809398298042923100002261254644608706101238085964597427946136996617662989647621147978295437487755825644859877799073397761131106543538776195975178940212323704910775030375936792526301169490574327414629567750245521714034665331961989522714825744341973741901815875545210738695927648891123453911477896873119712349156752181247779255120040159674881349345308955493047186506904534047713549214230515950831438646244200322408741799949652432595084094630558129720346524951643962030325117030560307181680860703765196519930829282675470480114439619878932320933862850872013440746046118590869925435418061714929645948961982605145169657937526054580375993867193103888883231048717050166047711420776591785184918357341771050685089889751648632031781036693449715021412174020048158687400127433532946521216638877693929607293450722780085770472782814348466842124681699834871008132202096894282234937328921310606984515935639745097495494937245210525856185032430412204370657905774425324365930472991620231233341398733910597561928461600773503448740219705119648702195118972815582024220472765324614667902322903162452539205150623678393331899456935694710205003053120850250486165953702520973241159021381451544275031923316054545152827751893738574199707802219719241827863071043073201094438094306735761216474020140699371192474928386864176940871835870079269768753325487590475776685277180486637100824442852118769420597671765641421321876518527291758412203328269730330814946466503980855697199242129545002524150400541463341595713371775550937805557659289106932520102972675419990106870865971469840681174104961105247295992494918121136655984619355704026780808888727341778309933389945273143905092296457368336139467061422354719108250581112746267285016269497544673608150963315593442698136679435594404409538688570559702331048638307198434888380288218380257383919771274148100019375171098660798417781427736550265616207812985088056304264756390688867796818094852494696195201075657825468580775280003755632760526710693228561573376832151991565462558700121067319352721082740982583768919584085859856782724753049550601476762508040933643170612889462160221186187919405628028561417552509688221580204250309098155810380662059066733804955258444396204870129147789602611802917929051723390766709653445755434769177406417455932539753141014245305320736425341384469936104990495406547754582458302481242791085318490243860816237063969251923079186595009352530899206124539732553670189308540938736275377910367108894684273842802025561499375883452284937490821631567518560448373710072622142240725881067871484318004361746986982085604508586036433846351113806158024070272399003170561776425044294262908427833265511107767027159142871088927578919949173688376528483622882853792658391456804433824267391113994893450561885161460887762116392900056561847873307099263959146273307397661336387012090626136515259626659430728477314485739250373638025399789335415087059486695943477410423037031439138513482561038414796394933009335616813342270350112230375612386766017286353016629977292466722151033995866460950247854005303067136791731607301116417070015601730288530800180950889770916398315278576526035643984243052704984432841667599233715651077553921179481948006605466709113169127939905681185129560358954235508854865714462446306886931993489474494821758467966046913509944269437249435501991988349868016311406768736409677632989640176692908726370745764591314246804332449119375740205313989650605047690696554837330540437691814534666330219419037128578247129984100178203218388416485094376099587497208162459614734436491738812985660420624844467151496994725317140939307430107932467634312601164361534711598432456480903100535066804725508013490657673330419022387547719680025469397420360120324585662714466877679513664990915281393937417215126260986341005182756955508588612303782128865396161995462840321624802457599972491567416764910947570123639579503823717194237501495307908943624651470181832983271047644851939729479919092556698198690634250097320664775465595336800206949775723399694183036074700425157924785748989123735698540454775740451476036350123159761392367128637391769131100528762607847148877857367303894733239924696584923603295998819301909074719157394977311821042335345358200338122495243875741284526673022250890420723914318380953048150791278955851178522194865397509414883532207355996777169020934467713535889532887768649574954672070482322202056351333119990923188275144150981273252162121646157522442766314556955273659794374654173793043689067524460710253089287047538481414560168926146061939791700669168336968480540172961960383803201325538427939745549064919903185527862375674890721933371262926674986162459461616185242799923333891780764040262017928578514398003189009694306078113353482272898587146684783632940538992629521831588394847218530274947594751666932515540681324302494094529059771801366930972558252194117550821610360226500017523656762399682302563322610544128163670767799830079766747443204428622607051886223975848433749934324109169240948354323022967990695338661303624982611529219656099726402078200723804285267525428947750441539694766064395874609621206337018199867242093460908486045212337256674256295133550467340960475954052759685626898063232890947327432383865781715391352120425319608367521039344032664159389260338714867225911558227444142911872007316129301161393111965387555277630575012433797729596457965741946638942004205454426200096307846958399300700099740247668534063920630929026700481366561285998330037299643138075030951262685376537743254231834437522822504614666873474796172462579497391228248244432990292182950870358810460024103233825283645680074100463187381306759667244953941785687444936728409326759442682532004216692377115167995859029032926816225800157711171627332618511881279791068669335345801781131447120000014287456222313904243073532126402989352010893680645240840419349419242548029840087626439711542762588871600403302083227621288123255845072216518815681663872462553630110275472826769635831338052349551001126654601877118697782948333112364250907980574075366082442840710054128092977938973066398676211431777408757691201265125420998438750707118542512250236398822379916836262832831722675796416471903946907396463863436114342796231475470196980155698358309410551122595569538161646039060596760034313318639615660099982174918517165635991410513946331926905822781684768714527264109590500074222327276710642036920354671501237539187951640565517976615178879072477230465651278056126854859672731825181156987549621286555587821268679310402354927791698467944854398751736289811256909469710758217230757484762817285591752597513169876743819620770136730969249030916877611517218049238848791462193867128771315541424478641816391242818366171133979189604982436636943568212740582905929668628466852976583100846161404842813488548152271391261125110803265594955200523439822073874986680436937904608811925408330678929502209155265515273853542319907845630757366800373164869182686277291776604133602679792179069715641268382177940655996651320977903602496449901023658916089777582822594043874449822247131885616424477710598856004504819937056634079857964483208568505114859920671325429172580608641346920002650744361910137791160799674488707984028397450123002447704486070027650870841014421356055701997277252824102572618412738677839586521262360144253527330226711832586042966273198255723177343271634103138244732639422477382477137698103732989247161669977503936535865439322751593179130606443532084608506579529567274280869378414008507063314778988801638794095833392129775806094473146621632145185841129729184862825219064073311446136444109080375438054954614397200433842833013659971175511877371935174566552044788195307631218487255413927058678679592539340271735510472132620171358307093783750129100046132488175916140615553226496707439384974192561787445923199635727024582364874905089874447435294916976110656871369186652129310786633370472422909007291132270414254344319663836111692111103997572575605559952668432439138739464352740801141524861998392306090112942761724856954841735687282729040841236208920507183805673088559605059602278831557647297971907487904472385825236091042363308588944093773712690543626610976112448889387872155434380010624170277476740265512631433450848029626457132093848167525612349642403658716889204470488605396693782852082446468608223285498807841246192726281443712443104792367047082891145315141200647450229639793140973002451218150264899471275051335457013641604742313673072457329809128473864934635133138320841783842610829419733762777214873728291394174240325243614222872839021626074968108411730367988279463093074472832476684490581437705287249081015475835498172171225577255547287113272356084934957508216611270349442928917949408740684242679626049341552354080013807312077926179094902192984830354125040788420408241811021648919367654046432517028876421823378354996199804866354480919377757455054111272622318735413093938972448070427346552833903439084407285430680273495377491934354920776031231731352305781835160259033043588489759797233947212141168656386630246758928387905785852641366947168101513719365388597793637886629720781521105118279633422346205525281741810451838590572718784566821401914156136026365831140853497138959192707394718484757338876263157849588920546594020074825707150608834434007487727638365092594794520483698032040240247281250344310696770709238783830632461791783285329812528168639474843339127982528386722048363837159954900765547942664776332665426337979665945369839874662190751142946885323970374729010343270524716185336190544578605128397375565878532941192549873758857824470177356218008262607153674246094399832899708262888806565474605635149414125542511769202759764314148895945477636623842851654163479066608771991875990004420747051295137680227236073137738320583161393251958555657381178196862965675009442977196989798923579698694413474282098745053210501059615516203196418179983118861122525403739911450546768492278616529200915610837860940620883651939525087246884398360057818536050611957306705195732474246313883283925944915440723907747864006235947296637691683545697167619995204109064719668217261956341776641475037646079341417582800403479412069775285247168023727370164649997077102958806915888756263976747499268905356746745649276469695467062895770318034190242619133974323377503649946148564878002839691329926591688429525330665337241212039231903981263020463278067742124504155029829910270710392545604770441660132641701074104942426998025128082395696542793038929979250363147060405898227025207209006346583095068345994002769101997791769218649420606070082458049812011405348426544411100248863219731134940475552025301579964732423327393448182642075580747213592783655251383254166193583268408093581385645757074499036670639624066637141314707759670747869355446302173147731121534421533532415488148578689123264976301213140556940639883968124147582624813471418848271197283310174407635781956313401337121263860454369970757405926106216005419270587202639251368123372697026414494457322011180583646675135108544424412370852992767599061350079119492874031387669374263560331705644591878746361068138671871121600954032187955731378625165332012038017569172924336455343792982379453276379281649526753646141188655479135839940210194899673909805702917125552382185326606444667559053312086058640447052866759847285930094288207495819343479016687805278327489218780276836344563086620469947706615006800022022978923227438837456563861169474214619443187560082537454480661313868909460885347599539148262184972914150904661219063378476583729851733687150805142251320677142567422610590789942482437430563312308279438149247163343394018540115702605157739248829754139053502447385003492019346661630929200449850207165697887332457306865325148899483090580838877127910037148422970373397869330613506318983608285731294266533227369232437697888417902871219843721325227863611964251537745742699977635963099803624420660056513983415276049077290782445691615657193454900916033607182950128373278027049253233517297413104702251773314525696115992932468321316123827772071887942870067220969399256364291527315878515810149602783027828038321702667685829661219738114043817252907854272258924437327477990011451013358638951955529046450162119899315868046540164428189209150997110933186042071002801220648723911362021146102922587907591377050455076209849103935975393423690532669999726067593537074014449443726901858023597260936480872215162658493591512658665380455948069489477360337458168452402228302595346017588630734616741569200122190490823901335308314534867813177899272670546404773479282000083219104946923603625645681564112344752519255604443947980771578030964655543175335402603276973056181444917932969789819365009600544274114760679626547185718573740421476644726055838408433721355268224299296307176738347922793986950165079093414487325895882621754859798022347525374780217050530761493252051220716676976634961257996286552771938046983429020958841016999064953260839816343127244064805787535253630580028913733343938156187989391049094606622193176393250163343235301732513357608313736548327309205781620624296803745834179264931551024519269945583040989393973994678695174078717189837087283948355627473067940834305687153509798379348893426861926016816583937357502942522067854257310571001127698929241605282355195959596413368529072688057155985330756251080217013507901022313032766834125784775847692980563522869594727296657404234092903264919926236878869677486532755992239457916859967451310848277560755978124176564599111809419386490162187474677920558697346087206033607905709119834215080875529971062593223925325294674415093772647533600909786030850845144463745806793053081824628510020472571061799539664584396380280448174834331033884310312522992569829901161751127367262709189322534265119152186197669463806498192472189076827553862802736582037397487649373110177248131631234406104833339033987083409086482724635287913398319508208058025944632845615176123772359256796171620918089499802513164549704725901153054928556635806069228433042275326495971576037389527441666648350827901928767072482055138510482765887711964126539279674786226004850922211373971631269569904837599157607384258795021080213060312045187310497311847918076457016187905553783976379326209590988581445918894062132626415477719899206222575879222764862455938122967153958020510182952253714275564508385946825135353830175365594965779952900873991684791926539220147385052981304918953054800683703255484988284109194207596023183269488489008088715539555562209924617977543812256526580273795696772466803406364163056602389780318787790540357521068286279821285690476665421518623995870704469658635294483444108836507774101909836437112748098906775970274709670380179812479031962859596428104857044025692088210413335659697392536281403111283295484920227678145867539053800026003199160824443147900938421711239366461598481849613142434277869742370962111354764107031002957826648519280885443001102655129049759508494838882161227260147242485524857260534280690177078236831920146466276015267605621634795189314684297959945538183324559302487207175852265720357539491597067618400812175010174376111205106194083800544910612704542013324757994384174305126161322489894916799274871767309911245922840194130817552558193571834860603876177935385805455376526539100162865912978404096086402070344411388174179776551310428154328135193580271627718535580147772600836060491988786979607950369013414720671473041501801921269384647592712334399050844089919461124386151007090240795521387148595067500566819306668005723556241721051511372297827982052177973579265306648431191488527825212408259058925855327498860992236622799514379765841531190640152557533549889553329748391046140175776563667669134918463764023014949555715694248004822016486574793926422766608269609912189727606176665673424401987635892542716615097802250744869770499411082264641186380092243784602554477136113535116157354722416931383245141739818112017681862655663354259174337117523660053888910956672871320580247656835963387131493598201983120317983537313428935984297709751198323089102030150912705976895832724857778199629816875949101507919733110653955981184062613072507335121471455162210560878532246438724618433039013307144456951940647363662806267625634101389282155083019954684353603990228920663721725840874839391161754766325567338789913297433748545483851369499222133566289106082595972020955869339869361071777484720618644405481770936049010584669409361782021996070193510486660210893836685760727149065232528183324234894081754124486377895670961711205584582082632452574063037646914851718567902477852012473094140797723355605752045980370924067844452947041038360633415502616367479717059979964523816649200535843102434650493253430511344533214388902802448700052288145949457831844245360029577898703957281888752811594111256751466444237192669204015320018355391391726425010541505690434446461064020910567056770883640379421041573293217849891526445772713942851244381068215388244299438102158442547817822545069595448420481583939612096034073093882140267004554618625492782171349863737285054895380831800319639486319451983441846558820158533107563828097609464443514150766100467524055140260291868298600570023231183310652018604206716493990665758634448903989148863285016632376059919637523686888373511930483941570926685780242920049678020137453378956999739675420909640276948184077688554884828977438807904654983058182425556361524921978533837754288935788284217853796423655771732071957504516730832211042129323317683916384071790190235255128560569976952441326628942400172027461733848221422935919168223302080939409856399954509796569991015925370002398179161181162443033664956793955393293181474049911851946839913694592813031846953376924173464156591461754989220013743466539263923358640245182160358493191263478224936110582894036280308781718252831606985395527255766851551509518758114602410347941094965900010837272823911157990162307208240548225886682703646591662591819749383541582205977401914444549221716118156852660431254157998904508337482889065555900908848903056184374784150219809263689781658279147269906124150309211385953608856088692917716144751076003610324910642330877648055920284164918411318504918181229138808112485795723210218984826983430427716930256587657182722079910759708877869415599403138307521920130523608798333429855009630267319305652660588173996218349643408232267452969763814481087948321778285883857467631905704187017360772411492129740873533425987821060922350013989891670674742135224426191728312857087193146511973593748086247277210638651143687462417967066073050450969264562286041220306950425143520677680666252672724131342387197581936805916680838786182833017270964673236185319282998449594354010099845305415650446707789465522616294069510624622707326907667486426193822222297005636446971243559501019607869813403138291463416165831512851650536309089592723042929975204847381386429281064932574835450179513503644337101240475939192708609999561588052620520465067185096909666837033922387500230844272215978382264664651295657931398776921968616230220424549524966586271960051610930477701013677097972349566139484850052867313544844398336578974978979756487478430468067268485716376173385871960860237978530891342333758635491597737666323580521266359329028867011320225562955726981069647495010545010756971289772625907383281371348608560909738911186657284489215953695906971455398954277995324901816257051719203569116995425922127262641746193797121713947586225568413611311278007103713553130587845163962753168848261497581739270556580504605560894025485931037343982114335846017983247086175906018152580167175468875163356226082057470510840389879099860769937788450586297693081929538732137318344126122391685821522296012140472681211554473763358415452085181378438657042214295000314369500399336353871099917967983219711545062110256911858137753799603810323921271604386433266899380724541671053319440938074138823535412304779041359328414062562015352409730889159377774716346368353678388686723140188898936302415621350933486786878914859288791180614763422943420263059851939889082404023383144537317226966735419500432387497172691302764309618229562910760061144247886287517332652286082778626392069761500819392489996791184891922489435271180158195437907323124926365814012315485534925091338173429294450764592443971830073071407942169490382379213886453132629087275121598240181931385047385084512092261585243730043274852641394005063484475026632567053706583231473603853016433485832454137445658805787707804156162540750280670358432425233172757500310519700313780905648761682879438694275320106193398689058008786015039968008079708082220533262237841076906028224357975060042691020227250429725149328889379274254628960032990157313841452321765959454877887547069414491036731412235570096481339060816032730020940290881216154410631681299150229226965744237923187009040639894554596904761145134846700145850919665819016784382471566503770368986735279261524685320363091268820814674610200290704314204936401893277176287520190450990389642730614228899887084409830858268123924484232095713850541859810771887954084141246241960846879411839464483399799633756135046786840078865353696449598717586249411980079392143628487220082817880555523918468424980460249211153243094032760816590417182366100372215064443224799980134529510457510514016772717524309462170608948956332157113864454936416922214385846259645195360462720415271083142296712915756118133419461469550506778297289036581141067413077054209639136496678785323962750622542391943833274116161988435418115403767636399530083707194398394020579067460571717902858720648114327751808021538481989037115964604115626398059450080226994872766394872307400619883250915489242755103147008478506184496234217424316604145426383919469190892894993367778350737895170782259507119911430488504289762364586139430919234715991830650062855631334872983933184260187276090883022603353251465427514836531191270903947032486812577397066878377994694777549223782617954167123561489230993048170689181702634388054286652684827904123047921811176292963273473698513165690369390103237583542966920578483424533265957031656886256520147242146495213177065489501464723574056018304531587307164587262307349940807479742589911949921559749846573258959070512875033334089415392357950252872992553898928943899500317950830358847605128940828322570022300020356971619651587799303169176494188243706612642152997172828677762963825985380023695923146232453173713207578098331066961196497007283231686119788489087816639620643179053977538933181899595043632975918360829559737676036027671534645011418880333166895136494700627486288109843813799319899012228326091109786030127372640664193609382561326215752700242978190620191824831903309732880246564459686979585015900880430190059130064245225761494199533044182009312029424950874875073083787647501194069580545705621569652417323677914251714952525921714278493982121556618932006107463205369308533281709183417501646976926139807795554465366568269363374217242343629931792641277313027893720788952668204298561023948555647446254769319477107690773601160746347384050097658772400908703788835736850961389788702702234427352657451131384761316007467127329037774621774047282086862587970118129145895434275715841809868844652112901055232205242464627148959598820759564846238529827598640832737790423647316887219738728146246777713082362485505478851540029958245829377109663626584434215943023167078978395642043914099591987589057662485512920630347012537364403137559322174730557891189724938206733564842189501970433810451903725200369432357162795797726110059328180288449823822707967733549249500662492543589196672560430169831087898541982366222375246987316074464641819616931162575885023943682944391696716583859769482117935555653079817851869622629289543316946910953032352442564916196022965253129766907246599697693431728500623055333056186680362519497481793356560409248585882708697540154116676544600592904964832763112210600460854858248832625240876970088831906899855009347770047152559395832849340066680486320450195147663054387285034459706833547956489725015169795608462467614803675359302881614383955025519190059344944828642825633592498290082981298001041779376430586619195450305594887166823696175584771663776322658986262761430396884549114870946417722761579899918332572890767549015073702460916405478852809064616738635972322039029061506688802912125743545845185228120838319940705239447502508766693589847745690452851769817016453116140698473539289314697581562037054433589453661356282471412423664410947029673182566426380203712487456001873010608290200970525350861466488151097367598546193840928709051097236375067582503583630450174948186461971887768140536371389623045085542787520792897427357874916375537814895471150497168980612855419466956755104303621943607308015661374009614864238105459540158986393250770622064267002892140737372739013994669584660482334687859227564660809338382494909877880007555285602198411367678316806245027612731474346536991393120204851468526325861376504410060655163010121680970675695832317291363608650128570812926832160649790939638019095677139090189386653955432333808193897508648159065484645976496433467739307537786341897539704914315131441502076387779256614764159047160477673041365860863830163559362701310147286490693511105023165007046947918106902900180120420524453028220411995004275763623162960621565010656806657005536532813669217491763984095201615252957096585437494748522413713506408797165936685171925253726450053297494698755749232733848047733727597642220179506486490697673443103245898087285403947589239606920117903625316957510965389073023426908657203041778247502831374162886803588113355929940475163891004896111087743710513815686635813885329492059887408563531481140711522423278909940824259935412662559584839386660749737522258458255825378280946453135595364302859552541164384374882871886843368998560330976954142207552753608229591650781321780763661497777512416968824992354276980119866708315634804167115208206818855768187277957609718215119858949213653648961962691528212834316826992311102946520788686500979517682885503126326549378193580195074578196922593488078340982518060363159561346720509114572387752000538495025454229523737356899473668339608878046679676678240977007600218666703088333669161874120615277032840790606441330981222836003261953635027731402050211949554993661661540584036952037746417287995904304259553096888193181034533168700143965088700844550253228153940174793047045889086851636032582288497143954307641562234653364092650291491135544989722031591105700536870028771928695269854094496572188535015410362986561776756979504648100407510281604937856388151168499686596542941825689778790779785828464391128268456501759580953125168646710304954644852180964797656097346869346980548317371576302832823955243086810206087576545418389715617470110782583570996351702354759719632907340389077189612217636562235994471061758992202195530211034970220275487945166378971876726559573744734451621454424741414835527117791096559767994804888689873157947859463544199290124379956934112889646091232915720145096155264386066003731670681097374073764529043652553071203059941340884718089365466905070648439257099916058466531770915198493001469451206920310488396827740627826081145485765608143384903938568462670231383950094172515279500440444011325973325747037642603765203752757850369930910384806220803770588143324199274803853107291867952139059439976882674323737568301041341164816523455089579146924333216638205756166182174256639212571913593668596595777361589069648695596827758744651331244223776266552485691966759374091507580659959404045030657971933297451032201859452312483560461338608424352245118876947307673971073508823649755226192071399826580265003475736900396343589938666567255388836953007777010372835842717771827345806208379170056630771537219556936863732609922248138145609359264115642540877636291567059435865246924790119168847703779932085972319800497864800910504839161904658147197385107476921006105213959696898811811409992139632324672332162044317864465648013897667404641653384609390735315575437470799811775725753498845761259644403144267233651120466364563607909973715715046707793788191294863347858006358577573945250049537000669741694229158332133178209993578589365471031296508756456135759145612575697373932720571975209719037838907090932746763772391101998366934986740766861922717502939594619623113757876862095784162113122293023140352138896782352691410723085451658459614037395381670406587556141532784903459922972185622737960891037647515769333825672994287453687242930519789496806308306630578580966436454515296568614313121966464780986717429040624864941875322395973502884912622489826142735180844942013782685489225000384129417623838514615122797529176868316122564036277961852292823164669710103093902249596706208436499549243915854191776529615995428811881118535153287754676327835077518879382091114282490177222824955914143643142679876635208103228417738497340770525785914488556923225067566747134550547963472623855608884720122523493620718126213578328306340860631197537823971468752214311755870189417396325897377978703949151279499389356979886212513701430919995328927618330120940113240894161854218761759447642837558725011982286334848203436600768144783066475063735909095128063723922808393148287474601859416479221307909455701353156974081755810298757941247283047117515042999150392947876010668513082252448391975930801268087674057708656334505068323130750000410275976344131246539587235502537974197482552149074597932240065309447151807400416271131368967788603220879299200602147705736682412793175278369459698749808553884501100819188027149420112126186386163227938714663540629382126154680674046967840470294180571656977894356324456051987571722942166696966727031781228173511071243925764054108427146858657764338148651234987128842711414049989604624367528486702257998588193098348716305737198768969824013973128394097771282769069966544889403492309450871892032014230916010849126066306891285213009922173787878660873336100584653100706971522820679640047632311105720602648572623216588064614371655803011449900467912594105203573898530619767896982082484327554194948882977035001342530177845712166300453595726676946620480647543807565176892958642889149723743579584015845852852826371153939845766527321409875019730656530503895577031810056635416300476439301383357821837321028204977383325468934374188046324406246554247594703443724432009379179923150397886369531676563352366435164307231834575388770744738410921211129560009512946999060043097307862483007135133285739208233162899793734909942889106804027789721297795092257258359887954882110502525294775668505315201515673772990389487773280102111649927976741142028933710014678187385108993234580306344039141979404372449517185687348192431845923157633846197914856979524319547340676921475563456279461238504953469615007644879305511289329638650905523513569195339009438897569531769613628929107221691638024854685497365293216713259813649122081087338543801833763752095379003718095491826057241964093474470087588996380711976835791856154735899617939087665226584538975667882869020968367104809716609584215291041176178848455763600190018325902443112954003361520978715075488349574017413546074764317653590702837645765269375390773734806853502045408760856230322890730004834911988994713765859410611396869137411693686644373614760804672720798347449457934243959129623626040183859043014387826441085467637129776980427896417733032266250387129664849479976605976486449103330088754960741841585449397522218009020421862311653530994280603590250531761732090664498646953809731135244786492026905925259456799574185024079862212444923067603930637950602054750722007420011734233479951874620431491598333005581295545480889338861350680120520084672818546045972072503647928819581062067278510918798035592657774685615560657849876988338715707380666929983604773325749195735059539046453973458443672234794190392273779569956768831432638445022569668006922433564607635478581019078436018406361856756576842052506177939869854639990319508596526506950999048744261132913591260633426067135305129146943762380855629124432157735950175155894892756798447408123105871251964794525832158008565748650551399100381415430850431619958207260127934668573566970039013855041113304836057454086802224148962093864363735073270056489742181523941767808378261065930936476167081714410200459942124965251236525663916313347645868455886789639887144638403023455108060474484102507020876150939440731355859187029917022380217627082972892265927343830571431405141417057747311798885958298348274537690241875966648013064377672874645384172483943944584489943220610005713952839407201608668210787350844067556493944251517825468530360146880745922560877676844067885305103983711416534052053823353602095747710401331584818168338042332009481483246373331201021263307244207471086837088798731837566584777763077355121148830499525810737327359708492347773821135395393619726777752292512630696922669218203772838663162471132159252435174837645008790110976835543202426275015990909838903075747536256131948351576280264188003164983839313131273863574694249799404510923915148330334279633401324934684085425048467713524613018083354126688946145529526541763652538382331946685927528538319797706038971214638305695043236882705286366091862985155765209661565064801122307082408274237566750473111063037232123168428683802158355057688379185504686135200612181613663807402817778771383565698650171149968479769118159854253180439320570048874898999119450163664362740246430748777394322996609452292805952107701362314784270389580382603155190436759101516508744128994293493154408728833416911204727008060403855929887192836279842336459768382335129804010203120814406966147851933895264501826827948593124652017148524075077898577386348644251776031231415973282889309770575917942403922313187735535800832336651382255226430687802390644688979555828428974265647943265513473550697145865060010653118143031848759766283664453319504578173138330339997346123069466519989136513213225281733726932722378860618401154714352316366716001720942186395524293842929245177938046373568160322364126219471483736590757859698239564063749985715211082095367693681838019004954576482528585334866873589693651949740338944086131034465719110268024927725257336212739873703611993512351464803942375938864729018454168161256328053037370242338321750234768528602260092630940228658712428470535692718403148431214138888833767279964208223897232195676238037416366134424269673352539074940738486052502775318158326758183445357469951457812225389238695546132016166126983944016957066765636810321530117957212419726080118915878317817171326654885247815183988411830507751714682000336103741520663888610415431074595635378011195191504027861799462261050267414983403648933552341096963608064496292804479970041791754571960336805174329799354009294003696181736214243398896584755500797363794042895307440182882143287778984142978767127246761867836250253110218936181760926828267167384320236507210302272576916750325105213363828596174203543955301812804242670366878078047190398205741220734894494536508227132737339260443373015266790191089786189842978431309399758351711874082115829359392398161715777765877790135368309059154306162549501655076279753851585480629037067142092847407274320104575845286557851610744857731082717512419968787095684543223628132293757924720436290637348481020273733639015321875521802809230246587138122111972589415453865698428548503179675536445183853260848727564351997926200382474943546454045022068256602357381029137363947456868022114351689832939519383040819744378138254336558251404626294527689270338096918788650375606030701574738055152079091288613299086876910781588530484017824870663665068777704669856792858863043086041739038351879052011152273360541010354826308212114184473743154325731873450496209259996421198894039116707485530768814025889856570954004302961124056853515583063960535060851744726534202322520378502039367083976590342380192181856918501412564004392694437641685034899610599182948042992788342884927307910124172078768601455963285935931288593864084626048969460927845399781396892806105688827010038448384314998116199386771045533342056955634439113523696524181764896668198539796386049315084524346671555124743663456903936880141211729559162469611299032003010230110963071178888508099408556466815553504797308470948660140221683578020496579776368706075375884824967480550911590718896269404747398699393409156671223977972615020564429156504338517298668504882166834491894999368218033111585730026367051986404443429584628046308816552862661147511841764095104178377048601066430007052188412451110211026530677293313721760096764148222039109462316821001324537683319253175717626998307024595134361481866623290833580161099075375065769243022520462530303869440118901593972200691218777280185852323684179225448668434245335533219320550591687781427807561040187381070836455687578548378807595446430426937028733606744630867371588358879973102153225283304167217392971432278265986276395617451185003402502045012218694020585283709318930380117844446399641933811081527498836839507488498721202605614081832351553429891423062238904628135513429013942628901469835300548541635523112967146900800526451244508188482220494336936285202994785608686507177505667481174217396254155688109909866516143592532561399942458747463583838055653736589171147121764204120022397971763172005679025940805345213583182114714214140918692713177878376687118889630378698000473148003355777927458657221666077433786572528276768614915968113329734926722544785310642219582433835817792763836669435909261995286606404630635431825431008326579250287051072814283565214303423210261605723197858179700311707414295123231241404526147840760751355975887145969519061107830386676007453931082288162003675421100226827235653403392359184817216760476615235750167304919319945320567905127094851602970070614779017004883214335089332701139849450160389173705667827556136344400272763121667655842266938465271552513579585278454220183298306293329987694418795794442401876554421142877285272699318889291169727342115809274106534041041577974129763790306929902735499475851341362625375152302207505834873280737387993149041697395678661114684121695781092680520226547460383784210703200916227972378964042529699996588671462690979717983426057770677596550640447503008091889021303442703567499534002330528693500092892220190845343963487735603463619533324243653261827716531610410450955155922180253353961965088370043895224597591859906159618266970722047456086716457641511233949328732857789061617033320609811978339946666211098362181566208053336709477645792822440537922264507227604470163893557499962829547890423466899309064160485120285216460186417478729847844208661305087142894484914974427978913429560706163846194019544631770538273575308328638990952993730731721021712686722962503146113169001788265782726398432991050776992143396583472129109044683871337701065764664689174009525624988365641008375481561305592661618768319612801738838284627456865214059474980035978227532237607162479206315080444162890482098697753064187332001899827708780567224897805907455384717683784870990954828640115174753680293740534460023917060578975669072539944997022142676770169287883624236304767493602588023421744335434640285940877327626771315803462701730543166716906805512737311593120939495762115895313166271103830149303622229188967616862730827384080405732112125444088793812222582846584222111944325643507708370066100698552055770308787589839935680340150602720077882589183425707619637611999509020408434379022446988256044649472512816154511604951931207943478057271815894213253873616688884080815820684485285197082080023752790322751164710852318701333360012596882763180584296536517613079568242991501621621886778831427090028747194537048040708882268042456494694250247310638782900034166957467096369514477440673399705773946031705247414810054653950786868533241445924023452326331092444593164815322657868667696597740336856184403323129193903737656305584940372051711989993778831630696389421581511141611761988541603274577007879529816749915395883968081017466874504715689826783006383466020256813531954079920659714741768108037553331606087683346630376242153168684016194210739365819384675055100081485424132525393817509226591612253071609795087940972797796772394870595060798637797154081762468982547723504490300269766641951709953762116251007405098455898418934596586025761456782893629177013113611806790112545643093818164251444400623238653297748020562604976939157398947494634596487749305742977642806576817112711643679416385817649334977065405225199471525695439995913836364605453491898693030821619439544191895904531277678561587412157338499979142940892175486689104001044461222723824556621445309488087781923834680490023038210497241097729336916068003285626756049793898345094371927777729358618685177450111600644830826535415910527889900760836668685120342299012674270785520547402651936047509746130775405923767714155587330439524974659900741791161140900301243022952815227312940211365896286573688781897129174551867744596753188240425380349777881929040033831313299025002173549809718154512884899211033625531344333142778233125295623023891902051782832095653588365073314189866668508587020160799967302498552219883422232213298448154441069171822680296520123937956225216050902485158543410162624764771288988985226413779731079107173350970454090749929284975650579043965486586690917687349654248865719888147707251260028041776701010029354048686585803814957772598091880747693655892621154429831050109164767489436959616144305246465636422781013469828739782545906331003934720657023019163361404763552118165031606129760105859710971060943852317274728832820397615859395994142254037634581200053691961023572010919330471807577948382938900992750955315888461800489002667808232121262668489342058543902424150051092510787917294699487343593630193580162902672358971904108620805290808166469195887297058104770565701683290077089371931756599664809793382452601647948655214809374470422995314359203117915564789688800042379940834846914210071468940386359657860144241203823583656688357241455109968464820681690030255181186944256575666840055878038237778666004229565670879711669441339912884437474259619257588282532670392049581007841735087628294978636964931202422596851052173943543746049715676982743512210513973360616504348882297054464230753114843693049546445099998145537171788696316839129079357381908167012826142550308074512010572977665063056939773733339658162065189036392177790012118507727556472858691162379595821768597013396137485180652260087008929557331050738306416757685122616602805267406053723175347484538030132454945253075893036960531962532471285272582573114429448207871393325724451212400383762825819258454435732625131055548080003566609071070061611142427392987285756111007070580664497292741389579345783872255803179401394259439688571715583619792883265371102683780576370354387790649120516064716140068498200810379953238599197148997353128220770916453990984037215279263393302661745269606033853814055765811761355822664600998636669644355297162528344981027534319824440253386484283102249532293948979752729127401505537298501445238153573560091990819093275088029324656500804941823884236233871530806958247753428060483213441951156620286825498471983128279536060696637882489677020086833723770938069099074187402629249974516639817674103351088164747766067726433612428063865913819490812559775180907927253478266328103246136771173155510870511751805684673653086940786156958656875522488796243448949465809321261488415904324155809344663489643744937866246071892470241532520672029029374058354760244417543811554066378822256268543435457687105117113016712819663837945465704518189871112923638983040524528729388332093602950606533531061552200129464044292550365881101471857540896310082389251319316471846209252946284140167078905105945635535714242563820304724932002131314751688146152445143244193408697976230357493056876009832916969727795133349337521201841233224029298558874427675206357849964250958022978067261727623134499623907053251387692752622865548003178973873141539653896512204816257458410087805222708214962305687588887855178142908472326165426588822026324055043052646148307983742479997137208209034198082786420587804256335135404814650083534722168574075500751311930042675331802683553485489102451741169777410414908460091298978723845369679940017312497629785214805940040748465138879150379993495319552010870234533571953401944365397204378012766710476595829024688220185967896270608119707842177393749570948103578552058075440886922563025555526170754480564639188266674865796209384357169735803741169726952172408793792817153395599102453232183198577536714764633766453131830514152057608592939033136478568570241413400273042200449117789764089399037022163281115296972011769156195494721683233995323179099211308971393325707891040859396070195252693483927968530997512294802571607205462341912913927481805065536240082337928449097083509268834745624852977805039976972994800853072487587334198438265091222651135385802675153273705937784280718633194925897048613459417178592934677460551065020091902961122011087662288543894375886122540372755626633112833388911971353405008389349812811798695459261976083026191292285343075885681204610549211863957032631810780382574431428808606696465423246251527556267278516821299788767886194489216659280009804336085590925341508466410128436351946403132270084647937780574909868482521939464432475901989778389394997949567434729082496736116565288906464217445332383423396388225816158592574050891059792351122806718475172945723310746087713249624469098085276874268159103614450686983312606268095590754133504359870241469958972167689544675136930155047283982550467065057056623135453946352041974486284071221330702917703211028228049980129697678580218738300331052289065527652480696994026075061070620400556401085555199221431123690610220925335207351142595741464078245422122596804190392015069609174918425026748897581327137506571677703974907301774967872507311555392456617074910521147874682122267260027420047475250848801504106661364036561223978184423897113208468011029762722479362754569968961570190731263589931078298908958692650873406481557863651178365680020694594271133198962872651467087454067650549638750708090437196027119718278656538365988945222516792320476980127509711625005254448737322066236550125156375413319186577311722292396936819145391589800035365187482361689305383672074994280869072845336747697590384434248955219685706690370593520745731400365728821598188264360723694224273828973101926206865152386460955090361269969348997504504612749251354704127481138256046797424963449614345418247447061636714013730466067634980841949216833823661607418022000871201940705808919740544750027724726638191442413726534014809603660720851803098405846044698483713271286081371946274678418777399519922686179208230900692464504937433246967544407631218121586744918337496312164171275214466192937073722345279436859956509610396127534726043533813078232873116558187565882650775294503246076956163308710411925751461548321634884624430920176842867768477634141655175509296558948052921901455983526559783882150400245680452770956561140521824613800588632624698181815746765714627527682748247818518410347390857546959262324779337889954245447937196927608647179608195936049116386532105444423816004938223929641815066940637886254679020640954282627978215684338243215987282842662149395923987945494822444122577212719242022125894272403454908007145164838752723684438158960872483274115774410500668672168480325696193505511297011735894736911134684298175553444814250910471672848850776742108431860961099350795302721858159722233192650379947820767816012237332964900358168112378440076458919786481409789976105661026671595944404251245061772127326351214952372563141693344948815618669188327701258536537826069903373172502504089020549450784090011942409342976375367828272701269468278019988371884198624873366225056052296323095387888203259143353536610511266626606436955229171324126063273168759720634128046798487982573941683738743844109248789333651317927306965701847317382596937052720614091595324454430093785045872605017423895231999408576105584166966192452698669808492710618298863351562218877000286126194613365767409549698946477563954153935166496451159720210281985132465847602921070481094916223391506589116834275677619889508232974678298119569973325344774599400915249479689438628954803955205516674704386891986639315843039021850421421257749374495834575022402687248492012685144411388589088649796292971419670988376140393592244578409228542208554813570181545084794031707638196246029392424375312300155061802546049690915495618009599040171271684913329381845769335250079029836068051459830177570986995451952936835265708739328490039062253088066609981029206909471366565352252558319367320395448862319984429941942688304358661432257930039755622284414090622983313518506921291845179848794456951672672214380186616509351951969351776757006765409245882520040323541232621686466347908051256402634589294814508418893536765985564419530373229247665724251872633479221283475059439965201714667491774144054098528022031057871196890005715625138608615631754325480479254512111459797971873029664593033894201565503706928570784808721437820355690458133257222538766717278175588948731522887013522928517557345824888989737529314277833544933897195949744025429522684100548581024099095651872737305421113648514478341482684334469156544273940541398662286747368810255622471609681117955253754538849701930402913062801799353382749068946475596936590882917666107405664404486483462510249888042103797363352512551845569673008297885121203382648713619434602982939633994056273715251788509374533544393210715122967900364168906913100492548704433176015855407224611871629013665865622347997498275932954942801877814371348399263207063395843991423129335278596473695771162790160422420093030052402419288243372581958842314879108460943453578432004313157151391676334030793882896578503283162914321699912173891698600686727118421304267552461175021614959991956417584375358580875157473806263782663649526972877087875710193912766645051991752454747464887066641835784322280500950613730671697911263721892648721008949190568064178057922517782937278926304830068626916206249259140998275832349500711997125389891360940867869957484990676248058826456029164015985898627532249160361320464379735933038942420271666643667077185368524413462374335063879952353874714936806694647393853602094500429517108570450816261838172671257660972848475926037248829205289357968770672120125008907089344290181099202786229913983542930714793604837631229629185777684399532052349452854009208238314104736993740358472779009579717566168271248356946511729238534137903424323383671001488386973832517692865481776338672915497926579207760571838693759913231910301061159915433404850592424345083761263435023226630755155818952584647453742134889084125750046981700718303958739027708715011867598263326745093345245906313539291708147184709284105062397724065180541114571521967267431275230114736895646748284058047398211163032761668618705438012551800077043900954767068725861448972283324893587234197390757600809503901610375334277630935336821593319834222393108186053322813198328859204207168172733208216581204490948278996948730815585046314292424854739994403708926099343437711558984861601368872985723663979997208502888363492676402294394445590286326436620527235856564510340637756387216429852571664620001954439501219328813448797968083827200723665346964108620333833500144562073101870113060755415232235760374242880092546066688886881717717123801205315253778953779045576571971174076122622262615996146908561380359966194132389117495543815440785794414084746833204302320202295001409834320240255281005505300415118430388080663877233886970264617438502445416653488543407429224862513624130259933652396574466747172829786632052165624920059928728655621554058944189996440223446920927400020584265655025489868734215100423744433084261043314188007158787319124686045305223459269649033251668154025490058321720451546901089296983821071552898623080760494052956534552033814639899035580457527105488349177762777668053596103070088918859241442765179448558836012663814254026087267702320415306496582586104157615838657618202298842445489551153010690348251826269860984133720549249959044014854786616198215520984312125892483792542334981134354122389007168861209206969150887026942827352464362598017428146836767786800435846017084861883924597526988117610926642671888706869926574635531653136124709592461222354781890904380575938842413293918562759451392647745750804344780156280734182742523516806568419741647781166371818883340617100475974982902950495611619366364146048614264990519698736509631816772845871648066364957552245727157688002521897671561267855545321343228216877965077453400922445304142819352048968243423544695183743248718419200333589712704126473158547225779699621681156453126827089465997683760115756671373539455897325061887707539571853341199610879299636934079206754048407478738488349174438594600202055541975241853940277438780954670300292934608771972327205037465813691724106158645748716849944867377768149638978153258778323719314496816823161603964202168208428350057488871154290377487668929310182630213244046354150848067934694593042731556239908989810920784253916201299745506231034435297701712932327252453624307743069929902654924702369078264954568581209067554445293723550775744018646534412697646732114413344963209847041593828222916016307472165644734453576261596852458290649532004536986292455149661420362198391043172012556938489377603344895374296906075294815208665568634814775588181560027231284798104530244014672480623988630146823724310655460218831594590511888409606430405356587016368968473722339205162394467169066455690461330834592718915380603155915928806855661568148716246562324674018075733406660686243158639297537575055431175792427766750160050577253475019787453298130170373706157030974046525809194075297588134710807133054506747476976510011929155541282667809184095874851521831555393847164359457460075856259101073778018996515294454338718337379517967734076625018903990170494176853768272497226677432703464900053437563281522074424425229827345796823562237544991247187323495978990365146899853379359478570379223980281778661600872536638823377515439393336576761818231789366426317093105883544821837075538294517017943937477786410932392336438734767223322167083378053063510933523397022802046287409718444965270635446386588535178712405189078920630413618967986953827679196144792854681765433904689626391779720422512951376318799967140476541408559732441559493655618110509759573541156604337781210652701703511904687683248605297656671739427670804602807092841367586183154627183919336679720766977730160718926710594127181176961686954828822390796285641003862591258834388968592136452132886507945881595540254468736326533437860550788824370248428402688356089021263735120928669179089104424924715108079430833425595096219422577877345911641390490437430651208899716772370296439655319118825044417900449120001559284201043586864235518367883529627685566629989992141749801534602639689834241877643639807227040735823697955247194037516352049264538391228711763927242411631488803752296240037683290766024856486666038824170135270902502210877745571146518322515171507286007308115036751770161228067047933859653384267408484457772061755147504427588802420592590588303690239763740352608331271047808860757093679420764445494462615088183013416661835803768507143507027655581176568452251927017030801740801773777283654215523376581357095456320281133220281043551273019959274562332014990495478497953726500794521546317004010752201563067786939750714596736720712141322220050051680174658583800163223731659116631601907882216529302356176389324711624699387882591468353095360460023873227621539123168756863218601937536197053924135645860744298633114340367527287890039100105193131459982363858209343293004507050812175365821991338934162694777427915546388013841893198095245748046481588568082723049413937274122769247629507158112494916779625447231474124728587003292241258211160608120788703910530032738745076256432879296269591196377881519314125189510796472437915260967019594390595244641345076601054594002722790170638367781340829156291739238007264427383848466730598789214892861037563385191398489961169571396179626562140733206927550574812184817209953633484017800904722199706096949452693816837987000260061061045504348558997807312246468362731024993963684022926925260550344065728270097661765639684484195119918051795551644973642268811947939459700921708924624471566791827864754453675340779731849787796828492687861589368937163615413169245400524888384719787516045335303442710916253648926182401717897806133034051361313092277001878339328429686180831301505317732432616497333061933619854661553592569639613441559567346032048552185414628795459544011248250822666675011384756388931285068313103720537771408795685211911909006209233078072112562505878176090899118289410864877028036159658913197985754142337254783295166727164346925405313052644220016145532390402546734061431999666173084699955387796977000989355503057310191536469753659066470882306296338159488104952873298699849533379610091554313110725409847033601151111056567495399441490431222066620389289584103577350658476826996423121353450090604585574580171205270767492392478716554392898760974284041799118842904967302761509701186904267553154439278330249267889441070261619789304803215604156658943110486453233455209373117446546081530144993170377468250715596863174033263759494428034527995503998927372787267590606080052375526203903210552428285710842595667294870784324305890046585685289584293321348544056411888341820148309146692745460198379762102041174459750596218293479283023340397377303117769880050183240536867810875397922423883263948579103642284033494029296258038494069269969769477560779615268534593696823637779808407714973176573654186130151912874794977007587579870146541125510302090545384052951531466469873805670988660086065546073925903829494595887511616207646635327533749628490843276465601555316989580615017033620161165953340219905567250827760883697279497056370530983804781731070703141171281647560697252735962514428997143343385823346224229684201175580265938651635205538948949655104736444085341037661099645721731440915830363637302295425216840997590118096373741847331561060523758859945626275890001451174660184211898644541287467756793468525427862357577332129218782555379702130477977716376058846150003484349868047247162764570830713835113031979733643164097456956259662503725888607585334979917061230928436580126142761461540405474336504158026053772436131367895112348469418094783205544965965513271118245234738489534473343553687073042693357713900235203540232986907275370717809169601707316427018511288222682447909501521378543212930751618697463289086739995384052033126119919688467857449806184779292263953115987857087877405836143359721972869172795526501068386112556969546029798622361160362815373823616738686689806832732083901809696212488143804392714934632645775238982976509146268696452997949445327291050209116240761391174492059228621651576109335540167655118079642125734972221752217075891857395093373641427905742633419201544404490266714660392025039378764556775774776127267711777623741915126830911273562155780933999775724318060705765000916798756928355821525738633705628330787393625965298271131841228847379817627573055416877214109813943772756074830294378683777808984280974602482305882071364903315899192739813842672993969008529005675738694273230933976755510490216395934045184559910854805834572522248148489041616380190197271300025556903897833212101721809826850112176360013444717422329327180022480974708599645268470905263100036456065179917083321851990376803681161119456279103512104364659149572201957699420608936132027716379925310425282576460216526979596512473921940746663876710256612735188652779318302604560085326681903177261585979896987273503748087602485846601652458883367638605369484000320539349200235485955368584127297004061408429600651891081520407876666195340065929573551262828048399110566636239487739390087371812559430110785495585939511695535885130500056833542479191304829169067712734475014354480064879011116585911532676832094027411981699011645727636512791683706053027126612735304943946550668600713263965921562400316854608490613072221274486898920035032577337297076234107861899317597816764781370272794112499566671170455013027482764265989776683709459509109564567368823594293052674606238297951253064711540296355312193391957848261133093409700008138887726243952764693573643026737198054126750923500891333917567952600993376039432948223174531065476489827618157001672398671612684256181003507171810193736544384984821372339451650060657212176235899674399813112823198580603313050004186500886733808236481005362028266016521740351039370177192102322314171960159920555866843009142040430737294915325315537780780476010653660013527303611251913900423023236173479938944703918010675279611677396546879060517103328016201336598292315243132535143415757497474939075796117742817302522012991773941775231114617387972965798510906150207426201967381517626518176078228662651352297987924210041330137843503226308390983840452571025526037542448737719178470832876821057447814065552984538421262126296991637394926227573770630740193442507219455006473840667897226918768646261435300384518014771919267601209939453099922806334262267079546080924175235728757037286674605039080162614192269153602398157762317729017382259975950187291754782478644960615452908426565470456106687921263233103386559360932005174040994801707574152664334012655836300801693865712526223309069643886918816009460889538726068957734943710722027395912503625540914048043758047310455051852518903985561275553553386511228074959982681314072673773549564244680399137258830235126308092978037379776708430262413365838655664174174831007155954125031470373038525437325795120136061002839637979170320513022715421435461368347808329719740514273321012890648082247806890022891482397471035828518739752854683918475569139809470608934068116465652951273375270478185496772120449306483690921467227734832887239706745917485548034945661204852842192533407988335381432498398961642762685430357799421430267779207337718699536084551662822418889875499822082956818371271782583148233148405736394465392480833095998983685312288010851756188816387443103542101459312379221106308595482929868731915777190336484247546559379968404137414104654735761917042589696554053004560095843027463989958738321840898166720703625463771500049986618895431851541459033198359611135129687506620203689400751281026719355353224228261287063773738662628960082467306756903014447416088725774111882203654257013589379687039248425065378655384297968951070132118297583865071263441915038903131287298803134391114179036133168110488615651477007900795312123208392193128296732133407719935861006347494113752544253852305572349793988434607857441958483363085134188166659327632474446445822978926485415762561323164065384301931631136606367772749646819427975567819543560136058962695711687075703603751298437046168836203024268706631901868715942569200089339801264782416127417766318434523746484731198388785830840763111890454306253303684532208488161976926362914935694271121819322510113237714141973986054713162230418002036647483130416978133212879173190689923008145596629578098551285898857003261527514430629354090056245868555582493038823966668794729240767978572552385474471105384961094879862460773835309889741023600180768289422156426640755925258014641179000980143823589136102918292851696897979024869831890594950368364927750037986582506418477429782125940368717749529551501853558675973502280178947661056814480693460554019061034131228473232012594793912457018339979550881920647704175114489205076450522281586722635839539927267037830092536521082695203517238197254853116443599853220258865119275525946606232979471967899653325303298538794847204211161829835127839319653173922584715019920128851668578800744393628226675937306397185790252901739805965050447887139622440920417639458003931240543149422202898308501881757709087979260232926781622615361322084250993110672797269707038393397048307627723099478717656016735068393899385946387704425323406542740299854736850107160917354351233959288512889289415532542752291092537489029638589187871084121712320236328279253878142550274277101135753074543088075996060771407169303884498370973456260146734467056949056075926938884701567209232057481242267381172149406838711222924242787118173200475466392254428356250122644296730187031300042381190484904759080530988390945213330257735331503229256620064720889269306220940243664128983893547157051664777915216357835755865695916164772790165465600158831443365920916859299996911448093565600449019447739358455186169264261124577673943660827881381229571649063227563179796584137917949332126702618967471569579537907828177332979107044876648355434464628483216426057592847914623712963009878945727449566634600430393809983203632210327521292272637745121465933822081057738885851699543568383121565787178829443162200126125807096472212683044404205854183159274184766991013893784564200950735889924429613003082897454195644096496731384951415345920577615753789235911808579198971953939813140736642006098740828085557340162273854974931748689633943357079336175661392543878606889726107367836784228097500142541200556141140506963011398692165965263517331343148551618040843636526786171279378102004489701816255554772120148129321664431681608081788437542325175593564096167743214924061652786635296907203555966863553205771851751851496973851059599627152532584457640445230851274937401740798491822530509752857162408666764777353688806312533372864420066923253062362958077820839240888054269478424824015400584771411740618237840661463500605658605154593236842416059080485009329480107282293191244810582037693330571123085996975213254834932003008140199250334833601593067467397724624723605472271723918433013265786813462675112490073605631259157033426023153867792906532803666008263448952958686160270860560107884830728420227243373130110915352062787503028425989118652822472625637064243310579325267060239837888702583756116071409525581297571648457696722712062942475716866505163482081919409568369777538924386041671809127137360813952766663450898415319563341710362733804217465095899028694257977390956698281304115401273791464000488737902492036829231798612445663392376534021205038351686712215042587406407313454638576311317409398449970228081937430488081236061588496228151645570551652655804475373428419862494840410480627923455937834238131081678720954422662578236040629218415101183257173314910990207972761257229928389311271565490338061843876584822862502556243279253544227781576118368654652380408733938716508909891374621252618024397547297720320596743734189655645171553346444659247392695693712096458998464688326211729204019590050635907827042915968603413464853674102281964978545984684960970672642813026047755653792357176295113697766763115176468792076553858058337244209658876513033378300681035659080564953340759273710639888097946730275091265387892899744467727595483885421258609743408905825277314760609349665982628695882541813888868088007911812981158785550092591750922316303641513759873235070753813384497440246479871183385894328627814021511791029077671453551366774097230893773525943936624965807584409333409785488432331318250612156430503267538534671131813883974885001021285658076365114674144221905426240019675799878325168009347427977234988980304715433570340858654151995784680590829333509664306941626013214710002227029159518819033259001046392242792447311758415255446150310371864416439189253576818120871796072141117033478592790744105296533500738236058811676108375986766257593908697338290479175148582479742356287379819750327444208720603763648782412230149828952954351585416391789828614763790076510141718848492715088260068523786184391678248670611272581372668851417533214537622887565906083595074423338142016322669772371592553921928604524831435652520296028157504207586640348541164479949108990482507265068740212328126277769976989873361325300486004105761928661506591140998905522242513742012345138948028389463552256184610192098287805023384563418959660124277118844377118488919417244002406866113731451478417903635244178348266484020424735141519732348247583007981612388541624486328468849115725256402025934154910319737897968809134992114348667549655935196547868116919600897511673134437439978745233163273430948206355156379554377364953107050382637338770748181233558269540097461287107508180233802820624791460589213031446078572925816219981156575243584496462601489252437518091351747673864711213579497762561178574641830771042815694091621152502286410667369185162680007865253707415919322635609091413204245186410266403542829610437745189528291249906546827162371590026842375841212128451434608893852484817690309983485991411067004755838364899511718763903307472806788394354351211206425186777092761046865867104529965975232029892465831107801444617248746284901478959392650470050716991848575268874506648275435171165193206890898114356231226334271442750780739403991286740639324181660422659408958703371137412397467251545372499894675272185650031304025025224858328975082265497288830213515024837498112188222143584826093137539183903624914261452060254617915779627980079668474934497517067853175078328347356315697435519054744518017105246026216297670893441903016991915537513246719710299754284291651267832371248756374202988435682179202132711111772849058811975847765811448403680128964294786583067415148723401307878075974095466296572417336007445805891165597505390024663005447417636515209229768455342545217974824858555000527839865597253752793478636544336698606588916858944459615981737286203357361282670433371658718421873843178912438323164427380505039798200809858857989386283662825173249587310862720446366515263790493795961133910173366816845527449189120896470791277627470676482524981515764959376726576487397654515079524719104665746822773797863725812224409250994928698911130342321946517911707370330177962275113784403825862820792099602473991962788801231276285622541452167556229142496000001337300915771603687005786762592170018682864648634909423560604005744026244298202680020350227464560016696177998743261099105150882282883873897899106622182282308924546776621068171069259831034178238583450811891139282167777741425987248741920798094792923149280479667282151714889942191736383064806071701656714372016034708134445391050296591938047728341564702926297363156289118888643656169286420603777137808824414507173966828301318237132149243818973135828324222395465109368022161762154384685008748976339427532248321307061817960455595552639749085108569742881152814079451533217613809249851526323399027606554139528290238522749624031713466854787575183151312287693540271145590191736751335896910328164177515765520112551112783064974651535973949482091735983376366132274061784468066825869346258282481635133970226007052890327223377675005589181053950450087546363854537363358500502175187906966295945206679169444111236442024546438030393313623818944158062685567455692875747955157185220590059931737985046052812982453285840033503791017164689376730551421451310082218898824092013768907195234884039038615332336517366098687333302945404163970932095094013235438626863538314543950375222041048949133868328106105508615504821028670986079068378247971667355585493053721464367029236292069612703271048561331227963805555737954554290059565788365396633721819243221325062261537855354025948501370652996667702111723755315903710668443734382164173840284173248894380932729543939527227248402302345119231784626129695752429190461594785095872848168250387549115012426773245898130944515413044528798868447471381454611900331279793008282104790789211905628055383452772881737725327991057512752342812919552597438388755590640173653464747751290709637573232180241230408828854940867912452213421386794852277480382363733224983312880423592024822475673407999060533270203044801220608315805246087230649998193339217864117176530678325591154201092835670752295747746583516723625049653958038213537665700636504412791915887454353847310775231727065989693744057782151809199360639327970720386584314642345251258357299177135241620583640908499245819139922879547780775658637583209761521244470675734991603279516438206547060090126830851786981316763970653716172076696956666955075072475381644619516397171248877295949928288583383335807209188131091027675886942696148768069136929659256889749605615058298445702441502594173085073836612692323430562589207953073383410388927881270529886576604256161619388310139689664970841718828789700806689417692314145266721734621858248942971751868448196826772656650031357235346460011364327401307504353777795591554124118539616936033766210807141395049252619931383659322789979410684297662540461490681854604891837654073487825762472865996709237957749807675433416199070446551279809905009644604588833102050165931033124440921609526577812112019013433043622614540730747757032241545892994801877776859267580801256886543489501708677841508954230839620703911803607668843475778869526901643367875844229444457065427123933995649944801268558434125891459198481488163994576765055001121278756622376902262298659798248177393217750516353451437966458511018762586050659367952794144116332154575644952253268328854693662462124841532210361822759169322600499054826973299750194593741898664576588166103097212911663904130922068665023702605711175153253491671178491135427655855124165411279610259483557355948609501429505177698611904463393129552505312829023167439786759907795755934803176302155300393922701953921948071574005044524856905194588434618477609000503374740599911192202811372490132612316618481871428604026470258952970573844028122111134532670623734257095774540387086614938227483942732753415623127270078860500042612374660370542864143899115633384759385706567549990457866817702553721414706989717750051173995177434561052424190703792569416041494081625061852640575168110740119240484010462584037484133472622960179252168787208507601704692428229110323715573234571914742957400827328504929502432840571988472741690716805010789813106465327973429087425695107682949501283680566487795076602735895719390462293719668246101055059541567870170420096889822650403100431653490549564008020564038468752587033722973582453170139349989637583159868558703644849601451773964305728728160864591190793441856036096519914785674868336149682634009078313492146188928693936114186242331687694456556585583818212606224678184128292075214380754971450569460007174872673476843374894286456885043325645233262032494822569398628294863229367809461548192823524336305003653182038345513521432145874928349657681779626129570577192140844391510624076259667322443221858504773435942548609235030333544662172884694878501203098604730458752552128798839625584735080290972083507814661799829525656384411849520814254692391562722332853512184251682949001765306603441785361536487144654076010711049950629630150199438708101227109725380799108641377555605242416577463373946649365276908931074696761673813144603001434768286806869689121880109765612273363953856662984674170424003618616532155545792025391459703681617705268399344821614434502074615350892925446314415469691451713975355172124540570767015122105236488428427144835504334386789544330898315706069014967144383756208890800064317763837022700573998491791986351355385591964468022166097820636190163510928128363476674615351660491933196409886146586369261179664931475698315178152915224867274114861025498752201355213876656367804225932532246923475123731321263399624365539756991118840205347514356195817906839985582186302663565794491698106082462111598037856799392299594442098709720316656219862137268520608687941233561011706214248392261945832983322461780349823492902540911026021327348209994815428855405241238508618985073039572627295619585183444904480787983498246018535994731928969467662868018150308561931977705437671713410306051387325202792806692314833255785883360199004721623817755220302629372834963720492916222106512546508544096648277350113146388295989205033232521105174800431446564270379752670620666208974689011980578395283742579294937474545932068851609105751070541578889880631308085887724435442386903409941557585906890923620447532306471623399501073263742234027863295744945529188786059300563580610449324768882066355435370924646231179079380875869946158325171470882949925070417291814626616001751786071121540460445179660444739555901110149828722521406237917327315106737195465160742034793276090462208198129379074864330942180944544247576377193362377717294670830255320198101502167328051036206284331221546261651551529053711937590504135100187936813064374881479402871074233377340166496116345272106256493921896085502501555061006969473933321630344211899506577332176387320853396509479730694680112437557778901995475176376910653090648124165115796999449729639095987532667531237064999402329776117253708855121043304287735611084338583298815644173474474081146158753053961199334531689134206164038615044692294414949752083304385814413136061106928926447263170404680818878844430323590093990099081724704441030716702284949347563038220635480221292236522504895776535567731264444072995152248518585485838965845856234887295328497097476435702097600923421664362199942759879344264705690031174090413582519201374650043656158832420038681771043369688669659287821639504386844851989871808997187639976766753964742159934234827906681364866623572147155516560358741721848353982383629309377994882964473323967045078970109923380589940475909468191192671501629623965447289080553346122895940275138325544200360277436271864802597605052051895057781904228361186466484241511451174818118380264022779901024765001570006275544774166929716126729920322299368598306282223559158732657530317949508232585797955051659249688412423153495276485915198299456778758350349629329523068737628387546670432505267590142916182304960256253830659355314109880957714180598722177869143443196264867012046287446298117945730309423977676290146441297473687922999983253589589384890334691111377126281177287985784764861295104991378419659836184312173720477154124284970982119786324338251622110301138608540943480047528949154670496722095532936940443522430213759505536639281664811289838585647366730494871303035197017117519521079100479256004618852878424879694450925104930729846632383855002818163242367985547385278332054035322191021189068331409487048689270483676481838587657384058543648627476341439169649200379739944056029022663073678559889276871027960047639157925325569695437454075006899385766296132363781835069975812601557265286924304677779105456245138941256727796823837757648334428110389486517249448718665366596874524295340782393579008771128202086167888049927210257561560613835715190191308467212516530518045627224268275606939090012747535242355807821074029447290733077825178214449203451142773000271181601275705211976489274664312688571826768955555639058524162522245598390397752582064812584111723559562483253288797689065481375754963922948440801329553540137482892032368146921457171388405051654721510072736087819978321765354795619289820161354641856634174588866597015046434614550025587099139966222809856223584105271878142480169550582900705599954900357079185996065068645882969968816534050949186107053606426479341499400293993647452795360157097598644095306669290026159157447975998084696522098368484794157828422501426008951484258725457475964171788501238692915610272520396541785347840635547263484271663799152545281390812215284439188656363531038815866180786968223381810079426719480769146338610907340053780670692760039285356447325356003633903081490431309157978447168933773760416009050879449156189601852753139035020631772699966737996870642201234393530107182202154601454332866990526598312433644789118296436464720431630720528650598750499908486571522741282821416123726738457124342160341845106782098063635008219651744762939638690967894735623369645164282814904611387381337759293000753632763390837416011160705658880314431161737867857699104385927204415140863706923591224342574119497076440115136378557881121506638135951652242192806686880169722202189582630661627005572685139139440139738353380807391174428717233965506861666876353965617985280911482315734799007527109015250122394072003775991562617855962943866774281363517433671800361015490236582350216430013778774601639901410283652567230826579502174250293427007619242621608212982130131393072422419063113779726995258837669554848004945638775656744732813960984930030139781696224618816784909908804484774622942402263723302974127419002162069974923057360557116745798309920384886756871867543418813005283400406482173247950734195623068959501376073936597444149764626673189614431205141238658125326176617200791475385561872350828661626039191760760275659663720664539381428246175342150727348473248525369683694956056428547456910294982686533220454423190950145827927337262626070544972793051611054511703830882350035125325824267239686609696828774551250915073287838409997446517079024131223707638009788667452081978415926701069333852107020074970006275629112726515114641962540252406362857959975083820456478012081440464631619940465618492877721289523520202613067018924650149561231815785327778530046342624608841729645941027647388781031983892847879564327334660257991146072237919787170100777295599926995090787242232547017736549133217820910845756947518246962994580360722798548804271381691460114102736124636829477382863693599059535527441201627301737196364047009161550144401810558035671177372556185548068600727772651647031491112963911907498037749633195234291315482220531891334716335055242959381142556429399990610528549416136097926825410314232928125536704800291453622711178551940279467828446507891224839396726330145992561455375268439438078260152834182307561255478664487855483703570629970047226921123909274448613348956344614450634025416088195732272984266212675748510332887682771792114708034466970116579111445258811649977044772409721789146245368956939209045973468077978662420882267522680552381001690801269110191928294234896267249553397795970982686282857942819782854950548158611436491778689768592447705720735627262680418561201765309195275152173170150589221268907239846598851404004727538375407176913127717651503468803101339592748203622372424478769134651324738392431862682660584902727095655403341786137541868835376190336577003621315083402447794456633630494393295852369209997046706879839293719981839272191670723440334755549807192798871350623978124588825371386792995176178405883112152054881464693107987089355248014132120023255089997257897953903069495125618743627442678117987744658574334727239315864267250704041692039495408370951941666257945347058342640352494047277963863468153200499949926259396491406935213347680061353429556034337863443581607990070581966409012492107494434723849472641485297709163867918571627317211209861997481022703927993979021601695937064661529618578536413313048849595034475167598842143410526569881136674757663697548441296665643879392308775000685985748898022622004275198250436923630471607701489856422325801761922065379081684105550216640808683504590798749837634714277786654442071423777420079938650402458657474585900766781059918209550352330937414052767259034172564791250622919921116332817008779396335608001655780556411615632387512787587784167578827658816605463584363438206693523055191531415565999227467153692579823937169305270672813322813096125245718757419101717301476941066856404420190198096287902470229403542508439523465192428605390145449492186318710405231052143554350453019234565859978806871018597992901422887519151472270933589032186142937147693462323990753365764692455181179827297497206559548526953648732544327903997312836369216826468361879686769553844790937627617345504660194475118270708944353318738182204980225366457536339888922548518337833729010666331235199533026414055431783167650579335147348903115158538462930397541702457925068696500867567384377732653060496447153012313151394572804668919996900152347625658711626947630089799180898884491093301704298695102184170786743984108088589483535139046083239413600391617962752129218789482911710616604593038112447193223682516324109376118071858518234306920601588490685814961567450561388992481295926098168572828699176209149518891080504458492382398289270459867095319486657222929354928839139619200701552665271911473170353020106848116240033447266693917497275506962506017620602388867766262526803105783577034305602277338992556227394426775455789537259460416504434704473531317374014838345897599840024998423451598132808861352948093578234105405220079070803376934404271342915596528376873687046904041385141893359815297119427498979235210475118689938445351699473826052336295845405344929353540737456959080131772253312256031221682072183377154833027064197504863189249506456330431370437499764798878509419865028407337962659586659424148325815382197639073975107562639091701541911286880961851508885863848422225949966010698094948863763653542021630852897040733323305561811504460719750411679548294054652327696919410050565870158405552451226741258295279035573615274731015841109264656255636239988664020323812053312684470267008093201172980142963336573230014229544295758041527709410795829143700196735497476203367622750627801691653017939895800135942730262667257082021532502212925913566244445945705063744195699374870474194273178459634126161238221583174036301203164381456189587245285398355080961140242587722268026311008792684238819411059069190936452670065507722714840115323084252572636645743588871051893028466153721754927988331060393055236726995832247479606649316692494499586843144937721842779033696239415478098407521138716259696220818741621129963310849521866337956918392705687448206296958789760620303530886756836291553841742312553692372352116193327983372404845332079260355748401998979576975502794570814344634961417650034839533889776680477737167544173291647322595905463638821622404132532165830302273079155714205746919424034647357084286581415475753854441697851815220515330922264000500172213929971597695177237309351711576133781588809218576692457924824296517341509343892909107754812017644201501858771910676352776027120748969716768419845062732696410113375016686504861925066444523594017743183244583769757046512184334448265499146863176486495722359329462809891236416738471611974556334138885063324480374062398212393947346819355801897210365348922678661388696004082437424115073661896139414623374484964450497537387585667597088611362620239065708776936926604747098619243975519451328066683202678812978132814155059755392538030528721393023202565936784384325490219045363811777186471628986375667846070218344674374762162673372235169982335378004927489585663141725236615537179826457333149557164684796077100397876799658947674819784432784670574141647623304656796138430991548021211108728051409844292471358967878758788585474489272014619646763321003073801393426096628227329638708192516672192680565916610782957216474647272699089915171073525606856147456615582893011666999030193607401840227876786374578875184975321120300849142536829750852595540052734630645140999209005938711989542317351205083421098997714336781239427121240142527119143045793288321774709888471466437280684112905259881701955260665275191703461615439776815710527385411071137094923491581825687060198999323538131231927871032825170064806534959813883188430213798010974012133554005620052772773380137887637678444079448451961125248917086186031571722174523839268350591609987771267471093901940359787261931697754767841053184160691111844387081473720922777906966079617204114674440093547362028569596156985294995730016187666896533279271450289875530334656940881551421673258009181325389216521322518025281195975111391637288082156641871690012641586188341912768489176549384628016001476119545633368679089813225935112465624710560789767147597290903123552135840166655965367585299133045951206076706975078267344715969158341294948322798810974478027384571464471870745037232611042098557447955316562760618192302544855094029973750829211976505913780724156249856350369462184592716947260125057248058540639702021616798095718442748845336114225722768680932756197199767248465246930335523292440102150652417507936680330335084084336034082470952326856998461145444319909167387910881558367841747809375879528061315511469720762728281070361006893922297334422776353110956903481110387777543789392252061991948154829882284688675491522730019823567332547380339932652589804930927181889055236563868986055969178165860477555884326412911206343452167111499785648750793401690941209028999770620903218787623206671273105593203534469996412626849869039053521255825692160400122231366542747179759759481470112602938057932456897311498041318790625393269596615795321049691468304124504578771022370579174224072783273338602970354430804815127856942665201730369446275297371950808205599915965594791663226893003818050365230602197774414104095271708084065896079268404687764844825352866333985081663304683808670832121210401117375361076208174379760784564984887283982493736347949624745111127259291460036608435805288436099008158901074332603277299513260814453797997572980139955907473924534651420520047267521920162481136509462257952747925269363975417563729437941343363120908684276385039844487605288722809267700810104416458624420957342216227955289240107275645402195993022675366085492591093732327865034334814451676865348348952165600809536097448897408352260889553224263766681123645669580586928539023723529940324962338411094752857748409074130906651507277351778812870972744551974731715466046157883707463614370720436198610735187581022277901640878859445584496972152207446706147433233229993295228541813673248182058967825162083606157090324825049462812780465668350031268615785046005021467410817522781187984748219647069953635787811539096351166857173879423131528695413923863222366900928109383125773103361818831562496825782239975504835459927414185506728028280403322264088592663698664700874464501029214537540799947699957664988453042318147438903297190716990296909436463118309143208166578811086124470602207369724799354254901382689280948818183037527314079492043834178001952867032633866835628124966784329928086673024701991113107605095200250641744974811055378278069647692148917087838196338300368450758767807550112802920268798938241221431607994868433708301353357407165365017128316615733227188021592871166187688707740322168555632474705192186487269919091722623635249114582258177896170546340290807408980847007466764299110055281354135512993293894776849447254645774489696974280518870724936940107564018635752540967711650607066041753961070993749952718879553183525674677957450210092635182341593744749495914677281024915091937085992706919270745630795056813372926369338074798145169882586502901720390890087768103362102384019458358795741559036704044664357105160973488357584853139400161982903203064426726834533762988872033666769120291098243611860699835275461252361613532867249758758161067768752235195898335488631569370242000396653950887674160683191368335016052610138596026896586037722868610217165906675840133607900122819638161624040213648748929499581153027827885098980142207254720921796654197337826737112916836470012391013763342028015225740987992640290613427921237905973560418322899809793255594069962681114842801457989391310308474728086932683979728508707725382416835660456548558488650221188293025161213564614426726301743045055654011635377427552542317930756556428517714136141873809616922976104774588252205405533010079103952503960369125953783629339181288229369520241957320326026882962444842805267486579185120445729810852768481535948789958135629846090338918060010964515355312161170167896910889341700465589489366057497689592144210545145151625026598464796120088835339473395808834040437042739818657205215049017302064638793539575703515732314708032523695082405576414606603980924462293224820305829906675128471086992774675945612724837269281983552348993952202179535532283919006240741465112563132099402200621358213968883048332022015371923686337312190823242603546469824415164511524498836820470091625941284657318888593007365008523144342558297078633980356876498747405941130597455047602938465847260459534344967037627517004265614791901145389966225330403822178804289553367107233857964209325600368048770177322890122612033478349883209541304347439034926881948141165251454398797948667919796146412384592137228538212703362766044252581625109924263586278434303723081859257134863806807398825079365793188620185347816632778052937049107109811995612897835463107438568917126753690445236739866490029026357641793555394777788995602410077738166965316616045954463761659046320025172312697814245255198828347929141677391537156862250748057450631844923808814345444788738922626809627276112480189260488473778892071566551686504995920704243421255442895879563771260189055843038317926623637300798133084293886998422392713125455803008308255995982398188213853758425431985755684232774376395634754803214096502507489963944580097042314646771487775801778013611750354611504433868742719469628134632676303054944466322518076369646335477789964050805059268680493609643812762970595736772958923250183192551885025452989520689126194873641960210252630295703983722205919866206423649471250429322447611683406970018545319194650766982450486265346608850520318480919932995383712069181463443425905901493466078395864512771180536331179810449147785826287811133217173684531892544885567723727976130276278580220806416463653405710753881691072524498291064550199099867044951366790992265376091639525648566191897065884039117811983042963028941379440376370724151591976445805479127853766251271956710826270295422823280889106657887139884617705865333008119482344673170498226821134610822492929647797990818076142640515504980439722935880991128629137612897459563389627375131620829279155951008377945587951057389879808948771708433488979522401760159973793790636807871424240296905416378032716846318502024679831794699103857834457872421140697207030948982733347527044286023581187666762443151208917859593816143447038073985432625778635600232239179392668353413714656609129832918351321765070344554757440011777164041712788729812945484441900574976887081574177766190344160288770094773934526351307230362566599195949676200096773681389215751990760046331737810380945444780216296212340425939472382022052230474966032008831043855670200037091318267187041587467977686617297802712346313768537425854665012122972094735100280507750725708546040160273033113877712515870675140995505950082642111627969993802781649581303773695739023104712517745812490693189084504853908873661807596523437237614809604863993434565590617640825764880061503653256843817801707073536082586449924230510763698805813734035281444259885059971460321455850365225921996085896912265679933189833503452347903574601807347480352870672251439858526144765658639840266829541654379827244227759757110693370416348641104086927200554644605149257017133917335895780032791386003978379862756243705861847484631883624740163021868177767345008594491164954029409826416026786192794073673714501411090900931384365846677412525994610966594019703583536852822509779703478194457964749525529019935039220987703971799215288182836916631087797786307080218180939145288120868651646743658537650076583343292891176152575638368055729729701904083099780378715095421167956779047241918227397218721220188699791495742531534989455011983960304245598225247756123428794486944736555759944562770653308317672565869774507564587587791168501468428597103359886624418289613297277150246428969023191396561389866735402828933447611390397010250606602281704725428591127693533559824834088015969412868295607572450377678630759513078359370887406065850708432486851827901605175545942788370618237321143365362440010835109696769140288058093525097494854358884037836441870707555148121165067971600707563561575228688995727398900541390537315704160737323888390789335560966494065272219484837632987750466403588535668077370049205159712303844487053582863535208539787729725668583342715408980379158675336238202541430408166917546721697969579641996368283702167119605208950490185788979166190298268994491434396175272943855643698343538600725570044975209822664086516141990427796894275933963767427586588772678228950507610873873585895375010441365555118590595532289878226144269818252814542900824455427631626202743043034995714248661692859268864407558713092041546655597276903300372758177889444784760088449667296033829094316930569908035482013702729469808090047553018114491988288511416324897936865204079783000253188499166218690119475232360210665520990909973261087337226802714001737230790978244431275610998568885823358772635430301356515287929586455250717528076837831605995385670076618667777878531731833070124956070444037041324144582700328806243998504476756204614640656224746477223957875896373523735020374724013378355285458152107291953252395819828680395906067839622350134141893031951818985451933417329305069522112857337828194864631194287447885594027887710333424431304181443869698251138969497841238542663300852983530980728292506382639373584048672777525757714789337916232519050883497758811375415284511431135412611070198284088192164136923608810757535266537420562855889513764185609748150288891362792864914435300329537881201657119773235321238151544696952721607763649441017662289999778865909068181018078277281140501945637804382139150612672133421787650751402123331413465042493520859375066387520758684000755596483610657042069359269612384014284137474815942676291893545573094052981889185366501757790392954957045260736552564293444781709493986988967806551193874961608126702453507189231103272416863924286803278991691200986919617492814872143866606120058459887677889247295342045464423724485901644219181801475373250301792225610041052460113551085390926021031763433804831193040735278849359797528806903700105827799475933095153098869300482508742037466468300177400597897575035319391473136407026756259105365755812334474936573036274324177216441942103700311524857915622772147337007976522573059494270443305018671814275573178663712585394149763611639223588850738834998433276704622722422561653552545876135265407904467281651572899258978415131777321306426474904319851679647277482358734219771606379680405103961284615129242503417810862914250669369149417031094464532111622498632752347355945416921413843584348943533231164655412942054013348974571391503630973039624009304992977777150319799258281181718250062250442500608118724454650407705867818590043771079476791490385193083738704043044483772573460784250693154593534985564815542033890736135442211360583709457617531852167912925679519100246243604423947600483568273302241695313480115756241331248411972557287044501546547126412479253179847572206429029441031143535136763633542313226178258570616579060370368408930711548849621166575439397734446407607551123846140672574951295307037782334199341300624710806771552096646081677499757454062569111050504318415742397724921430492023837017969081255275439308035987662746248518080214531480479978497358326681965724499239787765363311842046256238380798464670523843489146669448780742020000440086873388874099145193573376247631550162558201061378265209257476888922350810380031982369177430787228663179760277240362210383149162123785468579418396345436954868007570356254602942501557711787934062140082285780565733690070877519043808372694666599809305085568956896542777669263398595114348360180407653161845457633705323272043208263727036625950413342553954582207814650125354029664895223248447014909269800583579930086735016625543448560002426503842164581463201482984871010882697286507184682334960503966769480165871931049183851711421057472437472440143380915031722222598861700244718147786730611873063164391770537005148361914650019970851790966194262320493769769378416119941797290909991062268514728260285743674376815101746921110727816200387306133882378419786063205949986421839841407699808756592006050278833981565971011109948648014221297715775960036306088592586179850859469471658256583010449452594632864404240874257663575409230113264012079013117576768267813413265491541291315342460987475717258170177896089631473620308659436927239596463940884298878954299780605798178975981663156114381005252898098462211760461573462748162774813873145014705870545808195071842120521077732415877375371890392747251878469998409878478354250825375424536756218302285644961075773482676041790354411609984303152387309797498609988136790592838701572803502128729903249324365923891593215159725726845077345147027771505426683019228167396220567202293499714055088960542507099872846821215592195042224319137899374462462482806696614713191183744201261001862606049600110034441944032491251493384547284356205530783807077443354667104438331458299361615152965167552769471049232578378737362737331887740229068155146328626746923541905838915779187314636652920938340876611264408820799209240280711457513741166653427175710416325197543677046670086857669130818181250700872778295273041567047929208822780082011492232131705587354311580402180498576898395195173060831941508421140671393793237868529707019616037778674668098437061993812030131185763882942729831476853767039716771355882896631138648822355049772640776838974919512162384303243941392080843395545854107397956536286152681129415504648093773510137732331081174763897767215558897120913928356717643769334046904620357069435139920297023538715921140613766814423498834180633953687986219584684162974814406539910685711244746085544747056896852728048791593137282996638403391247700515883523714506245828213772739546012492922381269966548412366603945801499846788584671253756213261634108436188716610872346247964579066640863758095289193549213865899429056560910832045001839059680668624471009480214565064447210261991105157228825434739311690450537052384554282155164136156050075863857797360046395526400785721033525647050892341810288778783390364289135399404059356094676096659207901902032784877529692702492627039345557108877994587303393142418439780158767278283552509527797011433263249616901497297772588865590333275015254287907867825133638595807114920658419963239401737099213924512724797654739148539307219968792534160470487882686316327120325066205730684593943471462579583669990368191189495572497669535741961007086799287846419408526903327880876017264390876980773000758040003532179225533691164726710641878591143483275414503342999598258786445638121976192924244966832372504798370059110047848740617092240669875258460696868720755436144092250196346238769867287768688326448867246554335493281975298955012441756805387971660797762166976284268036894184148565590342405098472974288758680380618526498087326326914773370019401803349300887596841986973879856217773690394444655805825979648448536969209044098729441712878596456840761205491499460680832886178976757658088541852194812851496404192212062101601007686857924196178642507216266006598138257575497351707839974490159221613772235143606765607924965312564210554706050507998763294393257076658683890260569294520438069451272719174420013890544590937319580110221329186837325687433715508820917858288354944683563384346940438171100716935933048001158897166895347351155040165256143694405132985213789436097558251245978757390146736505662654952279820123915738969388326958027279608451613849220397408403920045974941712224483381591196604434807171459059805084933101897543071085704981190404301382621000507020020523359308421948810698151226840565954471227297498400302332350574277467624501977983267443231923065878565265059029269368116809662233108874742724390621114043671213751096300041363126388626481393059136597004794299849883655500962631819458183421423635338454378843490382738643485609449401319496793451247247449676977327195265905419812901467164679930520425714040193743001366372441620492909662807694396608451959409180424026222379567995550039775392517338423630065346900319015188836520744294695889556714228166669773202150309260573885882677553695443538274858329642637679689396208138691235681360078365711467214849030254464680335185281987470168327387527243389372525129568655953248372718342783555492257242379665636252742127891791892073161803059817599512790048581349888885990828448773226641793494527675854228775598654824471152786225439557242985522148950819625646107864675231218008503711998627249799080966546612601979058556166300423060030862739851395160890752319979249037134501427748020112998228678825132769867083122892083601185482714083010402741479016930720800796954693361895072827855038416396229044270677890538447747754144068162609896982250976379576321676811610197412117677565736762500645083613926047225882454946927930624671312615516773972903803376900473087669048175500939890810004235987608586519360575288495436128754036226020766362276464119271328759986080099546873498292896683564544371900082836940293131529627192655519423264463952800914562612815317209546985107194900523902778516615661970474917750224933297504891079841639113666484033812533566310033060317266429760906219970912466713114606943156962541232327702883143744197496344732895065565596725364239662470462728893384186251329108987930317455916289095241567857170286514865981389403060888236610451345957852845143826111834279974292916828396707804888517282890156243144288235842514585388563280054835663307080005170539463509683675936840044241652079634262778615832148550037400287411722116568082431824639736320329045885064337704386962179023632245045899105148371917063870764727855574992371805754714796168552617155655717005936912080410283705916441054188316320039429823493943030343393004726233506713478205422396985319037944290449349940119874479785751048118393738130784601432835652956807499245946455610196200554556163505322148951114015641205148575826096793176262438066939816005063312612145698311063525943154302860400556243529862817411090214087283176878360462942017766667424305834514921584496704638278579685586461572630000125034472873618054605860984857652173804404237526944658799360913092735821809354390493346819934244191767835184523530202840223311886877006745881970635820066567454732987594465780531710547740560967530522634783291518357939588807634631586776811555162129758454024175953710055362948527510779060365974214375423941243095777943251910374230427538019288306185606073034140117957407789651120416443082413519293534401583266962734922008609413701059517879265271057387132756643400788313230284547800143840786198860983795221203360111562540259076468034265716992912242900954102453015270750677729409536932637487301910390216646209330473871871476665959006575789326044270493576312213743786963156660005429927516040801406058377329337388621346812902435776459049693220369741183244106084965734536254293934869370245088877410076747608689622691026217450057178368601472426809236233763908579504266344302700735306408223526670973900849239050277030760401615147090854299242671004314728983196141762612947723327638887479637770393380258589432657033719018378207933636875804600177844391706457161233707143125606867043576627545324597443326152718693760995657811873828965878406731569391581674248570610770719859483521025839146199271343430276570820380059904926354406327077353498582021896013378936633025504556974466729242602981281768380859686906069056220873149533710370451380331796369122336300073807718636384515262761126933725842730519710601709473274301104030754699593346562532394426725071349006564380156440138499749907577038139408493956069857648654738632894887389880537570827005813608995200369502817450332657491156706642993180982888105556715850656362359926360707529208958009273740715279685449801669995179825430836094444715058393231574687227439438223528253695201223482451941394486043821824747389408579149834045179360494504142529452439641773269153663259703326529442052598579674680812227574589484588211531684993699288095847091702848601074152037417286836193433472002208551117550051362597036503573102790262811197627461241698681078836633031666579956913224685187606325053217208015593638128321054427218591478485394180276972305027717634537793755916322868983695462404889921695647970773196341060065932424956600303395855023313458441978735260101460177728551734296572479615631770163947532169335628431097945817379223015239283984129092730371703098405608626373647799594817823106410428684932749781301048515121614414166572339150715620376228608088141440029591211784449423271642278246411164839874442561468454908707849960879233759570773471440663450043090507841957330804848095591058478625560762616440581568653714329824140791129395578694920753262161423806797308409898926801188627170518905642677370194705972402883208185185124524807632314786098178076278001377038312132916762891148831975141127359319985084601895531602898177626810288729502705582888918549300010738207376776118220288384954235217813392563743046362523284498081406541444064832617750653014916731123240937399592143020138257853066240897894982130666959990025476374089898167815196345265315007365176566676235426042840153220457389847616448012599720423340796361258304541596533178851668161867335480321286083682945277962957229299475562658191548525056456297192136196634005306709054965791861999256642188209444321481030103225401203876683585208325812447753708858465981469909309070254915940699747383863783893055261840909353852070700633211291659625508557636455844628732637002025118586932872932026859473687149663603812508046928425855952892393842353819887010698979314404116786826895368144767770502679028625798067564618806995169376432318362265685037973030723224475050248610879177574299377398678230720402534445318919498134573823167562824619205178042146759523366084061734139266166998487526017394613183164441296049219789188720371308517795084518829512466638846447293603041709543055899786968691500499370177056805278819201636887776245652660542014271381273138331856715078905870488101770674590777377519636440214499519362139061715719521867240293594272519859731690683220265107443883782335848428325407421711709361304449786815578550580507394217263999905574610433572739167049901906526137168003116528849071100393426374945540356069403342965933459088614119548956424335159225481831008449624345392358232110751502355669040012442854953348100913808777096743249779605337586200506595113456075756670804207542657357781179578532745016503841755438510779422232090777147504906079306896886363644511559867821736011213308790272556401868046107060883957096928084774905072967708718359590128774825419618069596708529273373490613477880511926088337752097629645013797456289231518775315729503870483667765304467596096276137646649505347788225441849166702794460023174983956929803463529882236066005437775291914189394059532177477764160324299075771714121211551073119809219800852301006749514153636549822954244193360898634927473613880347093802180381007808743349604323508398759272466851625848583650884624574788013790610844480015200514906411541105471819260937769384825409133415796230713516876619227258288491113525976147714373550422378846791136393129965397672927607109750828334385226481501938716830579178513562723596179983966798364112311479537971630278030875722547532769447294849322537209195745356434905003126574591407258288401758398796464527081654865746341412339271308199183399221578649246891348149579961393576073660497184519510374298412335790288234994732923673469958022545668737968913016431881613167600994640163426198564812928881517138995337072644917446575309421765690651440521159061056438246496858455803868030029849585905474165953710317496963114263104589728704525078560216488713867543505939843911463360450862238786207204107001649689481950704586144051659601782036840672608818544349590229505935749937285850088170593527544214016802138513393981755739037671529972000986959397069004562312690104316778537957131505409065847743464008945992091622583290709259234926374241242456456928607563430330561702837645239819039842406061651107615537828787163542013604803637728786563173039563867138904161893685927062480480895494442400340004860866022351084498638685958579038902829443309845661016782896044464438684903662150843450967549403807445028134419071716642984552014805025178779838293528427346640654911576344632476192336631141955854493062024630574441287839411200577556246561540542555533172334174108573535308367409322574679755315842069142961431553475824595790232138429139160260116780636233484634265458147360561667410478358652467357785884272085217053171733378719550082000889969719727691640857929078013629335591957031790465090455226642252951965923403267833856