21039082124027377646182327738675206744840615069137819696041819558637744398705156460800734503212884565568443789288392969787612334812517958229072650576109530749959533389459750544058495532433791246588493305616589670378982145515999823350914306363725661443215154229463944623894160012542870403512934446468059576996689390083539377367640334105418036330546492005775492370516655106282068615181107024128984649221673223595770765450432030900575641300823125212164499646372840128602432630405099816145926619470549795832760368517606742426575966147696842376309732888007866864604954825596584241699973264102199925412161462635373511343016396573154342251358185812064449265575664930377521991151363492185513678030446661455326607173876759232686820364686911899093714848904999983617157121239948052093431058682384168873304092306240634440748683400142129133609861664532989667729983036214840036140784499423350996316137377580386845806528921756832473109282340664959683377086501263044046388931523385916827896772175101091583412476445902729993214192424237195251411042248146554968340003722103116598940794477678519305472588489696983909467444858226662874162594615401583273701757237017849297222491528177236945466693256730139191518528422199814547462050344594933622739942861461345645847444582015881261155127820628242589412697216101410930356687105702651793537081020526324797146687929477471087960439654690159298698513651113403352555294847917363877902611635487893319562820722497659331468464837235862123794799796469635915338356718523785657983611193484488216957642246599577983053747209628585098745475454250577168694099765895135465420977251587539394463623474525358450297227192573323863213683653862998524490439476759278284930302352500672379215957873531708501599462133000783807129047795800621045442849869978766719152782826634256908476037524084743567615780147846560889678430732271912055101631345696128126740856330335881099804452087803247923670173867623036631423855681228861684826938744891332396445410893530739951738930282724460898918382118786101940259833921152887623820971046294415380972762924292767860013867450594711351369610183202339298941647322551094794319151887881465347799518632149575369224914586960830380201943852486646884833184909597839136525434987806078864439780151768323100378866861990889743076327003418644113289824841057761405125270766673020042153906634981436564755936737034147717754724177707201966676465934313611128471522079643269224261478776664931621127249203215672667977895483370323174629954782655145093760607299353780922178913937668970552980917400302746488951067949604345443891738518211351827950793730116275859148582305411154096694383328741372246596555815322451074587851914323049231955245955089760903479473451554728315765354055701131920653275907925019564158540395499194896681330650645821049978859973816544510773130820452097058096372252785338463075934900350623235368934318322044810599114211878118713093549636841510472343206655026359793128182182122068764044474617191788836168875529324154672159318683395932560337368720057259930423008776388926590995798427726900169380218329193938918012535374884135856291005233894646916132720897431065315111593353869637828549500293712759760553013173970445516335430806527779376059321082158993955773371961734887423948439784709822684156457020592474679868208722279130961648094262007852101248952583829318724575152112704926374770580119081472626761854150073174736490214452999744194934883317049565444552903519328298426940401622564153938376787288430616182818441806496656847768537598956795353767796841576233242311382556481710961649994671348656476720167034367927007256431406729773651885951327571612585836013894673762939144652273393665073279227086712958933742546955873419538221369914932591419341453126199718517453125719146043142050599621843206384500776109857191481607514393946479801097637873869760552612536213639292598424641183135804368752612768354490588833646731694576783110661848519398375909380756955031590334771776044929301628068493948845975992967091438986292524291743175898115551753514143437835278219099356043844989054073631355071648593872891099738425444354968966245084727915418457628807490639985914151251033039881988610709121512249431572429365004046441437735017962438072304484330363720044603182828515264279284433625928850559489188820684994340487605947987330794906320184890710301310289698983138372595056670122746447552927781468356062647422220680352866473946839993839904651629042327872679996262844779256064000704027305189866390552503851335136490017191757668537451012163155274284238416714431605846763861596220643661134734081888974120820470789478995219145981562595940169886347362502404573393951111725860229265874429151474197902744861623181566791795825647874574636750182526987929015244927850652858535155061173667644565419099646084781294548415785727582729512912836473175973349396726858204090878528367122996694733145091150642164209180785939483645892265608934301285130510137377623586183343551709624150951652050202865700780991636654228352680758509869481738136106470512783334167676980918061175298648511025353490197185925564161621853571346953995645591293508218445693569578809095242733796546831348213052769624632363821834389624037868076179075664820760623431986353795975785630804191431163309300016190782358505951133196000183537369850100603956612199905672907555487824615564194627497681107880882541251633932002762954714882762267506809294944716005618786959051516934171341581638403293111141984171578905104771594312568879903383051350875548418473695514169431113718556272198137078861496581251313527020485282732840375449809002330759752378932246728815665834971169300835348612517193592474897640775182123871548912303752508483760310081558252514609680416279703542545351757572136154022430831835583664352684252042110137933531333914454083565224123692274683826551026837953990023164496544593963112204466502386422562182396897554892592609934091242468512321561077455567405159137787443100344947231972388362011984640177260961321282130113576511835669943243962007206096723644940622647730802298664521220413652166812341552876949835499956732628625997862429328652476801135037630207537023377236203482967226594464471154893981881534947949069665022161113249587057259359942125666161000774587141624234833417947172170589208088288776174561549288532992372924946445154053078797891306895942136392841952154969733502220378496214540992175827927087937284594175246976500403672006681101702236022310343561871427799250994161639399055973685418017482048433311883836138718859216188287085196243905961515573818027739059043780663448152745057351547878133890814909087633306910886120786403263106614982249986655077228702076274966032541906556474323808913073555566961787728292756597289370789886427048498764359185540738674618655363228693238269151819540322514730352928112560778979384322400036733452420247848458745454405317218938341344012108992846603975297332358345529633896797680832422216309351500827630375217657225158484688979189439693999201231763595999307491921913669388379029705387994313781887595181272313690966769475083801215407924621236732037181655267354936976447482392146767294963055594804213161609709987319648427261026624629686481265914279098765799646796402638450560793411052516218810180575022558033423148488849848363722896398018948859560675942100070116488105320994599920495802721138811084631482109753798034077854912659015469962832954845968616856591192726587951746383342595816450106666305271146030556714211583240144363526015429054294775739410118687089447826307974592870631652460731045669740752722557313714249743315218550350732181552124896314187435139401727381573308088512160808151582148582659888577784677442962729154789259770364660193723273971278673297935941825750678754107369288597275443211942024003424509513881421532615652251242549517468658451765922801117362551444950506122287539016900203557459944729663817726706756082440635243132933075211877204085397119202371546912278655213171821114186588529545296230257177751712041671014608259427682949385612803910176685788474257402076293898653630230682428081171025486665361726108567382592880398791116904813353997583674815317409888634287437853252830646509782262530698762337217152938426998988221304899863476865393004420931627326130621532261966495392825442058331142028521731944033059703499164143065537217739625881174501680662857646028741933382903041071867315812887945750515552862857508398863550183405116358688241982369269760507569487354874014599830694569795903564073789672826698538279029638341407548716087477337810781779934753886188667147530791434990131105612686912810542164725721628839312601963353638122549770216591381995781742271459445268929050159469956628786686903088217309731370438849589242656824544556431066668741348621411445244317205649978933192872692752702524126309280630436855139919910415239739498592780718704677235551231840924682608296796996860625018110975914937303109525332348683667077551104283853991500834804652024787926464811970054964213809951389106747523215124740393691232452301707013369086947412179899168459345981444442871852681838841064242402965888198409294169792476980085877697079090486214227155565938476630524343378438222376174121667861089234547577201105563250206168546198977817011588097748083480864825490444533830317457953803298948118292881877192306462212462241030893691217059315764358863242664225628435763247152570081557888102531833079178113631881795556843242130703798133237988527194503874628921101253982376339051625307227276627307120027527037458537991873331690492678852351870999998138055858212410108425848649629095125570322464948617214407942999642601745513791275812417779164992668123311171639835117102434418877481058088780982971229652214757402220294002685458316651299963394882119750940826579796414351315284422188254747878951248793320935389144662312362071145992411612709905838327240407434607940592440133260014469936338352744789362075451952996144438675441706920062229043812819554385819572550711943753881017654395584749378990990483549710699584685441481629410747539482978953414499841462375048911762320629290480766118908368726353891730825640235036392392597314384142589368924747543644050004821044998531112154625121393278935855367273563044001791663290517937018494631328072477996703607940878931372088079011018085977425554645511985581512715540904885854840304236775465256574638989352135224844333551523571495960899711384779113778699162526840567763211511940802279821295582914906472117406732584658069018289057003575179136546380531790289562630451604930046293959136464881598220670615347113788145625610930275489565159953816636481017584764520183924372932921713154001571009768387565800462791168627290348635353574073822662824007267259341214335961233737981612057862869454093449732892465925779448906042094250037772318081927322030141132545132638083247907475779971622395946131568277269915669936549729439584486015018011224481673525830669269344580165494147243634319806474626484727694240827142134547914014353453543297215134353013221127422563828563262940141989889781655745021240342533565483842993334640437024584774078577843680991070888873350597262897289587304749671931594633496604555226777177165322279471694658835765074085753702908522889878730566904461626134216905119646230626710121551159567322198939251355397942888622900912290063964725615732735623037933847471459569931833556061155088356678415049125342283370253465341504446686752555807426256545209245017175053460576751345126863510896620560174658040423032577352937556890022683061100963610507471000190209794917149228397298445046458478130651408493190022646683650629974318213242137899491260344360825261787084476198937667132274484869372939197799729324306467723288309421220378441411928083955859124618117924698756273213185763989746186327914531376582048171559704649777860391942628921518289109427277467297254922708429338835241915015942763108945615258416025631099297866196818455402413297615216707586513816386375596338681958521578742173451656178339247198620327965835862599929553110310497676805446443848694523415170711274740139008789626937455846378616137718491829521995336937152102927434445361305586487858635740262948869891464166365336412197406195941047417393565410841332358021732628231944935319335207671200538584202502437615922319897550570209963080840272243759521836993303826532373561242046470753678326459247256834664576828817694617500787084882943398395862050550874675501990805375670633802039768055818028637251510785768737568635984025125814285223173584911325019583910653034313495607843722356598688110167523983832862918599003828235659428679826107047716143791137259906199720166273475957762664589476521848289472001662913327405786412078993998897214429383508554620129768258238251828200363774567982823167384732597622965934130079698350844450860865363815697719805350358161383887158419426853664303717874930625803123686590893794205816581743177592072711956392211149984220047331174025027794305343660497412897997164546886165643731992757000134508683162772445804439973009441707269053583829917737917535353548921550630374187083032141668173063687669240505461898784459707532901208268887558685959856586918368374416499116460612455680511164583489260627888777065950699119112442260290973311500588995471532468058771265339199846028603058378655593805762608623225474272195851652777183837352115253339717813751689418265750918678671232371236407090219108217493984343767031992485981294329852914952875038029499395864634418557405242187398954866823017870640859471204150994436438711982779923489457517628653456500890165529062371447938199162379171777603708005847998428739786495852881662783459936478231471139879706754868627384781342233388681798208049649818337299588861761954597117159846250888491016134137837889570525156512167404612958374819157157279525984398722038920281618022568754456470972380513809446020300154268604307653517546091822324629383183797394323033239489159656698151826151904350917676234613874914249108752838571717732100788822666808890807159950166111233191144302334700730488742144371651329779755330206497635689648711199952172276448470441281690169874505888868896621689678362015571574559020429364849518792424434327526505997063106298885023588333508488187632218307702409263566452772875946095369116819338737315032222315964018434356527393746381229268161170369930396435823283105632224631077164942162335467273336084291963804361368817502146046257180454487085036382582692201444513882742026641819558798817309830262699858511070953524920961987592501131556450352157906145819673584853199223808246406721932425562890865702088704463489174980862467407049182353524080874750271499113085595311886733306293818569633931320623814376932646752761171159774897746569344887074199959598319578625846952872228348411633469999554977994497504929425552033200409405236326938499344592459992820954674122917347317766546337968573052277331681848557395352219770261321819470791761473715076477711714711941455696778218574858342816016522149803412627441950061041991201248678520343487646648248752930825427290528210187303056964738924044513663780885851494777025785191718261240625682876751719459806354982093654060793491725574035475258494265013363992859824166320570461659476423083615833893323267609487428134605660681553218868718650191294987521196629373056283589891089074925342113340730653243814442540193347549771172996719350824250316794822712264879981036677007197479762771265368963270431202091219175409602648330101566357683028659479763594640481977529151525857159512731877048109823145149011816822888552549945543746789586952427936304342395046621999573553025553534590239202839580203247385482253247452183161719514102667965029173173345620398164483485144436194690347158278404985600617660179865448699909560005028685872034181041143195445750937932952879923731363232178164471289197188254215569732936145549470425509216131330280847946274789766770419934865221353682138808866036413076110885044993645750431437132641066820044851553093933953355194215280873974559458971971185492875629749376642181212142866343144118694761979920677686158555729899676795290201294023373025801156678253602941146108549368814169527807309669550284886381626689841025484167762157326891541291550425567544679457435178334456371236931567547442334271004164017425635730525195057737227357011043393900197230935684097705479362129715272689639893865171331474225643778803456845356080646954302179814323674014365157522775495287743931565573995028636091017782495251560653104644840211510020984123431777817647504251949306059434695242776473145615567655455175474147282596469772598756711210155841861552223748573989632131265395060312195820534181415859162776776773037899914101843514256472571482936108977273099354993180928577578436329376460882695834935688440698837828775062582441382834612273426973496710059828653558759866890122511549915000804334659942715290941205550677269515387490635113602991723614345968697787695862249816099031723651794761442499352510918844112973792791696420690965272583649674107753832175778673408016614561153554476817794609331204534177491807408383433468761400318517646792675216587954211199499204894559127018895157249799999029940654779846126800048637481821569604039169752490979534753768231578577450314794743706216464424438923779249305861060902402831830694896488780379856149869139807803639325253609531156364770064796970601960953665467927523732397499128451254760475323338061192087700519306642611957520435324674647855617482505597770057323828352469713834657334026878643802449519214758227579437613296461181961547315340960215002070174610717658830820275784051165069420804274132451070928185159075158532476017552651514350841817979047510150526472425674551697051717707426954726856740190140328428437195661662261896544224585471363540694391301227898408321419858812345436173178902822938159988290537424277211574155524512208659317529758455367943937408344578208160520448396429330030155795917723000318285352697390702963659259679016221252352366069472263770532518678522436831647494421498322445602278806716542324306233958722009176779567703075726429606616545078275013911138975246739305529047037131342841516735655338809551305672186999566711397457141835171806848869113941729541769931963998275546687749750065486005463230354280163608719809711276711540887033464434583853186974785675153290359539546375399498278398318288146826296593014381141945525848489315682689994947524939765669017110412633687306229458954891281105189245217535597342926739406809981803919556539429177714788761084304083717343355398228738482150232010458235447703720102835317265548905351401344461769756115621695604146608650959747887227499151747186202885182676396789859879525318105419249722328841674600227715984960226155548607194115462906799981980303776968913922946616254447417876439239491004135898793234759922419046718155108653924599845476939463681517428377268975951903532518139453413429224018572823375647653056407798945876067743561223829627007586367362253097177926413649570135396255828797649747471328384413305542046416717542603198254429292645623019214335852424381887805472603989269991478627278801969239588832714849971641781418650004168559278293553344958322374447204884851904966095372772248069987305739013786356634387571463925867498510648523711972791715079059381529394884571630331155935661797442509593783901993432676890880171610646520582720863637751188070829026325001529447112683757824058815948285355577741986592865228749052098056974965050499253878885721461986286971429223578641518695365764978071980472119787213950464639946780721647128633072524996353163032375033567094806176058694655314727172330732155093930471046242599694277280254280380116214398250307627371880974266045693997560374118357821459234235880362689285193787996992500078192213442647415994439005953578813813340323063724570943745575226227958976382467774568475794778679976644620431262743593995081735634432159536232081884738420659082419899897840460473521628027840964207512336911549620309271119939800281549980165036255399023257997639013957620388717074924451410874848235710859407743572837348849179986417261703878367845436422075929875071186322235668694059232168330768369004630504111979997140851512585286824255484065879382704257801140842169245661334755588261727277646181718744841267673066092608275681629099838371487727967146645995832663266871094527717338950684781054175168146935092339028643260291968121783346993977008801667608774787107316840507832327397547875470330861793735014898250502264609441125310951866596992645117823295420299179275193564020862546917028647381918198295512258768937190339149830786493454267297967171513150227489137840161644910375898749494118316766705464147083221844447362558021229293782668100543415026403056451815638563638909893754572986703214718288498501145216946752620182873170615552636363940501125346751579663799519914945241128805823185759795812278264942587254872354963620817880867563867087335720435265252703930893194117509373728184895381159735925342097068404037310465099794816875021493813336993776953860382703087301904757560748254006546686944586658772745295850595568148927522363638526058539568532823936161110120974835046232130932428226520945975545945441783294172986731694993463242730323967298427846663192771661850740589243310215346619783484799298331652018417516968471004598188974065106144607250041477023396661755387517593409862191335120533119328569922057492612567373195322753560257419137180093345531249545446824552392545850100990315769967985527168244787558829577634456158630068766629925357373480778294672506253493873716144776736322383699259185369597518393982162692035261395260837141117573642137026344511063918158121258362382724549080353276902483290317741797162121971667785771137876170969173989096372411822263238159537258552371389985256745953586629583267771438876295507174237641993358504506416098084996184799735508371344196296654636111945134229674478741012851728374955939631237461393792980863220023351503250396259497448478876464575845691981554098870016254910306313470492315973117075459639117261444728932780663891650906572552710365608648459773710656181746623354181168837423481716708498884329675122908980500417546465984572906466604976612687008534280893102288751308658685154208421933229882152670509584571193971315688382694367789350338333397351760154762170509089768289829318355457769584722788863017547416229004677381433887084980404885777598684683124055917789986988830039830153604919108389600622956261735680334287975354368131692555179003798139932986744945448673289974498901851149831416840230336696167512492553959759268728711957939027224870421223712947514235455624965983418166176210125116466559463333038749058388433697618524374560862828506529266796375393035730407969304348827767652787718645651829046432228510204780969903681874172519865838753661887675430921512935653552659299059209936143918383311210713890367984580817554290808568232547488556613247711763356088348644735713586367613393591581936277767313147173117934793809343068596780374628819717005362944937313511219674783695207250717152340464314754670910541338169857544557140789315013189461434829231283400745464817704952536833850593107330053238551559855338134439755286950590197558542490016695397977294738480764395307051508363786767445364756230148736256214293842108661581999137425033274776345305099970960358517983556293545903794740688079282941870241412260937782415626387660709555469254557957251843727219166106401266877337810835823219850185540917959419311353061314475280553679905886422328003931504982127945529171657214182083171950169175944362155620622507572920276606215375861784080921979269215229836670656771524356343383303732570866287110160976112261237155647255294088834504694819407587861273606125482193711128665251247172690097772361394692731764343408331334243822561486298510323720882982243183018241604106067623952175403697209966714569389279835242625893617455766328781418676755848871571342473339737462853449745530047495506236771893571591597413941534886359131335618983902329583396558265655301564023248359614399771930023486652800147098402990197124635675249661009796037456964267623723038500888828442598708800826690494784253864718491244831732539853957792807844594240583149634354966945352046880677336430476922154628474116982095648696796943257599912794244388561725315285441460409295225729307804451110698701087058053605239129194470736585271015957021321725529301356438001468769477113364934578028668565258582176644884612347295181229367834429257385951290970651800439401832968371768760558751184869449196284781516708772919652425929166667525602445356061689830122594783917902463294653870442774685906743592792723981661619247882625724358376120001456476697312063598549477999748908373943543184595950318685890195063547335207166003850818394602070902829048656729937414311513906435852557268501287455414557454342437184377185815654727686846547573093795733398757361851860749405033763067982486908220466315038137267238069377151290812961927510780583070643677105219889190474904651878313438437043765022258372547079079894073559018428646819373117460199265223888998153637771712606920950445374399749217902421260431560270992882350214234588060609217973056650422464774510154857275470126129941105425198171228423498935131076322820771979642098449411640499639218119180126473726960969719692268421739526414725522432727083269178976958536907776760134550950147799153194632296220845540374149216387326265307143125964286872598240590577234232761278877060415116282317818726564842607285721727223461156828680270881184463820173669935472978814306596732421452079281441796972851874315213407285900932372778895901833356567532410294829535415293287820809729696817012711393896873327001745675735034647268622174351705169424234153337053326867831845353059248446652796092571591021158412027903488623008640552264071126313367216686021255462605664420313087950473859269262943641940115888978266317555285888317854897007888073611037989732308109461079929083240821275382595849892425236032766330786543892415623485383136412328220694592154499494690496734569737661769167981366384766767214625979187652478697103930388841752312566229958245176302069597029377999012424636922049465116833320919750621720027890835023389372550882321334696569049462100159788328524873447359203856528531383996814022648498058030949323156136181995007680566404532625836464657362117734158958324886686517198257624412661192092728339882744953218011707143809044071418091158233322045432451637267082065689778598950815211389880734782287261842231999330613201433633976090687918029222953681179451393357617133397520152568073588281943972444117996713051773544082010445182615840395744545601680667143351145847823327263918273782692954953081174385823564392328868683921711773432794050796597282126866248562015193560318690307596163085427798089424929058917287224683010749143649230362425231066917541234035146872429787933752743550895260159218788503238060183226542252421464598652107196503189689428485648328543591530384728399339647840835315562287759414077282551623293596363579588136963578117374466687648843554313979411667424101353824184759674959778022516252987955146620256817089822444699945150839334624751002420405328885572116201639188403866184680286560534597444698342182518772842258870311445763599054260884678441099256000928006779076244883119701714365514333942685650542513088942271731288273587677867163421686143638682698817535203678702268367262827735552379911111272654711856423457491862198448112396854314869956413580917388588953243158152802252297707215438150640125317269914908724566352433841866759631953286838883161812284888551364333004165670758273469749744125192464147826446727230240527721483807132127445778789370575052324799908302753706246455899118575106874598056741955112352436338615474554051919990575561349551712804304835301178615901646875948561452385844218324836239875042050979017658668460305490906477899346113360858877920625790779292644723006567459480838031285093107172725150889330211932176569539005958742293997712714690244781897396554636566143141334343653050869385658896277649238896160780133769076391623535703959066976954915759372444160118969437900890711265246143825225359439767422399351828706345067543857393489401050968814507721128176794762961057498337401477748704916598059591358356066708901039341206465095082073548695218933238001014263766624583713707791089736797878056611262535622194554272805747072094195399276117173923946148914182177313648206074159366589386873969772975946053166903276582275994350777177876210148508245448862520026288658280802588227965546853447082263788344481258491644590554780761038456141035593881153733442563439921397292413903173250672845565882535364513368378732829538957278188726045720264264857431303231413057491353672151542684103252288981077940332548003414347882789088946649542319677553228537296446934429411457210865412974988297814641094279628154803417183865325446748771172387006528161615155966256837592263478791374879953187674595983530656168321058684270303115692464988725254167379837943901397468096128196280406751327304755874857156260480665839971251332873464454034835143751907867551373256956477335409528016669396401974158339932025755966499374756414353358968821765802337369029445259733145288140155149315151321421155354163865766730899113686073369689926505784023449664114982645402545282796588146248405382242766551104876755856713519657928236403372279578789403979692625878593722936459113358779612836636689963858274372808508672126868212676185073721147740954048779353669087730217058967629734153107248280098142949522093109144054248513987798428797269122397453410343585759857719419510727473602156238033959794313135553425808161348832002911579917842762404990006282410017273205034693789926937564532966027683782579344885052826475149346419885722052905679662106079517489723971338487460533735195963795579570674832601724489476567920692424333809521629854957333939751542468425646012776824651358262001595768226106658708228408826359689332728914629957569916752210257035744173799130083918998831236926129593949815873111749324688777972032359885180107289712429598882743888062671038684417915767906074404359454617491292109737145181282009506702630413727743288504983097444114198643838368582751508273567084075414816132721274582282507493851388209065094930363794718259164535592388554423136823503088598757986713991432003535184460585569503438134288964962283204722904306145018938627322490498331910582164313531842727114182708646500814139865877419877889535302427336763610254162765542542791097766119529610949915201325459388910693086782391535207802184672641593351735857055723402119709953201844087348641945895081522010214800988341742208906455583088173424590924385725601522904323573988839606604159725248746473647555716143378650016424665056055724753917206766322443275646632181792137922949191731218128937048821754050726322249932162111813700825091631631807491493490405956627995969888733158183847488010547762781340505807926629560044565765464107825309328539598023810356839946084054796365321790905084770414473063351941575783184191866976755058457912684184137856003735963050486359665316869786395507231936588672496162508805287061412236887605713983981326947812408030147828219639160037873939410536127936985355684195661127663055656372881896971975840709443926460411580613678228343615774653666606310435509743289558170173700241331295645917492888038451977816528707076234242502775106566190533571762380231884387041401809092809057479923863476422097274497394294829249225356512493194612302238916674742365446089522937329974518295373652886475734103669951656884097849444036477151867996487221540462053103194080679694820450525891140769153548770893838486545791125769552670996030328745350665764489496736677189795925801848111608698704543681741232848651532062751833574827164452095811070628777018819636490688558722875062781282369714786723490523875771020726823361312729515290832579836021524417227591887549163329839417708290753161634360675481581752584220649213521795031600366684936448316973493345831324737622325672686478739106088753073784907623286830961282628027025924691188381985680251935924568126264401636567772663104774638027708247891322948935340329990178137474282262535053999658572891451379938620926631104124158191859234314427311248473822714158872898601128435053573610561783645908055992917015851659888584529522825524522353897696970759628793032414128617266863985766760035039386378131004082414474365186649314386137171019301693777942764002607548454975918085419611312671500434192511299705854856186692712850517650581455691586108342940451845145977778956403388318787132431031844589685564704970818635514375004578904598538530578785086841597313434977101098079040219224017002898812069473327593474419871788128954437677023516462917361210936845580996561842340980564620383714757496372577111924529959270299841901840596847501040678466388326141516192267298158075571074285317873407747384168551124798817361398614479356719855672492944527515259392370299110338229983479379784440388201790137030974888300089609313820136992353430664867795600668605500731295654976032640705306061768352232138350712459184692534564630300586876043304090235194175511709179757822141271486436569748283890874094936200638739437253471105773971164018592064381292988173698875424260889210848822135728305602986612773695708166920814963037777575724896875271227735833899377494748703013766077760390878585102485649150390673199871515367866516067753589453049593285412373961264235729111022766704770805762509488756219811431085860099435684625158507689372867326182610366123585106373856748595282633040376611251991923811010052192813680929533549925145714865382871280528057466257096375623992776360189725735251236812591356674623405642573216034556217192536382858639345684812022781351852238793323784950447462073333077538466312806799582283496408847959941045219504932022362536569160204714703472665237262360381259465591712572933208748713795332518803773637568450938885179142882730296179225303421829584877786972877287434388839320233932762148175625745184239517450091900771971730031052079095130953650682916862727391230350070675290497265485899060136654158329188772792845053320223135853689394798765675262975679156388517543556295062281781502720474810514947477928715812108910408597979873939924695914320842662879430965537716609353818560089117242944738193235610520515880319940910387187046823494679579876059256414115198615172435226092612261427989712410648993471189334314661286275367552458659349048765156825982106903211772529332133581525143662234184186517711706151155018786087051234146381452337921161858228661799513241318317918276293814059113784611433346008921414876306767166430436592238255985944493712945671262462786772989591452994116606567725635105339737499600421025276767863365645929145558279277773146225726337633712125957949659177087917076755397805355151967088166527217567393190802512034445021774703780997842833941589354171307386195504599748755713238855371467670378916524977554215483336898455973550619816746977221306519720321219162857475939848843874247142091219550678846851735292281494728754874354417542230736435587570495663762033476402968000763847482114576586894242151532411441460428340007959523851698169509940020680879897502889556364921427337829145917113240867769993272273037252450557293135070409997686722315956477382012264667655816851242953156264709189141795539017589321877313188858228631735963317135355378205339397485155040908018957476603998249841411128167542534982193942827019766434461798170290518376057479718335193286548740429167717697797482057176794296171598023577298923495361346052389888951994431486412823338266841061074775729504327505772471121238969656095428497487707286232369672641564584543803800684107712362690101475688744491153405258686080626119741778742820148795939652353469122293978471173241917049380106201374352515415288746619572124796405162921261611688089026705905105181114612952918623013479514896456517813975494385068629326452592246315659945406453198899308458950115598144526493675098314888466016376763133881626399727765593696245635715520165561646043500375311977940417177933171321798343899652458789030061754815236485199728572607893320591554440129433178113638550492550341999835140489776270222623102485018512897917403584496915737701902972514108486122573820774983477828455385808771731453003999458342091211483927975726021756434399552142543013056799967360860117437942185388348205239871671603227539345137656261667651580876747710440048994824252236248672580759802596745274659009571266185841292556950739129095792250320567498575511404176356417437559748139142781269355633721253636225642557762839134172979701912190748787573699499989168588351780191462171506742418953877420416176498154567245009803697716592567929226620632734703309018945029578088655418236702253538852762255374325633821188527946640362788697631121760436265108293295577644830392070724796143804650504425137862814080847976080438788215687242888632866412821416226381102740741589759623929344382534714210087595886449631754930922822989826408066885627523480047571005858507540617050721196878710962527300910021734742197225959372513650780290839545576743518786767494361465408210620840419830666076752673702448637207429500522306583564575811802835519815745623817475296249100291972767365475140997825629888373453743815537322525200379673505887289655918340878252580358041444276409491436839769527498195446875779797450077684914985812708137863445559508692594248190219652602211994924701901925516714302729567412064108906375555570742579367026234654217428947682082345499310190959166783848442216248721171928918383865111619864891461038447440513862563137881432665939775214669686422803577336090745949987394313404222807011124026932445605881295144043476084351491766910121374036468862704198263994269568256141659041864811138954288492586644506121063702300980754232089412126217888155513689669220086275722964146407396139744433638689653845465270266490098469769959624272471776291121379490306180496650632965584483039835533496903404087453027182789466532445013799632807114928369590917276245783994485495940658886147892246415398306946931607239762322593141353925951712916845346359396723768425434119595885663156789358577626063056399197624234937929998901195189222171423264828674753938423392233927294046222638085083593935746644882495338673200959907214102088131371323026812156985814131219266395248223122849101332349116899320040713655780922695806930376824971131533653653106589476355849496930854263312543868181578819407493288253652719072013350955957216943247087250715755396215729872766632192561737331359551703018218881098089757809710796262121998949203783034107967465126579121808333100271559609591465312244762522018252730669554584564239096809483822940459546883560412004154910126005088128966733086329794924596505857279737036131479277199381874637659658745621359864449095600988135615917623393996976423542118303855552114353837825630680310632723378037295224422154232680977678105142044435311791796480115547119669109381507181153140710482485069373116654297871965524558347931412482748546713791398968445770081525689036859974931196438464998531972142281849085783461006787560177222836845530616584142739132694857171482909668951569087352054845871272684293577227778460574359094406465271123311775461328128247993982636892523693990260217666506918583548520956813996193064645893937089927522817968946137121315637767593207746047244190434694151940434094821094293576241310705953515631676968760194840688870182260141073485446645441332460894239744676580488664119650618908472223578056126073982444678865147447834394278642576086989883557775738642163356043334616781874251887351999781268489299238256927936709047678122292177349087170566162661697431475367755705355423906859619972974638993313850726359888437279014654149596981791360893179943386163772440343486256361121406901136188685338210387323085671628243651240174519427224478146000837876981813931484080816303581528154611623844244111515372629485208336902377974337488115457638708185347817627999578739547213771658832880056851032332699315211061469072065608311502932530799568360183650422232619285609654323149450584086739766074077236602681181623038449762680837239741729211366328137340231085770469488203255695027058245865190707772284080202352518695331724311988810278512160389398508794129253626244641182547238895707583763599414617147147896480323070593880375614128318541388787396633640479529562186308770180104075455466319439780611878457694785705389516158762116815563501804949103595215506789449178291397738371822683884626461592609788642389592745180101523437083372419252164061607802192060367318989594447034278773232214803249539344326099217922808424971747880930653269839623882206064336675421139574947201381943745197682082487475537260853353398087847576872177266406912420255218319327575115985971005773182324550356473078442405565496448822474131100483470579759875924647921322580730586885542974411767523601459170004768914498498387050862248079035641533197930053931334225735864362150768276752967389151392605414634662840502887731287266498437347431336129419803996761765177488682160337576136402429288971060292384531698846247192287691183618679065039345344886635338779798807617997847850107484991426718583718540385159636474964831378534876785361488603692914478977653605974854990413536260832166155959591217209273044225539810553180892909700365425123261786044327279463425472858200225646324132757918071762678147557045002148412740979213381288054892891981034051488780713175276307624927253206549066324231268318915582948254330468021693344791287384903332422817433310187550945582679015922166781142845324905928054929902104106289832745636364792912869445964447113873687733567010498284856723653527763071402389995633731444015557533012617060653743073815814131941003623579031318725310784069870807457152197776728321036197646531177963892226402683815808428922699994477353033422946492102693584754305103149578616620796321608874984466896534601560597322149938127937938113473516642974885167766053236905010014389236887178368803235161281795936499435872477673827212754760915617648546831649381028961306294305218461134668481720565607626440287080831378756272573592014519187717386606939408036981685663210966719458673419901196507800959639693796537299537343747202549031888327027751406249804024495253089049549737827609029036293701654294449296189869514186728501950652771701345192026757410731252020873206066619513750646230893899878183830244968805448278828596646903072106952866567289639988602284245459804359578767163212727586614864133685917983361972325215450498732436581795476629573063943556566909998957649441406244110144446030958835334080653330605150117748749061782147483098147575212929304078824319801840485325220818999353491894770192782290932078737118393190350241621992888666766237860196690931724487268242721316275219434998551378174069492929116402853487515085077044078927381859601131376721106071502934697336277439327962712726226818196889587589447121673426051523204651385048290392227633648563281157141596689992542957657641085079273214755754322424884382048139385368644693538937718790123950795147907767988965616501543307142399274573705216074197503643930791896783359197973158954675342548249960681775679964258838268732928486728642557178277671435222418066911905370201305643412208864346324875497672278580441187320294770676702325560997225673925387447186378306598107004712419356374464262539987942541283864175442641962729428484151364393315400334451705504032703552622652523357795316052467188478353670239248868134964658633110311899930858698396966830790021111996140873422484392567071798597396632458822891843075422493588276536045970913978572416065211126680656561135516616604591909304393443341252169421207443232175554519095660377263507488709636900215567645110102835204076929119221598435274086942196473910229899486505063812294863575880038732218567850640448679356384249467661884164481258700740994601472881173958275777353541274291666741184592477095564630351010616742715894048605003784425583866526211712307115201415862185144537245511620315956712725774780633632857143279724578259952747987225521724631578772072032639546912226763957943894568831731294445557702518803481393735611690152731746013605136847451415954216145001657464113767745646323194573121942960251993473518801777690918427741557822118677632352405076496753761553602901795009496502125407334435896413217556366191733540461420536368041868306980487741784851192102715497113528379346142635524818556733739315479123074286973780476791531447891817114251950925194581321945661045406415418349511451198974397298584427038135228837424324790579762268360506792652496616817830241694373794528235505583558516262583605252396647256535520213141244025851705575943353667986332252977578507560031455236133660555736468692563662738034841482159813035063007269482160457264131505674743683421632835223282841517212966641797337311376154905953533623400903231678101657518036078363944497115959118076118580264878076178827913633718209525736196669042766781683658253936894378988283293333892245697025552335190630259423513997794141117227472559048900643895736591263417663588771392620971725505931984969994193609281777238976515458648771045071549215867606376918317921586229924589775169622866800007831806494728529985392695630109740701718856281930129298444290101743323915906223490930475653