442157493085395158652560578174901298617041574008294273926124121139091264448948356354327963413076474678409806744699514464318620299823780235730448976876777614450924206927097058978933190356412256273043239534099835446483282812520249279923814781239894580665031078647959893085999702992556114203916241832258299840578211062428336747522890258537184353130675136846983447979409372537133315354242516854838592981424732376185153990929428252296362749520524586620346313065695688801624376182966024435915587239268565389947988834468786743758853095204260925664040829102802156662625707643454522856630598585136630751850879239470103223686745865816169216177814415296687326811867686592588485671807572864756378123562846973497057339418940693237338250766913333628242377184734659131648402049407687516090806148123384220890009872488670977789656525097032306925150429336815226177900192975778654617398714016517677983577377271295265919903035108057777511683229388190981933749366512226685410196801167370757457762928634922267742038630546452708253544215115851311101359929936373469511564956679191821685517811731014269958107171934188154447105236451073627554922755925513465803614910464173483342969471671928187162156122366729786870475456526781869024908321100343669862439189397835254192717977530396979834692710221571981777569837118849472611617212270744037832254420744327789394557663693732162428154079474189317263039750391176886892287860967237883650269952930273854758257955225329968434322982424897002677514058892958231012607122677414827099726886924244443210876231859932169612059165522133853546202671303715893642615974820883046141730147601568637091298563728676846648716060236828033444258311988723647280268963121016444081023387739271984105136920439743545152442913425613846675776072393432537164084381284786358964994431349182971939992664975346029652621093847302205449124251647869458003107454964126944006192850958371407357261253295694107746918395441787892896053026580251787878445299754665246708551917936834321576679694769482837715994803873827388274838488588785353620873518581810769042698136806657119044477363736273534357873195112322302874275371016835321691794672793477555931146105122776199646086151724943596757272644535393735636737158476437275645417387886758584217381602097612018231921110418907266192627298256307647384927915224272346187816262736635183943421397561151142756602680845460607849358985937980626480759417118193865764159480862647457105752274568266198812168575702748638412318174037135845551155503993412222477802595570342572601540116706181731614636533233511179170042463341960951232532335628333435879320308906358372857997920169521915673191896795878713953807742149982758613100515949666887251303317441735225912749052277356952427793851921981839244013283967759558270623224854273245158778126831336941716984586489431642835246146728829056443217854512985544343986351779663431683513973355664574495671091545194923014849504801860705275857057868453259994002573579647221604978185299077684452742326747594841899968178562505526952737557527625232396401463481921605726403282519477720573877537925670489483814943394440815415259844436418627431758465262460939619558615543431596451858324921772870008738137155306090802389756972632115796535556991325315504003545012357161921468674081500785015647698437757765293502715947364421912569287171886486665987864179306820170225624690781666367905748074374639120257899933493981309811413715087331627914047727936137646382945550822893289897289542297907622893773632911111830708211874672347672247359177837625787721953668591477262939109398049728756576674307132124196354234449327819697486885107157356571381263804710431607311212507091026561122082492839191544420011136405761059713270921685947802395186869667172205716556077905243346447554081565029398213561113952365224337307352120958535820623799410543161418490298091378703833589155537313796827094685134848496211925713521998358045954392728255503184398848849633545887508479915299357025821355567856228473459794624424898944548666287243731288285194527869131801193826570623767248986521464638375390461705751593772829949881630511261579360583672914514155948303130638638917320635287713359681067974130316820979307743649456174449290838876012062197681052341806642045727340400788991209605663297367472880041989858941987322154613325582207580753751911639886669378592458821728322839039171784702790396122530666099124955104570722298298769695447251573028390558462352990456978794338382516540685652779864474876164293626340833998457590520540334435305276493504712101119202090564438344351286192566303253718569906952767995443949832362404187013886997974720878652955338585140621070127241767097365542327338339011383526994165353223591329369027206937872446133866963593174175978315439871864116298815324127566146096340591385595380392254813629747566910430716185431746139321902875404235577795508696948790845539702592717662599306843881681069263797237511544056154024459095547481502843251397143802075579917757791122777245257133245819151626204398682328720745362126275506220162772224028446368181426897918087261750567972673420934507527554432495430699288384930650969427999581988123009894032766568874652693954102028593958993225545573591741255412155852242751363510967819996316813818822329039309492259482286836708663998877613041473632402362192022687445026527846645994977140566478935282923085479008763216967575630698711894114583832581469096467498134304662535553162563371361931493613928267791308459392638704855156418733281234794825143828618591914838978346823559936251602200356310462892549377969881424134219799251969346966299060091236702726889486198853539239232680077145333830673993194279960744904955434227613589374777876919124669852031433969052766147521459151288582426251328836548524236082006679167814847269718930995610851615752826687688242351610122614906049417241629862537162210832869635324414092708530075999199590368419502112915625904707937220328679634591142103632467928673842118793439