PREME/G/MU425071

0220552148725716111644042528475575530077389609476586365040779562105355933901361987310024410773443048624149922196216447255488623674058063725797655984322199980768280856428521647569633747857192862865472275486556083319690199704630718909616679945588005285885768894820183369493243444261738465364130653890723904294021971015508889052860530333307639844049274379046033809339113575037856660355708967224376801200330597182361964133668078099053600505119698552403365458930081561606615074870743915362282953904165971856418653513555102264108481418835781173041532299086379710965498932182705787540105893596369211012807501925438253205504425474030749981285456375301404040830834443821629924885048083474840487666509785812780555106091091385283149260047139775785341320646717218815124346775780784324877198346403434481780565240713742050786061279707334445498120654983224375181077286208220109721679842634120545769599197133377954943088647628207478115700976194204293897082917418405441317760305183492163484306094628115784886180428535232405804361200642358817082840028168565793766808937309126626282568010249884289315574079913366532626406519672614790169561759288873272115437719200337026714911894177134924008589086929470545227256987124398532696011957319461803210661339143026108250671353552253950254544201390584055138175280511646639800364372361632972025203382952226205556482205857235645415444163546427070748082699411317586773849603546270634551301076080932140754852041570344208969640358119472673866884857179564713232533432488853576885607975388337494623211923606352446609631797389956476939601295020271877848661939563843763835586089955904102487091480941255994664818995566717644922412487960163184041063426686576110286326295794342276337370871060626879910550084846207318063674650500165171884171720578168912089765493912763033997890560304301920863971448143116767524756036747740183509629115243946422364049091420287026503239446600890303714613323953061523363402564301935568537308377718412359283550811275746828454616339096506757618767346105012138833788383599337615003374171734882935175263146323521858458681458201038782086312146038533888354550686847020126161466135260782660785631048886409827477218547371480179932804171302024887965803665181228164455640852538534770257104163419632440708138909058697268229477091939360266623384599954886679479550367572328616685231283592530104023307629205906008593195483119998416875514502793758104729389546852834600858267502971318292747114560338274483358463346933101543069344946141100048079784070203056264143100949926149221735100087031693919122509286618992232849099502669904702245941962771814379024632282781551914482733100781228907819088024675646743899954417753341522386340307214887086108438894138468918702466393625355908400859589773912466377462413112148817232606955743644993164754010993440960688644874957636421103274237392233404569693697615185240422949398235060688309286476148521438184503203915773101543460982891739861376704124609489173185097977058961864012539808864666673942643950511352946226375452772824052426837745150295210214689881042709069212029812591617499758086120251158194161842185390548331862386566368776802417482782282484899299228425036298910158827487456982183839817402810667488447148725617385781283881505716100797506797281221793967943718424346975630110080721417318961337497874965598385770137639517462344644125507805250784444258364745443116429420694228508532353476223829641154898895255599106943107092708378026338613725669297879544077548330033979028555652935752434716911895712104669505723701562712641740155146690670111757406888929639946907154810829242970574456813650930127683188285075972157492163909385782766653512710887485042547883171595405174481352301410335782268996330153833936785680911191513308540773024849302644824107973411408560612671271950112831921130373117268612731591649235996984257859470455988346335366155214193127957557333757882645457266201908243052778570195625522938359917519712866637913370927530079881270037624101982859735288329153590205595245393600383235104670058296345116436603619485401400431360317727870639402139773247017941372475911832003303887379761069680286999931025641234788400786759521457755821876732644302017688257453254130893920236193480744719077788507171536308674003332221324671452835133108826037155751843581297724397726953514296346037888738954941899190040701104151942736559652684243877938313327613050385230797725753094956890974013005917297905392332781242130128211389446556456308332102393382144828713187554655456921357049817113492560841408629676048728101384526990149806522701905572464310337553475569893923091174678510343273010331377332194837910484898546843324381059403664430320080577931169096952323427981998157600395570065559579041125740227818456377295941611994671779625437976678057473137051003293024096903088465465531061256475915046837131098353370086298485950410398161196896410670826598663731096658425671551577819201384580822973102441846597020567826292024781586963140064873799151775102342466882251218078479291777440671236580578239723563311250469001791982973644547366243839753914470757750962416402741768042878999316548637216161680049939742552657113441338091465817114816521899943061657610941940131296258575821257206589037124076927662394310802182348283691219719769083432225734829480035283327509592504276272084523812984605133160628131384482607621873609594181519356884165120320869213180906291644877013686269846973651982474691449861264817935953614625961943428696780198138752620522072126026393383345637228679228560282160322855806291481890911441505757396383268428584628903387637264921094777859854702215292083602110062959230920160790861077302121630569681996911217482844942393377285611036744075750836095578679985097926367573921199766384808977238871152741240828126465684146532287632823084578369383729511311830564861368648610099972651373070637613349843367217355867365981091916502681547086341530249925237406490738068584020718161336719997484413894240642451998543217027346992255488727847794057719288807506905220715432729019727410622901534958947194018690886244422911511070826565376707594842503714838174124867870775196608966930342694119166208460488674153341519580768607686776503865656229475033660218820960251811522923328580312695896108374695839356739473610467075296907915555695449947942476350997149380063227252800995358261621229784156848962259976056642056225369695971688011677338376513409951412725728485808630364594386887097478595672674958412711556394344017236916323935233512636233353740628691316496009299408596363094348360176080410223213703737587310617063493583038624085817509980842382242736021159002064164260867623067838954871991565821732833773519527515485168531670503274698493010963371338869964124317205143626568936103060070161986944672730691306448593520859055353209914184064502797150600643021309543452362755508404383449092940274014592617694485675266811891847654481718271906174976780981203527075512027839463441302210242253837768575999568058920924061392995914256237531427643215899641156788462612300620547932756812870617104377874578944535083102769544493827259302592188263857163461778285770537175301602140520473151564969777894973212529888442876693461164473806629355477985443178921686797968528203864095654106624499886549192448188430440693050045630218413080627512297514100750768763479707751698281288957568689174052402369195793231472415305093856457805752437028957721267687771001715994532349023946707146854852638297911980383886240938091245667545858025268142002074512008240133107487033541245877021592580220643489701080676938744346573991127021783979724674248078441843212398016786295720619274006571927001767534479134533934468797338020420795630363042907037813622306179607825820077161403007412559626695767398826376281648004304621055376206804537779161655015779041701029912241728097891001722027134319442791521093699089443816000659873805252936016935664640700613563351784644609935641442669902767423717869759523356329056870844600724804044419317052382240184931767507142968130862038716509689600436685466952692949777942833122818387476251593446115489457710100119295377633156619473143674504081114301905896276525215403708447528514744368374971745480113902634072308713014516345555655806379227475929965918729068228571247416026305377623923624248410156014955002644551652645529693871508734541710038852312884274710984868902489238792003396742045228580867080397439648906451784961967156918629455245683312837706409180489687013640278243246421524384060767826071416164567909741232712034321403074842330209930061466427405188783285103224054054608093049981806729566013437072297900850431921797794186263772439413952560602320795580546034041943962610831863297860418110747656970789667189265771616684364265880467784827682344763021262380512903597864599864025188465402446930672299211700887032447041735726600433962294024102558552344453068949934767486127943319816511624073795907352505275003659182390079719583780007504065877613152645474839433147074196106269294358073899514118042783713577602716634077873851840016481127234500285796278524731187237188627002253604840599296341067334008497418799039272500646772128285267395273585640728002530299869801166620540977337498575063345967242250076374178693895890151996448771530639325780851690492459762241640263619732439243501217542297461328331803277507327356678863966830408698837040802638208050375232492523669272422102426929187769171606533990478492534977975508051511456951244035696597637104190185289566448085298623666928176025708259732778712823832163551168191631448006162474608422243374547040111461537597145696901185917557581662985200710260520702073062655377555355667563714762557194920839217650539951151096455781184691565999537733901839337666358127724179019819000461611831618537860763442123546916388662718393562846604631229375472163302546472893173439191029392574222265559110915251952733434518451245837023972900116707491572490064739267333024613708271952388216774002621059301483216786473628839629273356158445687778586317958904553274298625811465556533196458443174141828823976497801656845054739034172293945097278295630964568981021698581626683125437911124664499124691058489305029968838488846126318225209037703681550488625048041443469280747819349693077184419240435344847257307154445380075399676957708744941040992649900242925509743829177302553953451056424292517125516598214685845268420300566316673808260674067674302750024477471482181686150541982436989930829971732607318036200815228880237649105060208242661013035593989317291745050982297138280275760069687550494112917206752048563603760335693104904331557986203639855086231173179557840454311057638588883299528671919856165051573644795424204058713174037427022634066384322594605955532016482808451114761453472787164417496236822888867340417737945407585326059786874713023518764505784953069809726305409172465977415953696647645849172734441258315700700816864869574871233389291591715461582194743934721138514915582275496108094777233581624789317265431959265875588409870529182685473344341079311823108827138135269263455533169905606955637429322912637587723256598464236215436234957420222896354366784414095172002825877506083945733584159446029394733309543788295516966583633887482864569830154090821427014776772982766707895385983184687546757650314378844215253917876308146431584808858637953061197547356368821183974747340570865917253212600766646629778466065615810550264688684909455007325307256907722101495282631223688099487648854107279252833225753301536096252824057695226153598750736496042964630439087901513355299266533836797606768324476860528507826604874253007275949260349858763619549275834697792167418201436726781731848940976332906401063853752581217403065700231247133873409511184866242359967644351189410394578208731871846189839670664216945816558553744532435590976438235048094025733670574852192915449611853404188527599469515386100637872058203506338035364446847279642257133071916059633470599217423212277237043861080321009994515551907478679119460451468450184872078463823783018918079371921121896625920674562943736687825697854824095021888819447541679659292938014570429760647011242380716845622117325971438946077541597319111192989138759635425118573639278266670206266879597604394860654685000726022292370573320708465195633911566172605752756488160291079862374851807650967705369503857169722984648334593616685431306870732959639200429497539163050593287112030114283925281358186135542948125224431698775861884549358412172806806341198548200406446245445461139599745433309409317236021165421823559285839045063805960444256708902711801321045274914485717026267831942710509862285820583467118345973415363926796047816109821332056881566862138828358311678047787900141510763994564995214570262605127773608636691617190559403784172673398855087039584096793643027834743845588966256744649774425355365154938774602758076222388932495069152866206792275293938572055015308660439395693550597034880749175872361295118645717001185057007245213174124061075466502905616911932722732288702574123561485358309769698101472242124790720800323612411884573944267483617935649861102210240258104911429372035377679030181130795399339506195728908388501496363012067545082922543176142990754305336152850247360179561940085579378098313031545692022094899644820726445416903969999604054740136268289204791646893498930250694397352349002716049190077849384937927155506344665899342442865138130312147346466734211781303359971231096460033714593431762149541788656903653066464860223220589079837512232620495017751085201647268661568053804681072430608779021095496223369731605313539539782793764530295119237972158770268667513224407467710002080453345354591615589066129870975690839989384819828505776116356350282230415547099558053086455973889151038109114981866155501372461319562077333960314841889828543694540097185741891297873965143535811255393097700075248955520414129909937552022181380613581912484172112368010141427229204260442077715939268827202177829646957915443780925815832725849797508608334504518232954992552009272986042492385651546877643750572162488855014444955453419461810313012332889117376073784905010830739379041434719840736208764505052601334510903618626087473070923413660609254299354207568465154854982070884617820762898534648693684966029694049984164134680909100891471183029281895921322894123459231386791183221637525490689984147138157726522047749422759136823834154813683429116208350361986590975484627227614549448676707409583203065357880420345770484983446882168024215285658448905970207514223047457608681687124132946427925814645111022173846474867615339889212526682616829268206243593977862889754341836283513523671302000188162638362468496772702799642780079322158227739943962522183272065310497119070510303365321637107146412875535603925286813255311573952938345349402620899771160712532087105357198303904608844438429498985196652492564514977782605949530103332162819489215778763163203327521766392238686292375790738803737710019947025305833967483242701580971552912242142067154552122141574329111469699601112525046012100752266166017499032020309669923946044683361094105276715734364101994768586022871446967233312187846897508579190387757362105268657417664136910063237130033975773525216157547561362783411584939973744967381555882106365318461710224929666055546272960428538607356121934943978659667804163856819314039632857530048670267299959695630517692079400008173755341884909982043828932657446240137223936180722958118241016088310120017840403643845932299293483218529689365513661732043083629616761229901338819725377211004843736611339884626807894171182604097816469584785523963504235553160293390416765284451950864859903007897957110743004648863360009711651918122000495375020067898356974151321888241040374404324804412764082492338969355834414345210920677218332070938551979426415804088330104482627432310163516201107697125579971254682932068927160803116060239218483991941127699915378170527673301701582005156607242142650846953143570784169406734757924331327270852302831786808854970337877440992125163353167920717440269635260797773204453033020839135459597324704561430528221606072335308480567592010043291699192374155894364331004773513944481968728800992468794266226154839189647244524336419799153717075251961507583386191137229787599979876347333578027956691364805095316451823137329142841581458490346277307375864127987727775254342334567982028671073664845929448622418502404192055716165989533537849399425264059295532073650320064603581106812290129381263949273025025471767198050794309515468674384506545080931286875387917475240392915642003350661911763843935296830246782574584915725056661086344998203547369734505548124665407023244497954358503645082789775939536692959618969616411249107810142895210587113197345901377566418464880669364826872616472968776730720103103134619838704590795615192341923757504001140500469402282549523092294793042737783350334434536758946180365256893916690429936620219208297565604245233471455098717834739496166236585700453013762320239678723242689380594605381314071465569074207970046969932153402525603959960254687629636435645679721424885391818354351276489113302245002777199000740050634368503488351488675336612485152016344032570870502785096942306218434433637869118432806472240252906501628751308770585107624924226134716879462890496417371678910923247759109838045120558616293600977087862275910014118828854145564962608526749217781172721325744760829671725085101130724485356417875889778393272459096344646690586108937867280287160609554780452656726052094491577132158717957152825356166936578804302485027486958992760796896623202947054535058975586628028751800710593504926856677771018438547082663137920087114926799922577741203020099907608663321219877949172284696133773265312120992900176021338091355906082686822598593887180759695929805359221415112091717866282496528922823243531449361775754785048856882638155891894721824621339364931385659806179074358696424626161921762717275340716882095464509211694564843667341989516161903485011686852611477612046073675403790515699526980155313286563288395472781336125329067354415855211104598278211683310859359336730525759357829098601650410822968399910298508185455020535719920002907215615009185527828051496802032121990270748090098499687951144195434087580620705679460335438682315601678324515581289023362347118191630379055328450200584535084234568868828486559730229980464041485434139977306572040146940352033162724302486382557761063537356593188296885050221237195012889417622573846107814513561181454456953519198663576616661666043266095081997099998364950983240238345524893299255596760223135717895137104998518038914689565409799287066771809373574672909854161455874987631906339637218017186158227212903501496273598810906145037781026003255786503357220908703266590195347276460389650492799159619482161276153396350082590223790155557117989434722053209215264382632069718539524490932713927152870304129816996411767793512176161710520736337862866114449641136952959207269582144435732000541513208470827242101608310770032605482506390939288431564391458299082047706605608812850546597834709044629765832792767026450515793920313450512046758200023143011537747646109543502164586033247238100834686474820645971643277553716404044910008255024565614450073411467868623936328651143128482610034380254126691945089374573287651251132580803822570755515775324610200849083736252410766292169379610095259054432987845843980673237987105698151104249861282641568903084713607319011713630556678710585149831400835377982514547666050860512835354357641793748230806219639291485079105155588403525062066792715507945776687331767754577647157696517476138525450574102566584663252834915172892464032879444805954706024209397028764483748027010892639735364640463114569090883779090585993571399118362975622955209174746352803210376052769240671407759099129919341658306056343933611699436438516766791890645907835303916817764239828993174416728187628969195502534461012129506309677161681641345784643741675855603287404163057493191883231286469200964348872517792447307839110727230590696791558089139374913887150846990029403423204108956971799206022055185898682435032440130055689939095503394417045763593833818898933979144471224357853149477103054069674037531939317209718690892482975805344995702694658976355148310367341909716732118816298314296728531595407314225797574605475951217730760770766687398965994734154377815360951536373677647746173994053596543641049065952656765900683946353444548935293917382846346080862635364223019718397082868151539604408537457697008164957227047210180887789327051677054874994579010034387470884405988865403862157278912850611451646391097421010477020549827109309965704371773608921639306785986447552850186871497754553791112166869413312589008354784157444500004247507526784110281208687825253244216167346191078487941063750006967066815763111491102439189863780433337471785579565517393050802806858211365512592283235095688685708235178954567202972171893273360077776228771726759229207295352766125312477730771096481945678601971410728058405709096098421930456184020812799186216011137442718004354372414814807150929777161490641958931052877100834780314787660005170552210805528055653669364352149259553675798982337325209258032131495648469322300361649541935520260235041797106139344746449909757582119884585056900244228376573320454233281364347913632138321910269375202722837088582607642224007380121869835424316761947790064456114908930358622728136891785097242976038626012741938419473532778791100226455989833414963153091137361895033190259305831406927151468703866256094527894594409891751708950640453234574020981942526056728275387694953652316393486665324278876411776737586852282687400725986797954344351026308925790980191541975850115901486400758571833203044677576908901831230028362483753199446854209671633724743438613994866108265124188859003212533482602795112724097640083560912551204453774886460364752488514177583198602216224790290262868575153053756876582930060563933057089392206563058181195575004393467921866327352278561499973562181017012285936505229950727023386553396236086661730509464427284023515859148961687439338900879460021824205904915825372145335859830970441243129068521640936902841706134898887626411771848269907395533819134809275009179642041099594277785626497673996473893696946192739577460198214506163941364898623765370602324475034471466172455046177501401476807266107693703493809316873920503066571564227184551743109645080513939035429007361120706638693443831258847914754953052225758446240280036906519051587227816809508063073061815303104056668425779842211517809504574704084836668142164988564265544626518067792248362040654427416241001888005643571171344124066654866653634645427989296809531687099694887331289139238151451396726864042697139977725674156789610021160913028173224259147615189243424052629381483440939389555200647643367258286937293399302178263071262993411988588161353395791613555000325738287044738437566276314395039383278021453995460537872935358861842292354563109186478030126447259690016319444703971979258777769050953890314317161395907650289253009675162905481377005036069173262235979548469863030944563029160175064662861686522311677402435042970518733416025226591193958164652882889937882469366002515372405827860611068706239233409603231293548114090482700750712395647486345761173094314987354935829342347164038925157976569085258028339286962392257358046193940015782426941297813853262657430092610826323974581929899959334346338232413228470630443081890688108362848982359761491707642407282001301459112946276367872724213259668587647949742959129184170737449576256611201184600780804717043222350663925795668735463570618242016624749710391891700672010760239469979950586353419656625396625208898791398639432915777653301330846605550247194857096019276685700436848773830475728094452464616093767558089894266335025658812415620504445424970808743601900124150215098189398384422112952329323327129445045518826757611861074047297277795588005487201901419119071736292302364286894493426965256116165269292832018684074194389862432255410224708425572605203396147341352682457119811269737164239470405144375562102852853594941288884543524055399812199915122042643121849676444771528464598907738313913570054576654667590396482207303586474307277585753113390003976023897926402120054347554218432923213145993370221179225032998426330363983389183689513317591192997980181744594421846876006204236521752038403180723459547181475333678336823573682681697780023298789938961117143251986411878712467488966102757059620844418388833153538591035656666247942675665898461495373381788787327823192082299583049707341365677818675635900600014551872578670327927557071665455114944380667008525426398447512069795509739678296557410238907440798368265203211620726107175892844176502844589544490406431653446974690026444629175957989113541441601854268498412047830274182263473489778730677222358951727890199703009642388494949304652547829619154922428693790759485700588934294969160669675805836375453752777136100491896794269453760840655931313967578323086081971388965376661548728977303131679094472283240210752153847590555504154844947625732038973082187886033754896548675013649689333279824660517254907935152716470706830791929837936173586779621894629253268346783018278251851311458056868499156840233859533294091160584239232230099521444041306845267433224256458150991892902928799923419097033651873739283528407560184006307028999225109201354681459617431312119111163658851775855443448314672441491965055173726431030429743705647868412845317949016934355013801283693234819788725798345331414959814239734089898833225651948602490520509227873460448110895625070831566841779692740157271789514387171173063920441267335231738968549600930202672214436991867123414149966538171857958473827716531020222229172071317834735196207631294779830030197480604265828652708086005547001819353491110725735235810149055332693670762887515108288873368260557319279939195212544611926568175247628908116637628319507236638887891488119971458240045378246675683437904331413920002547764771258646086046724930887553177273763773319511512943704263550159304086070648618829646806958545258550268072654867371455347599309983848305881197483142107196073963278415101290635251779705661269798191856972736421903816814656720842706894338033513268560668330519576325477914190230821777782025562036801856544059095184003089302973134779428027587706696307914088647426535971765268097000195749615953620937020763383779862558115518229192940455932950382871103397952241669506326600509097137561868851769422138991179614268974850477438112423946469554961010640602381213112515241311179292073036919555661390625176834137452863847434538964547880446573813641746393486920473411185207876220714104711621922416302813012799750062698560520947861348302945049860107611369591066181131934222486710427253091684721938053373379506293115284643610254092492344613357196615174776014234451994574399783131167420127765567037808784324096318513781132130581323880890751571723211170052546506924797639404298547322294221340116946371936354856757337274506936758134359414577585352458477375976912556423816310714622027583592091020966761836451524262656334321269943201348182660089547663358117266743685320538439181830349029799159819147452421626091365360229213351398502777285248323626594436770142410160134427440455427315693524513686788650728821477574634419784420941170881861163920505235231123778167605974988490689790568956746385381651765754243454757663904016418041640937397596359344465228439704738823650558071206003982235410087763448248752275080914129135614720796091713242595047317146135795733810176775164150987895171282676881114924417246556251787685351459931970178094210992994653341378496297149122995661622563697887273073838954470233232475462884323899742934754319604627447289062611774516124486246591603434974798404483872260393459081173370453762717362245873023108914649387020465829286873025277871812405724562914496628022476248618965572317173112425123561814270946045958497085957028570772704370258284947666449969994340544094419806457163455882855124207923775511118742002880677946882305128309517414905893652930714197800061234137678779626245243258606275878836923388049048657439098429915696594141472941915251544343757985090424021022249806101274356751814120889010913526656279342487003849588325419123652415563521886770641749619057529669476580060472314874580656031698816097748955766531835513315427839426831282440998500847885204373583991997501811878005725127911766402528116729253561369766337376320241198000069985562180298316988653923354781265594085452140562872411404445830971860109598573031005057588477966091710100803960388827474030943042223647327878585399664046249923070017560762156049232214834007815112340408175223311863108679660840199594725118615830740756981667508984170094815240686417226866401045482818008506042526872911502586330170472113272553985715796737573285427642475767934630200724661143506905002619588178774547165778196528041951336591570046922567031674695916243603863864714544730995782833064759201731891996837776051241255193765186079596739538930032331172912815254940463952737936892263044679600287797532832853140346024743813878435429577516823440522931218486533324089615016602862328176386767155556879208617986319716013052167802322149817063844497278127056673272522144729112712043474842434078280560435563419367650971312521706120319587236100397157057109413165775755305709599078896308354424056013124037328068303750253402428589317890560179115195693156216723844155484680486796740386725657495564234584370187677989844471993453521006329362654557498793010219284855890454508022027474942571804936366515938909353819018923465073566096824489379919652041038045021143566036431845553290575753608230751545880494913407080400423914878680213392699676061315283906166061354464997400814955063682410053558698193594222950470040140654090677294164830590698223613704083602292831497686900140143056039382476046291836410651057458954332423111596252784765871159686294695276690771254560715485417240412616626874860165213581123432628771203226478956446426081313266208160867297743875680957772721054051858960188169422468063380590567503275460451548961011608276756625421020883338118797863597893116853871655316322624068029398519219709854933950632715435788003402162325726305831993895010049802322225846104779806841509016319323717162466474162278585432110493941330735674451309304466211003305791207370957321941211999558003292325331447054799673775447171458119552319433963331460108111147519262291514000015510650701949991439835003516959862797602358542049607909245177632869027070567775381684509654094251596272255689144393712771384431038992386705061821622230185428687157541466035160506412061274379850008455997815682606144807716721343637822053404522162048248724231525292653819404040334466906422175869890443450400182058971565527892063171804450383516353753614461489079758195735445941118548913386068027337369832588095606372626676578743120800679028042521422142750644445476476093986102438875018766344328948518312465638900410753547091505598192975261401404520861881502423847009216129434826786475183928372029040288972616404652186000201867738610829445558572376760247371661885361998066936145348822696254679207254690224694577384517209639629542557039722050609104784297652667705565427848505900928581121901319368311987699379380329650522525307901241614474027734746176487457725346441173388798998492063476426941875492874732200624629941377106958847739597801658620499538126656170582219770291953704658554149078275956670789893491126777204556308914704568091667471051136060408829137529295816596936237421393422277732155390358791184622835633800421660669413718691147233494106466589190703149483477836539432956666281919462455046718008765455835790228132903024042019717931004431911262114811467314463573398335773515309644049703238633658238163999361687821516294325694001310504795995018533594165480182361326047274542289613929314806810963719071396094487490094614138943143708894633070331933218748727197620190702926584690208084004184979235668629870609936952225035666195674531313602271380450850891378280140303035239702580826584560649004521150313929153393588635948678959733443624099616065066413415679687908439520541330149145775780854397400206900910867075309175345233530550062089914056088281684829878444727404860931873751890333547839932453940144825611221427072944459117207000088882239009431312582798986396653119671907063960419164101698136613068840347385858544040650715400948721801846032836850942924690145861248472046559617127103118589225136665258296008325701531373596100584545917565443375785584582869273483685715837912038774618566586614219538910104012329314169478756132141745670449000686279906940455261905547296821890404383676734150030061707588297224065934352490110679455406897896840715520697771061484510599345903645434154582462452813394480473064578435957056273462121209342486828146110126896368323663887527778454341448144205337459571674703540511832230715854126651458488720012387016850669413052304138705194628526683950477404268894674715931484851977342766685875552518482359373399054234898539744076180758858283880516026638323582298633873238037066667655580426959967893520401493077747079015614821640726051128318389731416874033496073412381975636079225725241619820915546730473044465736888468305003397140677533485916257668468675633725506170293010678559312212873745837567628594659587235167294976746895347972125269305252578440434923656850725812942750263986708168352712102784447235390004145141578992586429707146721185756315145666451454305065407904531318808917829197349847611584032568073402786623593786629616177115110136164668132272302504828672552056963915168725047777598968419420779409518646008881462174608903716879784740046597521717598627128604271043009573951623051166671685218038418976684319847636269177268292170525435611283132668578269300861120239257322042311544954579917607761003153675077878223939133838357103753341870282585697793489684691074726574527017959893365919195643553998536300061883157216130170786769612944968312357999627616767249142391888759877341148617097557152259062445522468513421627960827930627103597238594963791573691256223754828784372983353135589227415658850044446844828890646769195815632401830982733178633457033497393485986868589056157016716757912671112716226991341021115540882069479142380512055380602271085395183497846481009852626811789977422775246131385253369397287911294171271998515820462779664825684432339583477811158065014284535668131406045361597826634602629806221202416982496889790664328430068766315502668346621302308037655897600130656682082397882352907573396697709608559723623833156001018827377981756090618033005400259548305718584182517535257557706905778281070438219567535979614143687214466630034872665055588860827696805950277099188499019517964895575738788924939453536885810304806219976065969413871303495609971026837511706203027723268007288426618967831182478638669648835476799021260569689843913285154264719421828620485621393096937336841930747235220150183029064454939923150111790394944793677810091313389608503429243966789507410083268335092542675489116653865399861856051778981175653107181954644703773911897625977406421645722903928406295621737804358115861694705045244712050211419531555403769594583414633286506665003541421549529453156554627679348040007206365692273508993131155636277771539394135020876243340741459358262417027836628900358210661150091002761755952911209388306997380418006789421793695819752070737795750101073932108280115109515442757930340188804149149003357555086756587311306254541628266151804043471991456872745273110390148236194325672242254369850707300105982721507517311814237263416371507926835413755648976379474779764251528872568389346192154072421273934805157339801445902621642003227105206291236930096566850542274987794532106014193009514229554467206844921321957544245998545496225056456809241506023967093596430606677697472128666322623414177003149557715051005747650066730030882579161219524784212093939029020212098237741824326203974328836222998947204773658680341730719472934566894009630988091260134937642780815589497148123937490257132497387089872525091582814291793883437385107157194571106741986995918746798394831775379512685355625604856878864309710525089488250872997408161646810961906788066646918394414241911663040510474734509175510079250771246894573199526604953266071367662944530933292103212267809606383096446302664214186892873592950367007015177500810413728405696002350412400618854415829959807231450979894675456706892333203312350364622542310506112915014885910789519509624022878785327824186374506520997699162786381219484561911070880215007205046016747954122871358524766628156875325823224802613411401480564858588325270294270916200797238569879806708463521004857491116711785859669709910145085908161443449382930763048307106288082565918576339808056239246087571531441983590053222361592100086249358568239347828760155401267286635848364659248114575383466736399505538407391646542893041753063708277915343550337359142881299382025603674113305842124532608835529238004840496131493004223796494267806905402244987254989473312720619993426036358772546757267486705984656744076411221657429149392650771782843667447758270430671115148447100477924332747631064925979742326307488429976758982477426628966278177906143708433123374078160222179134724345978930923728442984151286227520399574372866786178113250911713508281233097822170751930557322942697817694748603813099437833922160254103365088666524702681001306972516210459364552758162561711038438158788209125995612774513069447618714965422764775953295063451052631690135064893828260993402672703765647205506378966500435207969107716722335014656521848351493327092779727610971746763929417331455629997673696003030975503660924606220150033432582064210731093909460666024754792385283536300076487812477581891894023302054052176649569650181972393730375393013203008152088510022376719929024280474268470472858890244665588539637395497282603763093669082717827050972195222736993854855714575677292754195404523160979947288469610188582604567110386727807491829879100018215509459100823667643228293286899502290595307525688163838887043347187927803235726196582756242533900289921805034351278873915256358624811075285893012313362994419281615949932342678481998441094101490242014387969808119762318959155495881850545767483370589853696791915064545919653740631577025338725088922086507244270345691765721708869122329120508178647281518519346437268455015585868570578856928064651671527700292561987576415921380654306749911280650452516922917708005849332776555360768064063301130459324177178827196408279259841257852250449689040046312168200033661122792097953358154097766283590647642403632868261373834401021223258377909161138940927291149922495703425227363760700712634185128732265600166541134361674360384023320397675882119257308958622123243564745364478909404007629900815119593228200664533910813066526219958460874557731135033969608303239073577057887936772775892976265450872924455233278939061440962861133591775074294280899288892046354096731179043809656399012071001241183708255901630500401824316772979619173505592370487236871857466980938030055662951993106264289156129650229325000204654545126508144983054414036289571162917227702908094847414501972894620383043580777745908851836891686748217114177256691731102029965398688675865682363362564933624454437656097169656307608034911114020772515666084016567494501813129986693717646446452357372667577174747926643022995341563515315254828113195314634104525058202394285570787829916873518679857643414385799515452997117701869552228962602225399945822091881611985530745009402241911435499147093965413347401021407810996268331734595030354304133213152808763178793185021328117853876826204585169447054901890430531328117984013895850713130245271319442930192154502289753421164359725210949637141701592929694108263901778967173803478767929981713539807004370403748865217387491903709082270775399904558216724152315895544120122262416852721978651322588110020766688294739946581884265102927889982377146534524080310147378134110772880026558517871518432664958529359003869087387971916946040697830998629320603515167846416379638978585886292304720887746213656019393953265635605470647891703997237542762050823521633095841165089154332532343139767853265404274313759778365961129795110011343976840727930942851055831659554344978170914068062809570696098029291587297235266930060584952415859615673858239050210224892888432790180287575437416204008805596486613817639487757798905928991375324960386573726712083096480526264576432438448218542418850544893640451194175996601116455939528031485067096606814787715948499891510362948447785344057304621837699589080518627266655450840900233853619078283517641171903708861233511219417849492526377435497052155522020952780811978337369565873051315692621674908179395612859022475880097362067724898917103534443973984311229809662574009918507092688428494850527579524316600932600993430756971453645126538265546862752897895546946251658584611145336689409811721852526086607684192112946122831302356380761542309742785790350372732181213104089118281092656706252117811948086089080836195646651960822597011107553152081550847354480303670495436988802898669286226432735613108179747117113732950352128970133522714004989657436110381443892290975533122350486630540989158702448079642806391063632656383452463975229835899798456673673757459859762896751457906492993080108519129435419730622626937142991294660385306739096171478610239035526218889033944092159990499068242820859994139602203067373436225953590109965032418785964494564383490961176443760323935146775900047954524928018338166210235688486027022048263387013562123050760451534128831418337325540532580903067310838668707304613352668868100996713519241487685198224871651709476357013051832002608292374409654360202139660743661811287888846333610879758516538461641852129183371581430637576295121091653567849114493502018902724586662976390889446863317781111491148595167344151141826206571809194005223620217608215696674040806636653832047737463845908123513765115437412368040008560703205830414627628581201935909582500729532961194316696474137410080872009894735263913312390453500348287310800740566710941228831096481448380181812866674310881443905166766226348895296633993760725397623463931998239749014082157336153470071930363920406276607595006286881964758364813055820558306465436373424382683579054137621332821870533408957765601628519236778337443447491664609166972129063647102434090611067693277808482689548668303696600925202304701508674706601604186518084599088273153519889096998218126789580765514097823755440492152446445566924593893281452677236506719809333243371978532071373844141271886704461283425742133167621657075625767341188873064774024380616888147909165759923335057000522469123897874863370379826632519179576967421722862215540464979244765387866649087088632219525911699055439809006167977810836454856032837512004578445019349160618359073170645199351114628012770906193131764574105337897591493046541499155249983876896399553650405840986500035487355542280255060522968901302897158959659219406655553369548866602409602159164613365314944723915402756029491793674953380723457869557097040383582795672110239968923894389009960626167253545182912837218114941798941567811360791236317328451471126932853129781229180032741001107106232776887033768693285517088540766048542658935151248548008024957053427774426020945209988419004650434542909581837442573881791584175088187400906364505626546240766723871802798022873796950058773335186608595124036960727605661144900798973879865755849880241640092509153056345211447134711374803375202041353067481236953181087885684446205260613107824089875065348197319962257401268262781930975084127028348725553174523235480611542402532397628740710609870153994114173216789760363829461027640731616262054071775176400519821313808201087236694748421178072951947735522108754507902580006857879268743244932741180880936259539176489485446648157109787919259162084129858436207609324348132578768923700074518510084369582300415573289160529738494468373153902676370964809528127113091271199350537871268657426796611114733720094507930756153181817123688237080428779846317224240997112979221737119829642955423460940497144250467094818441570436817507005629440208884942043394231705053394066222539381562462364669115606938942191674095142557197314207554401812083479099894606081133709988692909566947809900151686301797135502015112336331370246170703118446152569465070515471366321981290373369480054759467049078254156124407295921331362529922006306201619692363419356998075764241003037347267809465852953503861083009790664423380741971733266416979102322028112360557943857006933035170297757487880479491013625792360122528533912004509279425803902516777146082203216049380804082799132753374809411428205320765979619517973477217393584420340772365351268770256492807323412092209526278243606984101342243508289979785768183561621653904955201115966869407987371455987925628508324208805590101284186611287658564401709680092946151873353957448002086600148419225501158202811307647394233416350190596075139780288701968696939408769254418476450122965520684995848417471320319206874373119971761386703966887540197567122555660704028201180175269154655037212433452483133255918764049816854894224815689129562849399450802981237032057795726293048374480763573728932130756854640421597076356245116739800087987481076662509455596385699401073935107771633974503839614376981285250502215847827689757845338635455832449472108625689340644209471060661572702683681657219296128774655156135113680347716002734546822349727717564475685637077355270759187099833472476399750902476086034090178895497614283038312500976825634613415108329017919568546877031955335797397735735886644360762715834936632310226076760691139217292335134790534276098326308952596839172947589184274417440355301856205383316457358309736560806502561831623924437987226309979512165873155186510180105643262360429982658657478737969979599917070516519861748828399729228847463176750099448685862502994297346174301457646986618385671417104241933084906599612218342679214452054131009367557263631393143576237634717855249954098578738197881954044812785008800929777237548401792756157442270094222651568307298650769257132790399590855066329616226742916099591134481388746901476125029516169157984893077176660422618933258616055237572562610826102544870619827064700205439836341316432164488324880065941276469423401742299902901985349014664549391816371018103487856328726232392435692899796777055210066580729431048741960666882983707252126071441839625259664773334032061726689147759267689607919110676266887875419492734305427610808169392833796462966319811616721040819169839497825429261307306249867427876641833770063095908619461657453230605837683809610253621476441109413508414320878830366233939161522673967600774200625234759434759629334346559145620909557252333517225487064659912400634253588361104475370619139050308913619179775513157920097903689005418984000998097946605986951672863706493581607132757151796738280507666449780892381042383275374086608752809545860902533078533148634506394682346237743308783438493181791988611034585721162861367459608142960703351871824971032754452140028817116004232747273654090328646135992872798808697900698956459924960772888618815418941142515930088299665976695614155935891913037862866859176345370537211896369998240965293008689229156649851730859419228668078895378177510333918542025447104829825580763790619000918183900656519977656891300628174207436376134288148235582976669764185913118367809579889152739987330957690360168348063994515506244174856329932591073712835707558461187814679544565487545443530645891127106355610716827189071577998574073411719536435490913450171540297456770730434038235441965116777294456299563731421991393881260030034076352210760333589226288673107034966997790695798299047109733791426898806348178810684771269274859383796685767590479622187326540434223015018687484121322816118607926103913578808465938619378115997555207366602909160908535321994163112676325773629169160216667637945325140027035452306350725878020645932360162102870166817769507392648597412570075582657264911566625252777687661152346410903272194607923633435023974593657172654006135523244152479678003073493526919400556269213251138006042594418572772519196624283823847133936682272298538514005798181272132012910074025876845965693195443947199164067575123496451369686220740048132751588321800015055484989915163715384174232077089923363273808312231312123203938427577018238023569942040169718267442148672544686655274056916151502604570379612020565612672084161634708842682836800406404407054008247836334978517568647394018331859507656603365808970802293859560161338524986208914948836169068112512795602011257812746568127443435753435508572562544726262499431282165897591131288306908385505866409126839483038703845169327289518077917284727710598711548590395769418195884956307532827610908794577426422478470339813185949717894260942678533766790274343342688025049484133604430511300564428935852501222755827834821555214322563006241114740002517598902913660696131073616193577625704858205250403143109339566888046459130888159262310671670983085552224798883027981869941221407741029124028019723503336550510811903297396203277992869182333734696848011415945746659972329075060393542213926319473180366423536276758801953219111724192740157235334164642785170295431096928554122293357523264499951432446330412512926200337132002307815396014702207636062817444868800125511208762119944303605466503092696463542055119007960691837398334234262869322244882870240400318942856568642054148430716231032139302074796566777479690083809269170651928947806457581773593380194501443150611072448453599680977696145010604143808597357580402898898541726680885506563756018434545687319996581548773354651398895413519610386136711419137127328492301853859685252617347580620753120486213080389374699968957194844127021292067681075631430397901492522427295133288792587936822888563058741278406510710291634914695567373042689070905398818223622934739169955516081860492749832444564499448014868879238080338793072037541418754606704372667964131605970241552713153817106999641208093880096019134938069821416226637780491961410515803571013118746902622300565671596113223343929514629047570570372941364630575239400555812081125311418198495351050447220757480317042179731335655670608284970268738870101513420041792261178445504151532273411396609163542938852684220632564790020466633793097743434432178065275762453114241176580151924488793087968179808880262611668316195321134459380214877283179960549609513523601865104354694180437258738731301082774889648452741011544502986741887319121723386055216377714164768752994984704777217180565992526027730272540252166103418179257764836038274215469649796444269118602583279737848087900311192211180636923474741278960312025124779803919050425431052508720029627316725604334590727723586937196213450142323217740879014261400370854758027020405856932981122263825373361422309625342415659836350357238257691685252088543012821587487977768418026340239781036018782705928949516455970821360521380677893935950822983845592792020599775670990822844915110016039929984154370469239837440903479773028932846692615294878186452478106548336542696600477267612960824471155406283724876759858326482985722764431907194752368577045072176818128140965520242886501492623623597978858582303353059303438680698455312212180145686202066207109499332953498124149344758452692519187695363464313356193360953518468824324031392302767972103100587214735243914837433327677857477757400504373159416946997925765730522976525169538873612942591229005827219522231489302144421827025173225900719643053722322798644787518114591573681586880421434146527387348417796653558698683825289672915163927363877150452274315456788276732055673023420229736486634080779090477781974675350967854051543578377172129829623971037555072230698369553971136805571752719809313673811725703307388331233019789674403486043732980018407549957299757132098127095393026250864343904162658452311394548657863036661706550861278107628838752243954083966350348259293253984708397084287841744966972364879203834622986421522803964263279937467485261628962433934534693419190956256747537654623209463087212384245348202905997153994003251217848782852866085432940535275959641371491216324622849106688352846322906898333999508818738978512265654045572905292387169953233681047194434538674049134685564905212365294737684566623588002180491000196160555485387697855045579027569838534337427585811864451323242094118751836930385777596437652526559105749281025246350932680043788439509855677918474338418205315709127316319943820196707476820258194872463718020938776218109125087080786746352754324241782839405306259040320722087779671478126776646279837591151629561377724685917752173491849778803764730528790752271917118335294362112205223726081374861345129392942017443496942012629498559840232854914467493690853489531149814831454168650746714630541720361786411167373756706118390017024923237815845966551500574247681110456814755468340028059677672687176578265990788991632593251132495441047515275110167845493158953683491541976278442929797860812110894067942639913660269469756105902587000460411705792649756672929463932840940265723036471695527870456458825300383006206031593979849534330738791235193481512787796969213659471246218409284665542136905880920313953488907017766002717888347994130078878460055978897740992257373479823145260459562479885337849742111333901846567111053973142254812236389603537358435138155739672142498846162565669894550432437709304221531314896806597451092946834903147187214028000412529587369655544084317485748448435230422903512538400346094276939032278006724575259691356739914726327338274279944051147799474067761667999840765872760401781969108538302851535072450801267463163397334173838976842682144408371299159061674953979570883817680504443165350538973370705314587642247577028648664932124355350771879231515240151766464909582647101243833887850615798621330261597273548593270735773297694037282972788678729288929477203986201136572166387866057269259907849796798538405953143288357942916176047658445559444869253298067544771425814969571626720032161188863001779659382119323413540574948871180590563012102389979376177768910072184373722222123138404004914830763059843575243049738891309497671286008581647199894332808319250649827686580863840986073523986436593698635807199206451420310337936950688623419101015447826747943315761466240674017953755738934301976987151204027273121209611443333734700385038087381790319810842614899797538924625375976150649704259578123612260192576743914173316651096607555694054514805286502580067923420305221072988233960323019971438958352547742861996981142105244593148275437575615824836406443232010357712774959155877191943911976502657175119225476333314696970278204809541987499678523137557067963542742038302970542212546452844699361413788078499217545199793781151493712412988309409361361547524300580349155567129657190604748144771524626287889944423640582777443091676097581935112317795633017178202236160887576593710808134860150225305730665692047959584934184296412184731633669321586302257695924376642532635804107090580843430020242036902812915645707284290924400888309708814370765263018351277648816528271377479282258942681974706694263601643518887137797143324809032800683348068684622299906755887164643944891243529841615518085026332786170186115194574691290074474939486235686622974976150947388769031803486117933490824812569982210601634723363289156514233699607372425840667567996290046381100817297597055412407505276812919476673924440630493516518703072874857754600204317471161075113113810514231067502849576308036917943936462409137280857255047953779177607487360411283445041012324181650788409080070600366323901295150258092419788390635959200336015133467161566520471870610444559289486377193589758519736679102749477908491549753053642197072979475256906681920626478897354562106452698847580216960982885142346244782163979560952656392928355910582328216434500526061379200928101508265501581572012538163259504782949217327608788751894630018733813561227537663520836940422621034010891303023606437117493671782906863150285079651945298617283537470302541097304785941059454391181939101597105862056235078075918520840221726475375442868843593790159876643539077125712028235008068176824069367293590562948839560975200093416691148877446887758857883625620059184003218892566458410116680404710314332113983301853386658485776190685385623143328758321834623057723765043108473708099068090975437266768618367132127756659046738767498864955642275844872877871669106933298794112297728100391865549922583410368063324052580725801485936496828795109266054501515514012595588641745549457554943814495270185151076543963796434476772687190979073167562138528762844299269078097643858628698962846408360659354614245161983020368422407853534490296561743596956910899977993853792165802993187717704540443758921445619597990272247961883672325479778580115957154847158155943871862188108728464739368704635390780580214000907071451022933290480447128971067738375655988721718590192025383827182119008159658799591183837916571140081867296953532138402655029250602882466266327165649869198628220311264798846785753858053500126679002220509525371088061396799219989988697182713708319123619295419985172836767940039287065341014698569504124757102805843637623588819494992996705972146616616453853138679650072932836786484481129619980176402097950100919315507477375124592579308966646210013290460888162368975013439491112551875718488060746561611021186852683978935388084534376220300948932467210917387280281270748438804287763952295580697176263853133582835422284674690137510462998891986051177531695446044258416425236163457610640630218553709856942044729590913207535287712214425148403894521624351432502963548259144400641366473225478882898962238607371100077555738637210458655182065357989762251867938675759059982409088232660159569082201975176636447706106547018347678194231140990979728168510290413015964747204144232704214896743232024507780834711770919264096394937107936006306833571209310087638634588468226021181413196862081675048113919144870006171282888847262412325978839279757607053793602151037958710030872847973611504778867525009084079785923153914390605166832791821976725619990493419535467291348769069606924685369133555768978865291528824130025384693693051308469003908079641065059824029965699555221849024803745260140062747469860808511344549645383717744130372092919441859754619689941908039665211794129092190105778484982523590295125918727772487410075702549324670913830064961511383957030640724678681339950910031424106747075552697206196323607177063218968135488545568473307906078836429442083845877635371521859983948822690603887012145044529635183166015411438691428210307545907773164826431208504383288216506212159151931186947689337303361930428527710065432835711466766706155056498896691417001601807676303618938347029149726471577665172330569588726786283525781092510085973700758525247466161473248704922701774221567649088480709415977237706631546678053521754930732737215637906760488633916450805062979699337124875450393015318248231213409614830300113347261335017228431593134486960830818028596382775300813342945138129062532379955257788879461630398211921773128488312792586449829915809946277073981320178456775887321275597822320042734759361568522632203880314889910080768771370971202398700105634826508344197929729358127692208872645310915273064944809597960784322896906333237034190360029631967256685397190562279370505827094255914267864376653562838108852088202638216054086787148759809807169934484771077376481494221637741041468290735974235045088910804620932726243197442029446870367263486815822014185579331501425918745505919331609295318482347093742220932122931247943746922822002704977039068864480624615596834411952938699313386068026602949713221320727485215470197555503632740084958073995112614772204846029882057995442575492066691130930544740724501063384248795103030618200554390424851781053424808101266115969182515668664184516369525803143245800542782088020777927044499836740341073974758024748267857248088163605090618829751240306656198963115854088231633871321376222053164104542200845246515773297183702287555132675639301995718408754993615699883551868788876202529984860981742417361715930382651700738850642403031384469247697047939317282643877942635872011250817452799336490756910011289263409532391755890082947317548315234535295154857769610043962219520639743572459087252550189134478056818467949373898186777916369937305906192609022782009534833820754158056685711665407397306655908584655108272468787072151160527841725571639896263744335322782906912572260424566619578223352600150302265422691875110912117653757981562365665339831716239984674766503701096763392452357806130274144495463175124422641814983698694468695237203691104915310151058842805468996463455308588725670801236849238982724855274424359122867841316986939864737899260133411946659142868600846012976648577727098970972899481683381293471415144510395209286514904872818579504542879959796140893654585395677921296146143415976615819226209104819050358167596648012774863136195145021432049343854672932703763892774879691893322299159103134976481644184208428097654947842531049983565661700124425461698851061817666846308592143221429892077229605411458629009002764359939295225586110995257701711762894789535036171294326458767949435829064068124048726832854692962442400174122714670186709126664570201419745581236956148631152914706155138250454512823220942152298538841106732920999026380108136601605153098702803826497909204990813483526284940453285603159112703215090225334550074614352739711571865576744905954346182571531955950754375606067651010537453110689275132347634001673908048311724856842698398497391570318654361264667874326342178929548825875548177192214553441121739363689320657809191111212405999963000638154200625728048174431629122281933444491111401420696264636631976584007342644174720124435423512086719970484008970502962769461950123118204455860468633639754965154500015566440384729143078258524078948820031692977488880106729839803668184588019864055047824163262010192659937068032261129292075145902188456256928328875280727956680696834224468172081295513705076963529844043518179889250489678773514379358773975280098819364626477812288395076343152888800959920769143568196184449857239897117196339209930361982175208841569355976050417271410723349046144534895366629393646706043759243250337064423427147085568009281222117889430695612476746451694858788697024742277242141642040993240134424591180362672471926163488800075912661186234998492022060675425222812579226585355199520297058388299678296607973202022577690858158287508455596950791937155877468590634650566253113740734766185604477286153098125380792194853159252447981641730931469182803348845226437752111459468825013759883474448098568641067927682042808252699400239051594572814581612943685641500688561652211298864397653148138698454181083828900100849552007980146839548414417182203117198807060392694095597437595195634873438401948129775901459469792354836916477734766579595171383145605035605508010589933931568518179517657931054561972367926673257051028624400939318090490531009397637163391869573887113084682233463471890099182087013557414407830716207819552784652112860482937118976353905109220039909900137487470556689929870039847686838982527903731550389178540115781456878578035825407346650656413520229340758801072203518855137248699802008482174380895702463286429102517930329851128368633170248368708570524434022928960296866950848131196173394918637362151553151649007688129796221430056590469738308948800254446714279996200007272548776712302035287346564984652962196123243854127342532423422818500287097231669137257174022614551404668019423619801586649735686231112100994660177585902377173183525983716535080611164769610529923672006307667105830116173783453271392979289321736892888601792545068699279124962134193376989118794317077853695551084051857087736493936761932734366895260049915332962886747205797196117140492061771252791669136355223522058835438769486883138742418321152983480503475412266547927581594476904594599672525258930529419952002982506501984866982862225733100476672189825021806975123342591527867617466786722926299367798204612457454260607845501076410937898692841536382670167739698089775330443243332829007501179548307275707701324503284778137752625128287226714240454888153681005418646388421824171309487023454624144667388060835462429131406726177085812608905931889015294578697836412972986966338829559499588745971809894664225926763293511859936622368823379611552040960151907911052049779027797813301593372220196437321754747950489922427457036977354447575112443916042176012424496184654938567869740437812030257619298470609491784494928857718183062191365377830457493353893997375083442916664498985280142222401409677469718331222636344787140085990066770678443961215197853763611431837441150869305740631120961522193673070531567002198642944710773513096035377124629872667937562022878755734339432076010721452894832013020967368479797764536974319893031794781987239246032114945073884213564578015818535211158442299906801239437309428669975472645705683048422880084890340821247994018723036761807203856289392118542557222851909265517036496576844153672934228260321099771545819817755574404842978387779625166798578494181069168819064371478285952362574449493762688269919973880286151424757370887048259792734076932265921796365908961139566258869922953789362532960617138948908105977501212397778958381950455998738935483319603416083998367729938581660207751175377133996744826633273089597297280761907639826299756196585831262013433929690547703859313485839964275431733062209555601742544594483261030329910172613910761858053186197328700479049546158151880491116477982086186139449352773294972906719701058701469328187192828573765859671691356548481056239895848263675948957010162921379041300142164460728100050761876480737665560989980964113251826561692951164313703738691818654912329207897099678849808722568387591883184120289763260056305941653737021327498437250296719517068992617187855958888441267581238096822206764032015008409668559417050991575592065398461550521393097784156637258419554296248532750763103356573983585192426348224048740110481928703966550211837383660662763973996950119076979285242408008956171499727985688806985930304549972698847223703113193541365164279942043175720840576009714302321958909245282636458870451338756897460864598289544251775138942174322347509237584271055479466877296607380414689907220245076226042979228562978247829848195810304685437792638968299947154863202856549325869267600431421769557884904765243999816359988609111336071955185284794275273480805590229626485845730511435572095329132607644721862527164114092132262155024874985678638505677986069150097901999441509525097123230156914025090523462050743394132461888338901271896048115285879781156075569164457460994642268518171461398060051632131788969848172689693278131710245347933892430290588735055148759600344037092981270175804855000552410878238173509378490604710507142737593923185541072695660319591874588546522366683298188889220740096758589566663708632574783959497257218285552464448773401238023317545963783293190638686426401122561734966566052659640995706815669326747035626846564868024620702220366593148464194250466629365651157274193118282049727935259379375430710112216077310063375052612555894730990404911399224145431372476964044683349756180859061364845499072957033639815440579820495815089941530281775813814047390188001458288619081912888399595271494506850560610086641660238822744942973110141337217801237486019713211909638932612481829958221927088139757631433990969821599173738864770463377334532288892110772552706428124567190794090177302578450328079110294208585137277129480532816233710477414588871297370348505183242086703353033142314850867373272344438912714984586732480394224076892153206575205627204004171252634820996197399113020527075895371960899065765548213114678875865333993476526568227192252520012032088726724672708045217152099002356403245234950104059096880803054684730480707627844969054432121138318393549194556042837328357326380082804208260850748536331324823117622066492234439391606647911488063138027847217888968459502587429371585953245739827917566714799541329596703938388343104931743759529892652065840462057705420190346640337983739840750217203063018218232462329411419622420425750363820155490566402259781470240438191055524039850266710719920562399179432575122061813326434063847452972806451409801282156118111597560134144699651611118332350680398211052417258411594357541360932142144844242827773787116931859939563251004350232838036242395670761475673232139610940870800855720287122333684811171911884088739207098474739467237751843531513732570606141288056594279140687998178947937730238586670720376703727103925113243115600525483649918004511330240689610244697295254603736886763115131664398142024518451557793200224012383502004396042163340160947542601749378431515549794232515629401823446745740909190684338086779966771387346225965668174590849531782329633206889076574921414442878676018938424513492756599458006122417521856057928956739783497597826104107396941334142830704545213485256545856157859056981602246781772777047614707262560253572848359247342569667703142749259063726900700577109723723321111077159980979680580925787157810581093561644896746056935344472081479846561252140400821026702257063107618484089350243617796570494280882296231492920159540618108248035726556069646243993049259601966057686814990062063913114587930165847054046543937839294180523577778552927059154432679366547872857423729061474663852510804344690934034890088886790714568303741195853185398359927994791076515244214248560994289101502846299546202619572547464864543054873349491130091017014602611478110976540748567170562257525966229367255844138118174434383484768371297511967606957354661107643795119402610431444084753315964382217747402521161770460161132444712557784422357160529162766155076455130769557013763491623237472972465680479692877913185228958607498337266450287064456158030746011814193230388732947567887099668189880050264107475525223161075105911899802650581738107442267872560139721905985961017206651561958709392236955802109571577828518199694953017914141255758160706926728854853289544665697923476333399641197852498090541760636141997303281245205588145429838231722153772730265511479641530292874011738435086880938830686775079604922041605871426617463728965648813828983163667487792996013181050336988246768557421971062192252934595306613756579645510275988446707862473390067876697090764841559821084189532240853664269893900005436114573897890507314813525170337440348165931252338210689913004187592117582999571730763010442028930285387959268304495769201496591460649492429746616293882705965255842433824427878458209681260841761179909488496505927890085165627630024562858719399178602914181545184056501524318251628235129944644872084396023853495023415306011370139052024146825097314233578954269588456595018110947419283713591651763469911453229744842986716842651120847658440464209962526812325897221479050120367762854216471575229994054869393736857867396611384546719914882566653362884659982111108182339832408322965792483369642368850665102411080670856568384729840080917596127018847517216631467271464587062604824427027533413767464470631077538244965960680189746052442591998493411179635984665821678961380843371104132383965355408060649268472675259414385781410217478279933196457956543263665869213194143781363728221110532760933877936725941430949046405181432351700303514349621113511861178041468370860778250621753644544134893921801371461023918597111806485053070988906131675520438935680748359057370362969540214767485492612577424568466331875099806475333647789498112550719811497980358230920391777232838983613821173159965319212568112119285982940153826864654038547188625170497577400159284351034628527052913603489179547918818232664681603201886350397946588828088524048406627781282856283956503571455006460500956772887233468662623365203047909601708394603139410394907780833750753968625338026607283863967948247890924544677139154263405912327588874119782864813515557097084841227492846009133628240905800341466095510562590714711636172420989721042634874958368760255726930579920869794791608717170441964825981000091758434565492941835458718365915866261240096443026708405851350319723174396398061902650048788841716730030134417109138054709326417740393050937516647245918717898746119784050462077591236981414604966392412076450943693056172379888492951264533643983174630753111303158919955718514976755756523879631169310000030761499611940784154077422919658935708264916698394568250603536365095885073516856644968500274018448713819859771486737152325339211811908058108482893389075852287471018845087166947846027110205861119135981177737512204142280035627396300301574904059936424352100125905223616643431781366140356047292835543229238837989418426532300092774208324646192405758114525500910741097211808880164705609465064896208109116957765376058805428800545527351924268340928194919116944331256847449263803073612158360204610076759541080896875740674325472943846382496807201160748046491758758185738341595238945185202641608744202946119088895333201653409099033517643149643578661016613949378559339948423050762179536526328338443528590389626395089384937741383586654805361604778030393068116756727361271522431112522115609308518711985480485240032688635772004656647728730415319146164293731400005158753140238489789424721308595291292205826291288287295160920012048513526461009597059758018938263598532250905793743288230828628216771765128664583809399015239910008830712490781449934968531883207711380225760146967472628853110178312031422930912181650555556740950568232584287013768678156823126562883345784619330516765198986173465755838785855315535222719526843494946444656831154211972301177405152682313309905583818635543088205409805265470095161062223830572469439313830173134326459317076391313230065112811002110320227756143026196728944915209534632999782712774764649314116819762131651822084791091810319687781766856069617528121291085324737074222418863613766511914152932456323972846310030866029021502658966741360237095439054883633419324888795467388447060149322602736818439408431618486053588578996336064056460290474150368233126686348126736378621250070833678739515234364355052815013208114266028933027429022594166984633432979466784836166835806845906839129962183809932743160297325276809591956042328844110053627793396199334806582871398144271046789466535447503042618189065044265022007344759490110984258738050049361329896960880801545873185275335108170838863645116500196911526234120941443734562137807206327142286747035897231334232190596129039378163286945516231623494426237769738783055517373645821912618134395628997607975756004098548543345519572129692564560860340652021897493375410640899705273826328908091959453391886231196599444758358641109889370765138102269536276182478311834592476604190813175905445561334306360587324018139458455985042343801686701729844200379238826837071511514892146053606547872108739507341799105986787618177976055983282671424950581618925927799635007036489503963903577266450050356536009795266689183083757643288267704085630226571080751327479461451463737133211119471432094710716641192095629792323103496818247059166482177928596353905168308983519249276297412902733474634591404597642959839346847171218487483007317271814864065976615588122943319327161754637115121147572180009490137481252856776562794836624264395696530691836962003718447208650204335428571394896207223905549214162405468370786091084297019122534467137128312237794252189056068599076705298384539108619733959759100115094429216967316970222165643101170063571760362715110718689693496722168477573275912935721135267175183638716444196074074254105208244337942292117330196099417843101353003480800601511404506284398947480553132619207198485838512076760718574631582457958413118234376541334549172721394224136513491738495119980278590868287617116563495263802380011761198119828008504139548352209719971525705954366668336832277516125870171553164364235867283902975120232903944620687936721733670552847152899280809080532447801628940694958858131944800039605403347135131654397796640706342568308605090847603145931774604997478590111650931369804933635704634116676621832824600517439311289887781039033832938072171514249726636073628802337971856593439609588447802776267315570150563500426456582413325709719755796275438112800207421695518494620579636428562546221869450411009871659351531911307275028494969460238233710281258859948701625653606972327471623551255903383413610073863759235432735781996123165619049569456778325281127264197563389626594671873490499769074282605705159682192853719244388873859401194925074318560273980141742739861397342507443840220697207621634145444886571791270249895413557611219133596591494039407149732283557857542722837678275438222359059952817040122156403828145330889678692992963729035489600130143405411738418505888720441240455181993425780722687991265406334683113924211032903083396293700760545208682085292486349504075894728812958047568920926658080605870946479191564725598467403578780730552332090799209005148451420090153684972661895061742180884661100249762210819347183526995649797815946832570771849863039664990659226310797409711122540575983627553620862963001548314822829192334137541992613280633633890671499440599714385961015970478971528254284923757068485257768895588639711919116621327015500765175734835178361135376623949073597799992953393918326521166126889227593305653962752655095203350591151316544829471924006716601040925984993414300013975270445936798323207986665266053137005013672644760956512943755794150021564498622422796476095142350426444606100342971248360210508990351532438566332804354817868568585637480190543033805442812616435679224765624443973937068434152213233947908452500627421151882697062471516814926045891411796686979323787675593915479382967931724546932958382320911873316797173763705072970238603918116644264072962491467984132801599508829596086447472218948191631172139305518745580060582918752991647195740851757769719601883306680753850207222068017003545837773719907169577978237455241550736440167153684098176284542000462462117187159371773481492756726250667048051052874731303581691842741208013028259198727122670967445427994638652048129413236415486924561825171420871993496895795415228010242913638604062649854248231998738218921805446013626532571964531351341409846263373453020242539219452946432725201274633365466378599527327109951136523972716416755270915726476999811372305893809987369117028478464775178706022814748294108631776931722297260074825532174792928580801396418135716876536274624547080000313197855959596348329827180250148359864805272234086367129216828324105539705937066729325025048250655280916077950160443074644266925756608041858530075655337169869574065015823381102901796656813512373050456760760213293185588775977018090196814880268418426959938049389515752566317018398988890193821058180371768103479523058577532498821661654470976699233677153687395758460172517839422732200045331001560310887099912276643834620871960357065344720418781320841183004991759166098280598072860326778875224670442616757661731223882481622916929411658152828855336137693037697951808957225608211297382903764330618364272930115381690199909661944718777997409378096562712492695330035421867752370684683695845867437525222618035572737815544280089474093385577105324309579140434083071017348612168580381186678690178610585090421408179220920253623928207105814176524671775384959102488532430980873920322110542439786511196471099289918747698889611035029544679104523981684870965057230632229693825721794112140100316572267817779138730093852326169940031561639654098287927181649395121284500154179282033457833405097440116306020923662537875451548661431176491765867557200735319440478614915134189495452286407580429198224195697165026911442785513806752726678110995583276487250602576136938255316502615000497540943655521185487582997722796490321932804872762730231001080549853765441849931065469020466204289108779038157617068080649889454149739302872935279819149083669217627402564624466820467324856161689025934686692303685192808662421510321926809488053295340437694804843704856179534246683266265653584147715832313875459374708463033745669610203401604498512230780969136816402613391062340091968980088826919942134816499587905005415051140454389888756460523177451433655189007672119325361502326900726809769613690191286559386442882076876538401161005573362082793050916379697854004569806161980491650581347490561253384652877665360356796400876274827844702489795187979816487827994610600529047716048344092719082095363555474345872943994015610031581757248993554992879946300997836643317937897304906928283778434311768833967400884709321650516855617077007696718920515114777837738001799636847490421235257256933687451251303728510748628709322744177892548996846573043566335364664037337992100680260243472220197036304214633296078478481573561137949554236425508755599860737227364669548131261194523840618627759427385579943045182706371747146852422932760713877486823466177993040412979816615572833868726352253903538177679362572673430261424040760689982211704087819184583754338369542614395410292717520882283495284984272385333843418069543381094686856109186358176338283277367084001396957004019063521776952234748181879995465148290287785835112105099610412108086735561262383743331777773063363303476702400366780718507337189886583994845891899804756954561269245431684138768221152666790676311532206641833072482008251357451587955331493838109845120323729172859873070419690995605753149815607888347328826757568749323977462464595599530693720676645231904716783492794912938200228648923351527315255646358162696732275668081170831585363257830891453582125142793481733734952732320990375678541104496562479235694004816315169206405026473658273260145928300418984445730580152093034209949793797444891258296533336847055399533772155882155256106678532936110361117193526258561797030927174824875715853481863907777244976149271372197492930309957943434345197142036551612326606397347615243544271171815828487833526613626163883328317107339753953095153255643281389131639792350107149790506467543471472888418919542506452181690571925539109390976067512884175391550997365325671872166887863165703423405566759331901841162495113085521465934739841749254964138332601496399427150658645005595642778820579742318855685906840245362797815333313926279466940398156245231743209552113219569572248959202872872313741010182515728370595414706119230591104463270797336345478187344086309833183402330876222373728248309733407391167573063649552783258902310776097860740165297963109012977673416848913808992907609974931531526860637426358364546538439155889363989027646376481184879236893302174825981822202145891956006727424362556740748935892492367274459220142253776966784925348847372913501215870585095357198807157202081752920024139499093271793416000443706716666385648962772237626359426584820821636780839139111754179892923801785221429890103763567482969339088391575995258768454569268543469686124229755470795100623915356687533958005294967889624760833945501733013817359846217608365195783339117495977527492880139611148626254563476654115216668601156650898738719489620694339801596815946729673887766116629503708085625794113834758266339409751055896794905320257500254335460192853928392239387073497292164920242686912697523855702086901503906302460734724067247187625288746699027255245081478241190310956011321753406994125969005033283901183731243988307783647883740727543699524941668926014158978624842784331363603162718622982302075094193466979637131497577662533980272144864592088830259898839048563480519071400485078385587403305871415119225394693049347874503966586684121571455604100258681251879912867241382345993552330291764333249043663258178264258634325400488392831582713894223410502420906880116110965385628110368362247895542179110130851228619655604835579861903020436406563879606394229785434564707000820317769188136796354074713809921060763419280617597579317826858216125764227164950556303756006432497032311925609120232375659923154154062504030930130533652137664142200226058682020916297800864928185335645150697535673766210133383419926291888560010076462493393582177524974865024572692090982124782137402086951397067659462345778966771947759774209874794965032515515411503491863298286720906668580439188648773155258251140789343152304473042038639930502389120375711155956823512959670040804539358650017334593275279025501944553388339586716115460858154051976338908781421122439992961296498714625347494558288162356933961322605002751923154796634516706880866354414489536002042348967417036595481089272996736206016910973671021280733342510431512770860498219036919292872733203735621582970782738431244377327330414147123185417795910012706730717454448136235381564079535931032014711140886287497510108213884544049447463856727759257065581000363579973093099633184207050686424402310491324334650094600824503810552954565570863428682350657571620184990689447032376476365299860372443333577405487910570062278166605208320043947794123335696550677964781255166974696346066376062607962927018916230588852756804268155690616856708243440818435181754055265080568276251574213570445153264430299116367307244352042732913097682401860450347988799355331503324915422298471629968043251713062935238388381434518832237915751587842775708484848718262822172577788847946328982091702258565579513498174928446312179211503569158921213411088761122415317507129744639477125532704551398936681427534518112436112807556588168520593190284699744508920990963235671044072994665731736946414921894016867946017331804794139925289815218220321644784811115467606971721723366890530155726274241379444091171315080586117888276574531973574065141159177985001644183325358628359349401762964187916759710348987721918309970175972526456022439094272714898265059673436762010616859201552230301446356344942297137909154463995404631736388340694947679798834686253936687501624641615355055595957919063623304506154320797315176454833404245552158051413220937172559708605272822007453776826673681578600886274137900773532719357287999337408178751469177495463842327425932695563199750749834104398539090695967994182907785680362851530671856541714045091839451625521853188365582344119032393559400395109831968458346010880137411186197614298072726463929153479030875820722699962988161740868445987671832801472900297699163984574335743746504480503357328364579047319102688342998112016137530035808131718554941418116133861343512318557519154490436203471334541596637494464398000334646760955250846260774402402558234632318648959981925835723881650622606944634443328364383627271608194190864618000188537029356121274966642069651556037313649501247680707343325136031493475826108306114496124813705854272551457884892289943700137357627861879254261938909699566342412141984895963300411797902345302966090632831999765628394895433023402110880367895432304104887986929044672733680105863558580172986594443559668959977966654079390575019876192869640866941433132169536849423535933720563103544254188688643769383611984321851305323670646294805147772025371165234578322175367788876810127919097245734835911152567931444887525910629298837887888302582310924057513747523937576442144762530193863549331582040735649449874853886792332814218833771753356420720263923350703404675293480915877239840249324280404498073076354879401310265958056110817923230976209190864517257277803865273817385207476681935350097561704028698007620503059509142279523349743384973348994030297284909058637890875823609534646446212008702334546272407899492138006762259469216368147040360407790732041007346081015651137740737512731043372349860351613749492543067309047571597586861494572445392408553533341288598852468354125648179604118141187998425143548201385348976040577842374507541470125552855339875776300250225666587515986671961639185488516854007423098359530266635040920256827123636894350681757719473404954277299884220448468788353344123774018354983418395060926585276179473282328725124374399848064401713786428875856486534891912730469920424619708315833749121132640245160586589814323953607123229597101377760431466448842253056278680843157270224369033950541168138630609975073221719771043236971926301218193142535905391348683303181754494997471309070851279967294834696593595504146233159632077319167555887888899121496802212775079965296941379173203009128501697396417615822420629234051790514155114187044417022328634292838396708147901467130476085516988194375245159593186757382732805793336882093728669187362776358402567051999029243589121163288394590821111515165660435203870638617378974436172546737078364813607879498337133729236306386185920645236334183390609272104713759088229529381185250350124597247121918698564539586475432371653792623562623673093974407855654467207023879024669529851861449093571679826250147990094239878297419328263198381304090111634934618648902697891313055442183443144419419963424649029119436024586664658348421262771450632804383217040808392634706384109787629684035522667164195969200968042902477566406037512726327156887462554795235959713560532839188643373796779707042518432218382632307911511429237811452416910428570388537595004389550132189036502941457664422757319041253402998465543252918188862443430294495002503365270671796881908169485763434977550344374228898315483244865129211945996206212505718571500866948693391106907167536808965415924760518302667229194257148581897075909963579018161546565153030412332283611128195335243239954039656017035389066595472216228837290058635684970306926069975906741308957739608116051744043626889468194942497177153334263354894637373453962866245257424499909023638821377322942223992061474292679046713012882454379326348339295354907170368367387828287011705302248427119862106741232270771927003564603551055568661253905988573951260081360407414918209929004522504441243363484970095927549501840423329267560034233644983123580708292201320623663307302517293430812936502281551051190346212172782295441402340203693505064200502660876013167847473460081877282465658453710965353244434553669984144363958022906782966004750877086577017558405936346901335468436255956355394858041320149168330031605345880647483357696990429304939761698811534741988279331535505398660584902084309761342791543464119955975562210784537937552018831869078074122636404191404420755473314952087795277492556594608958293086826538628302165972412595947721562640833142272743329517966721096067206313862624059342967995869789161748323931739728999359658539203200460800807549779019811566434982890139226698946193434915678532396702863868028104273381179017297693585057812637424187581129684048329025939406767057217853405806566576209469427542271745384780405874738094342164128260290680231715025164813425018085236537485547951660055698290872682029334552300677648330472405947897351925915227962071482712883357158466834109457410962092045018111739061489426909473308210789196073966356456045222010211280263813906932318606812110576526359883548926400728510171128787093400632715310633550797763825132483070900789773856100360869722257021813816934401109630176092207718215674284352863007675291172996633378062108920412167224512423296008181143478317212491750223666944027910408790528322516279212344185249438631032911637507508063401667481990890554193073542017637953337708760771914539953072141302556647536022295705506596469535705490484598064827635428744400145925416823937736108863085174049940831327624833363987897816894438905762910032323006540892651476916979081318105310898635259144013569051648519737569709330548304343655756722764908729019978272365562054844779017328034912362978660495330492893554941913111124104218562700991738797149319512401874201358388991361592762138910618231234824748319749912996515286660967875341747855741192222355347104765820817937064970155974459033353187799988538863292529660901409443190491271656599737694383643110345630030725349671640546555102522429549399871821930751311082312877194082317200929890825083619840966243318491232187365671652424788024207187541286574702051679104986150085578719142993270613254717939814047331233592807585212602133892164468913891095949315942900290355973326050662920001873312322689701775027092958680558135268172327728147094117548707261893327463572915700016911874935884369919306654692222884777965031663923754855658680169988442356102449340327620189256000010363747897650071422413736678527043840690536419134218982354406242741920622960321503615735456363717885752622121103220875473994514560283527389474315005578361386723639071162102944786810597382035084964183557002682598878623744175517465535057836792605944287794301829625709848378279191747402555013700750444071853090486723540051417992911368742112540563198793242485027287246915322722887106747150282535688122174366556253033303068395352224908265025361158951352720076111580452512183037070586653732310035721726470795985622449962155946068594956290222474049674385315201233363479204369865529586804623324548541405058671190974122259864548575303408997394277839914312831014909185657653335463364508744968092262749381429733869503896589628392340713284809006382798176363217219318596219170596917928700470985007016824036329601259347748884147881834688636888423519383500731482272303443664401614276550964389693133952143601775353879892886013114610081748503088747323746864367858589227057232494645690707633690495631732097349505169718253923511233902383223181083188007802049350358045994124346018279295695534950072347270463467956776344033085597003807731525763111622074356451011818225782627647617543408916821467259258706282385345217577088371398808892250040913269696187790203565212680593689254166841120428744697368211054682578799751478309615146390271815874803598396609040839819563930594887784101253755162142109912125894861445550193993627998617513408062140089784514334887222110190051633021175468833561971223024318008509353370212919644816774644455860438982313430037205381921571973261003772996887917887168926479147557174524977779255359427332305922848736829955076572251826901210548960668579759324547279727364959046047471137206202992567216292316425712426058501527638385918081364445607602733050076804884837148543320661881188609611238048996392016358505456670426775010406695093611235164664675617841396350321747121043879953698129818549477653900573041649948674721846420125992737445249658178766727192924491532607957307180805931232102986999033000007033348951468190538744500761669795987666834305654500406352592239459880969479416444392695512680074317418073636425645312003076530633347464633133032367657975062256228052875258119157179187021155312951562271117289437828322855263695039869064275906341370069947068195723555729385883568257617760637063005658554585406441383566165129184175058193672704086963569693719484247887880000772411303362250562844984065556652723279412000852283976560255003748742669882847320666647435584529796371846065910767850152381597385259237667660675071101128654708522127360246648761846166743910678874142642635960504223749809357592199615512319430892062919391333181737302142783007404967517028144724409527842223391582599310509951638299597399027817908185933017000576506999683960169231957287848163571502140091466744796870521601223232573596498025045414287140152916927007307119704106835662258454178981016060930646041580008375866568707179817025006477126811137803981853676577710446638769266717737132958780746686867628714056741705857300789209437372584793716061014883707582063928431044472070938009946959003677670703374385069999684620428341544436554570607189003404609435014788674395091593611985401996339110618277585058015450133175339978712592809362787548496055199205487433202160493452381103798319712436025913171560974827216944298409886050080985499176992236543014917358103649272506252024524859032546493110971860693288309271545599452738195861382389517233431124347661978337993539141664821064649710801421336636595289461058406339002711013461146572066743976723146210700042200621520993187407009834137962189661000752938644553066108109093782326359386897230395189912371463929027176607989471599930910310554144839850488675476938814218105417183736154957065213010564547302658459318140082507263402753395806766708006182334903981318751993720605637648319967686163307110345275042858458394838096998632774933748875208957927233103475165924929895496901185320069668547748298091749876757554468398414760457389980015579591670089312842738988048416646079726852208932389062606720449858781833664626633736816589684421493513201643846843719843977697863044161580420612632047186291069854077268651255667814274519477291753028110686516196371865421258607174414498158360776979892448389962673023727944537439704126055992048464239659207183482272147175891641637450070400351157974713398380026886584747369464279515219435134759098039172235732128114053546576636118951170699448042285624424157445902402896573701222439591242649907998081093499504410073937232829304265598547011294269509371350534288008005274125653132808059226446640293531863769716672052871487005358739491191539472595086383331253416667263366293353803856098132074929004415100700522447720016205172965325028283886183372802188372076957256779298779170802789698180465333624990996460371402359006173562683924719143380671870428596907760945408886227353296735541660287148187945949086333132666729047438613546761450258148981541172729492534863427715199677073591145901358107701467694788408684653019646156994069638534604679898321965477040697251040335330821630317275815294184695897474978711503823120896892494688001195180428703295292131174101979223429488673771697443776413680636222634885051242069198009616951713996802422925130253427153987745284010993752771371521429288915918369089266953776624453886085415441096990153821758148788398652567755888485302554585727233094125080388614302292970025153022551973397182058826059108897873204063422900540698268446712298373389484607810085675869702832028481194296107977724725823831934946865235222576338438097173829150271826625679772643726169161075164015334227434469036670950976690446856749595949427140464926275385434845133176396890069241866211165670990499012011039351437707447076206652675568846851532150134268082360053531223747478740754805124795439268667817948781193438759763010381016098343658667147343889748857641014105428280942237554447222356901114192572214631391507649829387468635832229489512351934954652183253358252228689255159083563078706281832854854212584399291315182834760533058765399164785995623586216087264701842992634538046139686119525012041198350594505026252102466565663960042869541398380542393744089524232536293185714123908248790362407651035219696268901565176388607215532811294712466446563332736507967804507655078343271727207644796006077856420326719827894645937171902437453139486415554863801571992470454228344809397157537159486650581576254932833859193852801453358339707444951689454501963135874908346677048511853562314888313155899384390811225790464130565988181624564608107546176661255925994213868307617294602586460851835742655910192545257007613344859368430636876198479952955480778519277524348708760073599599249802194979928466113694898984650468210785386804754920409576038194542183785830244507308556439828509233835220605740943664595890364286137929289046690188922650734041929796996951049606011502548751697484290517148023179704809467362965769939443833288722456766757004104396755442512957679301479340176488908906824286784711535709539316569520086560343526018528675667169651423928546275718211314578744753909480893487605041388522100208184130908241139021513237598444435993089335391238993090803539587097004863389044812728624292383392373097086843775810709667713197397659158196013748543378578190248604281751947744722347716676726617165267922767949406421790851575972311326345564944832148079214613950191203633890326784544167019916075231659504329026238284212581896527132619798120184572186684156708166099497335459407806387728388412841075416874698973927712795299277943945482150572283365073209036934243357501684738648246008304729869391308662566064660072829390836437390277893227711936826630240785376245303351584061426233799723829497080257066216292384214147974050632567778586986197767203208952325168236975675691278387075443991119929373296870335470168631637702236401002181586435789464954180840037389547949349826658274014505966410254402460663884865906873735853945804720943302540665098188844749786035910324921562884713644971743504257225770495021373355006356624350930731377727930207944465982229969035379386909718510630584524141122217288309624871136842856745133241946573882404036764103526099682956181244797047591472893979666109386316277255413296339089809375485135496112544472984912857951011741653967137218069660451365163312335219377414702539714815460145974727682130206748374460654156583331347462676970374165092649391348163983937812194866308894465448400507738670229624283431026711998490119768791960283032345518885691483742937788201879128864803098247588480880111917284261736786994714623882672249648745194112573478625226960468839084755819420968861289419717540572966397070746588541773323878573796984547242672685113533883103267678275323922193684676977495432959739843256621834030993263130792544281709031516976350679392491104373141200875135861202537762516671065170571487916359531264703663708101338517573295538777410459929409332484331313616897503867522400620809060059412915558145079960116753007141336165995121816285966800085090571581698717916365808814371856396284212646913208126797096925001594393533917769143957275798412230876611216627809527409966310751622302552077732055865617532734054564324547074411514599717373619749652831088839403759396442221589917763414200350748055759761440615127309911469577926348817592937493350253517905577008616886174366571554833706219814044213994153213520631377457817398240758821969821186641295128078083323699125964923183031862733283240967368672631239362877333971065235131570425824379888830536532878390644530030152629030374895091564708771226460462686032893751006592159723972223581768893831725157863804904802734375473942997940071644537408025806734781422206849670011434730896925257122871803238271239274011966445182150839063704917131118944084859477995573687440907205177415470739346520617679517648579007644447834088988476906168599072670281979876827925413705114719674761284339875192103662466671343532492624244911758699263242334683542753778828861762966329400270716741171804944390980115743999433946667836182653999397098412554087086162550995694369706017455565244132700601468903747086394738149693931347907082702568562163389206403137289534155721549632196305078329442074215888892603646431229548058747305721092044341804372596973971084064515555474372652276975938372329255631890235620447599399494269937931189779939767304573774912012534977068967169765774172016384887276942089008743255741106982843454995547406350541271438258779546566914571392101397418427380195557575927881837430516866646851253257164721975577572943943421281645507358045818657827706044988466841483137967199715024700299646939810745375214227107022085907441463758521243532981979599725744578003404443459134989909752945450181643213274883802432709256767751671659781612624304192451533118215561771900433502622279015694837730909071144372912314898672278874565459849246090933552896788289077201142289071269439439411013902538459115489164153018378846305684046159683029041003664892529886482812443771191502048962149678271077238863269125135732030255603441112156487114789363723059682137223596675708645463837587461519890346589025399342340060698905338608723241491411233757447573606246299782909464630362688350105587570507777990646889814749904194053448020793186949247782524925769938168630095090667551877053672357157507267030926256641965617443792153097520202686830086879869371826732739525966598212081638408293580165863902311623375069767117682894852592227682369088868608199428213535807352223960469657055734083474907945903272768409398805194683171131008090055545431299996444098706148679959675128514095112721816926657519666584074022591247084093705920637793787309735903927166938265049578163671793948590714075661636514025868172578147381966524946316389243849343679362018734668752309054301719606162447505582275055947485188202875529641021553809370999134931158394588446063176788292295593499241065176393678016284243921194292956603121257713756113785979976277460934610549274470887216349935285436719349569642407796832788197988103314154881319852523276980380507916448810374590328877635450972054955017559408653796433766843471846095082474700963462622733757762767219902553429095859734911705878577359808482862625487543096714207921373799054061176042434803205986667196861237799488756325995317889975992569186769268973514247261359940609797211615495105963117604571338619802861826177434528053614991110016551230147943930332256031004789594734199958203056444755342152541318593351368398683093755896567694553935631956631123083919282919589101777650197494109438921559122457701475899010855713398990283261868774548607279193684092956003809112470320170524353906430771571106078068319222057077536915880634783423392026344451461523134453588881202287521718886797302486099796466476402891051207538322255842801044496764062967758821978182337096819037874235026426153634404637763905036349199570226650410971629477905045704926312295837461716008465242070553241502069836925640078175956507257012001973936963182073823482806685482651532564789845621025883873205589387647967393780428781436762999616006430924294356964863517561841019151526814745627067728393473016365253539411131484162265143340304007616205318477207550715746306296355056806267757151350645328431706583464338821949637271152242939646018176912090642603800932377343029791758435534978007029339198226084314972661063089907574278115904587579669290094135389828099989577463923218853459487870386555768777298413922778868611769740180588889934805078478393252695979467115110952387574388160184841992831169660390017056450183479001373613047590673211303573003158922071462316253493555167938136529476826467005085499186702434099946782900296408667172202271061185071824137913161172528772159614088060018888867864146299953614807579893324600862905727223920239532859358982468284898892997632690081811647163051632372114193376615913026216819908882259212498339159129140809381451745511757274844131783930766893282822429388792195835568335792711458757272254975012937486514597241897231063892556325033666920403381624276886700811165571890432256060416728621680963275345512916941976364759866343206887535647814548464069739964729640059350984534563454800741561250075456951711154082247404756501645239063327939504139348175368735218440183403127517599835987172485054635874691151356382918714668625352885543175993926558670076248702385000938979094698951736023938937579352567551194760953972851350480053720586662379637884979189245871621245996349259752781876064346342972551553299110501571177353392585412222023272263743352573604186255922682240176186873428220644161177414377566933730736343353397695176052365421147704450408475624103819629813022664140841735867039002229616442374248484351788126601085153082608819168996166272635766907845873617110569170146748369471631357419432208482778161168919912836573726401277672403639992219957652973163530528928226389183730362129246972217043552945094473022804219824306097977435213260871194256100031051007407377599471981747613987041042540686788429960015200367407860120751291785267956866505411513197576313459677332968113989513896372608490312350737615409789250664215975074053375866384555949781449446618785778245491956144967674978545464646586739370466757444467472655077409530405334329350339925892772467746944807403064389830752939054288430368159564539086387198547142452771611974251043310371520590075994848326948425914800266418934803965152285742425350833869888297516754783185497528262701472610646436246228738129014931191989506612448256690802525408707114763069220325663511332708771014151250169594011342992382360052016652822181321058178150662713024139512856314062396186173505866778745591951833779907586130427719850425923154612607480184431517929068635089766137742517134956399829247708408508909759075012270890055472176718714241578993721160032155394783427013246111948239400189625671440269110651659725724882019557589832966790143284738190723619432656304701500582334980877476559684511981312598394302454885328965665617324538884512136021177068897915627095592421745868850309356960467920600012162474596510266006089392445709211116096715760469457863767177275061776007454450435441027697229922486119680730514207521424268101039356405850624123258775940002470142409749108059198478525835163756478144147527593887190383200770238895501916055591748934914427388977835373252772788761188516340921132562330842554710000138148010533438378329804075167685585687757055234775803090518881587964690402982788263908213256095815383678043974452152856065429248431819688894385669698954245510593986729128472324290381575715230226715982034326089839169123929246207402329069552120478728603960687538701871579496795418216811343172291008569217805812630893012795128597015701991908305766911212333043582086652086032778536090691406710278327968921083760066047495211279661498826044660714978051858610614361801573414997929868111702272285810201508992586402125145721810917831305531975035832385595615834047882753969199325357062979704434196221272251458519427340147223582068856280681824756275806689334884331457879875380544405348519493538368654115331525375806054957423892522775139184911498673655377359994615894064661004618641315938439622577692067253064523483310546048912703284432553191200463430892298177058461869148255379025877722732164109112813659898943793515140967796684491317511641124869998037870341484430039168016195490499341332576497180371867322881387261289698529653498789926393819928591988317965961322418540406856609378919790928110341614019102589675906185874242382066552107964793729487206182171016967324540783491801288700130050284641879588055301349402254641400535479293823084415191202918722529670001632490889978761649562524425542355597255375755856557066278312644773792119602751408462304099930923363673861538772615549544002177942478930553106875301381502556919038654234427026803058877884390198292674926485599967876226844454670598578314600199635050120257074775492699819469123691625963918708792039125079529600727999225371678875159967225999441245413885463344329361206981194162526263594495718806211789376668284886098999878732742587448218897172577013384970325724497289615153050670514402567767326422535045833680477305854882134598883278099616897015995167826816751046282048939815982803315583894711914918413107381154572197117405072233413644080042856029083308713006493704322349354597385231534228126202330305992384306609554680642321496494315200313363206673872909161498495536142407067927008155101975709017436055227215537777696579964002797996416216223935668756826383009540939243879134949300288578225272443042925301553746236695886701165877523399208330235561124869697683377081348083164795711912765829534786175143844258150120708840800720645276197323558424698520412741414296074466278666019609769598282299067997097111003449577881464581249073372903874949518950803691710019646764816526396225570898189145275416084063138789924082699837579476539824579861850579291747480260957670342107351203171082885412135857987213567028872780662351082809948512875867100835520590332012547663106309769722497955991219941915009100873324025714164982963787075688862740795252007593192876832019227370258809455074871543658494396495151484145863338952427791435187312447027663113576722425692571511243987718905220978725073800889394575342803011220724088535712761653652173065624314934763974965411660236996796545137123871744448609591185266267584233540768658225602909677719996732481457521583341638121483352116048839411565392755600315228680616453945592156045592476307819937265285680480116807890659278965701232394568180622606636795754113882346392854843436632720335905201110568240779179297502748855072880788438185923365252499378431981076935106360802890016039671120939754465279830668778652726162585534738795072128206171376232492971432923214780103309235367228495763785791949780278003643429072600935959518634787387256229107047119040280301858361907553764403994571938965160873287737752242180661605816103744757642172094553809839131010452759358833709221418017117565299152585728186710761593783890181549344257046383622703413357685563852321906444883167982272083042197973910970573563694160347904134097354513102871663377844835037734600989023043984124695648915685274693484190347892364734226041942121420209084453015514438148671238312506555387445636358770519185065071729708198801929275889517751763869454055321707083367665478794905996810373072627598787427154771733237834590201094202479841681862187381689515634898170014073418064632175242121649713701079767841365266709103574567911582671915842724642934666685844108978454552627984206890963114388450497848228586020769668479289159417172641181111106062269704708128207250959278153282154234202889569624550968824385062933567054777992661795299488676218615164778552007512800891895656579719511943318635294654772607303635483266667562729836487338624865513504137752543966446025544879607769194861641212836154458774047851664418131031169062174926856998485127185528092727567381050121835173373395111761265179799270189252210494877490612725298735052679829138641666495318131225725399804771031608037356542057319398868285741395118780496127999041594402830122698311407660903057280366101632732512827068814244106647467621951691374514515416916438145511393508230357844304263416911417409731917029547185207926901338774989894483784893687164956695761842626087467376951112791026357569735512081120296790302676816157936742794339013417227126062215857105380432622851670451494210031346046557670196458528768488907282700660316307494600516421377966712064459608398970684791228476875762793572504160215389876990630788806035838796758465272372964952547327712944968876280946905279119368453856097830781611273389145438360631133172812296598115657879134827593305398507408111750799269236301358538644349681103321167070397641625590263996779780443583912574240287420353787002212721894265262506492133457179620444006824728991560603056479253938110785871493291704992436437947795869790341118385754351467484955721530361109540863177533300489209260627944546618115675105815441450143646306213479906004868186378430804124264374361853045683637316843816316181563641466599119086833080860167328860410192361440973068894440239239750498259875282679172595301069022108395432288650533963758945814774750808212361148069702563977244429999637890016501303873600595408312725972566184485996187060041855816067128426723916105731954274317428304454672366080391188170568436247693956178385017599710911915092509195920983367665141001920927129830410617637418679768252278445157396866969661296433475231201640775945540412113864476076938546146666879815917656287749528194584272857286859830452644961434327343156989231456501431817439134943201588170018043631365860327430667625939961472629235172406868307591660208312112293761212844776346121246345480790366708839474053387083728209510237157136733405333095710617083297017389133539957018339023449857412417620611422429327941032014489767411843623661229363349183532915312099697081558652657821657400811673734661719401626474748878060111337136249805931637021569623631778908191038466024285253481045114753759753447388831924462103185222397660282441550970387060697930534036711890868461154832414074620856126796711660121198341522702691360868025656764903028611752483859899528071065519496132496997386920406918541911323023465241966056726915312156118658888259628221604467041557852947587094861638636284099344800940008555496262378826856813328919838040826872411749855345633260282202354081043006198002505967627722015983261682380721215461609556481762515743942504529796311854278783794792853204264403362073340330631434821449535723626243072567859666490656287014437715451713907719691565226482944153968654730494723947965712613483152357896338364766894047887853760043925255777716054950649772227084688440485553230834519408335156389746580406966995921465833602447694719131896072113146255767002623859712771381822914415987117940444537006451440196449883152914271639905748697501596798360954167868751511038876836651866210588061680870676789310128402359540303914715415561767060008195271705260512144209806688216544910976465444627825695572650886555728449316324219018269882090407614034375209389828692508022654546344723415922811485836863013334689090997178897656201300960256864992552619049590168650550711332851920198485486447987464555857132299063096642011886210099911021565049838519521207231502853465350208844456618646619300145646371829833006757108822860654908439354854970445016957780977616083780454730109469136869959617708756505807856337867351789257600468597748814805591619164332322243897664959452276862570768422973614226495887936977803886274975815368921113337703936660171192704613467618294420978471278718758323697241225800095963592173120516642960008312545194913758273704785088935910984374018733114790755175255267013675911012059485670014647564397344443971555494988130764759882755687457207211006020837772433002410439781923975261873461166670454366575011329392740360916950144703603802108952057702766665705614151040150108676570726338971556383276483875155346689345502794558144330826644775929362018075728758997020293714860921105265973771491453586245489644853094193940164068723899206146476721650554723922117289476919205477998122509574847422174519592516034705956278581629815143817507867705253581266465520825794842371412118839754158670964434994567784380902426291335966915629338071741170319939660145333204250265111831601369580334128792296837596483996115379541981155724687111062221019490373499512062792826234803011030871334970151912853130060493665293484055654542670493502904266260194156410832987061709539468627530868871053637965055804614309139544305065986719539016586544251531379956918052678860091778578900159300131187823601267892116590522646290227619144388529507238444823029806085875064354587704138071370001449204516599365312636392296424506038547279040366292491237106103502269802939690078587623061235074302690652729283671225896633582989018399022926550531190043794191810292087255107363164526882094870855188514122486205861173225272472451606040414886238066523042990211301454660817956996756787206908126116042511635623281286363830171006234923193186602006883631466380678927454121841808842401626766665572579611966150421806030768871333892254099464008299010888414608627241854748981495586199904261873194067204755681604749077579512415221719139987870899823590690102273277633649253416548009821847067827324289328823514016447061845624623678449033158128743402840103146227446262681396476716655899064046736934967349816632247552827305894961132004045596679725110475246851908957334827455751187068159424160125909324640810439411040972585433706123665068442336818124456710070489534873628313175571520371108052722557245662631993693560986646238231903288382334580717830979369351185278200790670240306036236268944034526967845419105123209438455201348693466439680889455689830230836327614884565501889127499366164847519256553497385046573920519755384933825257985055753740662173205223650466131089640239839721168900694581238862149102504420475089152009971473985760964985449517850148728249024035580876582662048923630982212344959457079352838156641558216845568760111548038036929109417261089844464984501512695881028839442370651135077894822851464046694611297986844216428291132814256442071065097147987172651046705432480324606902529044165185776647817961980029200526086128407875176287661619137081082110960513376885073909338513437030911575892461707868126823880097802332440011025257462101330685210936713862180191794682302204715448220738456073155865596774965161996132239970464591348590933385256061537408554790186129972579861563218826085026792175422660668093287543841109623895341720367585355081280076979179158015428053126295882333603270319912262811710387580739333278136750724986598434774763914782280842727845036342827906065513511161749530379353048056006493576662215593275563874015413516816690266408243093005122694013656440181743747603293546474264287431314702343500522192766987728055979512275306175125855035413632735175025053775389505698446476841036640260398212973005292110360190184115504226888505815306357127214017178909121551560794506195604780408901475321965820616677245700424615958713491570446755318427687742676558317792556766219793862160262317773520043226881574683755086239932695010510552567314663932995106464691131368001589507639704927216340584708797588515466412695175059802992442353696368225819618822838005895942864571417725496603655521425362948322141499452928506378419385596469599114381144449322324994515400758334343767782895159399527555661435801183452857971365357008397800102312865917709966476215140322310082354100179238696774876943344099733865515512740696304227890343237407449726931533036741787833676906241462309465539697693695800330795725380966476474239954233223020022959714036159675580652381418367060306318661355228951418739279749249346642668831061586527904847363072334392155975222954200339144572172960685995131801302719514275467218895801165584316800200679744060835698079458544316596710310906190768327846714428076582277610170399410582236203699125477311731741099754339981713202481219435153001169760046460543743583145166018787576140393167584527200073153029356679722987993113094382202775321842802614049846154381893517010344229886325083346919912426999980204823455962437076071698459427029124785691318785247799744403437966524936888459997102711230346285235961998914897655144139681628784705946275209855898535567164035897642195729966167358992485270204760322919928215889525894527152583361723733233566195223791512850878293694871497617607318401698464108492603344441360198851539094765019374745713219475288247198520685100287649999685800423150641709351275890048358175368220682289413119514347964168072724276884785157171884273638712543833778564598778052707169025440944833385141021020652360061850119787684928379980690647996724966348065643969824919615473008953731076835772152222309248940398212621524032984039282363065106636014767237449373827492599667260726325838887052589173424648322393006736198824909698200609440487432253564926046494611641794468229947382102787823599306057505254925515189914300282363558106455058092370005883824270042827584444712584800136256563469472806847709116691324796704908395467119450833907811884766121720610169889304699401238193194146250416700458363716480486485442274759616235300232230491532906612727189501689374504840770067513122102958115591438177979261956525021641965734041843336878374620116808431938677202497176819521583721972886463981214234092205032065391477661550100011773617689410059166106704706872034136799991980648412584677188260020315715961136952090761901401352631893898763003901909829680894828340597280022779021209689394086914472240327259703626327416091850106237183096126363110882462109562165642407239411505865547460539896198244452449343968001866774848405944871848205705784444379791724276473297002944171642824189500223506086277940181335902346466268550272447432574714062643946267517158084538303957863688135778008512970767963951540930773655412266702812926525571846843538808206251013914012131716068336056434822352120543985444722137848863268838553156293416752579128640576312306771517587276644396962599002976751790035581725847142566865210853565435792593010912228703413119078099896128410378806407081148454848152601078795031649778170939596744887597130533685979578757470313118246355072553216467588550288284580712742825166366198818140770347998025308717474886454969173036589800260858195550939081464406823907762531967577468005274163981987335054411651239743785734406551532850630164525267707994585107380021689592432300680031402121207740953357816993346386311801069620353001876135174725024902312326180779558443850761836267563285922642795191522042856692414727546288534301653225996621842566131782077706248336429845260306537947048395852249666834823881198089627884251038314995074024949050132234597614796224723817312492273716782177279814063186213377636234938892974366693915005495514646362470512551582661199477688964451678322494024847116719856848470434540546288186464499842768724790748945062354968877987163275017688791570066606811776192355731541535243023689233650314473456534381618128637457886148356525719408831344445102299281719930867138353902377062596804977820911046059446382128682391475469507805192795120510947314250314984210724900178166880106700826388446660500331545758196092926860956741827357299634697102881525961450590302217448319264225812195566721297066325217837182543575673139945949794319684787898355947914451570253081947988238802632974402637375189747124397001762845598520209466404269765724801923958141996171224154505935851213380500911042433021657686393079083770673810365872425485140570552081076673893982523817288277517518988396531215181211340797576644296348924143872976469950091762426024010618691428447741107706784115718207023079806402282770025114937751961093595202977204203594352732208489693172379874197547426399501417188995605170153229148635523036918726288728628498203183252784035377804113283646674932855801815316033869639922538497897878340911308302563317436556740565547017363329608346960505174133099386388609285887257525613739299596864845921295729796769431470494688312797687858417171857408027142334126149040657677764800183154178916771876396838409675517041462891761784802470143851826680273565724677706533031613040014451537307564763278749003985129355074525008698954147895421855982049440223953570044148429638426315440084344001525249621836744767898164647169950926449746381935130006558558339759026764940126163894604612985558859777235312009259343216566944676301952736555394932749505806475822606943139474274167494039897986445606778053633210337026386736961580898086215580054702145689105188271480683093737129035450543695976115865284640986715028449082456731155344359331657699561610101874380829017398831963865780238114801268691738705632552115929056697827499447582055905325024124167035226691321590742633582293110849514632298032345193231861218563937369236615545206693252533129510612431028802338712136283036447568251755217035762523409922830625119097599253817141046682475160994880872566947078899753048223411049181497186607561882743177089885960956770642095013439287801615819604447880159201969011241937711139099471630807077551871063864717639048585608317517310617620144346814826325033484205244676129588163032309624182216810087212891112764719320491727272665897304577506024395978409606892290802406335522029235620287729832054344737566618955758277916812311571027829181779399588649285931736172001336501064980184027609748182234351734203753877745104413687594271517652008485223737472834419460218551732809190184507350995871370003640855032005418881701006974419922739962961982617191724143075971335252182071095582325304244756336983286973306292897046218225182866242300689129397575856679554166120953615143509869737879331990047498628276757666738028536650774576490707437233290928677973616276553381634276621931499397600475830101845183431369944480465785516183641258030253189625392015017048524259460916210677350693564815898348284814742554335544278537039243509985311032856220258909499697255561863260177222288950900368531024454502648588281089512672862304966703820740429069116322176385663447626687303753342077540103663018778365324040877636619257303553133023292717664033742416785950360288128337936717668983631124024623260530520778984980171303061667655175431627216327892314607866481067792271068617639424274349655198023289210025655152646683683815516186142318333685434462059976379711728476684846163639310424013798430592134447011903441911739409111703372240116954758125183108217012844060520065109704200348707841427433283492500638858291272436361729566487513124431440218309433926128299683558952144721809681343717250877076204361338497031053331451366673860053522695641478257309464956185731281598391508114283826201241691190104091230682509309336772234630706009822276626228763947539283656671068784304568590894520090043787223867042042835808549838434826887086440947516284497899231649990138316652328771444535130915589924359222897686295490830770202587306229315874587513365067891053915103398328143520753885256439895311951279694693971832718887457665259750545787505269924604924629498612553805509032103411951866823146591495399942019591819367078282467475809869510351336732422417610858355821396650253187559376483980448889358227692921772062698261583799269066306851734477442765203618775251344875475651354533917349009132627224538858189659513871124777155457223495801628575029448911824427668247189350219380443908353405272908363860981486579749580704731575417105618227034289374656660525338969408120090895697177019455756566058582753938098549754578445830745896956145181889650242969724625684981339396380971990735609116134438558548249763400529596980604784877485656826645792377507474270697448922079974833158223901342892257589791620445065902682053284798727304248730355187625616194733906515428293521822963773870932644821494518549653300008063492712820568862235015536538267430422983252794966053199024323117982155436826192157403338737590167169657195027327347542815382102878242256002694534715159271664945860046119130857067531739818088222101959120463615454296165720765683293553503498294725269904078595337274152401925881917779371480798333168899408747882382159315447782697954444501559704886460603107343839238717225507332808280158843850852587480729962577282103188774989277962937196950515178246709853276835868973427453599211871343125921215599366004447627063560257953485275676571940159734985260415605651694449256497953183778207406753956889300319437715458783726850703760821752524774257845800815491255505907914491340668452377802696733217912658827661432001191686341863036468333802244193393295082811293456460679852167403024782797021762647765464192763613998562284315178015684269251566582557904343384460993450059031882583542686837085731087026409545708854838419876627292912475451814210935652312719425891964482436279443346526656798872940363429939700132411214296780256166362484782184427656518802817067241935663853264355801147225110729106753670764337337503952299488493978734302199466791495079845034483695486836024873162824515618425777516245160169281940939865019678700754928319336729873457394591250152771374188345451298668387912280841646252390217141235546058845824845678034115990420340485458271478192417003968165860403708030935566706079820681420577279282230433974469959068470479132393120810372925537133227672458500947314189325038524930236882085092007894077320399507071571398905794480728674122290943757757363661618926485860388226307731606232221936444714676163981234752006426346183104726115335923817168164301781084216564327915507438607633202822309359755649019168509453445372617246293972258210581189177779777975983729536257862558380518709684454364554450388577139340431629238654569015398986587591316639600957789034082433205477344235724414387392962597968924996497674181998099159362872280531546637614100299270136719138144939721479037631897947548841738881532895963507846451605675600354690242488327489979167950130071894707381353442816306943306361248538114486166544336621055344286787742926229818211605866204054794833565868823323905164638216106798680922444813063573978028846716556288587727035851670262101393150965334902485846575412991278048401257731968562979411205255124958751965961287025661499907191580834874050804455439027691532002339345938467559962277748857008662555343161526942924305805784600750156866106583355776799573851385011989902076668161423460940152476815710326369054836669160019731836651410353431860008235565367098811124279146085125419461880514963377221616768095465388862655524177116939737462411217830263242468597780233550622253602069960448880825077975841436029233152126769987780385295584131424632807871507611922907558105655490384756988692859993969892236269847519908960725868083583965880647126263461082807700694862953235790734342232381606272037016684586723030142706762323408150281089424455281098940537685116787524823734825486985431069238354738804929734672482349584851460653089828792406969644178835675340686972193338987312886094789236484652142699964571474063553926640257026381777958588765460018036641581203374726574468504456299142897045672209483757343748647114467879951244502068486170960882239423382219331944793272995511721348037023302020721450057738618215307361123756523231364620951525545871204220298190121720818709039094883734097663944668913980553617348085473049942667948708711116929472741444768143305936109362440504394550648719734448393471466863257279019039346671215430050482313210058941488849661038993616409708308693769657292931772573341916421488639366263813837041111139239897866496225850147677693753147674889583323516244622828851142106469561025226157824866717470825847629524488247140762991298830804268983671590191586953856950342489559218307322659174094709102929869525236852120320449966508237227864983697827444903572867953410813884398411547758547496917379981417426744278724627250755402891930948698550930052530709721971190933463204332973424293725240022402771153205530176748439766426773238358208547750318979390105688777849214286932361642499285795515312519587474148625650902925158876121457482224707321723513573508311227504841166018454821864840369800609545010732239907207071324518374333781762731844905479185910752626518459084785348106116650916064846322604032675411591057560521596184542322078257829702832195549018391766037778855409827347135503852811016339437914840175533631736630521233202848901106634209291410014375969881766772970376460649168567708114451163542462177866921624314911952400981370911545350590431745110799412034362429315634009576435042181477777205766147337624595224178522428427299866396698855820181102285024705014584957845094052206161250524050276203898548053186092672630922679279771268439478751119573862032232334767861803058649603758041535779783721965041579650824747155259518022870454616977012976547615657486824785772688443380274506210364169967170562399662314914551366269799570055780475993292014030060563411196574345363951131788122947186486687416597062890427507735319744226823192222502366965632619971095548198044005774383871479418238608383734096184911445383569705529211495159059840779612042291043606318754741479543649585974785711414521864825666390757666949552321966590259735769985357351714934215858923802169858566151996886210587565852557572660950134903810382243877544592491887949636763084708057776802355190860808392996043586286593986497622720491867425907200397966602992950950964452019388445567717436812531973788787605026107839676028354576217244025892972386760088159509902510345643197902801857191798531787178051159834686810566627315268418311324317711188166893695660372394000345580001454655189093042920979513878755311570028560251304104872222408875761763271950820910619151537742625718603891146313241972865312156996106576543029240058864106066056327816619691169688294787792633028755821350361574077594858687387230843803920183227008222957092098896345285580373405284114473182762391055399115872726496965193770971582816278605686171202120658059379533847014732569378518085545692330220221773301383977064850689146954380106940337137920279713792983983307925245649974515039876090896554237699705438805529340666664200642749578533350511641035247014642735662910353837461416292412075873258903792761897525955349661180958290336533676189068256344487733380750340174483735277213672477872703287434607584024476089071035913006043700129540967909863321733312658634325458045268647176948881415517605074086264297677876866227664637361294577247746919954973094478246873276650942273260015520273886348768517966501727179520661409737961601489477498337141343538764314046930851447665510519993450273702944872865251965972985502081572672420069610953808772559519151116488899012979128949486481499589472856163398857312218124768523040704862574737450811201356951374282218543844466791797930660912712837264640209501959771258362405111599460168014423988949338221553382740251519139849161975881990568018707604969601609848278086499320138630571390465653413278884923874205411686888659597920097855626948959731864462804486212827169761998409055795189333218048854709134035743337224653880938430790099601834901939932071509933494542049900120980981643451986274788618252124385265185371617594330098869149400014972005206693971127237850814576174934806178520487510842221717966265317737529443778975336575444583933816611644477413659057200914109817305805977768080356494514572065719980747457216292766008177184800600517826119843805332383501863449037317454677545818632951157049895432378668563665079150283682865519651169948644187490965940666120762431457730885231704012602573462293259974278501469203609108665220767566249432784791332952826828070356920111048327293445807184781941151693718984467105533768480068882620909843820285606116173364713118835472162216228903917815255319023738837592851905822704130538529538395999360105461656248342224313503741524249249764238872024453174926786615614679866693808887305064821396336435561506321806290710906710499212094881581128889027620620567264164197759668105731394870896383994478721859797517776831518257428817819105742406945714985760890359168107775228981248558730163132504087333648160383709937483653539367295667717649659030079635259387216687050330163916784722604108977751623040603464027628818671826933785884263534128015798017531238488197282341767070087341738179843524360710494073722927983608903305216021303554306029765311290347151778339559675377005165766290532182364710779224200635942811307088967724225587044597027545877039030045869962642778862726375118647683897831838239321644590389976280715966234017160156193217607196471981727096874933883313926075648289977296185232206112801938746980697399226245995833529087433833901030312795389304559582063143274268644810831975110361784252990088980372743930411971671908437466584995089471058911272451897784903841050159708921687607859007041695416039794235017620939198906851251662790010803087725357983178178977691494649424190102890309361990635951110343081072138981297549276856507889060913615076393209731004254531063988405190082114045707238241399013646618018646991487841306661453876002022113611772464462152353216440395311790793617710692711683258448928933447452698678290715673099388926922480757424999534982054045129571542299363693387050881454120429996199747780317896382207661406525763842678956773432826617999436650390471848969478338657975181360949971397607855450692450978513015039441436213744346711272149572980343439267251872228338443048490496717665421658193533121151673407350742886040172273300886142763687414248657021607032743298369716146238018761029172826425998450708918644774517887209202124776562309541693709166340402039883095394941075165323260586710556131439763865217012538515008519124383982594458869005774330597362429950275458172495713399642774607090291519006852649856939518825209565680740838816260149627658170700119237674050376213882517537713066652783445535647520441910068930904728300109797696076442334721651560583596592973978336922772157971844586451558025966061994789112803904861414188818884400823515620308913615448738743735411362589286189822135627799435295416674927773766185942947289130930719115215308625847348095040934180640445600838055923974394182056540860299778132045371291559424478792638443633365418110052314070788334510564536183417249430361188213968809303852153922621076819223332443954353165313584145932617318020322954787168196449974232570033982726245328681719580258037065180309349879541803849176213528938840801249714018318900142205896276946493332704039430772788543557103854664146965854960958677545222334252325471965028495203314773541353378446179153721011062392050037135692978407425274436833779031683839777876824109451578354442278668973207558136555655376198297273153421460125661135410765915884244145920152566316064473715722464650574295479511872874758686147651160321686702443680720829423000333256079563650127815294642508027667530892727190297447861363908755360690820095932972497936850269026841403413138194296166778114955486485880223076002749471715901239468335310641678874860809741301232878411581320395821102799466469663447479008897180912881192516583027581882105045069908822960894876422638305270400521074102620720460964557912821621926182461269167902110309490819991459730569020303809288724100149068385927361313756267193474622470150479915441998366255621981067068349145042749647067113118572947422923395874399487735667599306415969318997892996369801112685899758649781839389153964566445278695771038641865998027059969694164626180852928851544692604788298023271248908461442727026588924583834049640076583678461321485076214369716867052410341088242390117029171952551078883749810579782880386225559096239992433517754628657989310392245920808093477041918199660149178289487436961086241273948325777005390662435830705900788019671797252148309219088475902824735396216779224989409960327198799501446565541443898607627590973827158287254451439976767531913887250085178806937506616249936306424101086086807121731014651898314965660184678617542387825886967713700323951055527935110623348011076551456957130798830609303271811913920930417997611334287535669834554088406630974639480812742674635740896106696626029970177220821342748261576114675207827285634824387003578379162880338952761686555640687867519548635671489393389324574669724950653801664963008579023616552483248721920668345847681788680980635347963128743671987945000095928755901388555323713565637982492069737248765977043824977954386676079969298622551457719255632641685707665746348488816354846876283476167054862813076247446734971047118484063243016739357313145525471762544129810312193300407677550955318165729234436404915586323784606475050214009825091949201544723133186901274448847263791665082237795559050819443204525175304862090399790945781848744532789249539499378678766067070726863340861382011308755169564524095453455347024100827046789847329534452789333653070616641227900437717520559018944411319293100118403308209292189491804988805575007379535541357529774999120627677771189468268228138992786008946802981239837268652492955245617349434601372249435892917258205715586102149070327670102014594853741627224455769979828502797264971499001283267959511139423759403084428812846392137092699363449205394351012391385645858606153807466939698716372601798031518306163457757911762635379353454490563485715872143853005605290557796626583356376639488078699787840651967781153409961570311951237330645967483479062352447809092013084534379266220644299396653393938174438341683010744783350473469733376889943200651755261450875229003495427769118457874825917384878976881529216564759887693086805732435851585783281136287907874747416176294777212137463589084520605474819828708362803417504852172641814855528050721681909787077895711685597380394641907598482429840407741572825267874036050520012923674715581499555939282540868002058130292030479326580585441013887365947780579048025869487976464231776336828085737700189356091472993455285284950921681857054846281906609949587459219140517953064027342278919655302714736319833343187341838267766073212216058176779250876359394157025779363078469661248380965394714718132971177914637852035294959046988262711885581141139747221644181941788365456449447637019681534945014724935174354806503504984563344614140576119487625002508928011446924083570540733095903464505255965274167882969600988484468488872337931403224080686417770039035890772472353244906647192189353095054891080868347397721585323662172994406487971130543484982913754646072425400729655380128132485211444577602784455080453691631096620764752981243566422017249770151495793686479059381609498509147570739005609241418155936032877597867527440330794436719717433936395491949090881996290641700117975759342714147763184286078128139389124514598457894766821591316183233658242161407472936606047136184110864231742460623393062649256066258343593355136682787209614371081840413505587659494062761216799999986477130375454389778667401912232600137948205057399629769671541195947478270241039452381062786083761502578226161424040554842721961168486648328836930167682828515805902560304362037843352485665953620109547980839849518207188695786704272180730247061293276934976081851728867928327714954598271677563448698776444986293627524386617389889418459725493982651910066904604940622564520664862167084265704454094360654244309600160647493011202191367319787104874537341426905407195594186479033929097630892705747266970119238937158920113600416858457443059726458494195679108091718335401860692186993962448336930993892830251747236246849711004655909378203898954357127686808281970519586252307717558798093325072393933519486063426085226744194540954312117314679586608731429212201399278029170422284957870740296948760992582639453446909058568412555189883221226117520755926893292673013439065027174915703744961524712734671660688068445193377197748555417600822189665758042033317647469448559090674173729361005285772642264811261845464249071438353260466171319227267797150101865466865526427393719069579576331849601529512524436742721942910218106124539127731946043591299794881740174673435178781932702658234603103742861716815061570601161382458735984609714918712584484002215299048860303696974802110191332078431114670374612030511969558518437149131002862332258163894824489443311158894588160183363127614493265465007379189449518831424806375442913638064478866694159933051782657902344511955143171146905452015035949715178707228040106746128026393537706484038500239537294710052372830878262523678044902554609195662241733403801765270157515934155424181210084694712440157589028411913356183389887133573128403536729906533646084657873288723695929327268917699574561340601654105798332529410788241796047241518043244159804372146358697682348280306621261794368565205805973064886855515034129087361124252404570768599038963749214257362944497885183855844724508640686255901169175173953105602148120976058425919573748984254893220903481448224769565337835994540560642085268421355499223691164444942817531313144396272287772160800788475839838484252233346431073639288033571439485402009217115320189069955807882578441789581334352226882870746336123194023778164144229565346255580036248311397505128542091733670500622548647678268372301181447480159797256527489656406098243954085773631960286083412967199534701403971026110974436360783724953942827049431490266786084685699688799364094571104508178260186760979005766637670234334214862921211908013738819058693506639765028481703943899662222563633281150018859832509307990015399559330380721793362087655581604936096778843645639544145936664213035964782269909580587670778074277574758252729069877803349832356581494242746685884980413954330154550016357574007713179684352722648585106921529587574611305861255428049627205014591898276769796487497755153276129304438105241059242851459032492701115747292362199063055224276481093923557367165126366199425856041471348834448657343673028847775171508302621307636279429076624667574505697451927039100852459844548834627383118390855413366528952430762749872815828485571743879665290234643551062162534669956474800477581470745833921218988813656475319323946414954818119119863233123986742219498200523555327021086506471842772129401031120242805614560714181706361733763245110296818624736524483485638734713698962067854550579488158917505775969077358010521488883524610774851663038300919682903262324684939627999163994099870114169536700572575131536003115083670510304295199742095253538711333262186483765937391018160036746946028227163161534749807176389793269381329107795522551003856059691584712327469794452172302598332036485943988307984579985464913895293984005923315281150465336277370137977103707162907413805368053135010509223838233307734119634917380240819595759289011626935484419695197774530657282675222679005717237705508937384421657994513109063766148763611489061542027300816007790735136360958816859048389419980367438562564125041586343501158978020986277575900263185723861051743629634451866214103084064403374191856435534667729941540639103843032770305669180563616187990136874647115827128787590045518527521552103819538496492047961956210908028250318991226930179351784294008763166432983925819210334116169695161869222812698936747654986845593522591687252800959183583062735656256493792953758400361923577331336906353370022456550258817480771559506911466424425274801275968640756064831366041511161722444049398071585885095771294625323066928765409333694477825724148763376697817116744388103699979856785236753294145033102259250181443360114855071667052133965112090672061011330729633406997972729923088741687153254680792148581522502641033812339972677577141144703625862624890506346478407247374451674088700863406966600969841797725263378074170759201287997735931577997109741094183526781569533684413758549215614632689864505679225164199832540145343885717205562643935685526436066089763055504038986161705312292003767844262197869070083244160818098018633561111549103165421139055847362703107929349652542086125412401712743836929621280405438386923577038158395776992589139846363846259812315685821185753456539685696275465904162323835214329571561366023380065805098613189974675766872614013057701015686343330721304638457803632042639334292429572538598219493801468815028554318603967182231268667607626641095894668585493141099411960010264721946253250120510469116854873714469814492860310052482245636898301251000210545835341730896776675804850121849840578253504455289355908138907735097927555341348644135872665301471157258549966491245916289608952668026804372460576730809317451987589058727576734618707407844347455791237934489492721176336938461016356100805963827092065803638129139103251620991837429254250853704205875669826165235366707261894488284557820216340084995765328966857931602960536742681099553009984484635894489238768539558748414763239453586773993494491926550476674139217335012393910547084279160319313669529576266502510407327806705686541762251285069636877290638744542863515017816782853417332730461991762876710404005951723583707192817032755942754304967462391939661945794753052809463350220990383017879670146338704970566639850265984121646564442707816927011369567957886933964212674215453039628751594186939886940351029718686120955626175192775425997042532177485800306382374026685471505471730989894353706632731193417080225947972088400427587595871541658035947268331083112163064403966880692545010199196978166009448365645503279705975963377306338620114767306092116158882255582807420913742898323951992211444497608970665380781338869022188389820466964333839418801752419538238397928155716340873812042489962564233112735389629447375514609611035051874209850744425630403057044176385274265068977187097273240616380786959701746114056100337652835872372386541619218201486696642420739477720477116546284754597450031192940146951252334123468986410637321890583046726193148624044085791705626902031592447569669829818612139504201640006900210139186473799580129122984460065879670308644551868632780930610956083015217162646135028645222851301294775342548849512658382865887617951408241028836147676761597755396948098488363591697989033449238475541648896767455580466484477545842891221500681898415521782218591473260361869593478635205473497561974810931254363353691764657567628070600938290393151536054550081793597186858863888263515523424561373459520108233783128986441604982908209205312136697200821607339793407287780816403998854115703981580512819643111362794628963327496021627541946844768068671421397842603151305423655551824798430123173764877855360398471094699309868575274389330500180012621284786949129771031573030827274220772159881199835710739582801946777562343994277487332906240379499311014647282840249406306658535846811334203732830577208183716761665734910203741598505418867993896420656739196505840180034137918325418781924173548047488356076859396933731768509628841930512709467405146662203411111676724433903660848626781335060584858318835836912990283002982665287027839856408738518862878794681524868303187401709753806900034998638377931515210891925943266213518234343871114962900709507982890872250667798681147841556708594137718327299051796145264828432853097952151691178356602826006463509452450210113172658437680372559551105779294131999337074264353076201336414027417795940126981139627552848994075941084023142116119199694039166379473808984995189311864302506899716797862143033626218043636410362840262630150014396808368615167160616565076035720657504019706968489911453672901301869704938987187307247563791559694305123869291948891761233644465865849724230463334622104879772646191949931112032233385593538546385598887005254422964306195895630242078544376201232921391512095811839890686779203385385010351766920485028621412816777265887207438383091723781263006338081517147370231111760073600120717664709041126884076168572451317369616302686430456301419395900534724483339406301369665566961829509130367179717414132032740998487248178434258595414023243062382630592834555800616998231207345354243189959475793728171400179948237208520249034046972907978841234294444642240594230424330573073576929528846001330613249408375779023968826424780673887724087471327488121117832596586215329100880609452103338379133297350195842993928699223792359709699670928463203870520636541783240125440141014334315055720471225202621838399077491010939990264465929848239355221945242160301556015791320363239148650727649336055699502585271266240820837861961790127496215901126106404233577562806310126245125124524593636483107849844593787375296077043570669555781795665509695855417957196860061438411728572352073466048423066156986790299308018633600204623141835435581388980503154016744087619767550849402152288103527547173964855378375697803498158002159414510687225751799752896411560133610190509495852044758810375813006576962492264808320708895721326200249303083478566540927446726017853716977530025468464034321419314454450391115278350299315640048849902845412569249120070126033905430822804258845114693272973471987131139357662451587641192111572334266071487700609236556648306999549371469474594005690722040953198007464919413309547948239472843405633152517737647240746227343651293721785924556555408262574003873916941306528220542832752325619342780955111214540794457762196479351331630676002628142353930409601572621525322086843266815350615687954999512898707684622251584887880252003113150134939919636309215696602968873615894594813036325921129840866266976920587211956739002166432069655478043259294916338757997914340479551062348426739327668959289974244768050345634140891332692061791360506670101146628022685884103934393774625055616570105541829663746032040636122283933452724524666991485937191254688278248838734782574275544133265448795684706402743361322031512599830416779008440079332512413169548244400660098962124373108517604874160156655086490312498670480037928218909986786773189834682213266644574452275655009854640826233868210475991800110896378326401434260897512926241694571338214393629646386385370051619916944805418495655670411207101992415259267066924427799593913584892128328157658149743701347934284744705585123523487935668538201324814315321470684305378625014419787096518333663248765851448355476668035559289013411066930597553434727177443686163493204752229587194192234590951678001820477451221814331094475886562783860610340042848431839676895200714433727813019238270935086719128675229296514730916557515876181270165678917524525578182202174621384256167759257124110044690513391450226800470516209215290918055354118762723213974223374321903089156696279525692672376600337430179932670384311797172068783442072599608096744349826936085205283813609875193901036397881097473721325063878997261833183931698655673265005863447378430923856911500839811169896193693400226945806358792238595926945972458897440541881420623052832899745945305308530827575365544178443406054647361646317660222211959773564609666113186884702745564909338249423454400103035254090781305076185362038395223933011607865592803583094187899754102572579102518610306257544547328693442432029681778426829773335712198800969720767039860039492451057715340772753246889923878708470279815109842193481551529927805581328901487715281225947831134321005388442080221134603107944242622083306743505015367062517370047113257221569262999731655015670881234011965579532958762676323883253983852627629478117039827797316081179553957611487273809909247049925075190621806801814928506185349235721085293127750514213312706533329378397381441889009050036319127619189148478888448307409869099204805260709675542464495321073821550549158081447416946462266136707722200073723765604492553621288878454045392753368127464327746423989380455943315952955935843092193151063414897478392079689012442329640683659884096282142579412901223245586117583096063193929440233810788093637328047112516451582202963056708758669367907800614845676853007751877137889718352262757979713862512867367936911191167819223070615679954626211048240832106799319429749988096419229840982754909269885204769673649645711263983832159336857653624682337439987192350890391037520890916440189557869351727338949695834104879278032812657072944016341217091561486393800020889711958239440732469159532328569027035140483724407044652652799322035015478370811282314234533659780489430258514921066379704701662947501785246538533133714336071226716002897141655706631326362354780818480244817638808631747708229646044491199717902268931737958722742471227604373481460075233639128972918249278379245065866804493274179761389242674340086802671558016771780483585156661244918364465536540217891474257608156409101036688897513915497527483347046474717357348643185083504534944346300997716723023991191625349353440001058346125397896514496340139806776827867437854395331336919483764252423479270230245192417329163474029282809559000499572079442654224436693947218358627917564925856071684960730406789949524127154544782334337442692878042667699163737358137934918729580607762054333829953756532696428615449395617767652984018913434181172324018963324855750347905688414353839722368050826444440929390744865618273520132926394290111907174270101925982035948235110569145707612693352547065396079445247152627301568720279381800379402925065901536473985742910523962790546568071501568893418311496101722699711110617772435787506695134112605067429113889923649535349037227529885653761718474978866719430213392327593672220592278961344165793722071395212990202378612250363772775048364290013931474373677133388898926965194868615846427151087293210534911594164518722331766385804081175721477662663001976203116231485391194617431405391646629309907896695355616431682745127072653432620468052868976732952336115513401080302772306272197865572887249433427702098548516243476574633616845882409731936143933763937228535959664597615167573591672532366283119926303946568469569667479838144286090790509854758642060442283719133069087883682905369749758482579852535372622713641031392641061799243883565122056580747424705835413946016364435781576403027082671221421294491439881281139317249772897443411672572455697098764286164538007166128425134631703432469580235071848449179430991917969886513104889529020274994872810869204996093169500978091794117980311554508861569233213297986310741117729417100365382574780614961771702837221637011325588876720167779772058027094517778879414180373296772778663294277662887928642256661175213842682650147712109251383732088971328127477241108762913180908361314330763802153508986336667414510240258486335243510734348412923922889581680123815305174226595763350890617515247173945541231350293111316735349367156624261313042090444035040905534953721941571338448489075090313436867544297437678989163405011689307654896965901013018341294564447392341597770722009476644519575756139996902169007454144514197485880127937150526439094746072029152371538261164210847823938699813737520520260045149477344823938506924146875997663695635187062643126758380565148717325279289988861206191354036052512138263704073569064195583379715579029946532863550147575977698170292696985050811710543015604184637059872107554542422478680400351626008026589697269481056568907548494379710119943760512703019885610973802277275162937389502662175822732870560755456177554980982723162292966064403845870534473825578339939267823817770016358839681387037901814122292068424145689870176758365927178233140889701337043051305955108441978217388138870953086393710848300742541853939310719273813953414450402314896175038342368298436479774922564083499273367183025336782716413946577177399092703719737061485682998453036386675954419692368072593243618157138086506569078803227458436055718738973777607585854168043444223968882050502075087988325779861513391744898925447480841838631905983001030473515541499574752482485122815005214559723048981208483013907360606302089488247327564862558152142460252494947477545279083151984797572480612984419131354925533483870671613053638663945196310698727306550487090381175399721328766331412864374713448625577791807423565966415111778450871901385301808787090529069375295835431855972310291361362541748016229096281526238117538554890592478739205697713748772815242216488562558419647194241598253370292226522117260418725197105004351268731280612518256814908994421427398014310490759313033268861821508192632239299265304138452251020090071912143413089036247555325366114395530417341999343996691351736086385014096024929017778275173883031012757913213125760989781100115763257265107521522588452714649162081019347892131281914617585883894910192779632877257341879278048410199665073290278410536949341367545619119681423288406369161236119983238333731385753591425755700510264100318674525426850350409451781523259064823700232585567022947176621489922104057473271894541819577545723851604525663348896621236278810094812266379059366724528980988597910621375175976840805204930833621944920390986660147557840178721381537774966024331764752861677817467038244243348813782908692845467509855458890607272913162291869558736536860497713339617844574241911721915675681249321320533847908474751105441089934170128973000357879500905498475206983071663955165798298667521317748710711682877779079378080109443416513641399678221252351888470372805657686105231630019234735302273625128471226461380340410570269126252601400189031698846341704592732696783750233281855851509401723535434219700173830882475130836544676749185111394276556258015271797779473706804916823300511611075270924414451227187474458821777755332999879012221290204388220189544995227396655902652381218083942976712800915105126340153228147570651153250212462629427347360064357895548883181378310978375616900061682914816930209849940506186894196167075405012935478610770742122150300824713485794524782561036528239514208793165269492820786200226411289140723846113270195591212402385219392002948584985913144713678083012870413746615276540618577853884374868582513487926556340030839766499642950511490076426633809836644356154833644465153652466119762111483325812707238728039212393320469715763409703482322495594720481771570062310015296806965133402957597436433510334716361780450099853470079621731827334404520143148857999755887730496993023437526696845452951508727247929641020767628298986211955907438795507187183808311298359528359431605665865278124444492164034730109225664707278585257074239620019382865237928765272471795214381778951480915392966456495591500162932350020805095795939383161446102034276798282802218865006874498127680029721246057259574130269730703667899149417371625638123089941144640719277376578174782703419046435365955377417851399483381137085810896655996300409756154455662040993309971586721343164749683865502038002482537260612702423899755162223995972903855113352822427832963228548957962954754396847884458472527755482387702436537509291602786869013456813765572678445357013914243854468127676458283931200357540973952933228584978069237063215491395649423706455620190128000485135364541045182694924982680966356848950690339549113518611797985665746275916567621255196888130050435928414022862669299632825537584387904366861169607125186978580277956112201089062860036204713959806682517202902141419726766922951564845575918396360466005526975831905511895360286126845749969409310905180459243850137752250731027360074675843339460352904568819669212010476938420400189337471037035566738950225606295259246417531080045950484785687821933918366699862239614865893095457458731025453326556154825911090915867022165253061906651043642523650654719431769530167882835573212995221162608447122076671471161291463375755264737735254275460248519345675117352297145342348430438174047456258240948365642333702782537314851719168573863570711419159896421729508655034484422928317514052918248225647367239895699791732363877036946972261879215061641092380167200028794739092246814006530551901996515289366419805747556979517202554892744971923426723981868449802923037069980884414561499193119491908890266350515010025496769647982312240061080239837808063014043356085197817689285914683744688403738336200461734910351933339076505294787731956207037142797700563694418347047167528443151194447811171085154944331903457299681115519928853690261966822300660232027595474888411955263193464751946039599758509660553152977580837274973084785760198446243560225888920490096819865391355751706116455361410859292485007511702189878674385423900429023608967408769771754950976306465819289080863115850267345081515339494013552878460551674932766901168415574658889820262630243829915156083395269862305621237884622037771742544587927393008297174951455617770760309000434759797509200849386067606988949874986934986610824677191323318048561248003189202143364166619443006882483573313731701285598886663228883357020561931795306320124630644288543033454707501432251277128673014276646445940650571932658334252641290451811541814081660667385782470658119987435263897407679996358105237245620739558698647939547946763326996955450618207569596676173211858775437669676239439035573336829809797259035426744981979744257826823695080552989417042877954271215965490336161506357659437567642993253304372724084652591940012602741509479863778118443442705564444343609274295465102949111318291224009670188155516745799668987430644944640370503244336466283792239598923115727488842457832967412731238345334522202343781296014526151965877153824677214001929591381249889430159812040954913168468438533271988780926187368922096941072098878317743800488829595041175196941957613441008574765658113707386410058683568417872542438487036160115750799944224985195580479052648040065659416162228620280814498100433073556706477310297544647466330407602897580089971576603077412888682911531144748118880724932525297350092857723343837900423875001092063634515373901129420108404219554994285704910748056858667569140126436467348942612445433489046058325921492894142234926155548666389071047897317212480982580677268581344650647557036408122864681703741826300288727380709503368053571691088190695107736999246275050288712121669907401576972718700640928444832316343547473658505365576855746024351141346212953355014600389472203893148115747086396668485241750424502279293026653697699236758086461352743430344103918063125726788523777052847730687301391547133676984430728897696286822934069047667397436368907836428109180356205618056505838914174270303528995720237914610074224668905909672041201382957565680037611057905924577569696072671862235060166891642320142686233153782480894993481950032239503615660748610324739112419608223053362004228073929279452565085521407920130139292245692981293458868083211981373485309473048078166932160202729028979798234856612979196315501960448810445508642700413252260103601890759324207302646055506977657933945452053529607548511447226991191903448542070230193181635742546345961104872440498210452071534310834450382751141658412060911143792305773406834303061960699961353839825920779025417745890943208386059013897154167802258728466697333402173419622959102996639159189511224302592542731822707155251425099490209475392435832867343470767557191664846555751372626014690836091077283084775386383203973363820590712198655813824654626664166002395162620792292157905779935868693807324495603588833713020294454135420159496494692462712919077920562152963427319716685511420380762050439034695616210981851194521538143870962895103545407077096921384922712813624842783574590212539893862017902014884235904715206421467708440638325133687166985718677510551287963452341146401146310494569362273214720203817699543135417058999107388325991639296061767762924259701546706994343640713546380432230512459324303290259947816430510829813223770599573069317039689288190414519742126792508971125899932927485806246688001135023332092127933765941834303181918758438330343907106774105524793719197702957753464712023279391058383058186110035931897105380834935038188630995575509678590891109785898700474502721795412481802516919383864624580774222625429859575006875424314485477188467017437203011395107588479253304040984617117301710024871835539983436307532024149056033555719972211304641112100872809816596109597221382976785156989161978058807854944081257093418950498013839523896601579690496812055093869969303294951775032488381861318493939280710429244031795353217746075771779763861809864361643189482951820136114945375077437669195746821637257278166475000576158953900404065521741436586370369127711108112109095667835390927535732392169920925079853586102764828097785662814514157725517456165128478056041121795756268148926443301282719283762947962904130324509924602775927422425680713805767197058101280795033854187076791813195465657115411384053358250330469890579274898778659019916400100491968181353068844146898083686059640538056245220267421113210645176030245756097940226697304904423852259929555577655499444278157597645578348795454240312251668693560438775274420376946738938758257971208777535936393559475616942846291842865376722094064552676574648102870078525333631859386094697410920996137558009328472868731724962880746619492614193403792091802106252634236647780724415941294311713566626280614628233384088095127153327999208730260813058969025090477619098632942349112783083402738778829820591399698432265105515628370343959241108139609981110641650749916297135599547353341251137136832125838629782580845377531647743556533084002386777261885034476420688770815525822958988430558764109226517121623761606643104119157133553410552465744818426336895654969659392100980205020082504619271983012978477610655892840245522244745760216156150796254356158854135246136385378482591427322283853471147196056595311096415927869578629113780702164361657809062037626364776379271841515019058567370805903254320651946833357064780997801206898303184288494651021247502541273908353340773871219723100332212280969088910153252111914359438935345742137556691055608306459949542888963807157562492351020432231003709660677402284909566077251944705014860687013749161474137076363416750995293747365441398019083791718645568439690574728489341716950586739024695056011261753033022966172203447536531587243853787030068835941523563746401719345990652967768938814701237294159945280733233860578432636800693209785023966833613391484805518676418117071391539301590344428491815857283199809342736455583911145418280144342321598257281360842742808484735281501758593501441388225121687070912648042930483253809503552961164054766810232287213348095342512316050131711131471663480309269740535805977686306477407270014810334344182809152698211858348114845891909759545943685505745154866797532484960201359568713974261276968990151174282025798160855087872119451312781061277245654098312162358748514586264075934344805130055358732202974573334109736237815173296931506290062747757220185923310033524305759831754863925842958139161147529931709517446152382885449202293227156490564517358669620909878058034950675221688220179095699775401099281167131114368253472460068163809071323395809562975035015759228588281519294982772698197676325033663120591078306256965675793316793555097447731251932340890467271314889058469122746743942241599854188643285075540328669879814165442923208551633633383482962598902648221546891765298858686445408403353003993756858644764470548831229749471758012873757088602993734372628931817696862682309184919409851689551014511763306623325217880175348967109737179030476292680628671556442696922559605772617585215364708803645919210162454567359961905761184190951860518720603411201922124466398193358886764962532150085323777190547191741955712246444414956294003619185425362012653194337988599148086872598713644915370335385923836662673897861392619480926933762323917203015614160558452826245552496485842932301373105948714556407633770510751667747074409613768011362845597980027692037667397575511149010152640602365706897072085272404381058865953549762935258644136161190480819454796253861478275311775197788097998125393996383902196532587989237685003919137022204970296154063749938978257330315333602124264003705847261279185038902992328472799176190716619734630316336770889613784221256242594988996635471805049513679919286383591242825639584963126598489722272102571095450970038453846604218248076472638749577658968445729344269719692550199394248762051882413135040211281344489133096141821202564905627826031405895384915428667083920456009314178760619998699708181053912530955393401727191717803401103867481627238616303973067534329745359847803957885515875779405569130272952079451714830698181660771577284130435478407042418038826145277428707830562664082130190372066375410395891489725488435268658014019172464456036730267631946555750333700269089471976538789161929260486700193977166360245259727389699485933407115176034113897896298639515041439711244618669743055176506076393076262951878097294615598905402193704522028022923510048443020491871352963792795170569584450131379131351867092878243423111076067402665059918193782166170076770796822845434007226925267464840001721691935656943523284481156412709247686062372642777596660154007517305893389220259927496054333001379185291020515198156467929235111228215515200181496211163125896390122883623985723480848464565946467938965230567094399036531801678670530844477765998763594818124530445035933121827073801874476146250603686650073029617020302063630786253274180476831450162560940739600807333645799905170586804789219914272315910468502855515412433182758017457848365081733110985448288995799647492813026349291823542911002526049412820298953673601767295597178441496901628688009804609753891303887044996371841697021497088049419721497877760911835017643291977168363239484790342250059158571778349692480502277242317245204542740025432108501836725251375485431642497128228903756594179320349976866084054370940397140649211922980417747086918907548546221364186312427251186347923016310589195469001442079192398506542053237563078747737343303499334826285295059415133087706997622297312629959191801154224960602049254003639849033948477722844374845278639100238425094143133717575159819329147646135062944876104471535706749976442038165903141996989545131039468891725967328946470222762852186832022269754048084809654939078667388267440263262369224817706769377854683445467808989349933967462537342955530696312714487806113611798351948221440308325621598977827214971840563005144268711174239649066215543003869173223173867385366657578653466113007182509887689019940494189962996903146431372868936737312003590553072732668410370775198023186592067824606502719351696576833335328690932400632508242186534966955383834704817452813075354433357525256472377137318475364692372338003450466006173294817721079224558533291330875516785870456909294830502005534906156851254546886241008774581325383268741377348308989953501782088370379699967406427963889110786982349428331897936041814121287322269113266241978909455065450532050456220658026808640310888838134595940654931747444429653044865552291577641832979193577092868445482959932051066637746546804235533381711167149574099860121421337066913479314134064479811258430512003571991562927297473024674000465785606632711341455409010915234968066730478435820460033134254523253015434288366109781921470867981488221219995185841791239472397799090009973581906868311340883333088420022529462255722449654193872084191721847821996087399592357096725729829438823980629781327813961207273195504999636509321850586901158178988182913071245562671416693304135197883020747302407484078612803153430937935824740919656000084694073728101963890796376481857363590338392982118512173178348613690716599775114155642796751048704548093276515443043193888463129215475626508270674351350870807617642282450561765749078347009934170019973170391436407467710824811693338941449265373772519893873086767911589921731631307222948939759339303374005454712852148399229347124403830648295453152295050190894094790833292408102279474875715891169601914328174975686091150424897280494480813287767841597897050957405528371776809413691197105015637596960762628972438106771698092343588942696433566654815759101799320281732247066281072088939749678015838756014459323569478056829394751666954395025043990568699927872043038205456841721229963093117719468132690826060226501524705676006633906913082352649165284043763558595968649645543267139500733160080934705384144019027376754795477301271501449089818094521296821855312217059905815228165916915445296320072591176113092936848431371365054605290574403042353738536476662939623602229798396688512552832953761823718910097488040015110135907892909664272754984755935410534632303884705274112249915211593422652128488122188968677018805080417060946601966259436042829820758154834053108661310920815134073386786524202976985292308070714540947050844557462999526616406617485843526152650332612114006919124385981295705167326340212175074424719715273506961536483288689245748874803669993962259630390515189595141879460529264018227219872867614064104710243921214842871928068978398941632607779881206097245766147834196589919208650193510334392178056114208560371440273632815644574414221638219724269860593036999279273418599896144990729796577643467461050713654380696591995699512035414847013741938413062562905728474708464145972954521905901489113099125440557506547091948206463567820923021424017745030321128668169811169259194735474831967545912259091274590455180430581381025684358282247829148809528097394620368275690077967001602721021781764778173419567432365296014775933574571597088829658099632249226058186809284033617374488641162166718078746844711979402198050573838820099072074409131989305428698208920282867283659364647952274656837156074137457539780870461511396128718909120818229828601029211641241379630848558626083068491676896295778246075326686852327370883582217589737639847996809124500543720143498695827563443382212139258244228411347219225715177643645191136238779786325505116945325207617154427659146565395189690276997418242812271194675354002373003936118812631232254631207070748872819307513605420991168451991511945185801019251002960075135631502671132797324487783355919286204117530251889208853724838961175873201435124752207957891627930606205173030818279194416803881123938697700120855039771605433852111848496619614931181989692048463293102837507996893518140123325480485149079252702888760882416118910989426459148665577078069292623431660097955411365322705402659237962634346467010218414556176118578946791068832070183494347948325306115010289276654238040594991493552742187628686548942922651930334545292542897122376605314665145943124343766630525344685893241493910055297183889245259531320637116926897129566165752475595752497079822928102214216857391743514215962649286172145285672074354319921441721797389082254155325458455350331326470988112884312850340572192875195356469401635927354492604716013056990793783908344119279503682621718584853221924260456495472222084582881519114513508420105692435376015309419073088310800845300301627700740304930084793009093559621060039506008485503300218355602015613775362915779296921253119952124808521150346818403931351601381035146577627836666133701885210358411544134850199930637186429560830936097246466218408633848167746379259506052669805963192087810329062163561801364755063047119148165992079375567641852304092801613732500742310948561070686101667309725999068068537044349239299671449013006944557581458378215409543452323723910479745483479779490161321874160284810036925769616605520394606888114615348208733864775683700167926767822017491779311485419246711966550342325321113064210212383116663710187434465962430390605993826571597624709108079167645300634244097885398644687359838561505617952379009249329503356789380333332625581301867651934431444576075857122333276552631984018677315233787458152870877472749794601432917124106056948060512148848116312655229213038061992072016627962871207721628786816632283990353981501872316230522129529014357315575576001373992862517789956496568742014487695401241002910692648822318422934159208556507934309239373081949351898966175147058903588549165791239088111428850069456964612193826906193960978740667665193370606413973896503781227600032333529008409539052759653022653447865791930416771030318885275479322267113396759490774625063025167078935473032286805155563764045719776570562766421573490358829887442143817206440099124991276457233661648375581568551222087159477262707901044183042493427721497965731707867216913858188772475746947700546231173282760171377266811592963384866261557942789080635485255112440358557811898208747133546058404914929566404757061206730443061402467530686911487223724749792795964581779421750948320761849052241985078122010475429057206145960770757278190828911046235402407509032365363080764736246325116240932832027920592880536175115431166495425904013971151225500839759316354906033226876624406118575794328795744378298519554387440179145506740514006049151462326396300825893738367673438713644179661903615886819021816091855509818652910190865204308108710512599171287075164583965148555516192041531775694323145764860638265317820188798012072128761133254229569209240473498551573999187509154137839810552799662868230048050819539680261352948046297935902049557723491595047541595692171380071669982607351712805351678778151082563965599203134086104332878495165449638767277841513703833546959232036157997962598466952022546843448813100642455027477687285035204200341977408769702826226705291971682587690156768250519690090646419620085475046201657878027979941447837307045338599929341508548495995617482149973925658000816446551750733521343749851422172178919209308603682490987926093042055537991680347866537397634709842441306945874500504684467406271026660289143884152617391460508994999845687602290635997921147666349168335096138915303028226392134696159283614534123169576885291506294618781148336578923824391214341264797237189776609603089895820380548356943101415325783947042013803401888770961453860480664628625495273247144127618463874847394238737006749246862222839708531709555258826989708229381947029855918770914057754750464789044081899314275891551825983340517863354899719796689599326392455634810205055022505945032086371953980410721857859578541247547625926365020889413199120895315937366400705376661092063543677738880452997692508027738927141993147961659906865779105705492188192674846783674393005232252221794754508626299609886214288451759522125539557279853786142132269142859255514424956198972815835340682742993575126527801346672607823736942854303794999011295067273574949984354829760654391083819329186785378597600772860164116745653745263067011316083460076882447376011772532246969656132901169159710407179035372811224327346365421890479159204336150488729022003841442715590957169380358945075691070060443865705494345844525502404751114007828265996580090227584351330166093254416734163408604155664689690387179621860047375760404743260134143376162908393883162428835747531427666548500349768153623557276541273736322744992087939369234956878036422805441456879430673628512939228674248323027339109050118403609582943143307291433514410527949209225427221475994556967624558633499883113864448071472194266189027189571467263219540691002628460639734935990105284824361341072393655880916616116632010427750489540648248381836474802909808597213409605615486245000394836943784413235569399494585500863322145014214887088029220475668728283202490376741400105896006588192148216424856303253117770309126531871317363335198131368263305758278944452459276305928993150519351045789892356169872474849363231326236951533236160006148075451467829980117401181582905389870202675222906011044609700921847285189855018530455064657654318779419099042569490456909056000237536529922154107840465485416048724774635665858494351116364555295326864492412166306093330057391873646342513418528174665402173378820848489918939195260487414421741452444188487964401598590334255090145440067108604919840929745844533605280918838663359679725446273281847032597021789604939329291523580773834068103749029293290413449231337997231973857113540578977324491408088367051922153193993842950994871120809313041855801319996916583424235582104210082989703439189106612243767817064494097267447493039215077307768219723287335255821714429901782261885926548008474261169637683032710475308389671808505571626113603221453443988013919605281078955590918386890227896640456814051815290696555190713178185747448610395959440683609556974082603064061224382539290555666062457605349216653618879691183303725953943942319290074463687534409884272664136334500369267306955261090174730946434789532780996904759777757701994627963755600047849151924754676392209132348989805001359595685162369136889279118943000836209552068160457414788220370558542008407774586653843898650992287975617935670557831113096840573380865984370730927792600575855773223400560036511161049699035887688925041914116668833278945851124390647463397620435858981934553113956571835443570317727027598156348608110915289268660886150697287341140956968709253362670661294092756897118227155911645803832156916763052843721433541604961496201087351723272610715873060417432231495205940644591423111561240414728533412922325456382438696542968075199888951838509980227869267202990969441296549600775750569958068151754455195991891280995595772597029414181249144491643383208132949969538634325793722304818665489009443144175527468653087986288664135733862720937364809755725051506621003492175005425543893165649046858678761528366086971123036902024838528257590431100067856283422235772868856961753944262814018283469566861478332767945112611236868209739138675035470606551477800531745112927489501464945432907516019941552709081797749693201161513606332539088750270853367782877581793356051555337851862695101495010705357329581845687108352366668031572802593155198195767422689732656551722182054741959122693843429656357908238039145632351040307052652757050221305161711364199494786708712065191541551695305547608444223624288625913098569956988664252912104640630062520917308637048903499422246632236719553423496349403025491516302283181171888801900232374504216156619698903729190709147513936231819992743450243772608831001775258898271463322706606826943004405542532997404070648426978244527648297605315037714527801050756348832745827269445695767150044294461663322800096601339786811633666554719458918215429948698795332881150782171631516245758924792951804072302943527831253321504602968819976510278203232769066067182782256332863381108051887644927702154403543379819917465754307773069743253531985912484025924139149483197372108729663105924106966234588265161479712226487402656423034424604629496662182276957013527264075451154587719333233015421118526494214160202048724635867309340220584973460006192351545592227669563515936123749688722393836506073801872026350102371913604393359048922361137980731389688219441070646234017884247150615811806475010772220112680416629620398168407428801004477454760060486155959785107468501702324441796896681958962801562430361985755748033196463929646720505287411191298775866673648188519674833489376924310823281901549534421570089373781948167103531191769083974064209286078222399611211694146099530646062176521059990279202462179210228510792922859022659817176343984590511229692533709464703513064991143041558509973324969162755679233940694366062862522082221517716261849479923934798761165945403256295983504702145028917148558391642950862416841205354996069179075717031122824108184134843836335224724579935285123855801558096760231450631667246484476347649882488050312449871047607222498023465511543110774723930396032516347178027730623143848083232431130000289570938148519601726783862064078919530139440046258171127435729892962136190168777879950103441574131038543594970641628974778699952929594099971225158542831776701827060086106599151097237483776621982731061049229340592418978163129506053574659812561734118631252585920493148129378561418425161301855398644317800531974386106586761872328108009679235408603944073874568050450458068840032512991629875974983800562101034884991935755020277445451559889684437475691284294040538291412862072825108040889686100108849430898331611093586676803454499841382885540164282509265998238158965101572231057177317494055051261828887439965602662340411008372731966392310543802753816918217005202796790180122856583486104372506256376191117169623749986329818018471546034580842116901483894373551521192440388181220708007690816672248226353394338156701798037308386817968554588001880644586291881986728376987930272790660072037127429946012858398317290413211528451996447421872249749106231960990433156224151254720885226244178304824416411248161619578310332237653622718847835563681866756161702373939431420886818972718925597735098810975905650834422792851261297730299705479069632019773159260855302062224364020603632966679712181979964155227411338709880302871994093511559682797333207656977453412802952505810347386827240856218604778189146412322813739282187460694838350653117346367527201553056667946117960769677903156088472984705809665025211545205421027844558904340905121987630447351846696474333587479675729796696624676325756624275985204427047876835380670279872406008547752372853553181347962629257294206145306195077869456005637458071886284102023964026722825601428490125944899957563746682558443294391689605927630805916842823794397493206931240938025946347747784275042697211671998069515172725151023567928212469343574339590209474862003256381154405952338479467793256035202252600646019500747208950528347132928804448557068532558335394454753150979913452187457888657817270540771616786000408165211586875541394132884296128260434489290216627502480031601281777354918405156086460640074521965591334078671465481127430270375338608037929533095167794137074043422322557698255212921060478967894886278387898573082131159024599448556568355601818055924149825317473547737125890666891939993034896228882454055995854679045893652805477182722439801865237507212130340983968888721335232563064465601567734926095569412685956521102131502161359968114032941217247211407098019085246497032785497919362286335616688651727190675320093481382870363669681107372092121291238686414749765105807957511544823237548192572277555900109688012751713565198042432662865555465098319125308548249845072946536322306522841120585484247586942978934124081687904334688607764512702311763431387519095755072481529647091828136649734268633604864493998342023956103833398358373363210696363429340399205970951671697783783259016908050122215616293671260051093136471352427367516538153968814822389213978964234403599365424488415583748157268954390885410671535688092604427138070071843736783815292209602275280610987194278563396275569340236974504368092273041440921918660515901614776698097971666691662844267035339147434120160070956601605956413096730119049633395384578380322759392859304155306097823601927089041206433474809488503193231178756665837235569268684910032390481805075479837297975405969755872193377744917749509934352688068209589697534534657584724881319732231428414297403626531028452950901584998952589945494563679270981509223167096509205751654097659579674220279662247221962470456942518358991782336573212462086528728680636248722914823877698314048878715242650372820729285390983951885131402228120933530141312371613494385387166715859769348276605187559487831952937847553510287434754316877469412032447848383904917246304080030496848221246952706013258059429377502083706489019338499784949558036225283189397332020745864135800163441016167453698101509472622728486746836251471505178866775534293435016131962523183259011281967107531209749724641113070976301621592403050466763420103962957979346225702846726731406304585039905117859033262399109507315072474562755566199907245586776176606787218594360866188719532045332273186437104777974578912151404630890178476459293255951092434513110106045402434755756106900148954151569433496695142517108584205350830998880221119929312371881900572315308967850721653569676901392163335146809577473450298769325471880203932222447020106701393912234845377932097971582345987836475332382471286049904919493955695266679177766175977760090318552447739305301842325774290885087912534882939434792273301501698143323041502967143493940805831169042929015192631612756420325949838365538206435668779088155190351949842677714354431017351997597213322137026752869146564576348538979155460205488604731059308160886866898729646852662234244193594141940506505938611712574178456458285261060216968685664855792240292442544991288251502449896845129930007158456964205422063424545730371314879466196417847402052517320688386497018260853851091498121596154273629542848719262154440778754791317379843491569248770922002062180937519161169298823232709374167035865064618273535584988761684414643370975295379999343859179999834170319154006073817799736015822245279755641388945087481284504832056244002743271521667123168318342356234525745204069431398185637948577651376694190608343284134630926935276409187605721365188142011838852443255933252968661201548727621983041601500836292230710095303176632468891225531567107547690605707894765940226758512582970409815061741928333603240049503521127828503693403700574080830916669429125193378973255625217378947038867804779644405276480584496414733106123469977474910272447484998021145005292634467858810118763641511713245188852037096051829131198731212641031567759479059396745915031799889508850492046891499316946893313457346569222480194988002619504363916046326516169862219172026007658766005884074944861119858703931227994626469482894535757137960119698273460325491214270658104733026201005340378516483981546651289028689382583138888946848315478203413558979351793708095072538912413229066600602620011053007932797075886577044774162707758801518585991510130594335334524653659702530231818909914789904251452017971031253488779896236466615495414521004078954629313265842731873009264308011769337615454061702103861399319468051680467544928030677120931686107582866156114580380404463112408567574830003611797480498452651502601244941003275401272344977751894159800250726528579923654902687666202319730878864511074692432313209503911511380570388735946930312918919012490282157777821730056334692463944165610265465261664615093828176743726139067752001714078493163265979777517955078835485615376203586832060193478282146414106111535232186172564124855685172052223726683563080739546000127118754561787465736981497855471867046346048906559207408477461258610515463330585042317353954715759160379081396193869495810054101459180680534296564343486341889698318673471496607217067791330716387937875800914528553249912935526215428617601083625083024053614030803683638227422792797319152213535581304327873106481728238579579224174656248988547744497899819992751161917007766476812941524134922596009832067270176329634998637781797285233419952701381393431443548766745394846671133423074522044320658503291858831130955640961273200365470227675866917447255304549632652283187790123940953059374454467545648963375499978996904465997018048356940714273814031098812531967734052346141473172162250051398408259815973820824335014485943409685032971457398029316547322256448596090929272256395689251747556213246312525749305153709552513525145893615222739272676996181929045864752915402540247895347807639724843564501414017639774592357336999711215631714660931911857897812654463402944760058499272095413473381071721802210663370885680674342273548790814671266847142333920053741844251813278993306468520563179758356354387467524566001807440577946394720465698134155740897513730498278090534861359070272557484207221392428037841227769879853415793866136450044949015031771172725849244989392852181308870141553021887665167795369091186127058795035864314837688595580311786407628153277691057483408298689360435211369472736830607559694717167041862267218458988559084711872298914734006345740620616361533669260716120459359127192435969267140159045787115568007986037734217507499876359210286929887389981587746769918611866057789085269212769535485258344062846665173774368233165805381200663617516837719077023030228652084343426391854239420741817308199405849399823820365601307805366146241550198551944799631283784573354027624419262677906216439137377191542287792687745245545790861263589311934246492455822317376578296922742649306338069149186728469153699021684684181000904098323495423918493810577814185338419993297998393762200104862216815469532545091478318032346442777385746444017312161378450946557843706032088643953320069534115035663296829772670478717904534089232421756772524508260545437502222597433282491541862122492483319006908136543217338390449325078270766146426562706880700751224421351066301136350786487907447841420670394353716330208737400233283748937277254391027158192243882226055793842540042378379755166202388133493427134044649482151441005000806183032535908030673591692313618765391175396308027594105043939908274643750578790463427264244549676108151652857110154306824292389259720546148081545145440476877193394686409725668745024398828270240719573527631770623390363215946822863984442861638400302595229696154771249019132706718361830268137341854432838084985374459179551946355501411752314379416653215722950610366073136521616566078508950065382023325614147482426188922587892009610085076506655452595431151949843966783414542734916286098343852279725025756290120980034831993932399999564595206915360779449968048725363454654455512068548773367734814441039153262515565281294389650746394417329787637389356105316398783855326232680984444227551319004372872534338714092078147316439090681089038045974518999001686162197941551163874366522931177644231484252424226202292258873308004151053406480845962328110932080220083682382955690568791113817034876842345333906506637898144147754419102438570413415527645610682252105527979778479547728528023175136240920431857396719576912639394804782346927475078735237338450467322878942654454107323646567091529385327709953209839163594171517660211801079437369575492816143727758827933219469815418089083249789713756829096435997453248174590272529852094532661994024756256586660155809176042389466909215463949211093085663124053788577195250392749667509418528031518125230898734455821939934351792019409495633031169558551296932336097610988710009071835404898845258393944536669042195588425097860084627632022280520474165516625109821608708615476275262387097847165579038357380413041759606940140514073951554149611113295273212456097113747049249136898162059651888074631094826415480721532260559607077991321332153741147321566622695767930090124041208581212897506252258979230579889062183572883100915174018878927786752677813481447179679867613027374820134988810352399169802783923864778401462665828959157935438164512264741852106517042662484382413727698161730471632352386691755088205630155867910610191250997619219537622035618380511603160170949060777364232597413827564722571079299751634821646708006603754016756441679538820457138710002167723228354477440361026621125841311768616914308375165841462978343395270570901745910385971891856381512994230388144903946224715960173531735794244499268594077879604633947883659831211330380937864112280992041337707068248558651489389440192409012246749978927193425991228258959812135689813702529049147088635417167576976200898069713869495821133400864296473073483296915620531023398978750952910307326096317835535380767209859307169969657173891733755751050026984880549918921608186602288783114574928785890157747761370059739146014396208971079808054538886853889916324924943987834341734250832919689859856674639350437474786109595352805082659741360925816654645791565085839643402673314037600024352916939260795941927887847686355801649043537659879386730931021332771196454941625779157187656501827139738234048622939862523581403587174248061370856523845175417209970027047046880003212606781744444268785493706061045069233093664841225426211346360614739971247628907147348107904664803082617932206283546318472948664121351755894384238525886501397413000361828723050758969064118711384449680345218557358016709737007972330825825210040247057605675336716077530214824565621597503631429061890583499965635085917897896036853637396949016693879600082552212322461053994836028587339710700219603563934398222492794273035944335697410087993005930382048532204154561197498975081607737353597645592901698781273670120209580869316589076733770336343825744932353176251452980422180286719644756125558401677182816451904215651616788824260678566537595027963539584731882214293116239426192388073771829331683941044523335981912575457750345649192282236189188847266460329312139776136346068910750211011886409921974530629556627402834098042144393869087199820431508187823811112602372817017972039497534143980061881980082238062814176274525486376846355047049314660739392233808656873256358034311491147816515081514429580785470657536064850619636623519291174579245298009113383136892803320096665895401069013897154293468112244955568532169704607240092071344031805041755206932834005998036139043869614831542373155263060709027527641067270340789115783756590630740474565255331720574008687684440652989896356640415631244216043844934950498875901798775929813324525847200939673123259034707272422750427221730528661770782064952055768959974914179558303536678166234767307731983984858268797193905681052183883225213737733552915677017637520524650485975845869527599840380348218490516017401029602865493023323768690396318497072343821635589272264889428468749637759794012437229576675665393578961874258837626820635548970138097875540871721856005591594192039959093818263888476482260527203699142152945223973323791462886559569626532572542386314937770180974814679839393179212295004495140169066048979114932101108050305837037432591127954430131006219852521630705364790916190897378052818328791208376425752286177528792051319299098240214171906108800846616919749714730709252958125582152231199640690787401204877673436965438937290049703851750157453578080435149172191063930140750511554292788951892135382032087621187461368993515274383271760948295750343071706407851863789007334494540014142423058568582191768945631317001967678303977211642570148449800062359450110180190409936688912530498391180355528954433410437598417644386030855317451350424869688621590725131448507374411171638209647959559797953330476080655368632107944596337492915274353424511930643266224147162516821677000430549888668690623051635632927513371111911445909260201951161388610007940307808883282168007148053257210149349695990579803318027025470712971345523697689657723751356439705206580874497655634992078940539590054794916736062702037223026786008539369519550769300408613308102783784391711446209462616595912098362825381666932208233771256458669731356807215538198437231038690602835781070312283877435639041091460221678952994123044530136026571207602021141076993427776541787318675634068255541033212192929406303388768887365964935182898462664798522702292823939946364351028617848595197707645115570948539491082232125312644923135324241301249531624948170219034638556030315275134988890553946582431801466855475687079964862806809031311090659918763465933404936263768047683251364068436060707884808866341532422027283313487771797597892994005831993914939347895736122428916026356209708938783372635375265571787216550217612582051648592700434743735850037141489870528758589186436417844435383503817173914814867295782824228211203710591880814776939974400844877335941333779562221002400798794744921852391400276309895060853036987678625217047490986890386930841208637657547820015913625267055335880757737231232555458265181995286070943010637911135878800607843166279907826960068503168384750622630278537426843454227290079890579690274012062837683539438473422176942550630030411133722929023845859700151579837077973713241526359699247750446972559876480307066744177384728132479916046231369283612327298773786844211352877034271785346591646717156002523485215342858274649838950309851841869670051406923192773661923898060881123775415086987631947498694843742891181500250382722559018849226455634189446165884547189663879322148895863187002782447160448154487247661948033988386646554550710231196304654315780788579222283244989323077801901357799241820105176948417304806619023918285692240569356410564128875702140572378081381020477729896361871653360647528176418128204854011201005596836677694448131131797327509382212422969791639818167397266234627520445237962058454191051291729349556223025574807175028309682842029934158860374969107505789755833242658183007772440402018847411632124492717854238920016893500720605520018261166348199527786744427893186797745675821995432406150068445678969784135926816906445687934183067306847180871046634709800473714291966235305598664329178159436537456121143861659965934008250564640774242564044031197147156740136626090205895258786088596258852804601686728270478808469908882861540784500307851667450289907868623518195780212566728264404803108275571917633723639684656187649873537207519542777393558035086598685939982015449410930684397676284338964192497692380873560547793001581499511252478161320409601042528735152254836748232128525871710037162374493919009409565629549424106215594241999380456454626664993595586933586018810489642120916522875602349831555802242456186458700378063838036632541461062755024567491916309552268044117514222650193293423163018331639073526130144830905976314870332824282828263419811891298589706881290658736906847025900491231746399815041636642395567253279011824362982494762775904544868810103371388709183883291950762082729983937003577259605057168300432775931873654211942685666581182833373392306552556833232006598085588589493536381524700202074990169176177714539034015974516838567228287034581443646712391886729804509414809968796699697925557982357138231666538142849617230018993082784215796033333036840138133587857837604581791058428090573771818881117352476261934009400844695840282890280718468203295216191617187655384772944356096661314113691377419895048922072518080030943638422432036010966350754048465008176128135483651856316888444358375840960115391407592002639701283671907705938995485704818411418938052884263542593696877301437753886644649172606233151590793075523180134154837710851493260970143098607037046294270605997456761858753226415352834093858503326087727992664333855775402974007431406550114524498244677680707076891946469582082592155158988619074685895819591777651105290135951260476204944213024965596249570437350912514903214983295180205492773502495955582806092347240124211339581669163714698200141092892826104941434062148790669540048851832666907163310768262022130730641766265127952399840777059381073201814488334963789823497489696659885403218165225519790499554567320014070306827030366748766098078219919605237412445606407880703648773907926900972374747416438797103297840680837113611026736596490861194078043217498654642863031653152891754995080120573055017167801827101337148865479645600790322711254998126561067509307441497833415938238241992694560083377553477444288818278178423152348178056573270509914790651658274476883615359027980559282433107803811050050945237944384312089684922096268017273921398356316966675339050487858481697202422134922874221165651224116500767222709599080741165212310309500294013621716333011787696102007874895269364296380680009633645678877940667180228012079271370831275284985521751629022427132503346601757004467176550656195366488808174637072678113800460675938529650403229354889643273965294473436996533857351903466024139099475834281888797534523756477985066788100464804449260439805384042209954028217128294541002230425347475717362356810708420389916136693745985881516854909092607970088476358026799772285671449047966123167073832980655991950157861162150465840662577591834355900781122065839374075160027009809222399449839565452633633570653917431433299113684895842791395332579701511846205252209401784907271665914441134284953129794646828966502683989364193482661159563255206598664457854778793343035246678014421249113689260527739629007520004709421981278211397763084857903072951863823503815384143473331022577006289056606587776366408123773550836023080313176753344671735570667530473995396037450402080296031727429571423077336650457276071517574999718358744479816822164921698528668600324428263323724507540044915930901456350015427354327616208068608845782311961791768689674664416871289188849712076533440393151888393345975217735654420469208673508386137726666717932257484296543925276094286584840060811474085635102644489708699094677442658256073776506010424944037671067757589643949522662092829527192534197566029476638207191411932669529862176823147166952832709975388398693993303959795259632695836627981151294210498784711974387814379158100079930901041910585565967434993105846842494739427656883122128554077611351134396455146889458024116005482713113931465993145519744208532980469467685124395682403700358504962755475000411164170646414130675296776630469518988524316682628083073895735057619967262467098261690064476137354990238858168391613549410644260807444609419058841443078247227382957491429346515377668417304775642952893733464618523940083594852879665594921694064384902071188380851416909549175685631649772009106388648777376090092236757817486609753988215387810283359599283688476013824763836619668709521878235875852479829320664103477098106207913041775524290459171936382163780548704533514335879587825260310030720171896972333548926720694272922983298083523010763878433063851350541522639177981138871233861594437101137504877209815403254773604867913428219964200163410537706579696500030515275332524324025009646993752621405070777509803346792466693913336469736031120475466226749438652695672648349800512306960922788052487008466751558905861353809801061343847820550533877260086118659310498248759710865557571593082025430622846093021575059602314247287104798590158270651685306006666097681171237372655977837472585101092631747667801367964366665231114670820159085196590470934781346379832002342855336812017377984209257776029456035002558856298491481061945616979664089041973071573917297496071903257135060133313479371968675705809506341738896267253620486990559463622627553943724520068536501350317866057876777504697883585464450494002548826912860143030259226337651569939393607784809332108018166354257465246606344617350177077898157970430745943329039171386165926746483154010996218146861842636773697192746270700970305489327479981094627229045897599340141447982417626089238455980558388834098589979071108892208012873724501108709525319062365916956480894331171023570753200634680791833277414096216319924643973541899434767721239542220974805501176769293398566413020540829617983896527446648036005847005268227113881978878427421787568595962380765345758187754239217973716921035568060818304673861849802442219546435614860742694522254572300463819858679608140070001957707353529091461093078724626630454053326686484033301768323380767523980050933865971157631572058737202115976024125169797263886548074829764334383110333933897627670314659793996641562172448669344710163971767597496504180057133218707575789279033097882194474551449793386187198558932116343806911915929035778580027135826125875375954677325054535478118007148280809491813059892450920462969484425557490634711107051024445571187677809628463240791993731707090242934785844998647564314219319610129394738237745977990800417993715959442270287119571883590841066921740941462533863498699022362736137055442434781330330787521216102990593411736464529095877333375205481644408532905288267277878402283920340218301574360695221016443454438681989118993024019587191376143035380017490555506778602260077044683281021414531648820939272496163051271309309075182601883884398308225113501566987164362500454163081419185235515788487879076314816391453554351593867282391143113584453514710771252115863394190841793063570688356876982838162172617376770423361238421670950520743753604249907661494073478746671217659329675986029380751508486022590608181281757361768474658055218287786460412238272021183868027881345845637738561145386884224735605266346657539191997063493704200392742280325491558572941336547024647715706847791407522891180290687088084653024494609097519422304533103737801659773438343361671023384329080579347463410983477075325868605143544742287959032298022263016645508742300202023503428298125743618889575076560098034732418286522936342426443938076870021246033158143353668113577972079243991828861503752600670133800732582753810970386775299278457763588619905124174698661589182845658597689180056299369536584908728347228499968378667789655101528614949400380045134680241205677653090921340236638088432292597788241366326139535139656561584135872591921371652551112641254574910014950251658663470534396328086044881785501919438546311083740825581472923392462391738722004120007299252720183229449318872270896872364131658607207502602959887736494752872684602793244019345524212791842448760087939003139246678425370180777539085126550990986751376994095797129780244905846630722327491795377289965138532794642149682663231517596809734950347272333727611266299745724743806625951032196050113032353910682867777432486443127546339940984353644104156581851083446323324798608132178642224879444047042700155019770220218664423525981561938310481447322050709119465027085240564292524930588810732038145657965959871964438444439664514194942873692611395937000196371418991844056255287997725133299351920889488032044876450524921327396812079694694152619483022644839927915352472193074556692115319202592408191350035848304145170865532889327789341937795187262471250118370452164315869616727309545274949505565039217971742096091352554394334094176049063495687960317283256495751564989665719266582128002679300744806616259736401752974617799130940817666169761363409872393591319368704031747888868166318908554282619009965707076801927404345334190625753828044664867676949058712797946584544385002418941958504895289715048404940926981631052822551271991196269403295919534109707331389840496710180921150990709195479845732347137393785284631605333698544669105280123935283808486987576936870351022051077315004262344080089714337237550451164981079745597488133872544580087812415658331468644049734018457073576258197229096494120173086855968193113156140611134876308088686635480173839581027558425982201186652999344405108301871926724706251080607028841460441766905261801272656607179260531065827648445753495567555277687722283301810264089668071326370090442022465054331410600383435381090013650553505550670557008102785447474579851735968672924945554017019074173033218708502907637504442951211798657951441590219720974890589673846768513189234612982931885675375414284202696075838141639712454554122629338601848659400500552999964648359112201109443880632655814292144552540736749878650067498942757142023464417520568444272302675020004606558643069310142048121445831927944858214280982029742804588280713918213463238424513317513587933089550208596925127872250391847169676868086556851655004145697444388734845611705583426394143460078005528985661985967770494670740934368330366089510217493795415000259455907044414845953065499624272803190736498221831190890963185093907094290566500442463955767100854286145215009595769400455267403636165131026029063050738172397423472007451091882223798788052463877662329015100321804101846853418223809358317785546360135841057129767062345377469864118605503962144737740905601122325284584786796229435715296104872978268079335429172517044201286004694723373441923325887454471868853913698819763595324271249691461206898105679520946906928643054004270699475718636715060361600468238071297041961379205820638089889257588467340159358917430419941807553000302887935994694652720755091828099151423109451045498390776161112123142118096169961198821248799789468648310906104377700572532999262054776172960277849570711388647020396153355551842729491389229741002144537177664848390013463956325815254227565343596603687629944044331815838687342975857726021968679747346243861284011431220093787269607244137837732282777337249114716307038513550316041823430980809930800681811998795380494412417914504154145431619772476592612017817997329929248487497106197573502367713829472053446444715456939166148383714520203814880391926072973641171956188647760076115500443634422135146006332167643543913307753553958025676781150007203581286155414327039876047183367297025171135603864164437077595821933932124039682102068241240843274834976235009032302650240015526681090179720459172714610547758258687953403154418007477844360474843252950995284374361232343206667908723860264986922728193085809660605867105236279645977753300420047750226114871298830698327224184142433955913186127215984892199393033983694312013904732784317684555954396277642172604143654970140591511020631209161758243781456159771909278835493529938980767556896341944355888304439072773314307499261775084985884241556578673670199371678051580167738473777371180308598465904206687802194513656205750232611214574537886949580650303301198466468508060815649111108858142725460394420188374545378577093229087720508159500684112237468219244350026635200489010813331673032529894240275980824322950020633833775336385197554103140462395506398686332342237255672541351797523149020206489479869219208550961243082693062230311780603448782213791675822581948223003839485929452224392819053611557615384645042265305767612068588911764843736376311819368182288474881754511942295566647502754760850166422629470130090400881150257189238930357773474233279713858177892394150435403482184054148104620298088584656602072921565070557560693876121939833389275023687370645378845515990269333710692402204108833632933364341730055530375688877741861080264826668982583899052594760732897280212956797236961582737651871558746412198727414388882008607922149377877458572687473612708570602006196220356218703657661281274545914629253887885834841600779406394021935999721451708960261219964663919404370574661634927940114628209139993355108849689393898877869240783228105758445995707782531143203102990396424826035480554196239901531068041617428465716770469722630899461381114344202731394694914239399180680418847060434331375867748159759746177075782162632894232007814221893009982815571290207095095028526035068912369680902279076916308156625926496485292030371119018669303157727159287576949372379791768584249238417458362072207099668763463448655126711033159517306858970344079642067092585815441049659729667870162250271792399379069207126176286907063268126385304780664709310727774931585684869097341007362165994111602397811904563237905563395424547182598484349347979394335581503608386849314934032336813513179422745803088114081361401723093814543621204739135805403793925224402655912759829597179618041233354354822689153123913598360148864240534783212487511793482524216078023403510399067371357697246879672937966926688832273148774691290014112823892708202698939313467354660600116208355559762945778040574655975901808144605263265916231358060728188222497395034514122617229716988888587546205145991078306188149424457789580737235035306523692122542059583005285245767975963961155406200243580795291766634152568389946788913294031534475392993876200687859248851545050413725252131738582671218990142072112539930387832014708755503018667064981584632470385189959301747705371363800150009550678470522732672102078488761337687561772813433077096670019002586740885893954117773956786289875195987492794932555236429392626867903818205565656968556379998817908450119519069810608842001745727373750779372696845960056912727631040015408705666706979283711213910288794249123076440347379112327388517460178176625633837572559970589734541820878457838971220383439900745473885926565959700239663021951954287011832906539560118579631268195707175842104402319938467135372921924099201040931935764879945072189154190897194465398153949759882521312201297555100395781319055766342073215056706603722223543908885222267682256402204435072816517851053805135948784412121048721049869233222857024843496295985461095290219055984718929890460849439144681195013839043368409188447577213830663803513995415897512727025369453839617974285953189872705770649392636271738455401077372619803483618329565789343952331653846792244613548742894917681865911757021954801883818756603250965183910187189195126506978102448577188919944458778218314320194738237114809280444885687191855043925631687471640011175630791826695030156780585573398760169289648042315228448226959908665658331632736450402141319361579497842635721599030536207184378045171692060846792425606509764735305752404553484604565195352853112327593933886315063626255946324696758639287291276041212591718377975241909220297605155576403658777324029844736703304768867252146926773894893716534730785872972817152667814954950636291197541070220097951676291743025619645162446878167122761300668925917102314836712283807420072005385042564342653277677580789482036008278720412678477593722722159701800912595580683631992333541148961964262583490581234232018274299760604139956879260264000111463152614955453861833669320009388787905262003111727482509502207274967217357105918760189181712458850730788247328518974544397782041630388856868392018287802656445661930415270513436712355494646456037651476625695446046853365230295834966012046411979357107798861310886959398135920770974614436445708490213766536364486641307392352376424939198092279167742522974062916417864392788229846687710921231280129734782140307090334245766859306875432067687581215938338233440950946288887907543119441735693691015704822340737856789090519850723968295256338699389061841527718570635897640109044266235154484582017508756178836344654026338869068237174601867156531946342304235835669980364756086951673659565514850739643685934520349936264876150302452041618383553988523644287823492742488491206933218705051207482250202148268803976881740695809830460432676775282859581947899374610881392317303153254689505119395167922911710911390232503208721496685059043276739803295383333236443250633969198756414979632122445028231207127202161294451453913505271354779405788256676461199398129704933092914563524440330329047962780798289209635750819415486406361105613443483454245896972700210016252090181097301792475436081517782769428594262646823099885943839271760919467717127245895773646915968269309778588578483539519308173978271455776588012018132812738571533570634453909787204665951046568877603908163947763284557408716482029134599149275367274713093064599838017117258563667793906781937899215332915732404184706192134333945450703879638377559727615483605760824147507754515457739325109656000573963696489271111700706278335631170748535459175571889427957104406501460308131737824654786566382832605845191570148883389163998518910594112283596232321119573997419686846786986427696828881363791138019325884879326012666786648408226342719219875918280997372521463227871795292721968058711829823735783690893400817219249198028995906952834616361570913410429799929840357885287335094752099680488484016749803015995847311638022358681615536768014110933822028631355994341379157268252822842491077473231990580847200176448657585923571239729310735170677941804011482244910447238395725386728084914001123389585192471020972683821303762316242735486287476962585429762410337640931739938373793966473056570187027548060980809495941457498087194844636640131681105313277346702212371244968236318030655242817014043453358431546504079581271586215384560990109459264214574141038569284999529318153726793225679601143939260091359385097147358213883332450441662935619762882658435326702812682121108754827924849657631599041244706456874324477520637860096589672017783496307243277820536317323105884669698308512732958197481579205203343919525546466391265351673613311675212501937520482363372668118744058612749797247418966173631657647591626601810666182066357006731533036714351887361242605700999252083522133647190335975504775736558703059338904849513367076687465174157959294925316205279218028886265550802645283463901203393046900247102989584904748259418956865976897370693690634205049637024981393525384014770036350682324742638042878652240158981762959736813753207636054800323152606066514983677024049789550048836468203419334478890738033191745201588795086665055033808046965480942348197552658074177955265432185171101116479492221166404911290156972181663915497161124943732476424137817032002614985172418897429944593653414989038531744588060662782682708606818879120943753516811964714642776237825439130478242330699613506773286005933787378019606625405081903778757482508438495566805038908899796487398749913039797881838343231085959162478908266708076909173222209521957880866927252059182281740618522209864828147704087240093450360332517438550166898763680801864029761798432345673939481711347019347403674458517062706486659853447273296086294350746041638876192021965724590201249424446124731347315774200974016455688003254003858486192351284193662514327756410951102838715398021492433289010781364407888113103458947056034370967269699481795589947117551144296304441749063830016300018058834623807541884147129300159438372039340897498685053557843247687440615021908570139925855826670971271865077528273308705195200029911233960462623779643300255428333350688756551227076969544716220031278222064963263577020363789867744711386360006163043042117882083120259415526264146734895700719713532430523207765430617890376604490014748292735112040585067991454679262202302542225428611479041449769655752524266549103232122421053307555938620429935001678336286488386162835816778073776226008106862933376517707215150302150936831302532941578987209767580196524023986881622574400772379485803623945721859728357998202130068083012546064094575098749402841811804001543525145332762935642231152150512862402957112647276793012070041267019040763032147378453661229677227458758077246052808949799803617910709832388588641082188629326852285846251075407184216941170671360367802868424570217505314904134046841483874565391274164848892312110217903153624464039176588332593511478770896253864463994555964343528226399607769649205146755431535370730145366192196712266907743036087788676339612325211712829140901163930867579979219716866317326902277240322565754947641759451925985009073496892540078582794237511988097498344702280696335037516309181587831726648771463789694901616686229870241816961014762416880199429728446078425010210723552006226261712935583915302764735632871911337467513451196734141214149337653119431603978615335112199076678255929979247036730457011310571246299643579336732079857938724375509726996390864274112288848999639075422568254366763748608479145182005104494898895995567247345391577850081443476951901897605066665945169543464588443760575922462510070113640764135099129941385560993215461275334089593743804072717003040409469797021582893602366668633243407394709223746913712582530462711649390777749300531008606455792472891184929360644834911071976272333850673315318246467209020698990859101092468290893248144456788810216476529592707401977609762097798542728911309580923404874532642436742944603216481400890501267706595365441054255456803839167841568870030023004823769478693856344435262763957868883599363759601473925057199055549869595379175959262157842147977291822934896193945966098287473242013140927617676625914157554243620847525124343992858887123888419405684726510231721897431496130070951422262175474862525262813390265172937400992322842811449384630628488651312444380421188948502816964220453868672096473731472940545128822492280735196690975043839449258511066317370658106646181620234178852504699386101262743014678711868922122020718727610934191783201517469773923105178140225282919647055890016308902668612114252313353428370333471236714732636562148700653209901806066440115656927645017943110375271659064346225069940136565241927713164336201590801046036663688556128338882244381140499165032151696764677104809611548454630188571915453277372296815535151207189333465146410609412828810340016646768009384828888958638364853302310295351344567562437034720874574826397582175105029637912132724945880280481052979095759993567216060516400883782754962210753922260021514455310350770635886676477862048234161096177482103013351113350409619328377338747142674855453130889768322443733161547087007944472966753310814264408852857194095058878926685466934852595119450318887097376789389929955326800188871984909555005229142816259639649890683228010169211374230652830494935416799292794954792209667650010796537304936634205256529302589998841964855209735175339286663076398659880969315620537600191817333216790406827747060792036533812355210305257602366318766490851390072008310017407644020587066313321866291339422493399685144560096294965646305525348139991299144727414193935795557392566782451456131385277455134027261941835291884458602468674131738176105067506477149084834497171276243881180905330086787207382239287090568461482040561066515667398051117075066893924827309353321145262456715557738723131804270749750554761421768801445356253990209524391568758039403481660060436305400848730469129148991597204987150544145017564051940570400161519468655196279791837800370010315678141839581229273103346613623235440844766227278703765894504441131827597861211470601563368416260247776918473355157114976184099832050446538265463163914641938624525822210060477151960633914446106800272861301756662932342737345007212895866474660186843178412104981570476910154805390921660574910022389472505808132645052787158665482076613701067175767591060243490783169640254788882352208837021080717906789676854145196457440682397201912839084289060879219276537649167322472098543831759514127629785183233819516317886378212456659862373094857989029670858472757571523442053254328197258683660569670704081516122534094460241843274654027811572341690423412915616490516445541490977711461048033445918134271044093698381533528388571987049757847358212120902219795112842800115624585299772578051279932806945223205195574723969729946554052505286448007415823719970894287443162218492069351426067447328091250605204216882843991988420831356178360004927735113370394191364603067868432729986745550719684935725630325569565258150022955518172878179938784281743737997769463670742092864830845378811036250320230331589142253007463968714527639038000279095902000596588302665728105966850380567842006071914995872461629358357928428702723066890962654950682692349932349988427038583306827306790768901992496176794926879297936817336647736538518206038515787415675305073264149290709375705233406911513697096860504948981007161416204958922013125483789207221113259090376755713781412681730125892210176778216743571524649876108572959604271378792492464145150969354560004739601572509483345303203859560518632268912318668499573471535464008084438784516584236314036713771564304210969023809836636419929561064313901836949183668346186141866230798958012783384763492644669957823461628505806478478538199719338916089226805514917740218708887885909505304933364183073176628001259859584581976754302369086770320938590206667956646415637612816012078441620984073272634934081614701201270372157237053690579430244867898527410204406916249654879507812578388794416340234305889068070252232644574991496883367339885292341626328366554827565422286888381114256652058471982187130143499868490528742140303178154990348669513902688277622919759754697475374652699750438351592194546074741969673288144936193493016548153877171406546414104179836562200732807305771312012769517237387494512929334073953330741720158774578311168724648967931012042047989019869255204474636049761183447684749802561544431270480499978616615586052013411387961303332162023560193164851785690712941313066124787307314528228421299179402954878284154843189490068669501642289334063473912609116651481035197228950788250927831238448636355880947998073146628380319963395937633620801518167181787889246022459999433220364666132338177263728377934843262667798585374491671009161746733776761106488196900104467051588097010439825422529404827265827661071133861534844549540697564751251028999000079659845606500997390401473118489611348193187837697493402600732058575353482482649993151999584778015689668128740538895861106987749733010953747771306624141792128206297329077393680747509264185809407961663847178201594066435756315258870698234714504995677524636664417961311448322965589536058622113634033516353230572911745150924707438396759293431940900225911066957733705730804451146872639729839820061888725521053773552794483664765652318672747007456980379028994750673794289939673487330779237057277475332013797120830047817392441862841687221237463573296796402883958796795221504536970950707232468499666440355092143718461955242062290893232244002608259171693873131948810564685808414827338343518139895717567568847663335142756313193030555721515254102319538517763625580596965004643521426228100941701319872296597473402699844546397250785757190345109349464659476295054739332255994978406255998003057634799056557253199401607744314222367333271890717387456545950157878530502647886124963896937220696489870812332272479424727171501291534492457872934369988556798211242547942605098799234545593540655902813574258614218266030318957196306422034189027210963524488027915045306693123044528518031904347849696500478309035429335257706253608937834410110858101584926893657066380477016131056342362407388585786571618912113873600953642532009233481522086758025588330233009348060225329272943080257419620521489703402357810021986837636349721808586999811921276014147095536103277464376983636714727549996477340246773688847006173729447922447141221866146796107056719802888868582481799123044415211590532705407962315515457711615229992064971596659872681618147142031303169482719387042055192689071223336106984040272787182846589568026993940864912738115410070684952702577706814919782460464560949854279286945204276840027761049661576331744094094572236000460431789201253578292696249186482033494050175175064256513168967970939052045435078412515747319092708071126032559414063658600636380603561535889022114050235514475607255896743842644922341775244412927960777477553211341086162187248785093142943387254381683520114562421447824143478351030353837743031075812373472467990985132993651794115696606088138084221532050077154790997410885881482301826687446575523916520022345854620493030231157758119837250563162631516234688669179859361597439533420714235268868336517071603711748329985737887949778074963574466704963678069193273347210576228686559485799819542049356755639568992350656005484934138025926402450496417753125553180569093759398034304569558570065889862468302610747715066882131436499060251927911247891926771061113096560838517062420656940805467076537067555100338499743431347831615160110164599749327346590882222539034646408195004896632060636031429663979276913142906567240490108939775508663087273723299657312912964975040475342996504664022265435936647668303583342453558150399041905482846781495363362185770351405365571591146248294147379305464923794978238432189951073086233385264675838960449006630275855467325278023542040551443388437982810780543153242385050537136056906734267561193677212669844788935396291975143413724663789562823030189902165528433867135822158516708260921466214370614118206078163445392234052785490790862492062639953018704483516684428284583931016119486941599321859943854697592063270900853349046309716637023180409217359175630098271164547350198436564084823554160049910307586456945647977525170671972440302217580540377706295962123524445238741258022736387372956566647369232298857416055899397338873454027061775680058610012291916352317703992301326357705707243425222387838697092352726651859793502122428736228284580576156530576015885936967035810696052891787629547784672164470291120048291685333694262343594533874382201260736384412564147395593353806691490130973934945508797970596498200577308794742007773728199303086499382079428699429121877556098751380183723388725290267482307845884051078413648015041251814780315265519261257852776828344641691777545787397947514841480387751654243170733618952535222932516549592356491041521743746313670379684742227758766623967624439346163833751118503013453405041822326809026959713831835481056427369458347992681896861395870902291249848342142068982988960788265266905409911490554706635875300497479750902363309194618814690558101590062467161256656611370062965566365355967666954582060566194294428949422080348833372859588381097097196594313655956028542933539053801218750278897762232380157637371098095885057525777674858932558991066840152271178023061351349252489401720773963923638971501045425535370336251175275392056060965833193084172262193274676404394529172630455375863139894636653155021118085653817722049292056497954872834777533223652614472019055233323489044130895278174256081757755875584527635970220930021948748786242189482661680586615246583465005297407054160328262263557657088525519750581681569144541014901565862610344014606997584891486681784851557522152710446310611969629031436083601170947195808170076247128837220330429719021067417814671159304175690623353980812408340452550612677689269284478186721349565647569006413753929990974738266542909202140326798261673169344251476438749145454664302452156613457382075628817337774713444230813606717770674199124589451243959544370282113188748805155011907379425035473525147112357010091078670253169874483292718415323762688180971173956629624590626358612038632834905653464029878002395970064332315642652970639679299638848864224054254396352198087866660297625598213916434285182039192167947729091133146795013076071739212111778289124486583340759608848050504694634047415426749217395352368015767302432568558753770088324113714346533918500295388683106170186272931025295988823421081351597361612313985138221662972349914086361469236527085336692385356731503348382341810728706325959606209221865531506323262712251612191070306173504835571312293444952268220639795483665624780777523097052864610222569722574394145483709705777748212290798378111725182864796779016059386487979806891648958434381796230734024030974053348378828170777004294074678072985290157705384568565524519770700686378407182131132345161028921964284944327438445776452802570936754213539591514942069745171964068861819925823688835866178755849132907431748424427531474357408796604083403840612931770210066720958978016057898250674211258308047532946956440573527195494229996302567113539484961717598319300031356124055672246482252030949914035040784641504494349181541800319154164562167887285554294538914070755476226773319176677916417995137503613376202166537654117250996561890769510058026463468204458074219126218899741040909024344962291522180097437741341429474918206100541956181309642244647039802216898747539251981574240581446767634328164144426434922415412709488821119949667433877477260246882354197485186368172697902596058555017642542267090385056044522946973845927083368498450752304013832272168616370371313697047288777745730232000855532856541755186790574013669193988432126456696183911874447223610737803691587009363994412553458235413229714924354475068255027242575296879514362786290919407130121731247291454949588692313899799300617543394866296964489278912357092211629294006807164965807487582099917286854109989647897712426699845957636583155226994784353869182589574430652070267723296546244978083235525555569169280650102854047330808460356115131949742168730948416791431232012483069037440901155492770975283754681566387063534456855664473331796819194306501932609126921230029229763359625905545984281712834055514511222137864055352502310637425136128044171420380678848647942706421264145597598398338328472424752844094454509933038198600299275756939625658275292474920089751873053590933272522236693435125535377748479097353334194236847495261537736330372137598083894945965556250825277214871439645861205306323595285211887651715633090525601277814268832286457480793454191194124463480679037314463525237382461515906200599282818611237474349770356102109181464126450574540901489218205918199652048612778929321436858145003151189371815173020241231321213432830588270979468481898529636655336193553837484102038504145070674576046748884070480786436453557643179625991953046197204037623415465391132154015686299833185983313503979262473036003859770613744349843586270161738926066600878028039994611560117276257080262970693233987079045112892991141995408024397671468426244788659057631110519152424248072147913427728962432157961195532328761088117462812542353050986779730890730380663547467722378597537284650802269086495639614967925160837277775984367476414308324715115823126395931065714739070856865456762289532968870033488546247497242282191017337174722896514025858593865952694135980322563913071798398601978409256481571270904115731989991504321179524991690223379242703387584987264178059076536903922746486337048385252722681395068850514819315969172515224207241674298374151474357335519059740159675036161147589262277698984801890960872519897822013106698118113029610438368394066599665649754663856769873287001238147746178543993108622628298823806708600154845750792120408212796580565539848376421534399088388940767531623044179365999792391135705081207121490671041604125642317969708672959795926912516198076784031407747584001402432944765065581103541547917880471506052712725167393060240903664186850757800466960300628920434388667513499728027236951136813873531974300784676734116883687905820676718756628428336790491071153699492914371895453838455009617904365695442921638293203382730960873961991009516022099334857182675694018586934561928792216742776424981828017712429053822759806421379923843966955791865960617232302962195339727621905579593900942501610299053156653019836463856891796162798660005633517141969848753416573806733524912377929237049603707673728422139418653480207802998972996123220549007528240235801709722599128043013926645038511070468641936281699285019731749925408448815450964914789358404971797858360645820815580790454654681175979995894975140210302850120942622709067005794710783260843438591291454714225498754271790605270179901789418198520807541460262966755607232224385762439498124071474788690367388010294493963089170765221974662809860063411871552432286145058715430639478325999845599776090503718745353089799147284077699822416844846276520677147789466255350061517240712061183149481703872633994624674845939554897223568798037078643682812750116375666070227682118941909252721229002857478832419990216484201719855655562821235701839568207185350997591084529322876545648380336583778101869249483215138320383936068740962011416739697882248353691131788587519125842456826026484409613594743495848934331081235784690096952310265330251578155814002728493087751112073789579317216045340457983049898947796134597870634771443780095342605418065772319006439585880079569010547308063124249292616715374507122150383242417707504009196207157088975150584026103792943247505296060427640997084743871190156234258936013935459351210797440675924164121927606878674221338211438914396469738999357239649427735102163608547191540843834397422909246396644901698300799126951509108190727734982833326551107885462034275778866316779917930374009930897714357160447877111396556799949538766994029479865878956509997988412423319846728964268784869218771020719615608325223383178668377846441326771286435275767294741267519516361099918112900622184655837667712462202586056356584597435275199178399405526167671366220592050983331519638610441241261967270461649131658328996984182536022161753593454173438277085303838843439124563448270984412011293674431337153744493847585947717990392335306543716234970894340254688828460556356709050574643808644900837735352938517209288071569883047846212922375490418212204002698968445541433281761838674111407612636146164229004270038749129034228419983837498516937561743836672316647592003659925871555300085233878836412266697233355501764202176955986425439777059612762331164886241844189101739348868365834109305728562143499878359066438974129489153431883237345349496348656697030004498580169507003364709717164873716463904333170947669180700297507685927841655275190919508247597493319953836837707555871023206931344397485572399962963221021413873234310502853295287692265753498902038302776540070711140540908033874134394556596519525845164164060031760245958243673320712652340533878597045882411765338886209641991792445016642800320152057917666067512410163103331293038754630870291303370661238634729450773662889785580313641973972280883336828790298681881265883823410723687063557074585158038193931374845026834630103873910653357613043762387680138009031554375405319214733827620990751271662467211043100394454366955900471188930020272316945149134163920486907609866689884276085352492781219758969018439243850765912744890212665792208367417055513876677656319534610299090344566883438074700176953596597037013157962988374876359375010877668725311258683720518572652323582786726362030640377932557491437410453507847450897866853727240683683121063017644476255138353196894726172061840017036762005225682860067095921558463484960488382308860079557919388549195652048200377430611280270966380225731904821248074234839420567888129055338711833904009888459603544990020759612444164680933449245249419761773942625939359072712836017018302779557881201132837863552780864415086638139375050485656428550667007766953540956246462385540620087275046838284605614131306621305666934489557808513614924822806811167962309005229777741380733381697345835557975774146747787235000342347531288210962326657434931076087073351183703037655201944423952765267875906469796403999297021964441050787306867535512088822932643149464533022574629562351717684719064787966687346466096512462854440341584080286164259667142063606682369566348822616986565682224194069441541930481514432381429052343128460219958631905593021761780618179099893420827706945125001328409676329000987810929504118954961856429629265698820910006554682539300699795479802076144639093409863096861913576764899510003671833144556615418171345946730657412005109810458881477686828838282060730053076522925076933905898042585928249593111856082601690130026834384603824244402215989460578685174922624872293491113603317750207625301635897654986927230281096882174691737695364442144091791300758694046750719087465664337912852411749600796146713898741782474215916487340155451182796036512499203970462326286186944905408180201719925629607312763071419363100950300919595587670622827821833851774928770308093056335443266792319963059105088283999971264272301082424400636169552872598860288066990144832705178533482280306103085413770289044279941395465213114209228291519255865145389154675152774563707324140427285345549658367232025880264455096527465989794462581282278872742327555596705390171157896894270948015960321251414556690925450974091393369656524074475710736062336697830692299818531553629479842649163008706614034571975961123404564738839878715862101118163009778743587999675751466334029107133254578213083255985995274564717410925468012680416173651391119284633507456073897231594733785425942924070907134037053907419958518448318796288426190533829498769858198966345304643569104588023654685350519742871293211054281125141850185046867280991109272866043348414437231049050687816321671821532435004906410195516931506786283258830362293287057678834146830550154758770697686072665783743574557163595662415213107330206455748825243865856091627793001732854097589333539467284456032423891514696290268043367120823905105061017272295368290082023925863775424672347280466144891916822656258554705416627678100942748826122931771804144930222967572972991572050522902628245943264251751634901989837168179386790402787812054740904274729015220111881924823746608997426146452804405261107166874340124097146127150918031887266517609810529153561691379967295323288485563265002430214728841847606247309551633205145555620278610405849367828467444634502949963125747497241543241988197555241883611297327002793693624644838768690014305737100143310289658701830181059172283318690427728061639431841141667345197995141604567899469878969151934248544531396040403944330321192338528574357837301463209239449719774334210027383915040607919899135071920758988997586186221688749138729449392396214134697312014091124638008921777882797100482148139367295745346965293293290191042440143865728668848925381019430862624403664311433843618415492098970861510305762537536187286955723017928004947958910220281593676420178438528736925378789399125159670390451273581446455700802829598907450223267279845644387875300879311765292994792953487110608878147702274736194114512292270092096305429567393949960796445933421188099003161784791642854703560797499474165054668057375357487332900427783002499726769913909295827516539748575634005476214310948358945902345800301619351967924633046720204503597082367075959271437654144658577624233208947882225105350334539583452848418397479090690586597582253338445102558633409207697304292194569015732620087130435168593483629063274430507525577521701596496242937971995260428334068724337770835723442975668350870092630344596849479226051649147538487762619721642935151920833623365300224642984406449960086425205861765910949318424651739926064133910373622284157899200998137670454299184680847892945982088864637576777996963305961348464866793386693961850929176440828110006718689395477285792703500417108105979400758928272183234844643989691082227470364800651241264758343611389650613710744837374454373077413948648637095546699443777183728551390648205789596727638578050090043291342173139659376685301953702319261482414430004337707863884580985096694043397294978733515497148087836844995879020175056300204052391421110849199801441017784599830611421333591635120922447067017048986867947670332840842231960918687207346484371888185316415702315996511619252143676322256716624718429135427906098417431273902808464361268530910927236906348797738457604097009921046547566509259484038135791538276756884734113985321782246689853111571051876775209636091650559340214038703374557225839071057946337746212122052087570402576176119413030704717059622409377180560321079631700222608841052253699129556074859480928588714143337218887267178653735043032261376566371764525143606175050971743043401521349899140481288745094250068580023351614365532765971971627435468923648227047162957877745271968079537900707335631990310522360286637506731423856974620220558486759579060673304391392111227750296482598675123450254195882661744410523863105168803800565725952227217372832285651681923283426601797781143122713274213255224405292750501124792783630172823181532917123748452401787904477770106909444252476752349357865303638181183436016150890847675195637353173089427598610111927248194816834401997272251044643285259620211084526688726084391889524457150832013725187162606783241929345334587243229411826345324694359347801963322121789989916251830587150445719154059958845650414018441938480635078139673668301019423847022540167133582744351298859864129045049757822977428517428163842745008449328419378640774891025434610612562473305625652406676894590329321822875404590568139947596732325855167571321458867709756510647557737352627766529250360331805266159806635625337015629007665390977508255964671417647939819071723563532656589084543085540397425353158345941434367075385191905126357241547816609841463788650654980324113538199139411459919375296593549331179911446228878673944519843116627522926152715917376592543252326050703442526550349877179704184986898538739477316862419560879831789230025821085841272053773809621048116429738037018871486724675152893766431057755090268289525213662257043102431342939134777744264417974082660531273838301386530139815114530805854109136087738906266403638383565960148390963058904158101520850749436552996247409734969926399455484391891284445853838146286263611749997537383625555203918319027130082021564156320963770615501965833578473445106115972717394188815379710699911714463892866677230974367822098229886142265036635472406946886762176658140127768539422474123463883417481871629143693492212599191608459540532038057402009333917075606627598321776882620261617005442573467872394586161159045176786740985878551578052820222760553195007968989409889146519104298449954068447402928646461732100637919179851242997868826090697739330548030198631978454139400534794407468514060407019211750850489192027608269072979315353793504825173606943764909719966200896541190638088099085847538662622000304914969352854663570512089350179499523732379258399898058071324734550444121258621633932107011187538928072079583850601811123479168129811090573469287893025424388831933560284191267992124794793196304200118069328994975012415494171846127743086493729011163066943311936026305401692284277113799551255398838991860914371859072653649541946328382605907507453794688138370417677028789368440635133816626047433984971425937340668586332624425325117578919135828316820233185676127832918208489042247143244545816231693837079150017695222004187916653478604555846042270323951935201614361759360566949237596105627515514900698529676952325607411039188970567820049793644319113917844766370483357028373384538425748192307434195939822870330730482126380249565579742187003157705269264190353376147350861226419951627633707993934136062857774487575807486709038529067291558250178586771422769359771503110009054673438340623273349359829230609607933921125793119188925586012831475804491985565270925281131335210892671724046376081009681102409645988041967378263833331719071186127930884675210840953761113812079598623580253150851905381142803714153092685048932005288692193209392663691641568169102570948587617608881145538885559547878337865047896110924401852733071449859876636919439911585163995671921334727076323092417671255244192969797930852710628044025084167304714111730562324919567962758876728528001122954106659817147345428048649477028954554056729424445099231106733151890223703906911001234895208480106275185652838977018877664111736117000564970962472384619170486356850971501041691520966831736984476517765587511135368728412727015678182782904224172459442912354715385238203461269748580670588751431965187448664631792542611836290808369924565360261614286212027449307711712948513806749460087838665779057220267629190017118226410738526544948635571232747594550109895822686596944290577500533336722275971902423513047848287821299519134641048937194116707514105979963633136789957803180114809871017832839044224944247301386202594748528633588709338763596211940550660234398633156302500643754236794262416158175840594753054037132891990983146676710868406632971094728871933825981113681823909215664239990476035654708537545894424717952071227978221698141160396724356299501858573377352735521316913618802393968719225853640392289924365294876898819343003988281716645530734206026222276340264122370645869177795029858726184158577844026768195590081085909089395917153895441686206398507913307552087308310283024388871082229729194219057102944005280250930163675426249845238783627798998889429756358413780330902706149614414411258441903122843572241622124468101446642250183099474528358596025391854049976857836226030673396529297742944554305344335041849166843975399122379661586555305930317150144467816918171559822660754541738491371758370368449475232571490137739528219443929016320538529789474855759878053720162655751838449681924313253511560036128947069111515692393449044147080709331125787879212942449520856308257226898965354361049119408649652422480027270413726395086864640604443897566821414602089557433689183216206760419472738362894375989847243575149852998811778051985285915891601249867369514947171135814397161327813575949390222665643086351837195668357491566880740286979339119421625755571237719599378094812718586113674068146940173892408177331992099256818488432359050378215911841150761916724561361641067937503351469959151539191286407726996412832599909005661212120691077512838806103907844758236193221439536140211766379211892252183697185125992622427462497582423606321128674883346888921640334443407185111436947386648078165193944406659661292931601579134305323772898060125169910519362302097603173937122038647846478938691981515667043341164966391164512680850555146095736430299472932161918145859143417579309042491448508017609164049006536123827682715687141174072186558253727206698234323048064904412740118896113861012913044864653990634341250892718642624805187064037614120790513218788151842257943952770059502275668027681026878942831311462861374967383573593501846392530789778854906484458927257706476280968432343152773936336147051233369960062239004686818527273050306946463545832174725799512323835020296246590804172814289182402530893736985703104691787066788760571431922834878839303460375927372167243515133947479992789972278778811522428682719469800708176295318950432998928063643671355751437289287660027877539904002027440542724961523704980997537782954092578519851445289645970243657060443549655068948784418505351606827767881800736371121532149673623966876974891080317309595404172679319773893521626664769162733215010371247633544170847570321172868323201451739682518533041065655882350549117873394977428915164838414341152561098298322228689073964340978807398095297127443249892881116496325797077148688974843169029515887973723771946946537561977761902187353328516333226074351277797807040992690348326863187276839924064245428426258944367263230641609859056830228989135180447380010681056120306703665304930287549537766222012806459266939236780661743201428214864747128434686052607908753061210428026515855561620997923591563779216485192177961162449495990695943664604854272889642402281401420064679108497657212101189535126923120366331319889006734749292414359855620618113954781103635144966364378491347700021137963183311446626321086123955262462060888047820518107604059752091085614697928262869890674097738598579648710451675013845782181471744212527914708590776892500582952125895071433003831989996465849778488923996295250594008169446797889894475772889568959479409496982821528955251703071821520270500905337359370798678132489282985312780347976801215155571699217280408239661099690409130650559715473771153813217283349862226536876655401943726388980958084391989998290611039192128809260088923592405563442830985868677027300197031371177373114863463967636785533561017210820792163877144077855056554488438531521314548238539371995523859809181449305934378161320402546993455178264224146367390796867145596125662272757798703067301741385245821024749371353794333025340374476103753401625541936593243103689934790224289787533906850238894204754705711877411030237053297608889372244577802435975218338623748293570049284708750174813979052500010607347469892921826597398327003605085873522675115565247182126163319411078724638915872827827489116132514303727345073490492227775866280273641316194486131240384767436801230091289285796719358359228973050587323130116294805396366200287070518236059750247805069958764567872246511775355699770985540374250662827012361525209431982185469844254040918660671571742995156185969094352058985616870181009252570262791279970239854613951399793841496530188299266708761373582952986941765663545946560188427871679969647557768689441155003319602971051392520917227370549472403324475256615968252978831528270299022521583347317762003424134048099511247997324267434512606089685405529525682747142015751835930492113168567764791507255971841166116950017891186373833996189653364296031002771797601712525237601812662248971920236405568179708937081133116953780401131443040265337309029515535636034186108949905646403326133460504833844273837520539790707611105970283103474765206919103011114190329820030968363097239920218456257582658013560671832215759763257081296467553430777266405415046368138036148361854545797758950760175553767380501829305331456061997255619429975698923401350957775262638700034964523164411970967103576727479806454582890870893985295509827162389144956098019645860882931185670961951954372859203217347569174185101505579672179163787900724752483789762120454512559365820026030023300552602231579667874845958590514852711445581479435744686929014653231414329689764801168402732327290507107292687408961111244605669293872197467592009443903232796885025515365345944230695629393389969884831674843720907180575349632678677437165947810379689956505630508332429055092246332289870084387450615335102879371732723493166333353590097835785490973740189558144678559809378961021602927274167389673576030250358650644819110825843861577601096705479768467623901849612765236241483715808818905838593114714449502223918343090814196021428154832787691927050831712667029300316273352050907493497595855255459653146280816295563553599699985003146835203099670673704468230473290263041567216554063296992113642536163906344732965314524203052734811520952239700503552624087072240837323073492783616026537740677752400508694782003786389265698933196984949877578102115696359946362789403312473742539454818325469023402287786404690931208256434087735665894140506203281077658874529034105924549198743765312742699520776794145615065752251897063120109152507619925644366161364494734880249938321625773914410839108611716469112808444617272675720598476378241385086440691510744593214557258654226780856331728985300474624398581283891138935965250301036066776983868491790633379606499990468552603342992277266362229236163268047187843631751974926082754723062830772974882552703427937562368477317110340829122502549893956278237458616679243912702321281221326963923717648893280738171204868908443633798318340594101801403671338551338314011091302163729868968504974271596768516814863250443657204823138057406482616750190049937083449961624545267836569216504616322726058756485179486723436539733709047388038498289796346861023664688465287314577545459369383594842496794516012855053345583844360486653719636945263687383649095599399688612933285466301182847430503841834899548926116492628398828005716597486709525580616217099162822285144169274447454080322813102183395101437725858250831249414822485175949740019727422369068633406705860558893379026282442757165204976401781508337594440696194051255086828411399480759402458424895906914220226286919389098856294015456673177064547726558434127306133038657759035524726204372997385592525768391120991724358319729585600077606042849825214979108244075524456464473422854664972287126768214275572940047345522374006702689222556640451171779081410008248077955109353285990893745654248914281571520874393034983073577495773593422067098719477191088460765186730877021662435387473176925569948942660491441928998813879849820099881499460255429168746359043274941475755583492693928846309359522007678874010274436767530647736393071041832345037863983197606298157658226847853430003303035437241379342192577404546895167516626587981084962213704315615021496784850968497533836455262279451734301105627388308185771846877248296686289671854502115984225500013726997296028686431712843377626665457629533093650958507883513945067975091857504258761306253182282120321398428598442598974858832157422244441187554701163023039086173350426340443551786330852584656189303571432744862272577982890548800127664259129441510069738402185559211034696298268698814932937880053875241789470914058933232014839704669119999627665961733920934917824110789162618149705640427463950852726218346519473901719765499754598901055066656354868628496335398122371763755172217037037509250929005486853331027091750545356138485163506120043400308806838393374322704881029177042882712526591369720167615886317911961658438655751794952638382259105899337212483757435503395404219915546523376068914354104442363056146361649217719441882497263514267356140056704555119053680923184007051829995864109390455979338459249487511504102977814681282023631906206186134003245686573416946178713857518286779024183811188835566765765750000655014280401733062355502338700893845436490452128994392418550967350613882912001991302579606949492676847938407685210525098071356971684519180873796997962009418089266024449414374864571099239437722474921081617488409951657805068519266711884177731681661537691798757754136825194423323871607324208663740027609894865915764456057987553842431534432195572033982085512113533362609007647807780449030073912776641632550409345512346497291932197297337834670889922165951860476254623915251248600029267308525037001943775197941015862906685872261337837698095355840750382893950347997666725851794788080899887580441486515624894721152431157254636289731209683037020727116681169271155270826383290856166310617577084132047140837768564663572729190363946701124392252929616234713712598926381121197229002584355584654756940655385086119452961205379556148867377272649646121311901729924546525063709790931903508376428364639160973052795185310238631958640039125541283052206696469053365815778801277617379298559928797739576210344725774465487178855992958613208531637037163254138048876300243217778352101565609621289747560221852049315550200225381325001287049316233207597558059649267445954458741410404100346507390294104464055035982085883218569117847698365706058018084906795887714380001847696187984429401749415025028181869223487062966879339678451218606073070813911165091278072344617806835787308074288006935157319950280418880513149869866830956459813395700109995487374022438541290280496020038677643728992367834168337329723546148910373506287723399454310037135388611874751203068914182682052237839134813106177954270662549644573114098943457621734013891366895438860136023856818034390786433285939405509804446648003233170992180023621556997432345375905289003288888310473202672348386194704974823631713770399420398207419273538257009404628284190143317625403339578053616699676507839218058370935146574969210675291927326143595764756550888690376357845950223862444069507611457847772387476950993567315205581848689619587348549544165134106401472980836319215194747840532562789354188853764404697288553444404479440368900236451946229695126306556146143231545083545986733822599096702498081467928230373629854695675870670802516130144782147172386035116410905626660430396624695142442500893486985387494147680749979970466461805867648718116334051103593893528089559194494562480843166273285472542777604973910369288371971925967469690890816711402299253992326081827379928001819866898703986049397200800541857916499357659167944792440678766087355137026501837396950819583677155419762651165015473133366835324213894951185603250349544975995952814931750293553302941765618335829642192808496728329006658927735348321046884433128154416007512840634370323020972159597516013648506132995514241678624637004325773230592312360897446431416600533834118618877875135483063212702296180242659892706075935069857577568641826488860679564585484806433913311937481601364862990622907989937542136718651088842581271037107703305501245261334574411999487643691128680880812631772869709998045886036547353544323611647677196161728691550726356979871712436867674164247157871274096366806850671050801667557946587804117326278971434235972150927116729387527671447447290763795563784248750769975733803040966984231935879981394767025599751205540046825916272526405330163658881983234441667045727840480044991432657784959083452100634058805752333936121829798423146206333761063175963441443851879912779487374805796524738244591122739375966403919891751631455818815095068119345650270132064544325216763921069120001614059663158026935750477879582697091529866705431357865622156846188810641042556839397066720792151904717200508923761240823849405793364700357316828372914432840165841330322050695636238386425501555281155606959445518169250069180578565092072145732263129249678343430309069168618597842659168260746784322726347969659043681842347829812367137217846449376877578698881287226248117219751722123631446425550655289708058649779515265706335326683407974987916608923736020803161462510422518234821109700631876216190133149378522295546570090962333864802743930142668239967960962836712572240871295030947189936427603168503510430832278358116741937636087073060519974168268543336350103901720155181966615021524159023893068121144272189044626078760863358035625301650402252058820643045744685850813809868425747486125095986519046031360201285543289797657463022874474077561474051258030030755343366716907897107394658818941659135128265468182457735320750499564544036213868699666844753488356613359622968152790631790610686345807611062894620607437373570714064637065144355949384390841224917980265840976252110062206287146476095714234682992194798641955060515485063432849980483575713867406849605527366048051986023712576990367661429238114591081463548766696883221327099324567546688032527509088627459891975088504388227479947158750470088097242684144507076909403239018912346296526002133717159535404931360237787022414773448423471965828852783173548226032191614131632041210376708298245452806015304017953279138039088423116192009559299783462758456531643035874758446832863328764569965773939341337447391404127997435155365004485812531959158351088850210267119471119778736009167405828205058700194834477323838128029825012445228943482947211201437828693914859528351872004861995060695601680527000200186525731190790433022807982977761166592557642908073064979556746548697089483362293513968171040419868531973968201324854160689999657729887272919910230994597761067400826617538923313610552502209026371179785948091289560017824309544039511588815205479034235540516272060504830292571918636764350548760247956861214378436531400139517467806776819375347544916720909227574702604506138542617995146562806581342604343371232124151776722902466868205561019609570320861479306994391340724998827728872834919078147224545657781168452686371014129589905755230528109856994748146992971274464400376857758787827176433129512399516589549647649592188850761258054713232434115882486060987890200060706109463417963954130567334416724190816795639460579530723566970403509178321793716830923426445654083494451852599482097880073334352421238891877512321892797420456386693050437959194864473673371197988881340093995880137041803342746615904661656479731464077309715983325558722407201758655035590529108786694694466816170636758338561683800839308323171449879291062480355123156695113425323691302784164040069685833041162017556091032778402356250179392752627934824767723890881779442405848376867097387139588663312789731026796038235742125193708488550803155832248462861267416826768279588206086117896559107804703966274212763542146321901875063419525210656217833224076833734669521425173197052295186917125156549060401742414634660132119376774882491057049437307842528719573936620391308140231823592982825164714037258463100703287960452541237934027054091477042357219854987004846235623302800357907605778360479854430111227768293270021200472742375254487973395523316574021644778923815658208272002305780953927370894813727213155860828272044987334019319814063881404550667646357028325462822887922086265527432487616815507757736850033730346140476492289464934606461200637567073831795441132999967862261316598064482853165060996716860763926369234834447952684517713557601675958433783025948889879087439921859917518374817729673409950866655735586047738473300419673564439810075934846502595195334476325950647447393943302017759942811989751987787338446495310145107705428985888343154382123958415226179880725828444619885107085234192051855130258388538031725782159403737799293216680958109156245365196815119780007578536245724292135107756833086912866413792469289561199866332063247503838514757588716293116015034938329763352506399908649967131424492754295335183647106764751540266199816531139358957926046540595843122366630350589975561804559969703331221301443360341793184837010041492977101593136986873864669153647919756962721491357443743623748976181198930141562552047725435556275382231379907583505319591913902711406065281224293082663179884128062805812580407305142461937552177054611868577184815522564460935192559261496900823221105732110266883722396480095588897973274413814329135540260126378218631713233255930143621978225429100594516041351221821820586204417307675032462755008463830138723127404057356161476704475337796307397550303124036731202330699926731440604639770404437170919858675220293541341188433707415913793786085900540763002601755693306327797200971794208273428604156278147380449877540069622920947850770476518136171198470982763867621413908470628434590550503450380485236329276776468010556620301913082507372101457176276571088665801602444076274058409025398653864070836630884414825968467987706468566840373357201736100518914937935048679535831345567370799961297378342023793149665540586685666612360786681645263405939785167913222884673183969454953235791601590803352682781901767713550226883127983687439316842005636459530841938583174292143038624056342627955576632645424854999708651761091593600948822408917143934670629088254420466123456116079652030229067569666283742467953130700512877825324413883476874782879330392277178556474973501022552920525099596589801765077040464061911706223926278694701971454696376526319009426059963477234718191194567509188689422782824777435787239568708334453578539288595242733713350716207676088984048168520300182021075756275323942645129476315326128442806488658812151265537665399320938505039028450955959202570765887361086986282505217153420115848343143183181710341053203402912116269790703390167034111324584691465001059747881945849980582143610288154076162150505279521352170935603510352952146230521607855210692977285448922458179744903388724786075464687109054662638725767969295562158651901101018395012377643078942930901699583999584897823583784572779412223924321238957361173606251339069637861036091086125619978877618655895242340144870826270871182622743016251070179435034201662963041698593636947477914178087437862304921401735029114781020125479837823157109305326937683024564196998273946531504115933315308085240710033262870875621008125722165743359515451593672861526384410931517604963210970268611736936114033828330341414253713070443966311536375547147855960644205603359938864257329979460731214331295252413213882271026269620668758714065638100156773647318321579059391479663681344356238619293375714816417285826210260068838135609828082628340561338529929368776788250480099740490462026461452022176334469428314891987941782121320668716555541209161246929554569264482208716592218549154608403392057377405055028273386191764969271733902180225117789970253998789758124678599478579080026208254867097889856249633789963590217237988839932342817038381686265893460349834471928373623548653793990099834034366231623849654845237083178135604779217432180049371074735643199177962558839776077093385108092111265913801239223850279473483886367882726437677883680293681721774163447181520260761764997664685133114940347619781633603742018084879933938991517099772084771477847740234004525613891042731150725640704786953803314831928343166777138488339970120879827294203548028191585578548014876301300316435360483536558138802173484602745788528821659477550342452440823104289466241747693282765931420248617656355830147179491040336794318165436354852734692111733161978495292108811249906919492294781446101632286512507281175734385036054225316808281023491440362684631921809123870641069909753067158844072014360271055234921135863181497839527780661651791372252681848910127568839101618905862754031393911309580048860937137246781042097717932743564116078160617763391021194126964820991328654595216530915021216390958453235948551257083778644658695119848631426051518264430581569602690405242492483177136259947307747770378310769280944851097052344828807998134470857017134598368169762043439798073044265171621619395932608940289134518171349485675573402474836109996105661859790263402535388384232132393521427241819367857939780143720479992740354366206004830770363658785990486319863808853916659236765939573857184392442301739344263188651223854338729702199520777993571557578822155911116063250805004112336335405373738694142261098149980173231103976936062042869018049546673127601901047842839929629269936513211108317328795140299838180257438153555577008499793506202182119620575445301328865773348758501227931800695042439905023617211748742406415333081726215638328420408432869789746175360347582482723690295492721259009890685780911034562660383949338258940455372976941809947859712191281314802630738846833201954862422401824328890729238927560737358861254937865329800267703743098570288458849578854923117298279275596900478392997799407271507097680760185167293265330576743927850462276111054782626616497715430032680710672931952211637319402890983634753805118882025095994468905784808920294456959462118159592367451729783093934412593974327015653304672051656654245497744318884737017543641249108174414472387722299842639473955814273866752322494319527436014481901542131856856997133261982171398653447662181568812081721669094608683051103582598990108521854707278416814067364607844131132535796396632838410566319499802381538032880494602290548656638115252623984605704375378213750328980368554072162179466764670375994784212794869682025444549048903076820170982457437229523924714661070494828635806546214440357455215003739537620844182691465287519868208120079973690091987290277389518579268472969243090859783841797454408347076039919245092991541342658041932719917292476693791127331334917209321781180865600861582356681282144108555721191051692128193732575708961100956376934624377900409903524284076994247079112873032030518448425986895338274298693412083179870568272282623793490276526600709466862447444893085584804226657609357360858453127617069091524369132083696503025765117287480154972528569817508316943466884748874575902089547042411079710057925904918342900371197161089558975637655595173788903701840019057261326789984062107440239420191544889693006040594145274623128569519745042395149041363726328561297686996931856264886123883126780847083695378268378531574908493946529294220777944923479272850003331810876515369572417788590050769827251182970951835772889037236414108157422853052768640868086506825670863900212872137776708560946290069413226178950091196159099491763722443712398575879639715186294647762062208358151042626809988508328848890623145812548766449516033834027279053023350267107100649953238317210598604246092021896370697605295840548931839310899915964351245591431413171344534556595160110480947877688457610021907313215518944949767220244559449462719734801600535448223481660157094690951538266984119773881564540083460169852866340767976136852132781314257030961953522279147038232066105788163978060257498615198507483954424984373684769630685662169285958921947485195695785656676326566643118007103892415148609159691739762587116137252739883622468740568899654105159939023155101907441085145779191501519345389972700531135334546594883089333264295766122881639132573866041970362120930558720824815707056272098834124489283540804353723456935289452996728076192483908342280657790415939435120776620766854981359414955554766477714737397282317108716284971418588120401055706664682420832538533097672184842136083294756504398986917381991813469064968933462988997450909472182051673453037638148374266921798815772229829290188773168276817367508006152808852579403858493799863277098909709925567476629656622436392816481253256076674652177303594267615759657625275738663653938188274484997055492130048693581023457799192304461782615154394164986911628412012598914919166166960410729820080913796873087608425984396811915878186711010096504504959022779113082605799711725775563612164381427209710785478719840803026549890229583294003518623442322911020952347438333451483992836078786386999677289618868257013597374977989168221526354084325507386050459242237606430226786941969101995143975144402270940386275063199817412816918729567910011597151517004070699538024275738092936359995704242883442176115032602630471749412948574432247872959069806474824878397426837585543914995369636102749152895193287738252517229573531379352223290791876807147653512598945590578308730375802227455252823503693570087640351923912231901792554966565827031823614310606701111544009599823591179181192674427455437545616800507162725016282419400794623285746584771404960131282988252197012991779543730028431265568729821157277788337590540958977671352571075444375321413177461982471782235363271797094155245280858048052544055519772813658349765184371815019081735364641079282796764714070980133541187138145679982756753644311119951344342615119679241777456422365658809824264589191599726796932329260799933951804419136436757271763294077402849395389829635133365347427424271372003635630979692626982998706226452172327489711421310644333160764361441022128912541391432107323969765957049754384942987670905432811946086963710640615633669929513586939081124448610777633568606294912807556712458145865506707237672185058236532028661476337276401112726532360370297566777354856380373095887828458449100677210887897738451377464118998286303229337891736725898040291704442317344036309810175866201815046031548398595394476943308279162319476870099323826408284061009379216342730066867618255360596315053884348990138319546239128866646368226186612405512860007528077095688581259015319846873075264103849363438176875886058220723704513374056980264728743355488126298640721288053506047675383003828765475727894478259162462733448893377424488009624605031126772661650707636909673464317017740261743051755065756138609075565046801970405068499202327381665097227987167965795684483539991593448851346903499314032358562669408183243238962983725156938515109261609107216871954897884401937418629424199218159892700844173088910802964284411662856513161834566327726309151519553235045208360847523756768884580271947304113962519347331399894087427285612390654454956570724587207008681109512297107647787125628365814913584719369183140889747457874014109350917513227114718454106840873519059841468707289179837075212939789830435045165429033197040882295933834818618910994305509756655370546216234283392357191632257263687699901072232982795002904164833028876082342889540583242950063714023170228164299065288710257602586926728977732135827370973775477729875407816430994345420579594904102406958616475454415406590762608025400431113634461738422014253370748908505144844226962105176225129983045693762351648285620865184571745426106382947545102269003701895200406042766580621209186522907357074609630821172917138817978942635416913047787560198797768382299000510454581163650410685653602227026954356691088808029044550557930107072398070082215142410362203464096304059456042253312526329289634097140099465706362535222088966821688203150125172842302839072306517848963814012837524461434030962170652232401623408724955391106551552601626185846000847657909844271231060204775570810678665344016964172797505473674045973188955479599451857904137479446266726782664776283642009825208286377352633562686740261965753957540373154604101466200558225225895206256418327507419852453419519848322067714571290856950895761594137277805698154761350122430636567963832022993563755730592742338411046523498283058379558676693513783160709625791346442389966170132927587479542220822828748413463789169713909957150928887575264761369225825913100472206265219900160046220060187702021269847006947224182432521710329583451644980280137734875197511246511577862565468286767668361542712287108652826639985077466332083547520436303430824221850026585172116093898239403412403898930588657432138599989943635348315033382482176006710187164531725677884997164212145160629192366983648348278722045458893616338109895918953761545552139967231791815050726108863850551498603983708098492516715412957002473448599395390951173185434856962645315021398254602628589526842509126174007469866889645104730379131303811705538637747638684497434755356457582368727209325861235815498239630800896427901028561504165086429986768676365368254547413546084915103484696105075036202960967374365587067621012181606638893096699329052111249845014723419821130758606526140970059593215327988414698542347079892679195047334453591392731018992534141573733155554315207208380904016876564841477539958623873818627917245174895024611076254336970950653834938205770128434859659646679770461599384466805117252325603797598883779369425103681220873756667785002041049613906078475482319409049699075201131767978237934700319514427195159301199444014527144442541066520216080468462509738534082186821133477842982777110787538136646592482592698305528507565069491166318395269766712935815434383385664110235208362885054763215524058008600086189758900505563120548652628993558038542957994704383753165946800732198085428065632421909012834429025401844463822646166638980536165234608449674878355412211372919228372838528838171042282661733850049213407061738345097724603002249457500053898597802163739588131163059017807854230945091277730624138152164370549553221342425305448727991835536686004963702350603298713379408165895110789298885521198183070556122178457366261547714136920230664869760849996356104130405564771698198378613814141418889926243205077661947900744902984803333976332206491863280724296242133245114993001129508194963323280056398664394162177461521390647444877212118471940046139556871708099179729794965934316952961499257581742397570322675575788128694840008520055811183300297978776416853124328018049040324828436246597174306747415803685342490151059713306001209247797648750543165775172668952018325235312797237576096669664812596540167180752886708212479833189522774215875928283294062416609239785325926961091156359114686266200161594513711182577882203267043319762299011650768460544067688438608836729600169304644166248596389528410151011022252157670935501468497352734061121324022958511140568741565528524407056025605095968790246471259092405601893551820454805491971076299495598654462353306487676798799044452556195734155993083657299663217055820534022460641859799402646065039102394583379350886446466772826389424347156848991939824386364425788496336462071984904973358648240512614397089112283820741056859958542590671991321389678611128082612632702426408040658722224640636968156789265217760245414615173543676868926337435687033716014909732713061478188944162061193029958772250484164872649873945912102813045868817355374699848516661129715645123618618236901003941337354892770447183742909538383992334690204997066825569239446165071570491801689255062975176430722947632796401401378869128764567167372325901880493629411770608225818960943034827404100796425131675414371908788777883007371646314251738921869897069225630370983516832369700928015034739973831397842071800561476664704278528353269777414254748705303506026034543343777931580320468446193835726164490650941023646661112616696703369726862973052278746778448955260191239600737637247081477215219607979375844438395898878271065394516614206992498834141354566458561782019921790532033991383184844149480462998363816151301762455325470363792232956757452042091022482602790422295411144168381339056119880056555744364591592796197554594264618046609367054382868397818452615978581807663035375912960015238883708046448724314490351380715152373235532537856110701932634814189072631536511086726601502743779966389048459467720970039544640147783326128546415053485972577848501218520080403604344952875550791202084685186522417525401056506117724801141646689949657200412481577211939713978982155701530101062450483760923129730105748807782509703518597118020331821896121439817802428302372901250477797708227628866733029782700852993049019451696892201179011495254165520103514250359951372381781453058452963039938912408063803041875907857240447363059579437604743260120944633007904266460828576429301506448195683424965590721193051175203643749090222853875859199381985674210188917696557950952698642543129690158684631198152311814385957862934633241593121361517159324738161168023911842731682494153939943562801421911488624693199329487423931379004856545762534468924812503529082485012109816596322475736688394782128861524968669939068835584310595645516342194485302592810515111102433207008634579466136588386237276449641348274853237582343317697242707620299388176865048589156210253160232839363992571324767213831841715139937750203627597990065351887038459569786006135636339273273995768540156463774645925993542901504162074697191930186859601555194647463803296805880317255606988281806701614871570653952232470870489152582132152323397683999502152866485860112629669915040907538455180774030486490372555535790432971633599473503485815507532632606272583648091984107665710607095557748342352717388978642889582052885660670506681144779440695955247305799591893035332899923868678510689400288104830377014926812179644555375956967329829170104193544528094364819904253081491611751655339594469497165533571244354428716729892533363669646974062109528934326889094760216877055014015698651611824749694475731498594557413004400762520155669066494034368876308018338629840987936840106035781110497991442706723615086914028177338752686332804486774670737031757639131916740952519450338117977084614983165981945661900877159026827695985052561576103245496254830355467536479149154544021362755344744218964729225138017571741151847337807512333086204724341760073233014305402302457464950553380752892957027235415042212509075016202416562380156981984746793500460596049608224813088609062849206423344828389725339237519859913031950037291239959431338449367917302063580850350559089404573344709903467871341935576772604195080117249002520086942363417489936933338456520897664220720745104779242174748752595238753061075135707976031219656906116598903212010744589943812264298165901338797957713468886081938725104355935811160218892174725712977251464684654927063545326835820293910258044054947345849464146209664116027312121097089023110835580494075987216096388285855611273235939855029524321179187675948752272323407318247467659156927001051465499551982228676561732427707211022649092941324665729514658977990009104783930471354304930053186648965833604304841985780764908046299061787430904357873404999238275788021124148705260957980780474610109747201487821706615791161757088902039062115200138105939118719269236712655958531103123228683171410883557459946813703802063752553429424150539366094052051796389939948431713594172874776547774513587197435604237489237057845038850185908473211144870832511040921075359425422304723179959276544922458781261964295514714783537432200231102130003418141325717025541616246294365260905604535203937974639038161504523526029695436103968902659990498853645876849770598428429547036057561598666826848451309897856160469055103837952671547041612616317902177159906841309470346728331207183940532336177384925973391813514471610801069774685212919710425867797516732876666137910556369543772315771490495964224299724809507845661358366716770473408599970851682348318459382915609413143121060837420485942744807483142738555049189052191270816264681617661773327373558740827523977189784004664417159827309206744737769510440664328198171492924868217934716370910265343240302481386190013775720377674105193786853918329092559319521159185522337561401668581348584500753388111554504883123797564665342236031362628400170043122512555541905996778322249209885151857899608588347155699402353796861078348151780341843088918726709671136831082934805589779333423717554833947503581872698610401607806627941566472766154405503027772413364243236822533574851825383586544638243648209501349761588219480986803261793974836414141742729877840881977490137269701124038963789633893462335348402425413733462646738991567882319057679592563765046288059988490475855601675527595879821792782826448157662298894427340532840985823284085290907015458962425267909584039317898840048179866837464683398178368382672490195405267337431177268170507788477507140098642895424386146907028132084952783735806516041307994749841549716644182404207098404525323397170952997933720124868907650940149281786057627242277311515020987170016257922865585954029275045864500543889390971611914753268183579320281605734105312449593895822801519197414852203040322523076958182837034896549004875890884264559673527551428737951519505653193824196423417679307172381657192329664333104370255171017407795490395445561070238046899705789209969629862784605237439886370744271925734315975095022857568635578602535329449233197956502033666097928493089702698564000929522529234445664463674580706386638539691418973230417131633022086114908648675201187651675629114622925293530030881808647877293678459247393779766613798354081965470532814519491700782376413018441643109869978984125468596108174558441946068729677632577980060367101036096046615117728386525297712591697640242785340487081387313989971692747376333290372633347518518821984975945771987707166923597331339494941623208059245709977374228480734390716040180973285397961503179089052057953906066742271948821525147536748801149428068193751411655789846170274416344624436438961020091712336394829237640889615171684387862930685057453185471828404190699530701587125075848486328038971187109262771469079511659482774520198655578362737281741179930002813068365755477837390166030960155077587287753074076370860216984142623874750668142139438409306323338519418809788517579533823575229067749782053575647372776431958637494846920860666844366706068852282920230135613045610767872680846605110299463642276313376751993310258475638445845376494631867661849720829994290159909772145428246973076085518271333827727373140608809162463305117363332603200021377061685000930973353703361417228023074177628899899600326456815044728247725008016599400192644803559640129691995861552405299229443269654917761359132018166774002769842974963940435811546924569373814574521728116843366463605652212687303813892725407625970389696920362312239023624934940173644455959014623782945150890773501173035179268495465247459094843918307665534423880586124092335196135137189907771498759826048991590010359453850455454436663759951635227913113905673558270441223676665018461020319534518322880513173289472321304814624309052149910870765740223662018605933551910987367315426812045181883690660833230307147807547725475582887953211301012120948338742023527428464205737506046708260988984167178755438429343599902739683385806498705270309661611759498417300736391233849692939354948268431419392069217016663885595628056805933621627644368998391265681599351893261251862750210710514089062633805484291421443502734904943944769787410733638139359220523478129344940911427383780029958158778459911568458441702660168566044613503847059637901969153770970803444849049237514717169886847441605173311125368053176972030383159983268698662005858008308876925504683106101200709755679421171438183393629802283075166225790604366097542974968796939646478765755705518805512971084692146403983707058280226979275727805248773203440104319064271737908773620255873397289551724035985149833442284293239519980237623654105745547597499330677937407177342125137133359413003431162676333323861600303368215370927186100562694526796708151090218689332996510874002830525725340668135596462566916193566869554872575327399727275759001520358889140972467395486493489002930512619409594197862410598710471414454237363657643694647290277904291253992578030371492533237571072097818006004043081035598619693107728758503429066453457426492862331300368299913665667948365949488628566392840006468812095151267894487539446837252874090505732213925382692897272572548668225472028744800277318525744103658019297552841474862657460868894688974622761527596534658692347057863588975647967993391827216010448160869695604314910328516853342488080348353716549332833580677725514829309851222085936796835064370964450403227548033645089355664119377416567485605944008954997187857073822538320317132795683208040029145261285620437123979971137453487707611082513620541990167243670170598545795099032701497129808052946525663201769611510234344264214129822154395748466780548744757588052409981973508776529886258697715757014186362970710383512622798144271740188672090533064052251199751341225533041275594496216592003373612255376467646270407966216192638044039873517544872226779101039538532073930162621231758147376690521554282680701937945578335093961523487787939178677545375161349133785291879885417549304946687462322622747880671010029410991844852558400885148983768275202701699827524181611402743079084835497232779499667473041186047586231729925206638813863913507208525974593507005686697833642403326562339564822530748857181518657768859800104545162126205655128023503384253045926376468386793106027358607462050195539558170257598121879652097852095537810600722458724082421352663959518290176567288227206074506107628971870397804403046646367176966284406345460942590486587882797186990780534493276454666737683140743685986457896577748040609657899055211631233508564284818945579905028331216888749778645784340374765623566558454000839042575179926841053549439512209444186884005459350161486897676165199901410687930800816441303749730469420209306736199149739337045556037263458151775036421705699761521062891728009587314694135816343413817437439356074848771133246223607092310065627615266731566981990182649588160140021363417866360192558707486817042985025318264460456660438141731197386308979284248144984132618424960388795240573000603599992420398790279371797560272996490199456613049141261589325270872713310226835885857042532972139692063850516101898604102096116585597178716979746546578961950938076132644352373876775636415900436228318533417723509082878519219346323808677544908505714888480754591183730227043976485515508900915027819383909148245494586851691571866000544638180775885398990809462310017222655272355108734734688433970757654675634896726413878335042916310295294609158447939096974320922934594799903077145794454381166225131236922716885367380666579974723817314977837382465176265402973154338071457761863637811468545457029921382339380165795629987705636693969096523317574136197715555731249230084237051308255764482347148168000035135042414554942557962642319370756956312865583794267768684147773841399274371145648239941527951293195948443672348552356562072510305495184834600497393959362499716797839510036113765337915979087599605747170111311538018418684775879103423190133445323654456220384621845318864415332454020483044983897391417519235620930838448743142798737226255783963963539907955067205568425739215833511922436530240346956556975592021357615946226490616475567186135269145989149487561898999466148958994158837563763609139431836067612445024098308154315553138145743816522315869060983409406493137600038362831441526540594680534081333146697890256695344061507809382885984834348817382069812023902580391839955768262003681381215169929834176679729140545332650003508874642127364012291941977143406869413434271381005091538132981940327394972506775984525597143058141173835584306698983859487331819679050069721165396603457478884197793075355874181184346238483115994907921631166037469635923387419112258120202375532421208106735467013843459578147669560961339234521586429556637705253464851646533858808166417384763298452072818663165972130253559388892920171691568341285318601446327158016167023862919451411538809975448877827364834340888663411620198485746262140003875413540784582036053760281766228706780654330543525538573369915140691962931453372929332098180299080667494537308808460199592184487334191124833262271781365591233013250144388740620163751501087210726827694302035966091450674013706514292962725108779623276288555372903751827703790088187876993814633865991648183716975528416950055015776362364399768880478262037921967302472269858953428370940964727959068164746911253282095283313152272703859364788789616217111204028332034878820150494133794307768505241800291768860881084616488586239301199085445005594609373929188556156171266359776278246271119425316157414412559328364367792204477435248618982781578750180037445656018169762135890508556637472930012008894505880388228781419013950333050646488875237921153533066829222488900867182044142698496388976331282364794188141435034892585974925188210699470621161612284264094368941057069159777143971750787501964408477793887677661257788760466714020771182942433542383948264189603334340157191326984079586250588833844452330338920431587713208250214546651121109503693267935928633091192512323523889245420934504859519977777983635719205852997980043122129546666387827101633164397905045169545042030222086009519745721997558010255780191520051068168965127395836661250126336994067032821979225304171391504493824305646264969695746652824515378580111458388835812473765219308601894138371720145677215926766954417720957615748300249474825442511460677527111020312278504484279528202547822257924963351501467940010060531322762127035307293256149945294123063505365595276700164234136759649001257657603945936819880784651873985338189293154975468860424139265414305464124784029513784107527234263997801734662708993598687395251392025240390072748738891080402716227421831026831811957718295635363076717874654764387336778481932245889748630915297555620891495663815936146794802590784453807862824053437385644352271918676762835442968879415633170726995671002753594560408969278858409489710314914845048224605719101581947288725355932423928561886468863577320764656742799510290756569707185931856718893501485869190864969202435450166822991093283770058418354345985013946087934389696086511972213481087671663983931856357660565661280216104845252658052408516079743619308759964269712570401612720706810536399828048943651623326154734691426057567808151510530560858613204125483156994298527683421739241185942294164227092378024743612682803990845907218705637526574938340130712047895699686530340372311540499603250416959423668665534696299589489620881131561000183057414115037030188425409732784132861813767146006112943556525741476635488091230909153613579615648593035765084746045976514961512143589282055669827980839393304964190268236089305665253479669345527413170505514252106760646294800834698497079610269168300482144084507214108905134638862145855693620349077472254004099499763126497295282000963251535741687869950944699307798957029243280364355451605268358654988732356716327580933190094884994938554030823273902186854223110570632809815471184158548089573537747899206807414214034237965034784741400252285152202424608279729486244839792459976522230766171812648716776017116217873050335211669968987844398861176412355717465992007104084542847915497833370303965671509312276101781258272766369100198712733052949115528272715170877388007121012472864903993186539094381209427890771340625136777890513616531618052747572162001594611120192243540555042113490454948608855533340466118373546332595539327582601300211126108913796278644495766317496263233465886607045033688083488315637825632507269230272878625961088834402171043432256768411065356201536587802700358643874471101616653194399399322371309875923070804985645393447771590236153212015389753477796856964244878585204143359162132637205972099519692645483670397333904671859091723444575942180789679628984294427535353294176360677571499584993768318059941933424157492428819868339284063302128034226029918783738621047660410389983670287496046535213531592580886174277678377033301254594726503225886303569471845275278276097844417924079405311196871831500005439717481598750934128671779359065911617257841960775571446897291567078575294633924925576354071462355118553245007801298458457061186122935546133473103026773202997697914503003263532500783337929333891579728731262337771131446895486733546662154763492093086291817575651658056816873804334634627565562590215016353891769472046822086105557007085159883251588279188602807955122262197855314980050672152015563699623225055278969264852513220184058708053252745428235800379486862337415510609596374179169339808814561828593509390359895481653998720589481731590388880364526136351874097545324957782887953069536418185717649378044143971493812805460332315675564485905233363604808929222338564923443581566405300676903266708185702756854228242788100861163578717438792000299785920734165936835826840808214345981238612669068990778051544046899038251269824134758956613449911782256517199702081894082606438656833969054533663964962429993670439176083806385099957653460622718104770856403720203970177993292328802890813714289315789273647999778374197733411511642868199466408261928937339184740489826583246567475930772150294458365050951503858073013909608221635679083066980482403977999771933930955604072511833336092449991515920773578644140824729788025693234535591728756663078195354345497706209067689201330338021438522733469487917578991721578385343234815181039776290995428942570442753989034582045875133159179326637633098868704723163165829754598224563915157274666857252185899761808838687653478150036767003898921565642583817652122858622942773927755112674513468226618312479299039083344401152799226892845255238719910761991050713218462213300547354062041426209731272257842378206756350602868407634269735453894612029923647581596489897859279739273189376372267657419357226817793219819966630402180656451613953376575764828595509366482957776855247647960980832219622560539373339248801649261102243162512413943009322202838293723352939578360050109371919497315493725575316541287574016302178790618708261210721338188315713242663214557623077401460437018802450806002480495703096167564947186230510719167593295621374541285205782976511519979623257607988407488940653474250092997884923556963373623543960433893577561795631874028894949816950136671502713639589670995760381405074605104714679800864239043605262459087154146651796582640494309772610246750426662990378524421858966858727311745276403418006884089212304875002915452047774685981602870194275433746524091901808696253076251248817725946606672635418805185269371186028327815843141205208849026138229691038367431563657176638547756931029642597214007654641738456123280719958288902886889796499859161201174460522337379133979619010098728930685785445474314556662395608511884990088840520277536639716196234702470146882016315657738922883717424486975184090811173274605527012120602043343053166349111692420213260544861503605531076070133048692191274798028881765632545343296697410655546494174996648386944807283477997777144163561018354858935755838117602644799497749191122071905978844214509955502550121470732178706502807032529032376618678603525810400949350541512555507249179053949132645167181756071097683238428345817556194011812489411380508939671327439628709536071621813159996439377248783191062276872672031672617782647063282377592473716068071075945366288714763298054855506325961460532748597801559830957684240671332482226686403458520034114650864181276016628752452471630258956047906851295024512855786724335047198926379371871582835300263663407281685647077063081521395317387862489223650183933007465295495020316541223028603601633246870000042188296927293197723743548793986860764981918274286655930095862573990371883073767669487748856359728143486405761633668583361180420005325934568275545953922495814709619350089173213041014795704743067928698042277515377731159568137764532714351130853116446849390078693434471479046149324809360486026849329204916675609856750222230496312900477696035048267502337664292372745092098926392080835626992150084620224766770839538110768650452041665341660055106345125385471839441337354565077041052459876619106919013131169563420458639972596144656546775128752952250327322732262472905090069518634720420335612243665983135602876956319070510998972248140240440751593826848031148823906310471212843961210523025785900387950857318056375950510394048319896318547020266554713703098267659830722538605268598476108209559319127508972072985680639476008350565131835112853437507165223099838871912912929890835387954498985347927942580945450670072030847448178605174487827261492981434797258490908203704052508241354099779080018315398192466654659108337441566145119714317260604635195926595579087657931491685829190846670327487669445251832863010905656232615702381117324007756978872934608410283687056471127674830963171977434172109130373864544496047858870975606772694600459615413268228394018848633750659160046995208689374696038021448155099804734836101235277806057234747100822674300697512362464881448594479698211794417071681032302071416549933249304908457993331618271726153578546332693781134739918642113225482275378787244451992060373490395135668071752741080160663707933099153418749617265557290513186246121454745959370340167150515701782729265555449024444779727124186770260248798126564337357912665427573443965772153496466753489872618683022892056975753186264628030647074692446156755242190197463895558390330763879116280672903780020329856280400015987134094049024881551359527397736089811758982897603490303427735362608667849599824592292960000510006037385566766634267464030878940887545102113060216305831016375855995165241375094357042460344960539684470308190616084537327119333342731861414412297041031548953728191181004376045788642652628297962900586374110645339182836375287250401645115516756140797048501897855017983041272165238201698510058870624248889962153941633431922071787724181498604582654988956598016564579821919057801956236919838391448265526651302504730538477551404035572984602321624658073281905780140954206226591771915745078281764002408564880193884223224677825730865148486944157441017669839200202031678426386334932408015027381699233208393673278518366696916558539354397030498728147622867251590789473935783960249635374179188110793003676523381631576342401885774027579390540601174435110593565530897082360802306475732844056843500218942916905067173775102447370430464545003153832667768634436044483427876874284722159471352679719347102868476411407671001719047084822626537200210504215861072591087593714148768208353963888930201939057655359844804461513052911629080625382181635002904762224682027929648698186464539003821291170194068581511736458845611992998403939702941136574136780766560740897062891120532200535699849067256701815363393371091177817230705683346294068236887394537414072925066889535063371342063666469537189492032889450817970167285159245297099181598946409577776247795759909935259421208910288407327854718068567971984639620795877294669312280766941911884611629113932121125805796890711080267745619379534919509424061895663473052471297795786941423786248101617563933196321561718754772921923395376568348508684577608905897676219218935290771474210224430621166252509036171774024417799719017163580233671224484747910563752949143924265689310564372544698061259352475101313631503418378774092648016375319907603532129274805223207293436059548956839313388514639634247928509774000429569030976525501421106600140310701638725458930879045768560083774686404957018784421701990909813499017337876514782832363489754899330520926890967046363145852602018345866509862762366402427986048169098218212419803789779541422231869246273256460539804341516180254970730769515660426302224559945214980869226169008513577710332956009130255633157446211940900022914126949507894700747785158160327247036971998124486384869320817966731380885225101641524877664832422539439345772676239576894597016065737026673650501330396426804107225938088930903577668440193416791943204611503621106376073023923988780463502345884305523813574015771585163369240365901933580748882632502203230066727133221141459300335059975993084966891458804139242036863199339866445842260940892813445131917377235732717899881962882179891998464081316376783104990741087559553506186595125777452639070636076809005797701779999106826329909735316004701398515576896274380305648464657456723592481844520957155083938244094069086959471237379722090204934307880996040417688058748240194712983575337919564270747805135570922907642135554432019369464993188599149991821103034109817846465396769370911797471747575403675550875700244912212536154965327286893029379886328837070664030741222010265175227589460116962825646327740764465398261217195792739119304505700844783169789067996227638024867923308187200789335137913987269348642141964258828209884656766877595810379638099232418149025305636178816613575916543080764378970492340849113932204147916527622523185808906998148650090832260746085989388289391160068772856560806540780223551567641615673039396498494863265442694316966378416196560292945568172610865684684003738619469434789843970297245724452059690848662349643903087737603667877661047922017105449858906075563605931052449045144153216155845193628076472156351376665820848037567831438847441001903989014077310574222946875651466176499427466023936863203171743825188531355056912165862254802880648566094333426407668444881135409833927772471876677484052748368738215456969315446108726455049079864812944881517761572376274977400364887827023055085130978119119825596864008752012052446235803612843181623744785314601238938526354408593466412020677877684004141188376265536887325616001732984713480070866203311238892056349900159514106270092323342161563055347677969772331585641362678170298893926531043761981139557406334359969394733471975346098145155575791161661474165168166375923180078920465518866942783083462468319300056364265513580052690269614150903460369272215169259985313380836269538092582722770155808937887061215480020121492147327328643091918756732197357419389119629521019277337096281391854513448160167258700510479150836005931593066161851093747904016557912130809846756858966492350372466109796787351046297184817750717901546256405221416947726078297577581666233499019709778846719123802423885005855352130408728152441783806697364596612939464236298936374381042671045273427829364250619543493038882199129158996757145503283419609963490787450983794287171748786827840387827131183329070125836749410674661874646398275234435234679472385619430983541203862941004346564479319926740648630567072416150623403440293163022670992095104903189259543553216058974644048022609877209148666109484635844515645697565732877586061533689107282452522956773223586796220283940294743128025257222016412062225888258791874383130781654557148240085132918106332217924268975328440738458483288248422039397221155471905890277252495297220871547255054200785092236267118581467521685715210488195368290196959372508314969277650241580496593296274333842495562020039377703191158978006560820437998353551172301674977797560554288796697882391944812337821178041804989678536335301139543052020927836114716399604063229498111988747491872604925238743550445826891887224192202679534688691974980654523017349297926211482719737408443000878824629672472404284540358624456229374320809993840975770693141165952152156716969102666101627418232897435579271985980870023265375465943381088106224520559717663326492605827749965568467888771088273009511258940280060022995816907694215334580149590720341893275461716869928094380153377500690609698529394408621933655028902722813896628800969632373308546453753779982919436709349806335428958509981567293050883283778246107184555394576843279044347005890217415425672107505333513515983524889575838887695688652868440808437458185852000899622888276576342898889479718208388945109640743746395246515258224517580939446518347058488732235162760579113393079495581974840041033903580101472988632857665593536946934553208104575688602229994780977993102999471228376066638065884779070094463687055763004669379592233549223845498504388851662091903197715680321034965815950426134447833353752815629349343380677395022736876280074913962145161474585837678874529895699283069953184265981602482542979442692996065798811067288496652186686705358560202299131539443204627238298746841894559474749619689796607698658632314886722605195354644093538006450233421233439548172580850102046423542624925352052950976696488897735677183518877867993850063698014624794805227475794165666018789389591778212565444007909938361213436560998995136953604923534115302271896943474514758484515466741509589352688803109657449630243835508512620542028045815110655771983679289575136501203602807559071040268104372909425373492140888978712569317404061965966969302168034195988073990975655574273763783066104551425512796838624210209909435906108129364740992325351603791069035020827031663004167224763109939465996304617259424655815512109121285578209577626225882138129532623374799091979655376875869543458081089964273199949031034800964567320598448203685417240149963280963740250224118990680122577244276779856623789590216025288472349932804424567290278657010577426863779268573069531563959034654597775758064301743456820902776696778507405710470901262709241679094835979146116220543242773825163734861441277229393253315139048468254370161446750450892648445514018354906577794180466345686351171128731991807372106987243537869875393634047367113945215696162949319092213808315621917127606426052636303477983254521832940869260548443026107841252716278692569019715056705061652249273625796394038982450199934301590754520582751382344207054116588541613167039815693668405065944645361545620095022524384693644518995588885587523544830979938812348119723191912649404563853692168116163915524437055044191460237168518831057856348991777695325051977853631720212553008349352477268685004828030427681604457929066218021101887260200034854074034919929545527864692419333177053041396191527419013746153330996579190082355156554264428124768623347854522102604903066219004725089513970834861479732438861237784131149608093380992520145279775708218099407867298643667170413425856886756123521236686012613734803546950032747619520605527592360831591980488625716909535468526725908526006809364855960625944575122482802010200096200355756201990622075673772165122903065440067287153098787930812630127737142017302252963012369669283341194098142395603958974026030629762291939492479018160038171503283301811930771262600926042499615516891625608165285196362106394193029346923042414742601068229360922802296629763731613748973607031802523637251669725500287044938286792199326042594060713462951335908243275290378565699042012999722929410019980071099155228812233565980110117999369637581615939875171956899243588966364084617878533309991305765193085829229868172238086907305094412858941762269329100319443035365636325972424942887854083870059173466779241581927415997837352716308630426101733243014583454493142616553800943460386610986361802520838679522309866913055399187361124035596638382597776713019706262382048208743810712669796995682661757510254886713512775315238731274559581699104131685057072928898118142369055902044602555448213350800648816604808238437227087792281306897769178760653155358003084720490414257512204364420105706048404632976172605975120827770786874791500239522903662868266430842594532557239001223756520931769361538031638111722055663459713104245253621062608898107366965099948202964189453469449105893773779331758189959546384719357920217276017293571362113099836670474152071732571880562964487080027795071399856947716270916807172949883471343537713923250213351941021248758643088384394531165837635271316754845968252387359738488548931736048948678098524503156008475198062093115685033160808136356996289007567007716464348208654681621769547780947321841227277832952671776551418821813754999011483484823370590350579247410745939163032457348134571702415115669521399183150140582300098326276833725066009069697980997557241443716976177373080561226611460642196706192431129723286208357115801663689953476437096547023026779038684777642581788671525198835326373681502736309943760051671835439811951817581538598094413964818530159187090663620335465654039005984221160147052617753524469101133074547547788148923061783990002845745994555395529740516197903472291548473744954646540132974347675143919317914042780947841715765872569911409505514305870962433433404393737323287383994192387404924683233193389064845333831954442253143219715245172051399106734454835872621670876210985040564888237228589292554668523245904884957249511510414265628621417657967799644284786778254792393075096813504258615464969454743205758705002167002917774330895652056201218709444075872867966685366670823728806155960473822707032221276452897106869304653085553397457896985515669778135811808188723518843990029087678175676099374237211121287556051377600201735655390897694363690641928416820067968626232977785368620701159668425960353791932167966926706960855283490074345665632392285250070168087721432286870046735161840651492135687069320160098641685305363010274774049048466084080777638998102323175921546560243701292651893922930959432931223900266976877006620461500058355959970538015975679439469863669539934999267438042824853675290405261725213640310905665602658235137539446373079185405729190784147465631646031453427843626734963928297391928853424910575292499638644588143603639830365747744595033038566070055377372857728967377146330424424036741872340869370815097589239861410493906039311236575758112039168573542937460535871115740502377610609238725665273988664987741998677506550073607080989841036844837409419981369940820897764415582753892153301881139595193987295006576428888427532017746677080690951603262611464921733175118140725356870817030325816970800232834866670280668415869086499692515264769900397563752814255220604511521813252195222031877157282476334383420513828609361695130465764868848865841685084179630206130963618724119153825361437393258354916856779638473395013616811836453585621628954437577760772417827756833336702324255135405426555337896571829816487301564244705319447908543350659372154451546365235954269262876136245314288678044366484475330001552273037258573164047469997519777092704850747767111455290998155045834786575015008029886428840016924295345050182759975726232304120867797299205191976976964179393023471244127627363416881826002340126528590921203367564636234043729465498128386181341618222742519881089432726618930207160240021621547195157754645205000228555624739779964575793708904672952094225516121715094943863977484650542350811898429029002559346639807233836556287568402526026281094389353467313953068128330975150980326289969046534385990595283231281264981274593529300557230880160153547058167832787913155732563676432288810638636588850684273857118990322932507405366251512065512231451223699512572202690041207406993683334569605524954012637567797455322467173219778981214594391601744707035796095110480772586834610562371078257995072396601317491525880889720169469647759295642038373541954088443195446167722199120595623445867244749412358049432243783626775595078472034149036826960963996403896291131278213103985593000627410352966453926350908171210304060878571162951954875684313368747299126849913665914745087272672280341581908045354487826097678769879080403369584987420358062268653799562692490317407532251856560039321766577546276059356548552578153276101841538059271923359900257211051407044996069442165308023586628294007740780633863646142415079400123918678422933724036965168644553558447740208349703795490625587790246934176085376748000200303188090546444974238083437135099699345835878511569292205940808418613343039304950407649668091511762123601137993120092086402820130607513393942994664837653810257937319107242220325270281892721897647204826346528852812075060120633152913179898054066322651549762471460152082925902711040721213063407467207990619028405836214495053704594486741066470936069409027278046668963520575364764561051506756851716732451554125036789345040890691406409162915910379655389157922675313134976779585103432152316854222886080995248267252700082021403864574776668403237833017890909685296883104657783604475578409655711359857514229894890060395863233861964960319018481905960361104554211356847354812153945550056690516922234995294621970078952828924105394245180105952097912850487214570622921984519144733742186126280032439649696757898925096409290660588885741555535464804598949004669439377855420477739001926525095746873361421247533371007482256002433118920653805558294771872297610150747541102977364720541196562730946429510654977448137164306483176449728702182248673166513922748799281714812025152850033584516422689136421569753681154500576679412178777097971145165466190796251746842871230690689551148185752511973448877258193132746187031879918805595098645249471728445710312458195800104426746067643128353935376327454110461929856798010271501626241093135734210704494593575462877008414673992545532626143362029588717317616848177484014618625375867530595771647532866851811413196677353533835197908420879876084392207110102049712390492150289947773598538667342462491203460202811103687274881884612920981803784269913149129470454948364638736300837270261982903622908185017137300832090861427769992032273613522494601832099645316988710234955507143262448495274046533757143607323466289535904502807502057724824845044281764107664195882280864323488362524010267755219212296419959336605199203028731492293300910430083363327202899730630671251749104577814399730007965071267912322343326990751446654513837192895233405961983071614728309658250690968543791068351023303993220240088092231794992532215170975109004131817428748640503215830130232348324296718064417636707056078432556780143611858164729008642518650310573550076447395086044605165925131407134921309532008751878937057034355539897065168616194270761237162522090337831731360538471484604899170369142983645549698802594084818831629090320507165104598000507530899587905212090827629277459030098448646014203995453216864126438284446322221709725485166765504544564475677372470242304547745300935604768183215010933251663248369521477047791139241591443042010202963266439393548123266503491780602813946655503380929444107129078242288304925557447827382914094956505609222998024413186532880167902493055737186197366452882570139957962266780227396304413991999945472014149779831767406250381545540531943427293269231289637656031572613070130556036323948686473188260699252060118465225611442065985771171387579227163973164112685157357559326166202453965369052581750929478684169692243909866813487178786808407869865170859630673122777638027248407622147972632513364119004284181467449283098342886776001473679132053039865160010864905044992424200507667264849649423475464798912790981742068671275565277183313253510997871190785166402582611856931608730178510890399545621751197109868385628044023691898564473264006991677458652703040983880215234011111206972349803736839114764170860951333536464942956163979644123841924573320340305561791704371943030108001874810262698637931667171694330489296387948234494714494058620792856430899077727955751019884605098316102754661293733229909582497491406563116529259940613847409947140935325635777448767264528385845257028362362955430590161430727257095297452392956513991242007777936146743549318583387466046138899083473292791059521406275760729214764092496533810243323024579869643338054890123654846036886565040195388196639137102112513602934481696166883301856487541331186941928858581967751003334801864236234155707780984738016372390850745304918745788827034077444840162161599533326920888307050023361839261214828864421202548705225327089236605903085932439073426456458315924039297458982526356373537362082938324473327135640176657059100599143428581549261443543600713193189042846981178218821785014655386984818513612758147880350990905840826517029004263809686701470817132790112512458598456960656775576438678803673962801138665904140555645302955293894769892490928811964995473026277097078240181754572791889294711555021233524417321448281355042998289157168354690877626649779562476385104680401953956232239910902450288982520077644298031321387955799978806198617619461294608261115398144108507074532474520644491666042917317320221919446042007869116440560180531367346967757812782123811599344640942550843181742764555951765995551573601057679284421535100719519080549693730262146143589181290786198854004300058160859569963503803967480608841120320345595162964318008137221232152008467934497002192862275899360158338585281113051748012655030174654796504864412786359655234986070336273564958942002921544114633493402527523322734791730811816202055319994241754707437910619405582821859475228052258893282760939000136894748953353510910338961588172899363679658445605105912797572528792873193310412551180461293697058066074202999630623072405452320307897624596587680779700198395768596836680562385688965806836561174000735391090512540886463962905017595909134286752445404979276497196499323758217974536958379732838333487206002083624338259390706259004177268521449524059365472578248960475585683378671690712204597525629865271436728963065814072562921850623203557922637045597116736364631745809935508095029852385811357880983063335942894677222490676056691557367270071033791879365406872069065646759992488883314532090966458164377669862806720819167571444748272801188155483127762744626676082780621986513535538209876287272183170772748327083347852612644571371703431685066574110584104812581705705098001049975493576978354682470089444769196739356419898228888660947994942276455979558509521852873985416529336698498346161214256418743633478584473748983054868944484889636292413621110976019450072555670641842828707755113826941385009467178345777660921940605571017850059839126136690747209535419314566493816938075356070600977099999136072205076499087764204017919782434354949118287914000837360038151420790034024113227639557754898460203005961887957405217755511079341553659176946453594243380968993410154206095645681149588203609275027230427861715653887190556519613347627705987269443411013757082144759370673960958772859632362991508306541785543719022915703237514681159430428758344861164802451181294452720568274820811812617609484265759853114404418782611278973698144722850227628908234855723351966100362337046643142687953289950271187358089742216917097777639684316681176412045207154030568187296924906400139449805871543728642797778529550521072001998854607975965222132056587443948791842779831484068001542860217912894072410254266581323957914802708707887791369363054441465192521154381330641438979525421527358147288235121984279213156975214501165363815631928337403044801273731645441137416537031655488798993938994165802718863896880407754563195280990803783046280998585452936503418439304445605973001156136335697669328112569043170182763229004505670775628771599066514708037671423061275090374472621526643186538585321419150149475911286701797695178516265148543129417820314878095570147165020810272366439366364275520977546060923199076493030421704972132638611828066854894103276477101537457208697374869539939143557173757165430944586146183047341196226933010549502891811024641659591981649949946721617113248512624615216130790771862780463068353024048910307952976660665721259620362770068887421168809524183677213147709961428343591473091233789816003382751863210314729761635461921210332035794355931396559838511042299534688032520595038133937590026638530286932334526214369073865021186987994856601456789119950026424067302683096804174221352355083659252072790638729212002732819044586654213229007063136839407097818378915178157054386347701627272563610875958136895356753663576839116744366056922528040912256560732057439835895396224694732468607801274419682184711765768907406557916957727449639311531313221020145570878906139258387307582166807693042591190339023607323900792152821998273229457649506905946664838981404975523200728693420345115494002434719557767951731518624039039214297345280161621740619142194022504891769759536797619553132916707017076841393210371417678742517403710244199065073901992935291841354839473393175374978899161580732982144301898166263026943146874102326832632836648039518574119757630084205290481431663440819624191386900946880856395353421309190209059882367985705291803563251840053399479334712540731044927699665344710767654561071181077934259095265739735217408307939823519376134116373360753781342962356459096972199365510021022366735174386505643835483445731607303469479720578439792010928903668275582570015563198451027525751423120306230901114997964501796478364831970706805001604690175433069337679302751511046876441558312941782473436456568175503929471236807036992061487897358262667924571528142399294882738234091427624437747839690218100263253743287002724831938724075945749999902213229892393599757664827645703252824925459224708757112254485485146832044758048311614887543197266586748844680591074525083091721365057912689157759117579706194827952323355438681685522659095273274561475886056965213628798540422004407762326964172790640652694508060870754277690267703748746882060903432814701634342372588852090947192536460387071831097247237573733972023710474124379402027048046816465460373420421164572430374368211886573365650169141387246516082435248851223537353305215888320329177315673685863655952082235344774617254618699194324964136059185030585982938252500032747085935494719997531093084190754759326879267005735967351744954557969820563758834950769381242061809800768534794706308719738052538176046817517882336048448062553644583235808761513241311831739609463637080226943928198037751565054153436365245586602610079468051773808724647319654001089247436323865284333088762348805091390115337021692668906166839071630801982077254699513233640788829889580018903909226312537586570917776994232650686861454102647898872857994395838809180942188769090690165093652430103325757072890946914212599313492029841652969348671639120455968301103691160557262532235402525216646307025010742445959022331991382816947154250028813516128087480081716642244501531649638112171681505888813483119200727989593349371509427814037649240796378015862703207058106147495389204967755657544816138702854560783345030501291940022985848753998896237166304050085763061875783279076423259616764076110363587527283945864843042453032881427133665571089591894492044147163801372049940069951493281776983630938219828146626881543218923870244469695469834116263362312925631726066088898037440598212750969231112083878602185214855188900451256705682954440456705031816065514852524986626479291787133756624950439787603201245196631397600706078099236517548381157470109219089504755567889619372963786797972092446454403109625719476537557059451893674569172117749545924278401355143476614860274081078943145731002571951731455097553263379656330062466612017481819487279705478468981114243938970390871888681868334503864415981546735213877692567344863249694940946757075617384897697559062199236271562220488320734001942430172756658839667080674026546496857699476487618443561271106251009457367402392669929364632744541331680235705253601400592340798058231044371735072352059767289168921659206927254573827869305623872206990589444304797319072735165477326358152285592689748495917863258858011801278360740894321039804163664683826946797935435954500747386791259432587539707439337095048848537599245548368922191523011403782902343419760843290493145897320813539609620343505376833118942079396519192251103980690969731562205567100250058579904196243419967950473857721475671451621055720380874803915847402124433012362130330401507771301592753692691578733858230276095462558761226955625212745139297803814439589590959643040572908788330816918654895867396047452035482743248981968859967261799303350640771602652062402422216409174715158366046621999079983204053606260146306150627465869613806209225369796533700300331608720132938033320795125790673854719536565954703467028686543670070622729316715682821458403910176575597594461912797256369029337748888402760053797147156399899827567666493775494814339034430728252777794019747904810652872040252750503365133804487328305682277568645792631437370996850354993087374167278375191257957299924566071654993599510765031542392879496632305145752766498129949471197980597021712994444451735646255879927819889901599873020775150037259880798768315920304049944420407665616187787583373265008333275273220172077899782724202471434054845889335121642999637189247808198846396619517894337812167701599864436392160204459108251164082407210447572812576868065351758010828981439833110806762751335733957809532814812888718419381740199165592317894250897195547175781651814265038114517196543706288511062935855687138664941466506910329951756463442159186733008260432662910998139692804879896747636186208278573875182325158312228854843384144728045846250104628430012302323458894584366976464307084411126554115834654875525491303934762346783570008813762248445199093592355806191525023251185072656768678848686692395213084939841652811114815627409447381306168781303497757957008407886528479972874826548178185291059450728910929908969111681141567068080152881633058641646638519886248808980453544797239881241097611782648584891895136277503396919424053983951912025750283627608440581650295174883022673892806300781274550908538665648872573516129040731402374972128826259097926889551405359539543323256272703397476182244065668032226892965714394365687131952841844701425560385129097535751264824480693763933729156003655233915836088424896850199376791636395941220464350984562245736208200134244908560692746785914644371531061613007651046438951014221256748968942351057776750158985725347693957443214122635963527648345777348086685222179102600885268840677761253151564647332831251208306359535732860275896080285710849083778054754131213653040804263420915391249488929022623179655337602720559651031665247460026040352349738374735387258891110527729145296481836968686558555241781052533974663733518220676880460492864975520988754609683751224087118877770503481070388408244161428097331606020702110426322030880344137073409496334345208676718472795001725391052803335775381174470132793477364130492431278875099032742625774449582753751043401530969391691728192787520918024037018691128508054848019745368325031662381643275576100666660362053111946636758825553075534111584519508110265706241973127430468848259587368776855371049688999756510909094325471833954027399410170481509368949902865801785964044239112584503847681372169938688161105348100295332030404403788449235541855624364707423696982849947008294082095937857848135873209768327917765988656145267515247213174053863436472757752378789949864212122184868082580514920106414354255989070953156640098546895122354224515345904856859548570315670071221901009989865181941951902379180882508719007390780180645628976754402103082239374386100592595963781573144637231830327540911518366072234207604666810474168639645263760534029478771440956922560013315633192238248601809129158844997268911526403400701659473515793467249481874589972754758440735535243880007430238659343720198816485221600428109775669954831794350369973497767202614533181018617733334760344316794204851417617025129394178247625346632335908624577085122835904560272947821478389074109782318776972238830365265645724560882047469585581527861411787786020102636839877436003379467129143276574934790832659968052311047567360651502047883204415002145495962420844449319768259620426893481511988821059073158990931316952248514965912619567849777645738088890274090567850632405938611400203555890221274925121623137943299543605984819261468738081391123632152226094317403080693297409117983406878997245258261104471214229423524103951362338693492554007077279285980348663461923399342438082299776492916938168345235487789442591631883247005052682617333465565978630095455973035788824716806260371409302327775642716204413744495165202422863465701927029205644867423878719072198784335920806917962854626451481262877682268116183635116316723455751907486843130737674421575143857404606199785211006925682149733328300608424174394375907555373840472185641018642389565197991343430637591770193840122765529147204474775013865134080459819302550744483583411583215160169116710564620286635014832146297346334256115558458270152069769384200978343198069482592057108640421390636849829689866516946703357198413100523451405387127672104887054095981727459911068087597296349066937447496896908745931700084684850984413327150012143826891284743125582410686100903978500178372245535324251340791346873610515590286500259444153328017877553343124518473255380606465367148214774986869473888001242667633369813715433821767062397696616606481518879131005660341489469793788666042747346741605979837522658178105278981505418249387097640877127508768946441561977100310452191645573641828056306314795745177009846629826806839837986275690922370453085342580070354749537619828762678109217341597010070043820655947001085891197286038985800784800246210148978156647610815482390553826693948889665743073236144071328064439095033513207231432189833501666826413627565239161833133914624360406514888115544273003315167669852474333245137322845307013514801738048333006970491834705578818953125962575808183633243995665473495956250595497241030077912370885109231485171391310971403382248255574771404828797822042892273918680669180914043204632098736862272376049806186810760308552191453883308633774022573982500693331719989550227745120853721090011024532000949299648486756571199947457396078586711475133480478980913713074654509292296704247717244126687621577152214760198671951266217868178753253834505473113943041029671903662371571839007737445465136151173825236582277298030876102506544396202127008987183680512983952419963627279899556363504260731617913258384871571452940583637165526918377942051823720652495004364555889643258369250336502118881057693562156901940843295656810964863665770582873581736070671289579420401696394249159996994051509863405506767539812775604239252448051933790806141724611386634813165413644694070939971956241734248030794766842511139699185485710981653159199564031779535834045748285662941495226617585379944354208091920247413164789144833394784599088313028387661450300933785866133432255341266491493348886287872543066405912189393582826095680150050626740150932907208689269548964071723925026969861974335082824846237423151367988338164151257220440752844044554757074967245952608719399717595897043196221565734724957958121562082192973967396864936193106863564537874417228968027078620795115258773122271623043185863508784815813492137863020092201593366010392865267603483254978512149366406606448341576246269504120479716316231557702354470722456912601553060694606923089203392617135222030393166574078648598242097363688964232236740762802374297525943237098732258608048618267734438353261332437454687386725299667327086363323387489726620747355744649495090622976106880300806886566661896451276726611582746064498224774102316668388343312107012535552669451684124145394141104939677767015917689817780826864557261979578789445950635004444007574859512710022867558011282085773924246689336539205408933454606519614535183687669410806949777796370984080021663476374694477612555140833706303274958778344711466653426156555209576557728790899942353327255423096663235826548435666545635301263985310572945830916764426168687502720235358903402195733365691095189867639552672965646412171060102483635356366155700307657967150120801878988898889336794186641793389911420323470645754862835155448724913955991211231825111928926275137750612426046803166671901340090862950035529412136603152830437983254558801792448014121309536654377719774846659443294942610218476575930250740734105646948948894428437726730081803708401773379974211213914597518291275118574026674301974881481333332164484049553738594909252456583288577281722130339382685158412673160867924248698766574475518452593514400666360068135815872351607081263132048700642620061330301583231096533443430247207344293005449668346682454060365869201974755822169835185872180114710234226975212710501064663085854327692222178856000926282001997001948234788339541430395685993329278749138790757923670232175337897039978315844763928537450794133669980359414384472666182474205742125379300579454602306742479564560930878185358524215805090705388610510316465885870926332234668803315410945754493982131486099967918166570113000820392811877636444650701745798477060856441055094363541739017372344037993590316868637153591677309398940929514056170525376665410964045690663156429012066737794472039676362231439779021780972032859429571724621241343548565112938236961155827193679513059505254382289213852613617169243760433794223465363367291848359114741402356047622078438442294067306133479600572834564304777160002110877063338289009830005436545256339329189114100740667923838704920706363503432430002808734043479741442375583034982570418023829335445700309874795252228499598518439819378408628734332926118700461543047752960740164026662139106395322479934459597689073499556502790557282350194280949680843294593400561684208265024156909623928535588198569225942104619320457999706721017344441486772317177674650515386667919794107263434829244000819142862517594790913084366907695056488573392042164996316616259692766142645464095364245379103467319147859831561803306053504599628383690844609828979821181879371146226044529764695250001315441017130933391463072022776188294208641828146078628445192606987521398988792778885314550236391332180856451577140520107136531460270597727102354245701905235437725903451057242820956419976613486863321051727217662002224513861923608692190104519030247534202140579115586998779308969580226823300948162627599757922082936116525044987525699603978027639218894688993492586435743889887673690247614447096559187679675732216195435899716152255683350805624176330495353836597515365741994224250021519005986723607478412964125979184415080131166422885485228012312466934195257471405226075721298384942912956792505783231751887202990263478776649828075115477088941319129499045961157790753745463016196649704565621778148105106812204237122712602940127715615832284546691259353708721243421901718039145691847900084091563535893702242564619941311885392975636030706138468877074013288157179528106725591842347619667698791111275486173393789585746796893472268412172684288551289870985393392679861049319860439017793402190610855947582313491394345116216193898984595448028832570248032817717581219954532684110759518723308201713312318356726168822770283658619811159491476470592200892933348573724988166341851892371610274146600656641993875879151462269659239331787057733892595525388922249182270359304566445762952769035033257595401678848574697589660386031705327449330980380207254492220287476763437058634584561907358540387032096960771367009869624730946953535279122348180593929141136006532292536058715872347634077120855482025741411509449759727324514825186859928914278842680294228492747305928171477695402112157289433523331489589185284135040303105205752241221989733833333063411747903440423326280329220787524211750628041777789652981561613628069129639176903031595419383459005448988015830312374587470916012183273799551757437079492346768258705656933278123005023451419726245218886681020120789060857260269963607978053336351835576903674071467027702736796975315117534467588837747502227765178799354957899300938397233876994314608609625333184540032548584929711345789261635228650734575068696876145147006780060794418504045678926221146498937554122820135417751172712767711254745629960078770001177182652711356285658253393174073433312288786583126482525451699862601369504468392283011525665357209565797664604879894562600897897600975476856007935555627895078871745928003164674078898515871686281629784170267357398316998626342534946747099332614554736672723344675994620268618289798658532535943709416609443667957619802855873876264446529748799191974407505692467741343191024319091255207548954759197464919054521227169042747829046031270537599813009797845853310918321956982196578096130500852194735033729907817086679463658776203805602536298883955691074702351628923124268461968423402219339980611848916317260111002973906939868648343384639190966291243024177470179163699475891826229455952607178607968789267258055344478393799183160271234802893837700034071724539776637353517937300161255085690958528257581804921289930971362790615687039940444588556539174655147304055855426160211632259904020654913528447708447742990392963134773710065775413347033419610370544145750568738899240983852690316714160175825371842173716148541935019086766201497374602576394359578884303990432205957442073909282583129956935829998658840887062972243988848262939212410677018934827562260387743127772799154560663458313270123738897699158318520437165500878256671606110059929820631676654130979602155199865066903963781286965895296459125098058869984178544434981503525997687332399363069028231570320645993919212616709474476716907925231582574847709109232960523247458710136711630323742949291650725402664125884711194398878663846201757296642269249417175908569990919583190091313301529171510994089338225857136818278370228940320784314472193549396800069090236760330582313325299465741369946633495661347308313112470253147119020520107364485445718299061300953707153346806921130274983541930537582565626142652313713300530453707833704474092381477549302253670301628806665571918584904418268629623597321234472780748107463742361528822340708279630123169683549276933949545496216816109139250229922379097235030563586224812578888060996750777402319321598993058730547129694140371724128539669042005786372559933617488939751065091529694796787371180560827924022499573151004661714966794908168983174992065203271926109737109823076416019095890374030178312194191744355085499615918952134098212025821306462907391064158429004443803204341752933874789709611330971079965420250210592991040579486900381377801371797084315061944150702057548343481856156655586354470639379524964296695330101986018730423309061581469493465367830602131535863015473994608812522666263466322944041570440138095826370249234062955912640029123758375235805899235379307867470088533395678002244546932496138408390307743150373439802641741915097404104635171590605567252592576417013082159062887661859162863118226122696014095811310918827564477932491375830570675210812204280490781282853855205335466938322498520902467893725992637754419678669953340191547890202466828623745995186646492971478359480814432654695929569453057458182753922995100019014427160201010881914598001181922640073627310992441839842762458848638775479509815224953896050885843504819623031941937889986891146810613969681119360312953395687479585519199022165778345851266792463975057809456869544623828247802252437549412159383341736257693901231485035378572409152573312325004477712643293372172601063611115078838290038385710236516521689154973861579068569405264301102668738672212960546135189659704745952204669015299613095754562170173816307024620624087298640731137524435849145796527532828049708633907761624794808452251416947886057881632499819017137103917124531094078723249746642126250551957072782710658675945044698783964014727737219624441929934643462934670363437354092359515370238403868200418278424197091156416047981418594173477953908368134531222370737196816806999763020182660160726645585039495616453424771414485115572632143456461248413519267348492010282935564638363002305085190386014183965483467593508482732239842722718010222699714372604461271653252447310514242934339389555519402970629922254822657685514731195822735097065213845241101733367874289637707703557095407120943944474751964822061307487090573845362641054325871477169385930760019403546629399665688691921320118763124305005171863208062510734698382769300879970486678693883933957410212585664631488389479030145481931247059528464234770699040688197784522599890454556050600966906716166006350805677439295083905017006965571232267466302086296015309385892078358377724402234535904818360730319927773119216607157923550156085522241447327988910546787057235980054898380321044087944188639456031781566161664408875588963801865231209871310745196826221098641647672678037133633120151905276255623371113822405096050487372914645964755211115385384207328076411288796060234358068272850679589570859975132078342522129840734456022715820656282859931189855519326443177094298991764550700640770204495456841462379715266875970279392554568158470304444565244924690433397532190650885637584480790098176910019613101056829527120524930480986507247321380029390444892558281332598459847295656272059520193451661314105878370024347804542136574098897457712913088881737756498869769924078232674132304875443789455080258517008725726077581784861497758467066166983052110442250144958238624833433871326651027224786090350327847891982270068388583666084866121798675866191851104596464455731352458850905519240924295000018743766436243700269311078451102140581008465066748122267642437990447469137079854117723976847192066389822006899936487309877061521398111818307455744228995452866144002759783607329172801661434411871229615062011238587800856597489370326582612876689008675726536684292646646488829304087593839261223911072894884133367331188402693561338767333050890993779033773488239615931304176253493951431387997294385896133291637344462541898411990202529472132670974172505848314335159772257804071377379601461904625582385227125492328281566974320699692097542926817300738509242997477851518509251059642179373150049450095894088692805840779390636363118920743575898519904067819976830645283632134750520362724064389094505083145788320462798599546780858034521037875898947597689522729064197110643428626460468133114465222670330383993875511137672447859294734350723634806961572253816716096205270306505922834391885502055647919939118392120624913899975810109368507652455400162042979405684178919591705237916245002079362831233553294071840331859848573711150618745045919511782508398955863318694942490267034307761738841005520246454739004386701007227779150793214675123696798583354600253448991581664384436794771063735706483207895301468265131607350767942781199592450563305910842952179390059261395284647317469074935462794125862689756393787434739645050255422174926893018363022856965450132524757540393075139698372425394472331592682836763069590234452198727972583447073969273775008815800697020821117574224839119549086623036681900593880834345000443471733326259147194058149644311879856061501456400883334219183134001654571842497232903863929889035548347185455348116870111244607068615143853255849702839491338377133666829282745937058526993722446250956537803406294547741024795796778095579132311867889584984059935206385968409962141374727314094492291747213526874555167070272589241434914151321669281869208267985643367419362001202351747681620437547749007151353626621520598592119376820836321789135849342088069947160874815903075455974696426194943059768267001272805451760095480725040167042972168829817675833892281780684409396238962170019628371118800498536898029581423195391910305787699822543029958328116550159589570950254566046992492409964424402786340160335673988305279938892358347613208642111474043257513912611219915561136563185506796092136335375502565276980190822283042569053006197884874826538693405314505362139316004866974728922678478298441125299173124141687393381117883623025913466068676708056159667650557257362919959415061744955897846257872828828835550435430155984201871376326760181321006339415776825073267408862260938332460885099388857948301744873607130610976900035787761769468041954828943594410434563635746277123808425140747234864439199117466255746340409665375806715030659965919314705764422412262032580315311025636341125146749557923688052525285685616794095271609578064915823104393329996375008259291022766522457512286281491037885876982548193624362033048345883107570535071601145933758742372746975009374620368868885052867929738942159452940327470175625942883419126720500787514212504091677734601999430831906227885202067588335636056392424098180683082828381611191054400232629668485330062404220079922365181827106724425582337179688055408098174909756205513043977538985258165182858160683101306801692564747933765234919245427175373982632219601630371899013080166494869198871104284954548329046597815076994906332845924755807430755597670535676384318246152393318083033136078847899904012954325060206121709880210747285646911341184298035857239209511496645161743699778476065172163345397329759039163170199324747316603924568093928633127141050153041196830522148215642674691524348458256776379152913546259301698816193358018074189975996432534411551604181207971832114171976786013493580687198527551897892683342755635437168239462339050162695511725831718423450093545739887385430880215839481942714635526666280255385893378354852845194384060200276517720133560628011025874523135742228955145286290744801203716556165537340970254412955580007233564346979805066612445553921791050919689822782321825588625671356917254142141800449519322370918278186838138262134276383921716948741311069072649993635221263332466368886642835919412033433123609675069199524350728512978693650171610300069859746985243942851361136837047264573232555644460397495187014761158859554054792294256378976661900457912221462129120465652970175740995018850922094976310324126433038821388635264235289709843724043030002493822495261236401734477820811194535075748939125204063339262793449112897633873479518988363318999900598323253126849180040032643607038889809216921830622917306726985605725043363243515534999726523399165546703579464413958942450564050518024591022545699095953218223353305255850139641145858014962783247701968865777997613988987631629886696886563074508156924578304555796705194739332119207591481186126667073985351990245356412347868951078120671000521421786647232400286586643085720123827361060070328880977990451456716540783755186822414640834334855440536224233507897722982739069600249902850750973203385986746765369197885628698164060956056617095961177209536659940781324043070395044071749210293609430491075050270208916800394723114132156722253208131034105914657841010880503803197306442547100495823478365194662117106863918730154030801063489288632900306687682014353793368805211825064931294963968670496246623895157799508264216928238637165073642821259244450615768658487445478186405516085398920865384378144201677994274771663778562006554768697589159269841334113113587455967918300917740174559214538775964968192836729175525234115715024465185299911404771037605937927349181537608886075609735234555381317650940761832359246180266050243709983865340625928415377237149847048432067413386823971464034575605190923564218523671119198824355104588501097287496775818471103482239941079481545672581150869272421085824394456863031086275414038205890952473903755285857616791242754968097582710603106580650829121194030896241557642538977265302875395665836820497964062808219543165056813534566537955428157209998076165965518137458635916406439105100418388820757048061136681604177718287372930722959624168758481200721957105769685174402724266569639353597280115181833258747903781090642769296109610836970582757322813754814067485832852596072455801090368080228466667185192076546464946852543427968796552597493406602934654963361250139206067613091912281535934982266842876341484366660289164040336785314399054654186457694118568355513183620308584284752968771718379414345631806481171976708328476696445918713545379432330657973712355558850850413618491055919108399831804343092857111096486484934736177942616025931642593992181235050949183817513949346788124040944692140335076825532311149493436613641985332678332752688099846149751246083580608656701651929691206917882053311657072136390103946212003474880695301540376099746319230443434615135264454460782824165658872188048479097288464233716548992081928731479598217477570865931138565332837386237946513470975610170827535243662907616748397132896315921089269123029228526668507053717008121597509821473521989387715167341818810463302753928635629972725489515780709952948466298759632930934184284862851114413090513905232053187469896455336193453611062218986304520410742096765993164128187323076915291777851848458964148787577760465493115878218884154914060886400617220428527488686666747425654674160779966140048744002291364024520327622336919025708576154189266305622078876600385002792194193843002103409066065833006502823292503278554887085897615958765368059369135386836065173065212696527787976146936547957680270204387647694491289788952994708868518592823353636020952839029642143977701310468736393661248616960478647288236970114698344673745414817777500483324085110781592015445469715553316627290822277247112134160290687226071792587130637527275906936841707671626826191024341765393324679969369947463753350492342304834941547556519479477391006423170843408425898403126872795667994181442170796775491161332614261885523373607873339829884246976338951724119569099143298673235804436354635189054456573234870431902018905617433932740154872977716874835857058894462711643423862331176632954504312180712675857806006003216997692089941499170127161386542281147559451584427697691075450631005166315711785299256712389964757800548983340972523423926860188945464999224934187270414136057713850611020626223908814822251751518602715372418138543167721549085805449002586185007785760148462935121592876586531145139586709232628865173363027931813660968827971485112547945464398799165098994803314906281908747776799105995348754325447026998629003185652748422449153825796529602226796846819878695414424419899526263952367930614457215864231100421635141390615720934480193879175457254564184749156974430262001860324507361560471975970252848062996372451390084468556396998133423381568068271219695159855620549916975433890339975853315206020251398739431415098022858003107462701558011852812932525860660327148391729881278559141690763520911744608411698438555610241037108414314118387544829627214735227863585235631684204865593780342730599935971711598991697179076490313365533701954877979130334448994058722318983162500500990323120106290226866853199128483327136662160380199152547214943875618279959128543137313345210644740706786394375894562933342408557783708170663593500791233553498621624307946061813859580630031920684509737964959993545326098946267829403727225078940244514909141627612387323378982494233282007472823152600559714659127336392137496747100593788913318202294258919674127149094660607752130630119258838217536408706259701978739615664338463760750126605581253821637503943074524040801532208350803773584208507194014804612071936450447178738868096160866342239722704564891886799801450390291439980443244637220385159585104059848315818568773279350731937032468376085132557945192103417788765549787681288597346938485598567773851394928510803738430474230249550861027386650294528559733700202075660943416407600273213703540036850612081305835092660847418384560017178461256548594952416550037970726572187834956751463418681439285242506953182256414643962523481118927810159734448505163853104783868610599378523217656983549321059588824129900270533786962756987834014999691332748021270548871989722757730029501114347394127582294339739589581510223335456031103529349530214915113748494012612938866055599766163896175702640827904719243458835252313002223448236671619515965829750619400073337236949982129130974221550534426157994880582994352962436446661970789842085046026906789789255627604867150372954839774820571067390793071558374377604808481982660281201849002399935812501489233779932712919036289779991499648916221294319639097615397404280531049540676949275352900202965797510812088319145875935443415489010424825909819041561391453311761798557282309378025856052669379405397924005395551881461401922542574870488466490861805374740741868109840009650010555933731870731782366277303482422932660808062239511033604205451808856800220243602378538537407167229246964432280102208799939927883712287195156699444835222099747934790880773201880805047851996957904533373823706045096839964574730112619824263659240193832893353370851744234755406500835244698999802801574347314739156395075606093214571625198472916015597301540190205178889562828817500510664814877147239383498400584959923848932380847726763965821842997340973207675324898930691541123797275784500475010724605780309170248830677171754572367062010170707476175666371137345659533873473381566167855134976738494297816301675664623164457450684110912655712337144889454453069434036711262878969363310885713151568393212243786132807447362980846789482209326085695302575702986833523229818209779643153934086650645625440078347514062997342257264710294164394586620738089984093352828530642422443351775473530378612089556229936196203940235348586435564302055120715193224652911879307276990632575596003428436167008720207713403145930829211930386512647801223979625391198886234481179417115028147395394750662907525135152505937388160387159987291429425050756098042961587621051290122612762090752264575039784504471161442276246346965574605948785375260233598180795514478415803256861830292758869198299035666747129522218719427890439478200486031161540797144657481620202305621835322308632873743143953731385317016124083893662584544122443878398218596113840173242188038281636265326104586578408468761766402054097384161101325225793104607695094352774602030206783883121987931991113256519485391506043222349243696522009735229532096710119938219374110904107150316435031686710094627016237809917581721132752711313942061209393487333312467111422229568821051827800469307118458121470578106886770567245840825824767440718821044547790996486669992038470844527279969556778015938529488265823911020338396360355583254542729556010253035691259896889902702533273178490993810103955717152891748940892253301251702999838706912312807640264504381702177064423865546070065012939948729692496563844132119926167206512751829167007028685049060824374971534564063096890928077441762056505395221197247955916599915550328961669043540585322699288159683083432277757425082510745769886354734956847193794916638651656895353107639871507917590077249733363464718533185576076885339376285106438814393274592846976363293357357401417850307171517254896076262587868395164075516066685787637114759762175929044116799988604342228325085290764401132566899183166710388167248343500570078143883943429782994207163796125106726862865359277478089201594466150702886227664752936616548372319589248088559568141416765290239945330121025152872038800460305798135563268715992056145510668731400108443599884108890224476573009489975416652612598096520818359621929888437501316871716407435547511398419337822795103501656948996005779143337809030051607143494860591025861617034945581350559060537854916204564552034751920317791068824172283101020113807442348553543331842686273805060333845432784896965706402714500479453487392075143472089990611895996590738696874716311541575256198376427192173621741823431834339501156346242626235433483557430911880293631287927980450909901417919442673836317364123796615969813789199252951056530284484116060733192303284879839600646573559955845811846652809359023668731642009868257916472193005208280924612866314301630148353860927437683915198228403552887587031475966053899638092037190776442667754490617262470688839558903676511075715503343482616243509737295544003748999199993788187291031224625057227334443490924770119358617680269095299307151881585659072927659385615669843040644237763436551879019293481557088475924031526610728039119099634301293980010578252344974184876202584834161831420824902587465907780604470041022917021124306812292419909356262590787854844326973593383022470189667077257844885638840643392357511344074713686628745630632802472439046777193749925024389979684135610254750521551841260329014676389312218097575319918550795342880469068957703360125278767707716505003130572802159134288427694144119108425954257927263178147062799288397289440186215664342053136569455056376275853532185139764724001217179217842488190946765450278560184648059337484793713575055702479033961315398475883365999934509499071583397035531444268451530419329599318721848950434864353663697964517028180805040868594932223475822422978568967150322815353451852073709569955325623910507323124915606737930295011961529694006725169246151177864288506040575379791824416550100712393604700822707168248025065173292785998995515361832220429177113045366726959159535378466613824503530130701177181695965050094058591787489132681391471640800596230912184652785315525607953887169882371751410018598159032187789734443359784362438467761038525283658824188658013227939486318505088605016014281391552913711454065352177286735158139938345664091423064138356942440417814756776694238246847868044222021795842569069052402661350268125431754936925175482474040427979245624876206259996618249762695650286371968760909702133259182520118976113524138242127693400983005615125803710627909841430305546563039304530650595155545447953970065262042521519015276635426513249493612780868502221215143580140620669981125845591188165162549854167487647175221521865935817627192228484709629307607715774792531427966984785893793929782306230733908027823111001622910171103798384655291371402576308384791833277475760026166747568940536068646072625442061999797357749664469953362844140498365436559479988646632056725184204883059053029863327014191887815977721033832147791134790024240552260589014881847537227397631896173660157644959562698680757732458650691076724300186406498684273203962590535709465767380295248525484446813846212646053608305564870868764719284786316001880660447451569748787520676729481263861814432664891033295494764290289338625402139905360505898358264457502941699845781830900839906767010608525542721640541444764031607895998954785719317708372662580935674234137726508209239268042806797048856159452802713378038465549036685495205402295267083764380129065544103462199417168018141034055922456883263045157152065719845690904256607164115419341144856171430728844978967833921750682219946128060615717494577761332277063569786082380416801296914553873282041003188835985529071487837084600599912417111129703595108482963659009698534524872154684480452126486876834799861625138684144566483963953105925842993459681960436993650006675271188555340706456722391147354912986687689250558585467150355008657222692872085536167998397209237957872513909633457021153645542361035441951084508493566470727629015741851366399999552331350016936449788818595522085295110099951921539604176399415918468786683897428629267724651258803442425766970307206151283740195146424193891309739936962329727144035693326771861863385688842272877941430775800359013499580188918123943840964146714078860959346579318302292768167034584773446740546040637824007278566804852459093178013696062153728914834084369383811954956707179773206202887175038162270460003582896601269893177046858287840435652664805687763216311013102476252596169240414243770781524021681472125854268711991153141138317246607232313271696963723669728049004658779251359802950181134744420419412142380055580254299682028980481283402492291751397363490446193872680879668552205156706949730812413484124597136107629158099953112970764016323737306121024213872162389728155172689763345100869348407333138021874204085040543763731833955714620888440273572392975979933694824461830308539333137013825068871701331837965313412043311425284383596109432409643733711553368979369665281417493051073768720744950576105606932952294933238237412689935763112570468071706342589957868384373450501111676689603755692736274585154549710835325796102327170337814347414506303648138869373649282105558064278410866835773032848650768053764144999029763182629511416508979213113123761333789637261947089739219003181386973332627581658099319796443101855813853454523496471008505094451034452739786386035317423597734537578682426805336409645296582426508744497129819499480044675199233430771544909518221871537138926927983683829953787224696542504797191068720831134633168349861533043066503847937115552289779812286503251331843153315071510648183573377161440853997139196163289690773057142965572486021356732088451948447352984287645705781541380764429722657084193873121649829767655125658612650496447266795441638157385354920095985456869729841957539980295577319464974825633722138580337217305779578717297622663032516691531286205338865893833623247986894816258163279442611253243970343261454991864040660520450218267682008929010836727193938965743046257236492067777284599443005069120861014777073130884714008685766693724629727276114156186939371513512961419075579582989733679606514878743556304690025817685937366312861261274108140717571838092096402540427071055886044137419865615246022441247207526903688911365071052875986725795210639987667706607969508854669459586605256375195943820930954109566911025592925103782098773020470045727002218847948521740730864111438249214044316293778196590727486679643541085737828112240683666842123995441825006292720555692402792445795432991787553133814471871839064011339564896276907264374390972711920915290181858833998999772664839263686621414057064870305790087417895795188405951449226093720313169231071069029955804949116570815224734014485675443668219856937173946180955738836884987401379651756490127287152172289570433900836775760400554524989804201305480022168251712904485535799631844146334892271857165371132575115471649977557357932786833996074665948174259689628470839005366369133341840795654497318195199328293121347194350880859180739393314159728870110177157072611349895952465363034249933445300071888955949909299028058521066819822170787537277068655500175220168070739855988978361005289267355253573231753819516536544304116268036793977547287667518877456748363371738370522769401668125934433055705528973198299857362281716445007596677862139204688909100392553534699196967146098248450841941382030033325820390727569477653445007773896999522474133453106523250753116545632604445106538824461669335720460179369676313020902226044908516224497111620330234066070171413284583049515980822089625560059339762190891834366103862224407060658468959009550704276155441124036778568668028573157967807662485836831280766401983531225431724665301539372734806686363880611803203985069373336859516231532829688172782785230434798039176677506322635508141394280981107024201442602779321516520536191203027633891215476428891534128677844785411532786101598570051120742469659881673151259182643540116805729382286614125428381972100245128954629610805860928092278193957174821186077648306989274665759480542675533780777303037915226701162911229403141581686986598116996130003862011117241230063794099685560991507577060401712442579060622379369509731504881384153617200457393654088642130381623804649077318410988799671351408250253635438225614808206919171383090494988992154960323327612252779258334372179344192254867331541866942385645121155969987444257809194442750192149766207829149821128867228699779697200903573402093822161428236520159407475031053167543420770305043144243985909945904533543570009940137922989005264329690581829525104213854512807448951025354578499953503538824311377048793119691963954510468483058229209440403765749676113049709140577862896840057962973584851406286798234718856338975254304654507837313856539161859155898006154256906917439776492224698049880098403506362550528457137753052718411534277518586084525491544741661007073465632316603848299316861293815804056927979768111981804754832519783111624366404204870793229855968026358316308650803926586656393495675582767121061017391961688282589133971952066862174049679778591688344044042752342713713619703912255547810296337847522516522019859130953781562335102768748954352494284661604783343499801758045161411097712867515472661916019874307193216504236911725777939229799676068920266174328836979709188890688801128923675721094703510287196951753810177513980940052520787453796323602645450288635554441839898811175959187739763852961287375875659271332515066755526569037663024489507358212587879349242822338933062374626088491868217699303663582922703320734049552828829761386741262904182458597136025447803677065631822930914025370615977647346317966065082141861329133568266911214238432558646563057571664885235111952395418420195024317449176015895172888624275456487185807104390246126819326944910539380639493854761556845539262478600648420567082568467396482069455333171330153577262856753820726158315839715362568072432436719953326356018937743128720515398748668700966698469141340731639173886323145022163749001200260897871522753523411772547478307367141893335013128796255511129582827853726548639489251927950522367702881401599057042708458023259028816717444692068796317940966748177881294271956634359380478414510409361865120059983391069208055164026787007391738729124146534791794029123500395444381276725170270197194386185940002232063309537975874075020822072880114517802557370951012674172825568274874367748894006705816987145071634137292760680246132961809069045022901640089539213514437844162528267487832478520545207426956322912978307518664177272070310997016261270082549780916522920740579261302117676354742708018707732590903587278454129923832474239235709281875254989914901757795329061612488593534783503374343173782661179107983514428927172177217383975225302336175376699686385309973360097006871495353192655359695076634821576909243743365054278716771599027856947363818093933795970765268879967486074638652011626717278842796461665679274570546489304598587646921163790047501433733404677159299834780269423207068995158269288611931917972637962838928136497346415309459154749281046959963465218626193493550828340359166868280273907448079305829365237325082710153911284661138143424968750759549623582769760040371692022291654197734143710484430161186684456496574944662806582801185881037393681285489528339742498861755870371416852913898691752621627510550907546600117811735488257762890714053083425366095304681312140017937145527596110901233234529471569234567448789676083089186345257597988540803663127654759871920996140578211357732829313626086694195960329705048288578365199487614739882447349266990715452065893369046901370651682202323383741594596338647445242302442152137428344511841686389484712331922816292990721573421303535382881167759448895442446997401237771574332911876220112889170300894447743435009665515270146435221614479361276905330280007119609430180134123076624696824057256710011496199865003248412160186112339705201818745714466479886632951014268704587310550693433856542557199181538101012475249146860005541136857174804867469349227458704131765034974414057810465125782854834620955985000394391314400027286952998752496785871828928456605707239434102979787174051602771696805430993484293459008340325956896721357062148948352489044136257257125225923520157182438756008718925558126282843817373361593752868268831806386638364070147504839947517396614355306007160058648407150568508943711813894436336697117940739159761427198177224134648190623430653447388886552697020782188146131896001554418806127176036057104742866103608828539695105411500238151481288621114653987056150275927186877140555020585139088212108041106059576563502021000076500042371211145210634557635858804886163640497082513504901759722225222710336237542117969929713236364671229539355025835003614638906409928670022260689497825220670860319523037803165620329022340087567131766645987083044935330113701746493862515489929155394832330403044537578679318687622132283129706887202719989315423702377975833084589327253070509089379577151812858257702007124229531690442744347101796804079937765374600824313324295447786021909192820727096226250290447817269208326274813358619035990356615636939346860124748978829517754596646545699230391482986841283231060290885046822038407133676222850616017723989064899168447928873941779369646261123794627422967968777768100712324535565868333503588638298274187650254749313245721912180172039731943686363439706413027495517399270882894915559286444322096150928099093791965776842693690761985732380094047713925506007580116200602517054366644930947960032888922315092167183056623448345418030908876503953542133777780865059785157727115821660290745119577682543481161686235636738585079912952589652005639738240412181494169586399210115442425301257425339317803161158517468904360635996776636992927223092778039997802524288358639241228306625224672581272873880788213683369878465670868421215671828487615312273365206962020023387662436284504418286596173971685674370525422733236686365914211878594386395604409231777652034898995343781199709128394074685656696764397418829531928945249169937140969094753753451583643797792395310113979339645504301730201592171408873552164350989949289825850052215022602315044441306177483932253385213458218774384002399841606306528349243216515292119986320545743142764721122516576923983560321962280338164454451281375880851284276670942253155965200728407248035009018236480914064144589643159614072927674704298832651640589534525187132184144554050591042921123155326881406778353125441446473360849264451553495701201398132461750948654759272604779716914384366848414507812100918504341407200595924077230816965311139808250784507748697157753683952860165093560028475896231028363433810694087296319181863506006335454457173808992355553453583658901380169840508526946126049768841169165786306161740739674676969648606350150756586278326078443506372141166524741253638255007871082191374873749975233769769934608024476588491352409718922774958936306219882710641815296939116030762164493989589790261616699050094505331531074290313393384947553487134508328203880277712622271593534854582002137385339190293289360316627445286292278443275084843979150777770406183649179239405811093330461905479035382659710001467173763332642321984813867504081027915388240149286928629388554897590329529161344923808445316217963617063526699509582069707178614029478297847097580689909204647724706614107861657934817234555930902617409731314442176046618807057275921148488316878264222539059135278574907011683502912676321639128732139697564006314546939303699302384311233522063672379574219407925951493384325547210612008188465240487174732563938652057370385027787307322966203796974832926594784267614079337727118673254333900499900202943949895420209121319643143443358368894932264600725546263821135964271249255808363530478798914930852966606482316860682553502380941668054589691560015459496975285391534544783092042319492812688335145339245211186156855636967461618346922839459764357738092070554196881449383381095211443909083762244156201813483264273002536939489565645096071562667931872056092482428933481829305232255097875420758551669948428308564618927871065291463533572955309585338906649818447753376189125927866016235859886118007925887415334840123526488667545896158769784079614691241315302750165838969375470815803685014110319178145489863237545897454785535838903748493538348363022904155994484679255353800263675095996029722508217757475476332590996159921242017942993067886329809815322053157870276112499970132500599993641954654923228705318187163437838416915114483931141386608418720673831283404470812130561880610528976880584191415004249332054187320333910650567490479978517598351639152587254933604862713917787079090036235777919179093087548679884564105979497045575890383800761591840225656503807754934015246463863282782047281892473877060934589236526543652563898233869728250691864808228655849835935465587994274068950277294302984185728537114507289689183489181342758268046311497928944168660730389582637554631006432463427974629124909708146050205621342750564588912286340562984049603731661074698642931201640148648053519107286000528751381222347063312237418192511430805663286495093504360194217903545159998409474085210021375594922370131855302126192021008255599114163124159273661789113981496956727151323286963495750815236509589335678270730148679205033014561600754116119997780648347084051594141041416526474126361467120895977498309963730677466334098872091492593142749452468156790558756348614688756908960217828540228123061921738813539981004655412745970787834364795014044215635983920167273429224149358848296901937927494780489127476496107727284117768026395023124823686639541100858172177571496694954756097496351985254702512556077450960162373958983461620345170703981410187972666449187835142908130443508537849833312120575864237175340073757104954636362243191532571337876579940540835376090064103521990368261040140919223630985983201411426172564152053267673682980797500043431132628467639029389358513945624656577523583153516157701162920081931872279105893059601228876707879233290649938296238914126906294766690968387649284449551102361254690628451971100671953017235334416409953363377321736689724253965771121323067505206069278209778859139036088439353790337697076023955900105976628329858479356249807804126153488063195981379172263584908660243080239668702528827912772811688206154817250222947734137446674877813576320323190694542512239042879984847823971574145224473397420282205913639183862511287795089733989934872617115046260244926876263374649477394647427395528749958344873234046921001084184647738933344467656887657300577173919058178249943909870597486394404076867114117299435045392051609134374613783356024624027405080863642940942524661297876329316711415607754995589445616473469089591901155022484752145972387155097100024333328495511108256075352800762008206041915324154536406337841381753570844438935404172752574204865316393960058616875997093851176938396263610843770405365986664374792443250786643135702396562972231475299083718865666464182511760586068321895955181946261058168269246401291328332092287476376521883506654152558610571365190779391408056210443098421965709343343069831419660633852326481899140139916695596913158369836265245880078524890511586890220643323043114939765990350766812521020784849937724776751471051292856440649131039606243939916649123103514956678051102285074315309543870806907542382241565585617430713987031405834674686309285352670038292578418848748648086968181252296239254839768821640515293788960280201891247032536360317633541904125780164187356250984126073965899284005292425279923974468679794651020024185843721091975042958326623529909124636530066524787443804141175002478887938840571748553982934672260832006265219351288048758652254751964310541284194214421408166665757199032675340557221042015192225123561395364714235456298942372225054552678203273625076866465708306884750997455135035127293419484495046574197366024085224417302324967177471279070033425060658608620034897044394420496922514807632450960556760816261637146721498497917038131203001859591696626720364845404357649920072070669584372764738031188663970133398761575239254852895705142388567421307558928905056559685872222575496197762733165672002034518363114096743901792750200352732276594624161748488129321615817502633923665964776033054794234825386854817956819206871283715138264542772279486597654900905596140639087183543349657794060498111735724074266821950063083520578574801284050913551250543053697723105963703845217548182980901567163005255678617725502423676507273992788630066188902742185938824604741167656414479417970027012541049293260744879183422377500306215335462507749758641620877895747934861368309445628834283450027291331406686498210687938828862313107696044166486489016553101077876946595881457333736905203572972086689857277796492901475725178213350529760123571975740793790499645004743811664644019825030702742954936042053729423775606942152678296563380600794554374478665723289643985143727280828634511765190177126051891393620385877105266415661023579192695162498388204173886721154801744539611114081416705071000787048786320505150034953179003027667047552396318606802572641065569776748556215460444477956355988893784480759759816138841327561532253574210057971649485361356368337585545278764614967228529011966332735605380570120214859770197386992730147319519929242823797315668819170084944527935194300062099939089565701824202423846992091759107752899788281494624425401251108981123802651105649099400043338026987678955739451583120118845746459062250016319033537603863469155519063845157965476307683993373522467428322215176179322705739833492970673573442423087853802467118808989171839137286568918410382874194427061256707317904656635632424144076342085449814037028964902505432744377168085357264059129823202274657697727100240363055294366261290170241069966974151776903130059386781047011400922187907328153804611642947597309655450465128005854981140782350230286496776942449573547979492932653561223083428302626075911213993312490867559952189699437423525691524464868944774664069437976592028065496699581626258722832202831658164164166307997023056936617789485903430045841987930237327021047419878272382698974080195836679918381015724812844107914132556743257122942829651784280334521303338696171206561054886598624331756621529265606294766351458687632925212752834806705324011733513896974902060616505755182292938212325209674462561337731612993000765405894155961922062247777288340454662198453035260670655753698009749148556093332055803711035808387859455827369190747283803613344716728793979792857825340574733969430414899208010697812649851685739845880674186273666461880409202791223214660144838662988947497442013438494957361862456768764589484448072296980442050819974558332339667683456373675536921993178767196531991141689377907358576935195866080147340449693709373557880588006937938514621479199056203041078169018296702181008585977776461340309705212161062674623164699224669345825945716954498530634699179675947093380298804766437881605067661705951059706827572784124163215319871741647072865600925283096697275520244761305962270066853733015744637596338449421356587545116934523463795175490682407455321468926199179769689281840310697533302343942000264105766484588433676258116556024714760045534481610360782792539884243006368193000200503454383876139993128845629013258129453961723637543251088896329013696644768805114294034444895705675902819166585875709601451333411096191960432604703562407839150429038374460460577321466380250616273621412290127924207521569780172056789653630309652441803632258684429542379806360351026495796139294691637241942610682660687912753011229105369648657958568254997119260813731484147533114912425395972400595901201191696687131786810466360243919270116013250922763133175522450986087887484671175026270332900044311158304820627416187325849750300980637618727609757707732943124213799378814081030419813800385769763576533995215185111060022073579509150659886726532887371890010337463475192013462543984101322641481646742583534199703886047244622025865546204695722034196759728334869685349914643377776988768444213465064169800869432111204190364760451183870024824367437383522335341756969951291216078099387325666006588223755561549826099082308960614179634451649155435376996516384315992431248221891099932305828746728361570445580367743376917384952305637303887873803695381147464677817521188353476943459678252557015109147756498776731919920810880627794143378286405556094107095961478295658698475462331620025027083631424245949704340189978768379462272786345637671189748879371558333288159502330443433634538077186828729020227311119631474086336751226567944262488325862487281860076236992799496387104898116148226660935563075167787706112841599192404510463903836722046167423900975095181352978716911955712705219030631497071459416378087179123779089199144579272904558104604405772011602250763074995695849751453898631226513825410040464690300258121729265848238101034510493618238607166317180742238874940309244125026915012975159817362127188531628427915124800923754853418474547771784027662997395029429728647541462059253987892834086131908447231107676612210918605366429600728558086795789451351972993029322092821581052010659904199191606239884915029593507098960315030058962443346885605194073521926379413341513552565031970899088308512741320724656415576549183264057752241240144637934336920760643868513580979073489676393606627741247573881493842482039414437917682228063980235594141434586085914100296352237945461282045019951323484013493972307694915856771606237884750211646699214438025087349171415749753619391406208713552205891693351588052227161205792190507654631691401134432235635524755054135495155839641552486225161891790860834161785324107127456461812563496083641346700966414990407369227420722169790736190484687947879797960940465031534304787743313089202310696503808613202401386688267213193771283730562244061332922736440165469199564336192326392769246547173359643862709423414136589727103910313324710367602197442982885906530384187122370375524620400433770706727811275302279575977489558652040002432920929096752264010077639501104007774085823984883729630502267130376852735844319787515460228454652188550322269485502260091104377106007433126764730187089231389645412121656027849363122659269494887805893057420922471346293380386751225084874135555798551312715501957215669146180124086968232713360676391995310265854386533405679819312795571899233890629055087820232408169837992009766211644082800995473186139143191726667993280192199646642432767186454127388213245067627329653138940187518377676140503285843668514172640048971696357594116312706615346374640960661815770352849183278295028821119426247836742909746642753441945068995395360558778143830604244091414790559336452285085123168806187376533256178551367265060519531544118025867587749829119712552570285359670810548911754851425156692731502848223120134308695795153385295609697816264818456496063211696703899476497783419027870937406062717584904698079442941139620139753976378990951339489426504026181350466815616491213111974893019228510917371941337938703980482551915407187142316650465958856893968245417009994545744355340507559693123334578698200703569446995435025781733872788984863202732037706630829140295684978989106969009596863741450000909753641154604999304416291323069741419058340932044124160759509944070683753232839889230780183794404449706213020493650539978990444317956544178172108663649938305699116670570018393461305014131725470491471595030994753609553908907238680803665897081343471330152631136833213254199797505258450897593113022801034598044720027656393246793491723901069939226317037622544077561319517214727581151890477990745752150261842222780895996784031569182282245960465856535577607900386183664427922971559930523474180846123452487257043666015700767132225619137081402054263618549806242781137678479702510754883304020518040460153080919357826168456242036591297179684096654204917749286655434441785725902510567143866317785439627881444950596200571581664492652590720417979115106325066908050454117408104932366128994344897241073465189898180170758527418823111844227785314041632418745109486376333417953887761543129273186442593068622620354125875881328786180635961474769262009674569321377488444202018139419813506167814778669742402001936422877850464419674412506163434749983713587154468376436056863542071651649115013433198223659936334232572678130755859988632434792961700756926255765631667953760545964733408571552515976122573889028829987346416772805484006226507699092324173804311593637498742234216312299945209177542350583536527559404303151930727627607932581344342673703193916283239295836270847045873892773286895851016883749891982293516572391061498979444611123074326811808675884097464153945929696832001480023331753417554162316851910549914456547111360167466271426773127521763799596772395599273318344670503918190041522827042273209799580616965170826822120928221979118718421672176781756583525420672380374886538192842231542519432885672236710761437341104044232189629635607290779930313783991106797202135715115679480979337659821079213148175652927263449848438311967321857193299150940629821750324438986997534692557794763576247057318211324815271302366650629275447533651907938740862868167316512773211480838880233926996240893545358287926644543459765121448556176274806945156263233312596672298903632071828768912733659573470492471736267698320098133322201370062719832521030885858760304039714456947452779959537653417962890906835600946748719258427688919151464896347745286779235634816633436052882545980029216745013008053059849408525161723312679602634416239634636427495504091512270840529572839102542524438381466109908478965355062664416876321493636659761315512717287801128017718036410020886989079438334250825384417701202305362877647268193005039887404155517156576422216999676855765753415057275148810565626870345865310157980422467347475755409310354245003251226361143830533520086970558431240175741820950012109250119427963870533596645562596288073045771058664288682815732419583567171809987459185107684358952217431613760670868244058094851247970793919993777698075639773085837655445041992707290606025421414231313807848334622155734078169669803272562295138400494914653862353486143242301721846927740878020720083619659520501504112677548023367208821628781809785221497133356137459565593222112385903420636323059148242895988578662265600205508696219808618141949221485153541819103507701680601714879844656343417190837550642808868047378290314419243566666701160206960145507059712778099468797523661899222469446145734399034503737954593060870377416670615388617397120570545848041093422784075132611708059479233319872040372578654366161948816091849265376499859110931698316344164946450794852586185680859259562117833181348643515273503421226455922763111763132617223728144351759970089505137449974121018748703295303204226841147705527416855250185316805844514624240750088177562255681933131002348047070846384908487226864413316509444365540049735697200089991513505643145896016454755700315709288700491447633590384460989495568660100453704332916481764175019036833672845979815583366546947723674604122122271667197251213303817876872136650212848893048918637901845324480425817475415632544033394259540106630824014498044851263448083102604932287678281624924181815978490854448393653638104816977758282292048799823465402046666013045916287072215517443365712044438456147326607327158315723469482046048912782631134694205739814259537545320023401512001247383610232633066506657102802074968501905987306776380206821781814146328809961495417715624340422777973181174569273261643511836505765949713632336985483560214162131077830333877775074722483697044344865247059074178795981517216934368383068197319021286547377221025106552333073759361025584298801647382336247482568837057622321210535815104683415303582067154095507670753250490320960685127564737462510043554422979945382442240881613390195666529875044349317582776068665045263597788582987536367534264187876212613370306404834953336736489915010955933635068902150994083273116347209827891361479746267476529121592496431162331072080305264042001345379622501350553897769078676768923773747068732855068098014785995675858627443950639725414344469590961961586659651529240826112572245228551742682797086102900785853109220816730810126469510329874556851385738026095889744875657006566368147826660317943434339365261342784067947194715977133682071371947737038115304024665526856386282155614872502340059944353538860351692305007687713193887374398367622883451578606664517795159581725765919170222942220494376830900488269335429408566128857564200248593137374277005185446333148553263884098751613936263508726939177436308813904690458000296370089242519304452201945827748096560652138356305783864653886325355650897857355719667597789590127670749017472714728570093484870918875507261545874436941558547080988173112588223776288753391481934976005687538339633031666660877515915707176790316439121196675437829142213524435747798927956444482560217115771337285054635354104020386934691284220393692558134404922881332372743385680437088765267299123376544860527791963795132348953843946510618280866858100515696394539182944853913611164967998434279823082798083277670311061545446064482081887705990403842398842596262072478472759842985036602126104605481889215436170526675970945906570813472680813563528849065729461883595833480457036684401489205173568417057848197236869563753622451557614475019259155781825942808921459572073704162878185561617190000275275351540627761618054863275517431298286272534115708304621486738735999674925886871498286346600100829941751916553454646776629404870574317586985081988555390790031845382592499170756912587031707391489926471770641643842007072077446244305229008917602077275830328955649728727821230336215475913168899018030627691978333608050054173071344454109557803510282703904705669122682439044166704941035475976799498958432833539895288782731255083182327714702684217665926212332917367663904657352999746678774077271609421563101989361467151758885637549683857402129926270900980694035770807693406551550560925428517510679125010918266833771622333014909945128345737710569335874552055276865964400884348837598026004131366096209036487912243287422759248466867542729253819174639350292798538062443008297533056569655727496098503528434459456712601180150768125649406108460994649396318297180837203026232588992007585090047176698936115764539160596625102092357903760948208032835784051932674894026471789041967544392950955566193673432480866592495530267971446448994304487309857431594188556797442154501516655672371793697968598344525610802261678532996808209963814390937719772150161528524651359565467331797019049427297565011506866533424863043718646304418046303317496678862685129497073708901716781922026783270374630890821156125350777799675598627923829651672712528743891641588561799740262745104595262056008018907810940060110049877264648833704653191189439041403136363751879502038336943499429040118010691904781346372145181555345125634954748795630815764728562117494821739692418656254415641391391596868110023805412629589448611153767623256661976709641735836131168013619669770122871528763028001842806951995770456697445831469967356939734336964247833846737415906859077911455500583205437497302287892605577943137416582374340434294164631760490498667120834496709456382483217591753449340588365530435020798519239613125181531917923382193460500189243779541772643716944360518232466531153885664312436581461632217988905091147053070857020626552429503541164121372295802446236723972109571556648232932548706628768215968663537524399832147826469880203801726934978293105482982464339179535961680808369889858815276511177712121152062898282681737591998457230558783651204753298741269166397417068088626716758146830214631392413913543294436529995140437484366460539534843572957130289545163216922428799204582927275598842246121208716422507451299440871640357447619715610107798354041800356768129797052980336293608496442616803068809562301952569225824517198541284676459604367514580111764461524692735394822045570570366385607199713249467573916146783031066053579477701848901009612946299544599776831213552925063025768285737798969347357715792385958412540248246335520654397785296728417427228083201832184891714389475496639449934998571678887377642703938879594016990566544631867782429081745038770630821760562265091919469744515969286586523629922738952445179994780519928381017115886592329751637852439058371105720392557601302402870205827576783504870811024785824905107921025049957545809242641411186167824596534447841670093791146126071853447239534712666582769969222140573231713706211684755286735316196310508601351842947591725521589333331227073914424588988252903974204742128458768758521946155716357569534615069209571366779828018171024163411335035037014808355933496900521167139344797761457734093639784376338768872013862711929878868483819390825361507575190600471900571159963952365872614084373216601483778979359072058946777172880712106507043379562405048044325112063486110253420899118964074191328635262823753367672214179078240867641239236073771003827973334548936632050776578483427606513715111860543388331937759064728926418254960499354664269270656295104041724780681106631106393764299932244479210478159153126784676293867225285307221473124787164929997932938523886090344214893879876482728913458275145105076558827185947252277801610663677143442076759836803077392563854566167698626890636170016120529775919634684229905462006845651081649104939911969610460330694103490750591028292032380001231012995589676839800370683244025339396466127308354671061666417535074221698768169959981568844428797462031594421135018624099405381120162470452702319601818808834490589461456925662621116721414158079078652925428235290396504448877768994261726876277897635120998119243864856714327027119748066751160335926520769442749314839737649515041054548988902177959036639934452062240849886448222130042902800138547518634605776397730449719027187545776743054620465614177432090133400963224910729418672238489363930284952078080828579410725290201497944197604664587123050808710065017855547072711444154696541263981157841191961193850331767259522332464213022793937584022623727925088269852119755126850475333664732321164641831981182383121140543617124712542770541172114866988743150610637082120567374154841793326534557924712863524693709480875513267569439901621795974625208601559393279045623908324488001871354158544452187230319807289532389304408619188847177036231314523237380160544499438386935649330233465854178546908686779770336881423225398907623939192328191336793038844636383506241501064563516217885755766830398745425006757257648711672903898517517146351991484963305116770624744910266074510271255725899260425093104168252720832330044946067225448911923486072245585410048376098257745776411973727417493766387375217170320619451202941399404659834598384802371867903325102183324618902545180272557582870354626114931346858988315418925793179596448424763779822897710849224013983250153250505118071397892679667997314398158737211208124924078304922619204634001030791845921349923213685797669995619577159698170759028975881133134357343499504456118844242208467213942606468084788177090656783813808906795544307327288083513852666542391680740479016281326085740454895669004253465241153779420051312020330134406045314618302111146107600094113462247353475835676476199019467927877902411201630494727696317304789970377261386000065318473939972013186865892067688675315003079034917080218537987886523595365851135626697471409779009085339386710523614100905707676346560910810933577263446640805537291621724620596139916777253452987934122558126207548850323901403896547151320768034703835127727265937877148363656152741002904195583848092257647347523244301501873298730218878907658823694047215603539094860741775047634625698156041139377383462030351963951980712773863560214001996440572545560676632888358248147982600992077540740712910572166901254602838467545241602436903075626092307478893537524740901017270375030533341190584553487489236819693791154709205168687124076512190831174195901109829721804399721316742362295526338012740986788837514102855904184251433807927950109699957378102751668900123880717071917084210523598361786903345555986570387299922383123632789624983649381339611402615835728087604855381309573280886028012271986894587824554303142973781012666046519196258307703400374226185862219207367238285356118894622648051727700524409142450013184195324288277290298782361514887580592478464463948924772118134630467580704731067392388662118548586564622469396612373966436446384273660216691140077574256535790743507178935802070416501373832658703873839440592120932532053659706491013566781801621552074788005238217403819273941248054088608059978355141465919227569442657099135356492245757474828513485204194364698805086136144682174680597313001789667112091848825061675753894623893186489238453048661150473238365355275252722145539799117753332699554484809089690374821294931644721559740660763809466528401999079378366819729566341575987865178628981390979744853261999628740719962083003449594125389920089608260618186508474478833475025564181878884641233451828931542670906468373547402454739514437815359842741777131571330198162089805816907194241484171097896186417780410634526703721708815146448967542265371552758825301468522956217450809857403565490862988519034101042053303101921142493175591248594054915498581358303458534065124812798526997013899688738869041318482099818863615356210895423270907184898144326076992739428050004088498648528715713656392788986400299973887793798282377239554205627943387535311501408451675801757861814609314539279093276599728634521631801314316454861993576083550139224850297933231994715538405903782071224609321219400997460739937285160146409792052352331233414907866557080873233346653630373822967295699001156659394898030035998589440709007134451365275754075304260768558108820813765681617893313328349641684272364031716438411524314674370564631106302595924778236789059267865355834421785808014925889795357675589192779429533104113839287203307290868279942817995854529360659853187016066317069816274263518457996445326286058519404943075853251507692015797964446751060948099787557201125665324740029753396854904027189955085247831483323667988567987096056523468606298707556842456626666223314892281887978572612184251959030896467082548325444989154929267040581112890836663731605392361775027801748896395045173526779645605696185839802799331502710377247638564845139760918623029569797627034395992401902277236549325033094667084763980750467867397535756051368725688709281196634114933828395103370924236694177528685668991739448705581836535812710423497464781540191583861264497983586269073031350739546499519817547190079812740442856469324603712552582573438815347737755661498104424674022663048118400581083227944744307997967309731544467521576902402277827617946419455648396835968132509416272544901009974242326161972505603869774609924168621228778753510575546102929387853422731474999530717809211254380361330412181395240297598654485700919792298996688812999630026714142705394490791950709186065087464693136395495378699557267620876330937159955530576458742327283209992908388689371408286958505492679977053605460534402251460576897533965856066878539526877962795305065939876976389295311633642415838632849481687354901988112563345482973125958994489326748527992202998310384560341857969816555854924963967200759913380121023793421681065251245297761528923342064221836724790776328462340531514357808429661288255805862333236833969369916769893248802288651405366099142580102912996090621435765810882063164811676854492225862980892944066538225094296113503982743102871772435482394356181268207073880668076672807346895324931476401272191010751560578972897126935559280355664422266138636321492422014793162679126668170965703076882237527876559492541598094001381021291661283457110809745341850251073638956181214872100410440596277347597318403301752934296865921406433751518523829881812986022278822355864570011151892507737062961844892030047610315342822671105045516611230909256133767030490891904397601044421202674144608071232881021000431177845283248708756022274004974508441979350784919305723241073753199088254061238404429877441512471424701409526600312333209265369601726693630844424352787715680278053121283834868669483560693069164646632575597237947041494664154172969394795155310322373861999061013954256507919100391022692167946999471960502488310803800041457706199895447695268106225893766399127157845444044299858514284217910362539977031532496458774070317861516568291245454089718441483729772029681644618361275319509006195508563502799512844363431341032733336214159252811663533764516406247226042262402344658383663023491311022716255180064550247020217970654780424978277208615687549395060494852549874349837086746230835804528445665898839331175437496392158224085902064108348758714342737500477048072432540587219449645415922619028782155307938205091027389506243949844968533369937084370092943082181883107873030098047264776287563930857299345630470113532105136889678532422574542539918515567751126588927809630103383295086672750671422877479143647040283497091824767532034764313734438219349287459296764027242662392418793667652375314638065496343512370587508681232388738291021391788307965027603065960428197898492953417083208198281802202336332277064376198511155080371200921207147103922762150447022767983262195670271470793187821784209604228290959756521400339537248593460950133642926262483448230813960523193050556635349777181064055269590270433952584141901159921629804001810196088622555302142320584434948397372478867961854441012127836729915256290269579798619951574425492985129224197833805595659534654594209605040189731526604398338623066995638801046046853829211826002551759382858040611020645960283083289788728926074585439164865702204462362074054385163097260442943474425067181787736595502885683492383483208720284038605471841562301502528093415488978308197882687765537420690571327860071365799577766549855232670533187990703721354158187348206273459937167989362318205442591347705945665177341754427064799764524911205774437519480146260328499079704798742082340037391532616837876646367457144899001259135322267885555354633132616519121655000204773493227373034156684000312491681578613548235632593674479957996990349879840828556267239892613388348597552588323692209357371405193133138709476238812621032217287643521182923250903510894783445357814785959056838473514708236457886539089723679735224928284124709526060987244567175516378404384360149181895781224229816096950292584593902091147558330209227670839041910521753628613404303610532826807028739464529709855814147020197712777935334234607341719318343784345975796119954464935090968883245526293703014770806443201997068390824077431545907508103214140248420105213210009353717633487304197298784253044735635121129835429188461504971041804101035063708987307322751817235673032348461144420373956217496386248828043358134578940626982174677546929096713415759411147699075790405074363479695122547070405678397097889196390384540947834865778862307932230534607253775124398657513463668926817267338571288993776914285403055819459279047344550168725876068491827095179155983540909383708326767651055927718592729511779227290114430192130374995935523062156207862260021191084912369876257645900056171677560076370978239573372398592112712134390784745649801411606936529030496209292808877442461749496332387853436729079987139625296858299170356424026564091935354030800749600230449314340636916447347611557507618561629372763526110470239834780086792844891145065823628895475616906703497861064250144032222156907047203716352298901975058143192971293562823333698044787635717941347222612764405779559210092379626515763652511991492573157604226043762427572337090848158577357226474318865032943316497745229677451078985623817347758646165197285938628603139144566570008764516347997106608813550513134787736158601232203025553175140432967548969306856371341203925053071371131726758062960184508629514127286324968057709979390690407742498198922527105181517582002257430332380318349408575734791522901735667293422664969608604190723488805761357275093989996632494421041884304724755872183836258909702762253423663013660592752673775269244973693816488275654051275549188120203664004044568702365858062781721705020890673695140463244114830969965050716054331599612071597479416141661697519401068439530898689178009424067431247029794044113394264586788200512516840647922313554716659351856190176247027391392792438087740559427502671438800395146699898127950634119521772588463134547877112553061456742099202578232571499382640833482211457251956697406463077705151020715175057470355609790299270392032943293625883149174024873735767354358301887929237860265709884285363891167280959344122443191509906560348172001740515320687038552244788065303470045375211834120340769765004456916563187363487032584893043859987141547491810667924249967055845571430949312121927058010283645713380241401897096105518196790643423428295596852536548666345387330220844985101397818794834369756525765670938269257752818653199601932486738408369445466430992793694778615172297688550079713495387610702911328845874886257424213347660940775468619286999818965756194965611240455216654398872444461255213559843662547034312580044053689812274066865264822481352208340802535589202815372862176086390778810797302131464671028647734600947726587623244529452333083144023174721547560560960806446205212953072550977017951919711434721325675911884243945797217159081607535316244176419146980621402203753818975903873887392545590280457984441584569067480065856181751480027165036611628427539279885493461321944177176148423996462276236359390852396441070530595598838354352484614963772780917410903920341285505111028163423576814727100960666413705127125360734542662718339298782510574796330504080951228805597275068666910693648196524932754554176758971481300517651504170309962222982892628200063266370267740954952807079266701823306057475642366480708128833855151948847123473043480198601013354497608463391325990939017409364392096273106811075293029175552026575322500783134092039484669529025072866843312071805488120203817700603875455695325628001333617915271667355647570720801476764168046957776575177885937242719562251603822127292029225226178471755159916330426187995891618363761624718082195602544102420927204266092240821841222258938965177003404527210613466301279914511616726737802542276981750107750533789198722126187805551504018662355203775595455098379090585694411791430828712433634989373364102272264924751180837873120678358140669087932879214086807075383079671033652578121814754242722857522186793285902436068303056329626243081720547792835739094511118484664978279340233387604171899306601581351076210784392774648186665305712390557293377577999505317090022497268303957669211453854453036784767464182460741589745537666685894659724091323567333192829360537577139803257880156419760774017087633336182423334509845487556059575002326529691583988818891818008955480546160476614530332417878597384354322121738124942630357722124269494297094259098161478556904708721086058102736421022734839828417526621406112309429725071239536615529375736811701691974343963074807813059923118397396099435232637834754377763749205412701917501328425971093184488186535627610939969968666409108715309459685141344919611112402502420310229528806148298094742478166272716608613853594995089874723480391841905979250656225677360185225850926067530206452039912245534146360113268638451806581549728069918608282560688755091047797674963017065739246647239281745434054109094126349919549039232801392804028347977090596093273605627630288869958356387153972438218088848441388655443545360607305348456704535107920668410080630051966857180347566749256051067170313317238217399500303029942831832511017941694156953599962334952181107455777803986533702852862930654487512781235526785495056504674115016469827128556005759141679428841402557561336982265048450225481793976260369524683526053367942084854012158741200471576124842013616510898560664761737494685229625142819366666944083708893151192307357894682257363831226143171804519224232728478612485936179773714302030069053967085996079256332064165821852192609723019216391385677982272761399384920670073622550513133513403887453740694213535010613564176641530026790237224168549753275979173281320907556728147841637664691566007900178983137550822783296808570081383286138612338073735512324010979051128990486277303223595530219124990145264015143545064291469700775123798001945843667581737055210845638349175438546073786286515692124719476838615012818020444432759072477085852551094384198078861457617136258155622077418721282269451355027078560090473784079149168041339809639797472462398474446083189514339619940976102865844150301833227020537625873196794346116990534774310591310221957630932445067486962344001780787727891849740080492476540802012523865211090166385862456463880914032713279283749001041508595587262470320135407341870098170682811160553732211508554006569757886901861059679209550229982372230783717933715017705990854826542938141163085560894623350460795167106250332665089473140240828188515282610953253439835718198157255276189401725911607036222209054453965136730791976618507001165162934128461786777950377582172989364855619515722074331397822226682355480177668479263077030044806424557159113837479869855714386674665704061681277389657531482508345856870978602068761106843673452462528938183298331948929697440063888623229353615027703573623557200689516978576501366094792083540364589909313824758599339350563329820265125490363404606999114729171699211138494843536274967794766228173951654039799546086222043366698245498379505436678093751070092049840051372934185947782614030271673570351597341902022300257614137564656750777269177856245285480645237168733834102975040595212361903476953766816888416956009627242933898440939549996992941430058258450241558095196486008741250222384939306936800568090070956364998100951813872288345226350046979947549106135120646500717567171726461394137402001126538419790226227003497314287749216000883568602672751523439690590634791787583462034313571457387010511641973542921448998526364608968817169759415522845156945466905067420672943999962444097760167913148409622948281468423699301689885706414800426816923040220591333945299567304411380724304110627045634121909240236261934311585572878828460402344100042081985688804695271411448671713490969600465617901442425099347298115649326316668290986366342108553690783540551494693937406252095402178299864116211202253869073660813934251135537969571201852170034655793924955506440654090273295011081691957624153581046424874729541349592425315726157544235677937887719789552626590225141122540446586344671892878589297656535378096834297841028001305536227447216760573611425471542042554837555816539750022848274471049182814058149923744148374356580198683836210832173005598085595914260481199894184250072246190029193198892512204594142815437052960387300433841209607574000722366843252301381895375578692200979998106166572913043520995860147238656696415761168169851491453834302491679628717630592303901889727044979371200916742619797602494788145749302800798764183954779196292672765542107658105743957771610127388512195679780743766408893988967669106952295887787302069863136324770172772602154188799039816653371689074502313805587913947838782322174464898101819237752098487983781944039026267451740048214661603332425124619602401934891639171152426175005721997792305937393071827911367415984864833924204330962287445008304793681562081926375910774285776409817649235456355480297431874547549820636112460048174286809307607168427540016774661424227066577712396586251259632989000236144360440122752550820966184593856624821114034393821340890111984067912027928968771875687406212133591735967229283211525747907989954393465521090785583013995730722377022167990739555800075136807079878230852671917249786920481080535122243917701603791513781677403041385109465326033419872020709425828862696501492409720377368540285837929066797726232917965032277061041643373647743952570129407951103095270630707879263749604232269031451920909785524807438023186965283079982317952445384909473670568360008306453866335692693557208857374362363764646059285875280517535605628857596161812029371155266666084466373913325159561587593767123784642042867536713665038712622157019522213909455698337269875092820595549760215827551899010556578545728541132209390362539358901653002234793206138151308049869595550999048256183983244750182274776383012186241449946190249353852875884546827785139849001134758863802097865185172708251348426191322598673851664664358532776390731367819220398310756094857172830582736035184478577470401699924161199361845989718896788609249598049659870821113145653039464525724614962893732291824902840314930489633303579791014945697287659050887409723353094395205385887615229918670194768249985407824148635588796801310776312641463418434439133762555083901287341676762470677506724819237813694176272533265027754261202016411861677523967163866497699077911538040668350114421933341483201650009434787777191252162499811264224791088023829805265068119282904896167922817008196636128792715623550131902151458629537635527873897674611141654935430191755076091521167421207785257984056401596998672462423032120451344301227372122209197412438753925702453465583858474313960961625480050712702711453864751192899195973273008619978247342280461384352889878048938023746591354466471325101757644241256122130914480760194819868886084656813407266938749678608962846140873469853807163622449316779958747745156818983701620979194048893496440156513018675305826856009943091888492960434378170256746244743652427056051494065045137424894800219847298217385309391122020265479623222888093752615602185281068291904507030250565382824836263625990449294175595985263502858811823436124799569339220516537002063126634813061317946280391596063129466231028542853460036568550994831199403401400971460215417646724151236755854631420320064894071028975397977884785547704292450936445836051061976364834790668711100576180582518409356143196646557186290950648611639557876464372215437095737952810782009585529483245853322189509039614797984075137506999832890609956288307687281914663105313396303629174563058551041896459330090678224051443726709820713220322620259051653465353665748096464423048188070138085418305579327342659899225574309784513911347857883200344354389066065266659372010428890718454388669721159991916098857876975088098302601828063319789701299090435907720191824564084146869336340241173880043178532232962816194073013666507169949145662692553304359056962843510881813917875962795946610514222834274515706716776802834646672129360420834160829473146523409590438324364060772473876144797943311516461932439358910558169037676424242084438162215131346107208346934234259424470198911038935778673582566917174466847473080252825430630304154256336859379048220117022258141560870444554968639417629112815486898938708156222993273220258519469049024122769088261762945803532586357509692328353140138704528923789109037370082848738410607331611916227533935339617062214972237131289054728071071023065836429561609248078158037696499860783503535597908657832917016335135127478149360130942076868335139593863157882592014600094305314124868923148223866751744706041883048693257089286213803694568708460064737817839870009844914214068411585622984625856435264781954273037426870522845268506482949781628528192565797366524418906073497043028079132168409236788401457895385493954482955255701589967994967731051917251984447806261184958650961636860264701220080121697878240712599502161661604266133270194555760612258292849861533400109840836195893567115670496262339479351954005708241898673586442554286369389069457915441693029891948823514071073786252988827925110724247644190774429998474160333061555259609959930555116887857662774919294551443596490556028496065026016607726993258055725639176940133195010458865670103470197146133354292000225461077011140116164550478545063096908338082203096007069529054891657716644414839501706510623676118523108811186632893998597195778541024508561989632269124645514815574723608308676980705445083481756726724576933654937251757076044566406057649129931511061146243886349145415994782919216078227629184148020599888128515403254616937693686292424862420743047413324184485608398579123874881606594770559230286664440155242028367101035141261520757775191595678268845386164366528980512630080995426387026230756150534501383581223986137832747800795473720006538314442299596398107669434439342275751063106255469367799460964908750213824685472313293722672784479572316244143077921993333860415432837534112256669653180861326017502154378335717236699014919103032498158103659663512460201119149105223588397199770751324555738196021039157366875898299693171914149306168373588909591913512089030942793999899334289100353561087252227486482287355966439695550370595291193293432673012904392207044311273509311119643264594845382781705913458276218740540000607996354197522123625095246921044186422065756974436606204477899406526172868517839979997256273536203093797685315386467269609641487602044546542820707585324826899370017402483115715811221015356740535720487661064590005745892780183807835801743278544376066396567401529087479585920149426850467832270417832716238771113143591287166516566618892260296830421424676656846564509896742999850394164000285133999373999484059837458786443814655850569964988557114359157681251280374829773174757309797352469625477444989118810946438402618565450336992842060072480961269146257231407903819615059219042863760515416640794571709950154597238644416128775174520956018180546072755571352081466004354495667366311486233942399246075167202268226654547343502972237436738032934740001418961439988476525621866705464976766661167604602497339906343768978330529897358071068872624056612588605347213228752224992713351337940075278798901262083656878478983109812807441852048328503115427221881234539194183118773593771170029078397269783844859360976429036218845142540560903732928517636569035604325061637896152493561857091487586222827672722371092143236940403522334140600684115002763846146875491414753998774555137139725943751338337426520657000964307924297684922007731198267769162270097559751219041265575399764089811467477601084882829216924623742428313838998129511036546286432972588583592376114687967018733511380647939362955460037601285243381210765961796388101567648734740849357645988222476276775375871199490116678400929612440488130859072256602873166864041436798984217385653421788775548910997506335791808498633161047925088885157142256376319066093614254142972737006065764981926157475294111818870658588860727994079213741988407019291388356034794944784264464529972753244175072877066231271433233490183184040386655711054759765436016302294095622279453230694949150985792059705478026229351171418938848930681198731744542242556363373412830868591916289287905065855812766183364879399561028185602189897710513730175416952932293953354563350353564399889618571581858877568734928381903070740703477600432295547608895175227648061592604773529470136441857605879377481542713374804968776967050988300819095570038551394558834511594255155706012131953139128878698388822606427147956850192742964158183260585926866950599073901568408281443721354295647931113586031817580041637041259482189962062387235680368472027050944864436511977257985920527826150791049178500905278147039603177011160608850822077305379764651622856987921429244929620047903235443402077407094779707009364781283091263506959908619128432717986829175574716480946925983200966935216162895424761511940952800832512466004207457503786906407124335018750469499647626092433799254923097880436141394354506699776698104033618067604534927666279427001844674067066619242549237398347018287723615243800250997653395809759475338546976065293801234789036053963545906871829771840152963879075245426988648254979409630881688526497354898835569776192576010662675496501432805976998993951412866216899942937507787144710547041299608239448987225297960036204580491000212338144893070605503593111440129988545571446427869927737879505431289160229332455613270361459105354686990551874305131515619851384674686926592914879676232741956928606715630656016232256262388581925353903731750180082993199085553274327526961163305064431624670649458448024234893690419963899369377079508514662052862511448033923111906944743849949102077643454967625172139136966375957549024105887987968437874290738376342554366398271726563619605124687436896636534002128886384863200258281421460738951793831126207711606207675129193889851359446876447749763718240941487534623956124549671011811702899936083503910176021469738167675263728456289402098902698511936230599037266206472103206178847591955695441737660341922933823879739831654058074705272505161589599071559155872560360326568395864762537406725508568822846458277477112515118276817792238431900745311390457156875331949641290120095966428482282290223398695585661515199559852724545830429285785369377737517303787116205653973748014917617273242649698131316262136617967173611510299866308896681779609654320677824622281579538535863394860973528147619613033809658857881658394001341868244140608839836758075246184624956578131575893506420860081698448141974054119434995919595278356091628329570533761591280687601564924313772619701132102205525122705693495648166708765447002244645560777447947521077660018689543242451855605108225818389202769124372528048770578918338324487494508515328248871125948879465649877844063407761956227218092946081735558981012494779605303530265652519689073995159880799452901850973426132971178366280436411992048688843913347869854805995769745192269205621788199650817333125996040470843117557824917163816840920786353636153613898984603292652461202715100036183893315424761226634810658171394796128821765557544405624979623688499370672073642229257505997886592043065933169729783617574037442697072046696770099534147156920658192576907876180766262513013231400217057823010624420170103122170921076360112973399080875889993108176628058501118849080787216500914573077869494932289584759858538467116190752130670097702218611376168213594088672373520930468924768040534914640947742552222764398518621654850852534137982366522882487230547429893459432217985823085945405057852583141304732774731409817035972805641067962199373992301339960720020236678249071906420668622050266762126821396417967182508188395783384833410858830906004086769663015471934535806481222950641912777539953850595964278449051465753264515122164896081636692981955147313314629131864632307335082391148270767496945799836000737664750364734099898095574351214068582142299956397143757562036621928258104084373068375656074310911755590406364520585517162499371776984332621712858092824007397962330370341722181696317224975902081107980703193964617185446963946668467587571023884305896513414842770833437105758273327559963700187825487026406024606948307200931599374191197736608951963664425691667972429033961905556920613251952932831695666990678510000112863679360141408585140023702317795084196008698567792533330163910995474411708566983564888219890621685362166739576350732970857901653376165254785655573514159916547951852916037886051537046208568800446584636316415975563534591614052413696449300119465495005957485124545589041748277868197052643837811459116268858780196993851964267380505637427656025190502234235669882743175061710254332085419980361542148159140007464874208344510497304554454443626550240165027358983172641209171436666473296749957864478503025018384116855533160275990279776794555351372266656139033543939066565220469553853879639840718733036265353902623039958811378894646679250378875835551708484492025870055794870827409409871985133931810608809013167490434666993740265865431339682453709221456003502748496100205343250044898878248384462127190194081950321328195677919598194860123459008285018779277727399785561973458902896856889377228828348643247547532635429145427539723979838535657118637929144923035634900971029973896491281056391050423616688570631922430295372606350005516188001220101154787769004417646315800627375529925653198134543974231665329295879781386596893027699862488984165509305734481416114443035642096933875285340521406250002035828534478976771503402470504128009578634338856190870236212003281561218453396524990394658274429335997678376165541693427789503326925595505741490277601448467222259195366724806494367013593325100989360316552520447749257366465520857189340414462064192988318962217744243014882524517344864240946922921797877422184973076504830623072480792022500909138023873634598301414110879980692032800270124897089573886025885260037414254032887075634248055774843726021328248260154882649648991047720073981187219252948796036253610419667647185242291645831935565721970233849209509933819875618678236512966616977585955152614260423989547086847394641322728928609211044458163971801321373839533798399710517493414446874250158821144078915113301481611944055807794598940751110386105587272006060296284072657398800676825950728024843724214941716646709824614290014029755265109114757178237958468312760997211142396274483137090300200013175272787908928455420541689187008488838530888242068815821855828372412167452229148993798972575084558970059729230630453152105788000312167643549320161043338395658953231255806274333983685929713438185138102145594127541358406267133002744054488816959084592902761864204583526065989521616838213679128289173189938878348181264915633782532349990284917266450842118146019770340477854227130718758895840414491672794259099193957428424200944771861180823290888691315966497636029603378030801101660532195731803084123245895660760241161700402258270631654216881471420927558473278082726544546177063972704445658362028519928478857122850945058706676600185570695073690238332920627412778687437112043560985149360448625289103906909472413046089934598347374044885532085535173879759534504753295944728330836235998020202707168870467740873274739214815853320717698408958693933160558951105657859301205727190207010643967284845862470135112667489413491932708233173559047722798459495455672885266183080968390714066081206821778854140385618191466825467832127225475339040909570318400747508487082931759184264182085564798073667616673809125249635702734937210787035315111121701103024281531583472975627731283860348921739470670101767379191599979154065169481231001232872132078693166286459586044986962107629047656576068282101846310334942452919727226340513087952668576837301396060232443730546598516112871953905207039883823147641291692526811257124077390069609301801000858217636254380834288440880799842564948619554193875005096446709535012915080692717867211276491850681858642082308263147631328969664393715564420559866783715736442160138251840626025883024349527368442809080051646224802632118127251687634191122651386110941686623038312742033628808497863888807000073028056324935623682974457760588859155948130411455992149058373850906742262262154989984855430676842795311616252926122725456334369877658037497219788608159684041460117510853138064923345713048839035026401489831766507671411915989418481204209188639023572885239240924835118434654166790065219272754615234239079246868662575821487912568650511387220851295379659749140341950532384267549150619547964425857195169736787364707951084223478624607323040416893080613684686922219391030521414021144539971849068024748679591483231099495848638623000210942114408937908144660005132355716999634567588301111493992002979878718899576319974125351562657872695830951195069624248170565052077014862138239991437671622775007602052225989244106690300791135321474831773546429774185978155406515312623675290117930551159633747733576286044914253430193580339696585797053479424143030789431648448195023096127404712595803445196893491114358920207268394324390533249426841246939406453559692974420274202549982073919586281844452889821211397267655083961264627982965819344083941991946629541028923963997750724295153681487441733940324063869761711016813251645909553310038677587295946487549018671034358440195658434479223545674629842801760403580318033522291073568101898043635701043640990225946647814884491369598465960560774519398653296490476167810201885574558050132397528799226853140746728192984195158223885520116180239102804712936620095007859402916045825781254007805279324353132920163934644597668367590323086040981442256322615559444238734029787137039326814819630008520528946249921598358434827611119007421504814550305613874402712720670449720390746341036044367789837580481092729140542414857223474519527393439246166788157352183482813091023173072122893605968943906272162418333210448404421966806278709029716623044273142440007216590891081667087750912263382876394111778310093726267614499255233113702842123767267471480792625432498055411910535927197894724877098950826886526491532813692921503479570403663002647019991176836094726055245762513630568396155132077615422665639164065780532702358127285052885462009530427690644623964623973150277144334701901702096846864765878718465757083218314097270784557355909930125255544499298829955587474003464955870664336938424743143283123681973639480584699625818708489537795519604690242121141891314265319269701602500245854189095370108002107429022128207479734105961590967702919803522243567323736733821999883781583435806099143699802093617708406900566963553238774191690426158019526899967707854582416990547898395484416287162176348842886920253431328606361971517341097841256454467674414050709078109103201283748464809200647989243820451833367206049304383379123477898849903739229191496530933048398103567341018716197266228239758826422022139078592464311004392296499417538940467419563193556131051651914323909807294639611672169648999724301172469076373324436331426248300945664382426672529174130477645508139720825413881795402144673948586184103753958613804454627940980233121778756327615453095500416332684774638740686129393416051652089370002456988982834590721638739945287656595589593639294830772658585724222234027112566119744713122126297245552092046172158261121666799990626224715544462010818334233477217727888381635100386569399726363958249168524880286413069761053984953482738001801452536097969105683494285312850075976949690573101644824954493608813832755526554244893288585414225876104960365050690756000216639846316516511539230672165971430166082115878615986161492896093868399213963957678892063718255153279241803341994071834000140554542349007688620540397341774241775619027096700343084887526747070286432905735121242912482493575153586628525751742402482374852313344793037278591247362144706417682316555671800833107685501121258913701112289136061980922102238717035928028121256669528366653522900591203119014183080816917819122062421693572682964182438590385837849105682817837222173660956326677872376726853236505061862904708960859565604850559050269878029531599491679382650135845662219276621649266044726816280906746812696413361276884152028556857229560113018963630536524097521388622642549425190919759622048251070713913332651884521084510364623809246859551136555659066993015950677953139652425637164540726077843786501696919235248360812678190864041325221607868459761938213260476745278035773457397130800934998254463062534356109784829413834048796714083173092175631920180237505201600565377166248296699443803618006150589912335195804138673076435795471790050927749223332443828094572731162935185635721149596078617201955997054803858053592635051905871655091426148574741697827585528140254871373914809102584658225985744151773614885325371938224373935640965395814336132657936095886993880588838874634730082104138846272450009823352561970723255512527656519245657290383709974738269412661491709568816685599181453189068510221659461892476726778513719180577279577831983993128839303373583148574218433352227608190797592322856388016906673743656325437820725078881970343478917694592878192103977294295086962136276763524862757300568227383339821691309132091357211548822426189619703780396832872666102781914053741004794821833075380229624346913392492795185474502554010599528985153799896368709908954489011428014609082471075996833612081735626354642844896468929938096152493202655677498331242607394837527123549969961505836482259475122145462265595657310441901758999756443431660143987427911736640099753026351717217769367121957110962146622479445397911700081497946454896331612635353555097117746099189552945201028267497825197199276947164014381688857634286688365480587697716334214713481023316029231444353055278574399956198304283009089568440456161526756743511576126785428563302261114572680554477794701870509003458980698867709806730052313262413305050187694026955175604446016928465821528831019802098890010201801872439172246829327105234832937293398202935713949955919621759579430520681211571497754332825063160315794354309603656774746253091892483990530996072260981288458644194303849890158693035998926436578691201146746974726063316531295589763359808116695071437443678868576594044218728481527696049247106521574182045732979603024920268149076584802168618840581384300628380141550229987412788758323763967105944439758323657352080643947036311788950201397110777799955477457475305904943315747718136214726229954460129026278745315893569004742576572127154620603260618223190862907019073079513439225276752845799172999646694228399656340881932131955825256007489539864689951324281392047057276851597734938871671443486171983116924584834700923023469641557285241768925290674205794588525164432840231520227717066705150899021008713574398484700707622515280563706433462656741349696435370499222494601375487575773094969308793105034199058935504808895867827044728747533181993146180262170048541218400570146220338350112956880304818131995303243934799084030549864914259790319340734530889637786189869421252787074515564418023173334068611861557739634169552486748670622462495778030378408786742340454447073677231074389631346262480418171580301549711678491481874771339808986684055772777662114725415430380479015323774975543212537494190451602311317275287808288657798783300680925618825402526572791363962393636745330288796332193578816952107552595639950456974116506394924891836272646304993815456324658637021813786799219530482235498593429400370019172706677962011814619056606207086131579441626103401311186241979506668741845655437453189407324267912742388578906158495904753178058168782112654350578689993563502442664198370423308721113692203417845244095833625888594239344642430615737871733208997635989507568790983746483722322852774162812272866592756965440637658462122446863878130600219211622766627309904111791630288324022635561957426239487678976462326552723306471018443064045096930886225421816133318963089591597453922077950537929458982939331304058628193807278637281172836278066929496148719197700566508227008580010858008014230442145932631747902045365604828686079290183165211576711817408789065782214919755954274279020314395562323056364709721621468148580152585318098206793601003358543485105761428353685454025042532980561198893027501959097484121497931643636957330308892515565688037485283345588974746360010450865813457485590242856497860031847669777867826336000060008301269541007506792179417165297994706222511939801553304586489890041858590229715771391762327449525450160741029966459488414830845381354753775659933281908870012597857401448849303608561898314194484070397627120789286980586622121258984213668633699804371451182807784508102006385394105412108749983744492608402399700390353438784329375129366172776620040057546039976286402855290163126797457334250220492763425279208349460254035785151501714053480420851733290626928114329854260088471847584619016145578474983684237662215689692056782229227144374108224093219828850159386390954430167801168539348112319181367239915366521742360592077964103567420219971433357035274346709497473747688736100653647906025583454272079615923612583540946928869004290804596945767577040037265583043730188889713731124787823231072210364692892072110802809835138551581333670048802701351143676029495758962382901995119097371708606745183777959691072225943146403727022722328630914961879193328818039032503013104360585459148449574900361413763372611514265246525826361866026447696365312813038578786813871114319118172236755090787998973070906433205750833241427721320351196965848880854704518331199198117907007030112939563757222996789203749564793743348558078976160838833367951336494948085421429508184288320983146708019311259824911722904961629353069519790297898150248925721507885440748826805516327562378904992902447067761631681531540537994904116869819303850579924733604685531691435235242358416467880946185591804626410168046496549999285723267857621128925418903750353369347652379615378870153341006902647175747317186401054078251894601363325331880939527399519511873145659113880025528440205868488316562231287210360796903983316819124615343590848620967733575671104671315899544750478487318333595182449890580583183001749973296297127927753606259008322412165911769284619535653290325346856899851170454312377065070196009192081299329682849767696744178332736617865151896047505430541281107037737575235168816817352614802113975757223277589995062341890643933477082200087235907186171715711480317657663565192441135827439253481950702957070609490715482363768024081086872449302113407864727966175492457433758857514670417470932783083252526869105111044921473608356760416726164393591361244881887980214249868728845378084471482534200108080174946577464235220445872066390980291115690686882068652774779745352046312927621313062411444403905489389694689229383553910999005961890907582755744429553965409035262248300176679662990203206187502059356260835279334160249975653119534701651174236781186310319589385312680087479282691317505080473028316368754654144671634540505782168923299919683672364129903953610051877787137683520826387494894390270253809116951585413221220487859473557491096024768537414299062254145638888515176010379207818178307842898704270735219334423010678169457472595257916913164717014789843312807770310509066615246378765632143912150471500694217462719224986177294718118173903089046278949012010035745872728218527429021408624941409885787102282037803852647616778406284625568595140118827086544266047320950798015755142166780627989158155000272185474205460155322621948475593236129474898043260220873504220958569014604967765578861704055591850477590718145845625995044084572443658191690024997558301826346310339766638010583318527886527185348915256623140057629257870875626940351961606242870475657852163824961502368927286333716967667299848879439412355813511837429698865087675189185145602004188824978388848319319217209180313725787147750741547488898587529173265191012768983421107127462158025107636630290917128741642296731355386504512789913714478577995711085860589881648132333631421893914283514224087634738995595131351752601574373098225844949685444796108701701633884692673818009619318057459264076220915646593423409029079744713506132807858637236274777013262762972149011656825471045407358039279460911888508958513861168635723052527241783415212751108136361258718721793437868740370031227513168276365661593301156613163403484109572856556943228900447286517698977275325671729904930729049657275689340191194769478759358062554876887562731704872572365484405745846665269174764740766000719238575582135955872097601546823906003946294761478007966342180554027402182993808517107047875594773269166274068365922694553673103720449728109450182019004367680550076276251932791488099923784672783988776392762218125526366116586835639909667937623808895729281809221249253278115670566692888789575797583470973080780883970029735806782025449779145009789022316096887880498013605489936044521091562969734111940016143382155060697700135938463182896596403846040117952016219050466335772494093563371318674321114393881147722162390634915813707952279756870916783312379815042593463159578105315871277875020015779966814151640512362646853910110505668761537366397636749027583880241969901399638533192589459390028274915101146839289443665722684305167860260174206055334339868578035101657402916668228957460050138139283070595466862755246102179205943530542887278415101143104320584377964032033145670963305367223818573511170531044741379506888031197603457070914189236128380113549041298145456135752798749272579168178375505474922540282315587858106712943354153875984621589466545648332363562872087057531468534526205744147867580243469183210252735047997484554338213861468832466692932215723507141139372125839429541200969529084390031555964498992358015684481983497554826957670467999427577344030983296998557195797992191313418546765375768813515702547209610212589081501713653841733484311707474065010716626637747858788905070028396048913775868467798435931141054415852998109301214082003380082888190438085028909817250191950063199826086873104644299371618887819065146058861800745670284893073301006868139296791632003637992655314558004130903482321183816856666190791648661313562141993171635169061331326272407835393964118070995051501894261155237690424242345806309392103037294923997220337819653889709589306118367181839862722562890267416887099168760382863704742006925148753606132865734216784465216107765145865713051980156373562445063838072772544159009870317227012444241430807571445866404611668427333403269161135829591113603184276400724257773679032712470328068444009810691214813971741179485432250682480294360148042749074719164450354601068372831938573873523922046190296080517207585170590945455254142416238661730643218734534565916227863610449694956207416141703914465297763965602041018422895006132755397705230998905006764759113460256076735572730548740170899812204583217408071119008160838981345617644098185823232382649802142596296967770975266383077157122033630795740317476557597936747064396449969287537934755397295726137755781736322195068625857906522526272591040926297831107056553033143366558681566540763965410821218844358704034083236523324821472490157843226483896047027041497923496537021657117314060547370785007063677239012213122427165092800892236450044191252605871292639889304217570439184452632860911840119584432832276849708413648274539371675218049763861963546539733435705619838318935474711260601267976235502964749023455769856079697615393805138766735530652419379027592578135312640960841098944120769542355043403110012383576318953620485502328205656910850145997019717321223555190166810897378154741042205037407005157858110560136467060463037654341883115793755537898800919792404188589126319810280969300909777878935190635428049473683336000242650355590813686939793506358976460602523763843067375725551624718578232507171983208589073883007549631529739354109415244078177456219920372153727952526264794108176325132256842906716873011308361214431025761050630867789975659182740870409360906404169284076261043871866609666834474241473728579108377871538579838777125966399473485870534630299079421778038827840414282677394410013049462790890652108316325171088996341823544456620102280341367724563232581849439884415932279311437824160711691678172483254951772498505584375876923900446784690727309261704870444591034546815671168719345925661981366567119266145982305667887227900234058490490895662036868061116762163024297922424418750449929469908774894621760008055654632616983251528508753247902916453541580926203489828217842574300927245460149687528561220853374744094593513801787090518411224756470793994419788446496266445955362863503000013379929482928722868903344925450265935564390144360621997791374065493928086089078261525372225858852093952837134625740415602018363220101846416489130053872537785203508986298509557349362793846788137540685246816367726226850507340934161971299058045073769772014188578902082518264995685704844934733900154331542623198675408197078132500818057065409898089528841646455666935512382333153185570389635922451590737855602542403555797948510692228860544054974057522656037615706070566864647896709805045848941955541830983204025172057863413771616341498754417694924786588363311413962888642869701942429687227089021115915663080286983430406761509811702448885917381179672723556969568112999207091660685229836217675083442667477163729842392581576470673354063035730928829337314593871763480351843308288567089000122762699815829221350501885483940238439367047040104356257160790841591742942654542393696172857646493188022934414232590968726237946389481465609501462037064089105821860152986152118217910915539823547871834457644761793927799019066311263538733338523637106465634312258676937647346580122302790634636625585297976488677216117602740546489650917676928129156652258604976603002199446307985684337699690745284291079894785637944783567323593993945009934340903666530755676844010472490988858997397355001741080109361203059638827677483468865041732701793749919916322031682925408014588207665428552657490492175037361572376992908515982606676328094125856440446733679362383791631095255708782514885782673376240077100465268997391140499967639895681367865000987312934860267493645173632696735451877348070441986914226924441529819618995332766781874770829902854066652070550649412148641582081955480933830938056792288613209478098211917245938984615424479731583000910823507123363720092109842596746073786920922543489390631546444571604921036390726587543980515348776525216617878391515942991948303798111568257081769500737851271065314263812384049730668169876807004549969878293896966824295947725626510358209381318658705077485192178955453453609442780082756122574173256597021643325873129812798601026293810045542342087292366582556273922981442237633829904247637820214449792571984211620721520522113224863345751404419986576124894074604729851337194624575865385051325798896055247395717413020828941054049927421269738961386932621141619133659788047960531631640875575128483428376906870284575811665641335032680663791273949962818113122507425767641552666079181295543124741569377168123681988603076124666830354233634367199611332136556776107169841721830886843328849945966027802461055935978590802200551936737252652485140915843878693539749832481022921065104346712354158653648963244641385134541563561045280746468018377013871531978767907994394991236551030575661831409977784014798268779194327909397031887777252327550527582347751231784714112877365865462319895486194469015282379039249621784624119989885690070771530059322005763534862030365188303465754213543645919856433522656577490096885216755186382166734864528333716834350588189559102966911322969645426389374208384548020744790750098654052180765600483336221452868180881237422298869534045033065447413453476624777989302100717285918989804304534948451286748660976669124798687777505964861202067896022574759719613018883571222404627054929798899961271687498343629488899620208685283042918766255883105694547658931795540440896617516537291282758127048324120456430613611958382023526411874588875127510130165316740414868116030854935945186549848816841481863902786760668850752615198031691799315388088700553855316885949244223609885373611273782831351407175106658044513166613209108561898943845551884427935604717233217002228568781956321977659841150457032882438977865203452501663971320671723259531736289088384288573591193314652800499604734395101856361458588674547079025563567265960203183215832030633485413009693308930061578898843544367008748239497507737488713327955372346669273743403452400193561085925846507696834060775736301997359326940617251219365477278072197074493634247462688102839706669195142307428640280825554858535063846542654972783785973783963133865033463764927181963000960477811164472410819262085594343428425215137437745898850275124130761833332409623209967802610353224669708772411104449769042361329616870300095908715155895202751312354936844053802509439892083948440133354236591340526971455879138508153560339518019892773143256960289203762821712611422077654692071171595283318328974963651522776762002532602812610853810007584498012369944021486592415418827195237525776922113753510187701061108084028229887906399465364732986112793535896881210764342489862053973438888635702452689201910689296243459103146169793991455990637470623295227818139927060435305166561413550259749048324199878772501204491857492860788964690152459275856203415733033794430245010923857690893544592784192175942418482120770763593294374452662223926248263611257210187141943328270387942179971260574916275827996154205637068924081911751422325096516708538211525732299544059442119543233577404263199888344794208960020954072985275719666669991878018661338004412784759979324745383023450968689936167249320749848051396454382794675748776682902243382170868166503592363997487501242907753083486388538190444151653580010425990459592207768662032210345767802632536771236263300743856128199490155464277196826327547897113960234773774852189932361544242340056481288086496292225224144218581879040253596957551046033289194854620986641320182624898091518516974684797111248694224200306648760665125369510461459606740890524235836217716027726237342352214939544696595088517903220705725386566660412871195156623495120808523850409850175107472261689290519051332404409498344947584731626114688912127493047403448526396324786393968412419827668793356630936174264467607998604473786843991834153731903276230378913183681779114648000028304148768395226895747564754174441852891812606325389896335254153194722560657215175467860207063117862269553287441507137105032737150021247714709417449229395409597412086883808933686305759285088362077702122998963182853306559248213440777856113906094165404618566827172141735070576390610693762749447142044474320373950041998774094117374443330194806547360350820360331746132875699747479439507749481933306429100738481357816298473315312427848657365989375585316466906052814790769424920274575192424024382666136951298633101509383524858412263675577595529642662597002780094486139049393449284844475949760715845591011722480216057699891740713367328439062715745060907454659317342083586571076487805794960554779068844117539052069073697152857600799132967392739279014210208067167866127191139870265199962718713990612717940349430306049054711665571093859833017845938531823908834367357767185428691683359089663139284030140329748506640047233024934596329962290101307226997951500426902682355993979360816784939902649194581190156839240574236655588790507653050350781463971753369562524642208865392974885435013770424827913410543661162737968396650874157045256797457490242784214919093141920043780429953643195177602413640860209901053859583364287321053029015790786303228973792217537675287074273288750484591390352681987228710191272877842443166462481556631119008487616118051509876596481134952338047004673092217734744831128097221438681777348528625846196866454702398485871225009171496980097798606675585319608707268100379845519116198618822911768218289546582270772751683478104687790659610001492549520972239124044450276940850431073792242392993693208790153941039133513110941897313264680522480790892011526871573805648623255402822412320585735701127383544250843840378719203398811484538888820884522233192662024897507082069562862594311701791989473842378559664635618029743261997075503467808558007843457260592240873373982189480173250996846167470682942442331318066158909485808427010227287342452680485442181165181133108748798724001029366155860180539101505733021374028100513347441453270171295148342144979130894911087122605884490743348642466380268770839184244801541430457112716851810572252781619247054368810684261311869250111274691104928120957878408579908071037415961843414211090842635393915966440029109507721863262849191837696878789050486536163903859946210572220830414239734050529299184794013725963215252210802064957452014873040926210778270516890229422297677857950264039880444479407453137707723154086685374578353779005174701709347592880842253071997780872812477624420287388670486432536110405788859048577241439834546980408826029642718301042036754024331469976363167292675381731258049815992696392654948104337276742843010644675489210699150021979059589458665131895954011445195182302494902525767780223701629002842238463983117952535138423711311080398953911092662099508902124360897302559254043798728171923669439347439154897937690678069417889398027231220052212187065871007883814596659613971712904318251420097502547296526738338563901623984031098011239035705979850937141133802973451038156446161877132377242604467333394786304610465064554163908971275224486316985501318948332203336623380452828346975922379994670258037551558036307404862600068147276683028945998651960544533764301693065523786603865913451142476536208422840370894149115806182759116476529763454269272682993790084829878213027241377251341501241735081520076434630337127174686955821290261296884952383234294639014820633343002515525908536404905696571324330683514283148495806405724173915586993300148686371926136876865668131901945130158676152808771826109883792950113791315915281212291748237846038261104498146860610679405867246284868517463843711409334411716984553472652260951995519688248642377919576678387458674243596195908280969925657824044901834670538017656310930679577834895923677831108039255623447818329844491086248556746216872957653220607105603301639566463085099990152854395004903047018708403391677745963569030861967506343930870465412499589706789460695017652563327416334692368384211893398905784341839465068019096349494506327383347654957329439418772332444806540871083983387286827922651015232400351916004581926368718370575536793889512407164184654067783337784303114931328241708319434341476848588696215547008270394632292271132908613436754039024795212802511185562582779714776984389272399317152860196648109431127390080305023002401529077712940536090424268339459337172304038885487906441410031326421088151156065220971082235747935068423752762364934646921322100188378698214270900258182043671624620233387010443905869760754790787544554423309998276266099138112155483963845163380079203182540190977005178891492690339334085237032454276933033622407331003700553509972580300286339089417965022558959398871023073121283179680042227883211492108993856023921093039676350315815767800820839676098007014866256316455590731254656435053880314197366251797412524105992163041660102272475972755721501586456728190866116277995505589219612608088182316948729821641719029210206911808082281033402332778693533559632474711740459012703080780401325064773060621507843351633664325355939712235701179815153321425989528731951053873877736387541991192456590382888247906428890807594996533883833098790571696608085361894105244345700866114875915967208273810042456694025035014195856373184302492295915411887319623263469419368042830884932609381137356875064507656871807976185576469763081646784608667088369182298984742262968396822091483036322542053686620257402532166024143520873922997717250229588458384136135837045874515913859284902450844095353459255042927185926249687094996119318632428901238160072880759399475376654361647775780522716135898248986064974782579107100877242995486772714052883828923760537556214834737909595739579334076832204207407765529083900998296180652741052269765416686104489597493615615610588209113147025063187448274940819098406767786361310970404066258064573808787488208003622320409954765970785775989886898918444307187580540778806829348053694333465346387883657238764590134411167212201106622327290900998832596943912002723200835353307646940109614856917425957685766885318319354036152459175704828184538251147458375044585845033882883552710165226474893229373625244761294450490200506150660391670800300296896825618249379591788645077592373998709737017154340367113040606746948154309737490132292747697696356178951412018384557867399536364114992172238579209831072540015942651701117974363458998712560222654930426709310895194222755487128510754819622984808490821462502957336619288839143866430782605456875804683329914446824757925195505745485006105496362443665091101580135803911969553632991342228387312469067974159088130975815277974820867311863040892044866324127813336449471853426290840652987236350850203413554340489922048656053810373389500393847958773750408271849275811555864988847969065522928832927021532750214378809399685849398329419659564408474103910366419476999615271089464050599134085964254359992390845774717703141530201006283139966161955867716668612180661032227337730413531166388986780696955240253065166357326336094047446208474926055037041159516844812744842995054379304606864194317333343433971064476571923616202850449239300047302361088769236302156039511880649618923486222910404334128303510241282386289314554223555074668727819096420232163584872227062474105707176536191791166017861899910115876649371674403654127262533967084100151660311733688222125947225300990483321781011782026921088093018616982714977344274031154754558718634240899202325626408423273472285116350708901917126786170094547035631044334345683165547628724719995661717916492123910316789683623019262127570052714146034389941368828611209905125264265435214068005457723043822063235206040712283094243058845646665178708554506191868140108698848342067897371089491253544990789147290515648504912739493428273379930579676629316281839453488776988404871592368602241704458361435077284639313494960744761954893029283341759951422507543472617922518842983816065415418209946642338096448992193376822814362477524793107154025004476436580935986488696809420810189363492974142813601775771127109197650291439332176294915219987840801792079114104552527911496829588902253179002636395345301957589987575704006392812797205816708445021154904846953972602582472784317677716960328593659565262859451590558880951337804099666661770902703266658987362362079516522202045251273192993566642877476372563331466896541827818513496438192840595213521440580254793632447412098268863391028106336391538430210168714013041111357283415901429960956001241559350096182563594228983428382009941949286330863758132090210446811377500709481939843563404987332984704698904286532706047881713244202796215296219838015642665204321273842284461688666462591879738504471202405465103358282863923054956472982857362557233570355580231939037233322143270275662748960436769049944925107407942803442169317438121744607614392863065907896461250834382494398100251776036931718827621306020433166422056389082529607269090689422917571740127945261704598084170223488015363826324226964115055251220267887847090016685655428976278003186822017603959373272485800595950303770229188112305357514881123637107398103584922389995702290801998671139967014036881588196633301950416019467065666541345014878629969406421492517210772122397378878785447072854220774044750389841585744687663584228502297490767434647055581423002770632791243521077808446419234302656592524183425972169718620066795470523038069356933490872847324820873823623969275071621124888720031016667048698152429285588000564003415935400559793993652266833379521909846400903821325695830901025672519413236887958068382754202096923695962409546184993883992182918890054466195389993984941520359283524308803779916712398240885247476749397232881850412733302673422800332160307901573129852206306838555526360749528737002239024474961518235567014931991256534476422070962212047866519655686310018772847830625611724087365683642884628471081972645084570978814609272178457174284707709153661567893790967873575231410030850234015588523757516402596438166571914994975133381120188801960875298515457522537517425208296587344218924679512170026058193106920201016923215773323130139369050117964064610143535734692947921410942862900820252172821626007773338252886517406132285002178106204371074942341886501068134666594943077310270848617138152374488130746480695163660978648576345246673056949256094180910854165264798570355956896710751248966138350123863344533261942082593575118865595581897533653296880026738189755968473660448409044766450056074892912064545367779058370035255279615020856296731130123426875555940121359383995289658399452384320053929582183766196950735988537722303750734672700166626756822173149474504060604073837908360891635949967016494023732614674747355949337005600809275470580955906668284135359375304978415675526976294519189251505380237785448282991792141266299522979062818880865223834100421577671851114447405345043495559768811296565673956528843050844640785630579752073678984434654998119395729383848008936062983559313425078988682438992356669989613196420572721471699837180039246228245834065846517082149928626671933161538901978958066128701694084123926216754304860768524401699078139571847495247013918791259370383710178306515088187278830090986295390923424839822992835317954643457751413273319549147037945934734563116888917675019190324442670394000875035357960445518048839092954093153900594577422982485751396704432601253934526532631370479951245404984752657910735442301605049759492945066519708195859957403122292848156356982543712088111499349109636467451502379858025770810666259027540802451820615517182014633104609197350728871478218689519366083191654540703761153428930615234775791657725754975686422511847447498221607922075610943676935342314372072341776591519898503645210673125628632679055490311030357799672677435491447402031523278474659802678582110502761188120809468918421756403585203016261963555816529855152089684377743695626789680859299151778504146242245191654389294309874237608892801105946266200383671231525686489822425160635913017079943792031896465647721240319440971937598042638247731883635777410613169636373012996212195415680727087190119115285630410850756946885481589107143605949129956232238087336456662635270555939886521622130388298463720535252697475187183875364300858153762639223530196941891324998910934808043390368001011023783941924711193592703264292109120189139497900194511817873762087491698848261407049670032858005271827115064513341648036121597354687416800139746692533624082436454804785284341392212375626939199978207260532784239475504181609195315312141850404886038132827311001626217383699409222537261674264103419805149376157917533975240433217293477499292693854670860867342761079464785371413180313109573475268668509168228224888977101797535079889213125938890739381424844591564901051628298304435510782726802307451811992741969243118483260442474739069050028148665366754758054215828882747386540836988728198992318892114076467069105036269124349945407012623905664459140243208211144723050829101618089715348607837536050926922324234554478043569461814473145829511082248056229950147907718042955150157623931005759130620152910383209916344554054257980821672175748924319457012896860480459392763249129316123824060117227853375781793354078812460051056448713523168887010537812466685690741872140319521131689588109954607838071835476108368820041976953154284882731346874716073362300025153477879157685259046017850462678072879368046799478468539667259036169394696837062877128897526739860947982632408704349118737855000735329845358546235893117418784265531208925495281798820521682034232849156035223870120658648857208763559613930136766922785066478983775927296260626309627040564876671398953878445397757445681865494792927938592157373870797758011869587959775967184386230261718274118835799949910120158562966984194053729600931810060902556552733352760444863692040036066441376128681648460815273569933728138416948822719381300094470450656334775770712919636920075028247042628830388312146436276713705642028427319203204027505395817915382634514045875428395113989017224140933376048972652069963036002619405027427664453778692951093706134887002427362944106478960294357016953728386672881972199814260426712368074968661054938618051814660280517016258696669797755790658210801393663284233161197808320621817389439718015880284519110385195185015750538747919298222272881965885602309397666908789024609564421698882226819551641592430101947839782983675254710987767178943868593565534826073676766857968721442634360443704670983279212774569488978032733924044357554047680289391703705366027270609083998112843018442361954648530292058386844287569090607852132485834438810691644640361007639086970870463082389649408056450341433548498137308556179197883372869984289261005543490856651095643992390616926831395376137536497955358911960179053433988403058319025484493727950019809774609477784020464373475063902130818031335970317594076710387544425875811221982789413112800935039043908056068905910016555286362931325414690769585598020818674154199403837171497129265804437052634865094568400314916794164417078850800796464794517480753912697683509187490930638185754010805040843382703010473211820919205389174829976666949996390637227466870442395922253282738838621503874093864789370194491697052082257054812138876426929092640640428984830739219740822534217028747655666829046825790924643816659566831967113140311567312224881087224675241160134752245791220022720662398262208166930417003742333161443731738319235704174020482236749426212981616807018823002799123784226068145170292395962273003182497194795855400565472996382493456205024060879598738779474396851211957606541876636838770952356905899763552580522751947871653467515070295769798529694820193029375716519910719120238641501714473596839664163833722181456544834903223670481861384230804825114297018910823778613353030371372580473312761823747952768014442432399181006877297457584788588854076899488785326699719736611385277662283252395749857855235375211941950578035122172181076480415259618539968546460080774647678680286948686106062198698500882995465210647340535062449185197186660784134588873964219348856993758055222930184277654091871524436735901731573860297741686716237699934347481827188686507053572761940889163806980357984723744359018242257856935480180176337112071774921904336728693022272331183953383531967595615414030042626411840248437942289741963483681237059656599655953915630193448629995530491864704068925193032004272736311793178129159418723434540381303766581983133475216980711731945862719781465989811021970350724165017653297633562664438874207300344801013457441491122854371975795380236967019457449328434533667315088237738126137577592963132314704396069183475911258658042213305944535171640445280952711305448099313656236270427602338253132323216620282975252541490147547554240585689779853070859584134643152693539903172927836663333529510030223708783282002305802259722078834521490956843512541467591190488424518207727173081221946496121123724473648582605765114535305964922145731225114657219700669584267692441280122736282472248535091937550830651351674124366812861790803740682381295814773299944420135597230601009244348955814140731146664575342617429809242596940010473587438456348653188713677018598030517393457598138455213856687082531473564765367515855136301883903343370656014279463253209070659009015901219747685221374216360986668914644999583944366983630195269729554207465527894205746121118563751618122956403615833216907727221101558054377347649049841717774330227507694683179730382017661020391794575765139417354021122801594108206183031185410450815453325420204905111526881074085617652092948361692400867274993345415787532624731454211195268030576802158883795074645774049793821541704198151333114067843789932026848393880149607618388861081378932796020103254497771783664228108174074425808127929815714401809879401977512190431494356550421604362508467342232870417598295056331185490609367446700022087358367973718211223985272640912509671660684464864756757956476105394634463773810961960992773749918733472940484674373439568453468509300795227532328177445464712737538582173566651605533939123083585343865249601029186852037516752696897247035125001784821272108253457575281041213745056751495873240095270043331096944548266536376869879023645559212424617474144913787448663966454894841864858521438351354022542075671022624178999554557486379191727240156088654580362134942376849161761927099451407381396041456172504929925636139200071437006851303788359403274068517090113119679437578349621661113283248469026693248943207259107011325387915429281083894109120756085817485521641799051267376148649123766826031975084099998667737882538725544163457363377174381119562888507721876736858292506449472958111283630742201577958331130900287650550299415987993755797340125940094963390147131806783935435004363255301908708484777020056479876662120630220288958529749387824903239608571945597549306827509621727007508467372268734978375837991864254855444124093589440556948233993267055754290242044418936405428689033913673838955732334583395654697044884552274561261638423394855823379330710237470379718901784842810020394403845066255972084590776735372326895452850786297896249018434707869252078236189353140614968389134907581696245242469130832768759692456279119773817949433755474723415933097604964190497751849155556055706480868835482439867071446813800487956201417632558833259081362832639345019864367899132842752293893121104759961527142396021768628300384196687556677835374248249284650015870359955941625804526665056183291180801280986875226791372238982772319908336688280495131541702659870500628231433572757791944172083353035864680930103945074689195388190160350645161829158416464594928851152688057457150733196482759327566182013903843082492985550053133550675278368405441091046414530830704616943168661659532573592763947283778297023683571653385533625762574261917925130060993084005643299789645925832688765958740937837525586680549469081675437253602486052835954860078005155862913164094409797923738969429265827930709187406400825843917564868969556412151656400957935584970995388114775818589575371150959175444569856002597174659777147662518978705513433687626443426010417699281664291855009578364648320138405172219503163877023407544001365538752282548954634468194521905731943431147160787682169966825599787705432626094849817371457078216409637535761335593604543525317645797383647306890322317435387845079846662055789196132526596092433005405572947189936869596860613056433992094068585539111891022949560685036269071685820859452185754667108201790744291356497161350715271740277872791306497482896673907966953112188785382606106478132951830686625833464928789229889948950216257268593286470437857705956487533492794828570165569080121744995771070891154957254677869201478514634475326450192832238645539861908685877235466085061738217310507039221877650873612622718882092770005553754464837171382900464195508017493535006636279168802466803155135271852741141131890958627628341209560868954397569918309022890559592912769993244676442976410281655968115782990070914756443989791651052176477003460522394249635590804114585093070970520393015776814727445218633417953779960337939326067970767275478167701514349180432957451618442084524026705244644629333375437042698968240757565924974876715122381502573137376969499010894379626598820419600600793319840233795390550902260397580872503900069915754719118763925318937989217912713294786815992692983394484955917760707067731149071677340773568872380360279144395568745329788859973714467856365875790600063078638732867487484706936587635071389621305261354750528487296121963656497897811437050492219645577671409890339231731424258503241526541738106979264471112396445967988948860162589955394408457793160542874007057774315104920589885346245076033944774360285940507589434820293138301084027334203799256170163396978663576394473357409679247229496886551877136484599705255912944706775652429512964212049559306202872080242308505069891775904812032507858111835418956591915950414854484591989872762199505567534887738154746599361709592512950450876893462449045884224859953832440481660285462482824772287652697311617143903884147155057952426274455081980230809710134994280564050751625363704547117393126229168345490563274093449810771628923238329803650059534538033741489911662660549404468142081071920707418390315923729209929559969679830800615682915453931857603466010534170022020441023733142753883406364304249936085494786517380606829655368479753785152977856946093389142176230317585319898719365589158547370022669929891289123956393616654887040807565728138563052162541531245300565739441002001671382725473730161603615878458356477406631017614135848102764796235540724665552651692127218473913069425962889300475016335763207748005010680228999205436180580994564237718705373663695621655641324365671695130991536634273825087877763205833016921740116481847370595795388535489163408588548336976117032327679962481038937191392131650061496201383975746769030898995471321611968705161534284103127253449512698139357933860670113960117822626414771355070779820410700757904972654493828967925647914368684017028235725284208026183797060468544516673679456487333766793953692193366904938967797883408888621300637399713221853640851088792928647161970390557875068020190613022646696277382947084500663075524243098972732692235916272103037510882743297859342008874730822615860597060878917522372938200807204945285847606674283993858265473917798827821986860314624822936809773995807845711307703076815820653834633136770760829674853674362832107945449843217352373592364093718758644021176709839872764395587094379148637533118061549322870359485299336946462313777455048016727474623607421079758702432783574350789867453329410694698171560980994141084528418522512996240342661420849553910943096680678754316626200255215486464327234997065332041682654716103358299834471840528511079238735654872500849045367389873228493185355856930423076908106517397035850729430726902422279238016122120364952751810776995538355180166397771436404483262109194000566730426157025940624978385270840704163770868009308429642901321223885022121683502291439866170822688943649928497734358840880186893271406500571488240531555419876632646513418105836388609277787025967406119390477219740674556358627706451811245055013046134343997469807177831349954932403270598348266123548159178175996943161296948685218113626800702427396189497659814152917258250054927738012933299334007499045552844535987844050166268830030497229823558217808532250071544922465281813667370140823966492890467032637982779570657422638796336511292256793202406157582311690824501516724839646176758191644038393960305822314000419129109998113805452535583266217638084635915068385975057293285119729837007181020960869916806561583807807052192137012058123114371559799246206684072445181468676605422786786810185812316994688147562478439190787097664104248942721067734890551661808737910710753313347774640384325805617181155824214504398519279187802985950186478916856524827512276527900896412946048931619503826804209173320757920858890452394655855814992554756012772538277006004054631934526489047259801336556389495512351663118741034868302384873010748713144209649567038654363705485578489582964647998838549775453710835176305575464865811052379412801105882527707210095965003095217180037476420325562052379181088601498057990941091654508566021079040131057708232841646653840008965229078186136466638801966364366831307813371521687797449839940155311302825119704611703673040279535157910207989818505589610788016203358753730158573180485526120685131421304986254502433966920162768348381405805097695506214247160805496008920773491290205828528865559218603532462483810242835369725162064501750620845947105665848855290000150592135030778496999882378423831205333782689805867977804126322528539056812662506506045314227190801871207104832994426726177155596216261968749351281679624772283091494282276543671121715778618764657004741893350395172824448525306076021933224408597675614793017198653637319357220293574635523707451641375041844831357628486689630690738439348620986794404178404982637165810965340611662210405568384244315879882535235285140360539687714059091641860952653776540171762533833998729224887612335533833629154339130341932546889001525761697354827849103552977192337341411253620778417310832759317566851320089301328608997220432310558628084151881570198354230076765450524353818761493370449783703378490228588139784613558960641750290037713806283559879283806383698389094905842696828438935368626917226535351857526599025947684096003116750260443130445062926451888980966996392690803067692202452428458651759132163459701281713810231871574422014504781331211772983211975835972857639008245483711940629191141690646043903753736471538483973286217678750406093209043484674454912944765243775064307592280263813209951934220437876974350825331061388104567213134659240842386001888459500451423993798779648110818633333461023257243395304636802947323976487527421243973431274352192823035429990132895157523377200453744958623917183638743310117254278558838452561866523072884234326438511073705382918841303221219172577052983535905128811134652973528615451668925179313211336946973632153194408856886578708724766184684547647451985864783874369570694632873311951027389140376579141783174874683801340175125889794634919141845805227713817297550664229754744750828255511303452810318383646640845473458259518723273875335664032070754099549291251659349523645546814633902269424755148952796500692413485451815302442910457865633128250008338063015047085966804217734076162141126443378759117190469538870906443248887881000487265723034708549286717979031646250673975801290130566422228434045941650525928147629981752183715803498766440967267457605128158085437477296361056944790292358988727400230812527317861342915173809539695807692069597031879744451224192537749165681323592507334678208195507800489005641036992924387691613951443731237115831953574073310809694647694446190537090591891993877484244712300465343772236643074632783052716505172449053411363778761018547793433146790982077572580201084269695659104795575515938972809533814079980391986337465856913361722891197579665113828692589193958705702098106094005009618526583940192413699011658601688735646783440957775055106480359141304075653102356391210091188847417868007468489407739485336640245958650594916128216573579906336759393974940345231654159699850635238627022450005361886150092266981726863960002586756403404790038256590247816321086333407488713294377888112171580745451156860262306252899009982384635982713613967534281487459300013721187594377498091633006880479141789307401918932920540025220900740908762460668871871055811963855554935709652489619309156485778036611844494832869219804123097329519932675247996835650683503345594833765198194355798972334147312196616718458092678861203916732155067961191178819831036068054326939487117485037279993420105046682510265379833341653119428165562258947055253440289991652043017019921923917701900705546441029901225966851988634038182551879011010809906766999963148399252523192783568747407027433233534009966129796798615147769932756763754578704429994671175480111222226784723791333082580132518871151827073646432526238729078058991757035281702729544492008034559832920134196381384998667115507462511831559241030717153783849301290729508759549595372677902644233187563614174883270960219428913579486620655328792163903330357376938751633566500741866095312371626763821571910958467557192424471070179663158850596049980897331455073569588090877900643798585732483424706147586675546095045871056509817088860842081273943214497227013821364412784872489249688624472270018367895758271670060180135070225522169254958739171110012097927004959010894471509789934203124646924175994675165080300793735238399798451053504663281101410368924640980309204714202766798092687784044810749573566759894481003846433279049977255825524065315570603409913777810485878942262485024347813647127984324993003103043838646124987690960732355988089115327522889284214351378595589276860112078194696297741193913208887563197857401996725059040905747163175987655625367409756375207807304507422444624184202924569647156333979778538868313623301822286252518972469657040846437609615514905761286926480638590920550386206069255719221717516273555788684162460680263799180963112045569962604950856620829980738137236615093899394337984643522584255056506572060878447616905063756265799177681195497671471013164154600475960606547518795897032829585769935096480188217083533100682705560774987387030352785530713344408880337675791431417258045312828869119170049855830393726297513565752903451486748858364930321498571430057542446036588159580029804204367258203839172260803324107156082956577390594994641762526158394762010833869067719181546422862816566107371008042773538824533842813262242505606352317688474507905105689309217782616645901837338145719395961353035349078590165341616142356080781952876650033991218015527065910594961174562551948915973122137201398894282714969528248256925690228358636502226167807485756514422819817668416678562558890397658816053662937168049780144243836218631962131589227411833370399159948959701405833029042576728211833162548834124684430832262875822990382155336943328866887738556888604393580738076096597385115981973978595683929703402117652843280251682538080286042627239165363935051003776694722267035613534838883819053176239246838826734451988050193693737959107073330409775152527524611222867886402775525418078357863126308679492028700465052918215660075079098344891457691304239022099659943002989881327902138648875698024083753018772757621885160569836320608484142958708430464534875721159611069119073624591333064910786017761423382978162442343728162468303474442118353747029939266554515194241583683646438259190880735168174817685359173880173759685608333691244248051490901688067493262215698516601293168354776015000139519425728714760722540280487274645719883173451968186937142325360445247651089848399110796562211377117525929085963196897675023967426075167193244203324665968864553250564827436536852184665097026658003163628741959534689235680900825202626957461062399067217301418979115107564522779154271555278910454040512786408007875126621426901273086765661338645467792650637201107346810037607194084925571357550189962966785216838127991648347846796224599920311990078851470700364038852619806740855389381446021554086315501405129171730205683427453128754446892260836781597389039077895100516259782035181338892754973853165189584906764382884110860353901455370601240976342359933755934759292750711439605782281549672428072042776527001079618136089998427966479597408254147655861459468193495563482471282412482513307239937907762554510247644703283680380490053424503332752303117471452877146521179674608578606975527053354587622379836174166091192783716630362685669955193767118840437400631494450538285291915795412839157259524471331698215060929037917739643036029862234547426771984301853943774230477768720942091605996823693558736945309714119854366001709660328853507682749705092313787144530652793213060041975949916098120672561656608904628546311325251254210559607576137302432237715268179354373348640072481164799494301973433696414774421769677574840774866006663758775737139924510715261035028939481099933217217826315907792435812868314450724363298273193532840831909675158034480662916819990410389760798802675445141273108621639177194159385346073508077205092196721278710054387010283695464613550944071811323582008002426800314977332915941899847266616708135998759945711216679366225090620508524875698362791170017893808468204511359240282660162060401626656114065474157097588181506928150284995746231764728845141917243888029759709970049692134981735765426548158882361313604356960213607316734056186868499692822137929764525402655600540627131919001040619805471201586009825993244870496193069484274061400300256406589271721705370487003575073438458080411292220487933783370984358882188621503479404320230861335540838548303003436600627057836585814469224520058713309124894485894906675036013622137915675479839418144359411175625636197761945515007495309191253657103247252258535481713286866049695908988192458412222484735698324839433425734945413348559252979952803878008814367034541753990227461548814180576458965106566509023678578022276580373068260436718143779360348110351418953706876312359092816526610713283006422071990951733235707825890545248868421731290206537455178700729479590296226003375824167908233813925623130052288145563480686960515620978310163173811102570840371938919156384871865133723095214714588123004397770970476644091409701367870492323028558010571845132317649511342601784778799348941092401891974414013298520085929327031822213115911317088547584809682796938609287696936273562426513416664965031296788701527952725731626083575493719551841820090625341646621705884420692959528070116737462554698899872843317505549716986616519050430386673663594862404285723091578273175502809164574423391875116613495506621962949172623192314775033425470292152465160807522916665171808106273927094877769554841122804441606860444496321751029902125684016578654297680796960717587380476098496551284429614197549570996623709138128939289743227778482984813980482112954681171906005045869053573651536583361746074131928647634521242014921036978269303361818213343242560093645073270850416196929703322963261642866009370796578903567751415771348523447082708268783696100664475012531449695583521476113157131175046807219305422899868229143210381018419948797483528924598914026009994627511945251944374790406903356964995540537685633263336743204191552047034773456126495881353368945695993027463461136642568782529446243669976119500726059335525336294425100585384158716793151363744347339068508247611317888159013121771732997182978560177547676967182099704583726569634738850251738255566840676921852280843868943906013003713509196225824697991140844468407671062826808277447810794684940840932777198916600226008349469042414065544514916504452941743396639410787730014697999612149109385379911859679482183354353595661434560330395958061022375322025625673758827271636485451736433720985613872766555338263062331717038103257155766028760819302602602062014304416478978155421386697478983256111608204835743586687347823656484302823418477566259808295869743950486936337737411245307284722931377245375609917473802351085925258499436993936865727956335890495063686050033533120244468551157171919668065589521903787831382129572830509370253036410024845897783120424447008974964414224209504060188499828497832495657225090203553333597613369747351120059814582167831136464333594388944883522351883500127360272880721536563532086041395775266841247240919785691126598263530024031770300561149132429314976015272829439871395975204277833470583393682336682208978556543730236266355578268293734329933281251189557668237939866983718526603918287555198452325023291891996107060923472696069951744949912540772895653600769154186212559506040777433003654604294649625656982022793184690635843562809029362897121533040215200722828932482864559226142924501967331877642283022076823107973972866315514369816545942000371247234762630484121200997372627631336761847115964782722483606204306724867877861081194403671203774150093678541979558124152567132957642904460468188947105544215793972205229286035054982496002573228847434759310844088813402990484312790509251221413430577664260580063169398401036865489400420824517117844972649131725833538250122357754618090751662273027995946732770181762746489590064029491964260927549848830112989530188195916446030671622675849635628703459968410262932655727539563073363647183206293710869626701344106756581293251129836964654751719142288781045925241268269219014483879065923690108687530463657957833987392429753465661624458488237407444883931474197627909568651310552161365950827423752407207215333104295397592604428364742126564563111121999603734851859874384271682602375455368042121970127235386228671692142713153576516874240505188574735123116074079522445480568966979090036854559569005423512010343209316375140534199539645653771802837919840398513439933226167200813217694348617434916542411825748412083490124467788303331175767983686724841121757923627691652043547226297808416484526953399365061473327279665011045750325663587678934206350406599484278846470594080782912237442780961067035395582235284136477951718300744350280249033764606634737498310469469610152240466839337411859891075168661051712140220497370093411423549944147264279705434892005876800596402967486384649323478676246957315764057167951818674449476065976704711222947518645996229982108643888786406409241307147355596926429239866671945944167057248144860644710712039775790413307775735213635389391367418389639866678158436207373527994189343939458570830503504155789218616708198890169519364565101437832592408104907681624703369545162102910725625152051568018409859506299658357909616825087709571282020558606438840966531640139189775526007315528954114880928052078586346725853680582636175813824548203514689752028482685817595378157420415680136693788267371631438916950503292841177342459163565749373891718054216489668827426047349911447818892655495572929546876549186738937694239983973522514713392835096355221886388987016427495938467837843491316456653764999478522920141088932740553577726572262500332699320476697793285190064490702377257449240011811263183347814635756975257211092693235170640713025526787390430658377719962176279113843827203037347962505126819142939804753781372420449045931406717826586543380228425247374265050714916142368667772645424163718126804179676387285994255305183777112905327532144081246080299894815628206678193370360933649059931088602770033139792450667892800471888885591751334321351661617471401294183877405138829776517321219396415972432055718958525395130474097974669931101123417356910993715341123266647515833967524607375262724687807016400073015347563889968510834588280833466959526132065960085484311178441315296790752051930937609352610004412752159507706523074928113242026473629961700921999677339804154797836223564710769197514339164947154590976358022318728959995191914509928503775804745015134418344527777388337945435296117171652865093216596308314464040878764568481306901816754931584312701751535123656959200852910986633133474159961462890360650829180292653192388885343007413155167161587409983478740845379012011588999763960083644732170479816101089310235762333705585583440293360522524332021423604640922231063607008673403888144937779018252041033419569156862764517284622668314182365744571801322895418580205506795506262056154795923772418165171661912173707831708248587040373992722519627218699313981494851379133307277887166125101938737145830837300861278508110661566731621913195526182513485019376050183578562467110202575731118147412632572528625189456790315043223346175900374405129467037455936441391509510547885448085235376994934339835735182497062084188544799542607431103911840701238979615892308479915594647710944126927503869178091126138090204462402624716962012583874734123639068725615077351829853268781783783159319168842997684608627235890704634130875969030366159424265642330133156906196447669373655098453019123998719352544484219856528548325055503202712858234546536237719094599843649634282392678924123701117026946216781356213579391367665769638660697329843980768061273000461707739545736051568083345028195094673794824100430499534320189916612565198313837982404904854518020851250639146543584368145735562073164135711327389158070289366239968087548815915583294768673056497524730980694278647144885458101707490798788847676463187410602515635319091965412529363147707737445382606149224711992516247513950857557091226163647765398565845057907179358929316045347665483403849970888926154113919292654496003379645975176947251740350034473904320377422936199823254881092816300129790272645338674330527225443953986178715903427398760445345483154172893685741987970658913106111481478007443122219867988110843651750311534622170877549411039433349850501364056524910594675908933421387806108221198318033023739001701583566637028560964651257459411652444892902924231005471207586459078434695065002642901644224822472656195597929887695277980149507255929795533703516614756613489284825124553725920484804312144668834005544740173243868628953221282649557878306484851533938386655940790965098411774409481859848542282376040356621917869314178355842075856118082426903457739778636810506287886923971915293372036291096924590884832368653569270866900107896692398820281544050069549735174237313506982086448683029908394707380622422053389784842161293827658127548227611866911441347474332082179547910168244291416889123080292044270178274084134247657627800471507416700437521628768329058033708596657409988972335658987533928124756408853377578469175450902342860232532485686490431852857415860092068621387687194586029438093470362979429680537299212218032195470877165943926966140600613537060957821508672107001237917472255452272458526455257946492414847342533459230570174795775819801042481402366762849193497352175535769925123023236100591722169057495118330864657073621728748863404588080192650678888548272844620779695076346894134870837701042491770628309473531113144772005301995161008099844314271762711822164090859899437260368978590855879348121907028525387979462467809399148189874433922499549478209440950339611684849331398534594080901065869172195573325668892086485739144796059282264832802715060711003440827584364216927359352988649533530919391075592751690954341181768622033358263518949207460064957176698744221802388503825920519471246518443420673246690410817383125841766831335948651196085079986425744563104765507495600240393814294944733693668584640783050246597784877610185158145716768443082777528218138260147590525035810739160520281236919668385362990673498355412808408744077340943720532045404825242778144874401704922747995272375516494398723086191507045745968211375546619486551909691098549994804163842894631242171117231321916814511047009855014701352286710583270580516704198096285141808198390297499828927061103261723068910424578395390507265284493782481130124651380142261665488655235572570206531737237563913990857282786006630843710383824910307982048103102031655630208988106267307734912061136156688147619368746085834328934131558551167944474556903991836410258965987088153353859892050632595302743817530259085067795308366967351005497016516636220190234629061503253248217563484399128326003130030666436670811305121214533913424038197268933384842867746959551605377247504301427682414716656600441942889872335994771267326519910877092974436708156403633551112335079805972227747836157164534042865933519691594321390745803844125728620771285271779527884455139751344755990718295301596655477410327935330026460583360194247984339344793214047296449643464406015704676778479673555442913396975360885679245521164740222475568679242999804437328718791512088892162831452002184493362151807761581615269159341715108511658667166066774945818990204922645423145496058401746621095994911386537094006810611118087515047237686173056529562165930884369089255526446694684308702890655231810731665729198206872561272830730554077676812822804312334210817350286193161602418789930582158966094917605786189882200446969528406504744369393039951043244252821165727674167830084564601180252827837467462521858297951333837858359429508858772794896598710648618840685167550045905466426114829183639762274273197525076652038652963968124796333718237064408628208225806283766863927470155783970659612927555796835997827790534623340270336926890867728661890728528278777338739049097072363140649590521492846156314749545764408786105844290625322278429132959867386432128522975219642156304463131937952254608105644687161671864774713034303841995224993561810422883855012228128097681776786565545437071759836377751805242512171656484411448867614162204968901837377415672413504105181582049652945215422112253599147923047276741655830026531144931806283611520213590484540151082717343978252338941648009516057153901060778712314619422457085263768439790103676330227881119970045542975850764395674301577235788608005754399161160017427564291817563073581090320795584456864914813366202055483907215289172899714167565925635150448708563283820589506554036839617422979343670727725169542065121959367235993419132202965780662215204662985432588948036120576820822371957495931517802018947652038200432987130578612366152555951792692348959292105500248606617311261480353206629764261811750734705513835598176783745942375612499194815758383387173758696587072986954016181644339353732847970838848642958995622375190866581279569665792528215404428903680183086501435668737577369089692732539648476046320066678670672065678607897947107299834985637382797456697548453726504060788712689089143799305799407000053374867705787745258681867624039582562727848320599255448217380357713545442861907352560696302157004150478593715676176488322704089292527779254095117887258102154827658619898688580493472671548201098868346300691377171672959198315875673042616381223861791231333401150210891047411955883092175229455041293693017557930188073714319738271602640726418787148995686575747740679519810610739734588023686133638930670861769626308285599003843495758518898112731393479422351556985425933098527179879793778139292741172602904975202344313661712228506439839938306635956818999727927857308056360406646060443539972244196005786654475201234759248116754403664642981460508508778871365227372548767126476887932975928172100924116386578282591361189355472890141474712292045757738545993620891751208317980912249228267349729729845373487094454476752995600035251977418192438571682144269954594618143142275491461595851225982225620115650839899847356458641215948343505751513608153836023388683395424228517492640776988360145473345227021531154063533105614965252332909814235948250358735149697495948083374379784779987350602805310289745184223106299005112554564707426694528526588673420570515142692879080718317015904679207878652134713951197701514115506626260834602750619033748108993855140944778415473473579562132887277091256088874575646964939348017918811045140975974575587402620594024821960983800018864409246547736991088020518146313724902508720548517860868241532180791786824602713665050433358076252581074753476831149427683051750644708240489223356669391295258078381086259927140878575407789073722547810250088330830509506295900780919739250445984673826585937162562636722416478407643898393340525714379567019352055977255201019138073419987434718705309617730116642488523759779699347310138005104381700648030731605991882255454813672479241346767291483958892017755939141216750979171185516662073579809839003734073237333782953073247122300185715956535953372503215409882935084424620667552681005167745410739510601000676457615705818534026838195293826554098393744895614014926951460160118480647630225176998219897406978637612086416569634094554844672573269122118198552726672060817053589442379201251533523977995454135978882651842152823188735080233540079017129678061074108295969307616813184600868315215277086372221037370724659401160448640042920538206844317278308731384534576370275303471397828746319042212503932973441447815648886292812326499255607235247888283941407400693289102004408805667033742352560722621721540776083199002576596302675262670920092872320177046938368059994713599776046179791543180375617461026311990293737180225132220717057182399187883190739811171421290480542361556012940989733588168003634544416050189613547960479757909500229819559734316694055137615433962716457447971526925418996969339867628896426983491619013888450912461613974465852612442528847425755211480156814854975470724110716504932152480942171359040497297581110188629486793449605405022844322934998157630585199986519890921283196611489007272564519790742620353605988559672679542318101742998302247460264544273312353491491189511830589715757897539931730996627283599425503399333032228807679924227040862244923224948004199934894724075938490261892250817550089946384934200913800194089999454401537040745589323797802142642305765190262515695288188931218008769518071481878557362174094462806913930735006160151290414057919817566582638156987663717538076956417059820065360939376101885500054994722243877421937341441771419169644062891154965295549710699514304864904030327759136221507775063087330769182396427514028745832367044451757463147738230738281568539081483287183537872984474880527833456044895579835660156186055394326555064169175048625050150773057023171149542173211793968497232907506920183590774621073714015362224077438857808754435705659142215170789732980448152117117484227537520082542118319876691445627541357523878857920919336551350237096187679106364700734545736581856841179353835276110783141273702788232000601262719495973290611669167934116176373190922964547288442098766818425128230335608252972035063911283111752765016747385298080108256046522113250787784510048907371871513417906988682833711033902074075766775325271860460692104657075554919782842374943345386428026628809201389623433667484326477404577824499198585356742535774221179323643812879142680315608364033937164076424189000802360549773310130575731344304617413693441282354052271095145335362993590163602289805195038520639861533157676321785520078284313400248721487690810102478663609902379266170748820768513290911780204226582627137092017022743990928157617858931172888969317333154211086765379487344665084000390432381764063375914881603257673703388893527976326971536066109468296331350172262703448714334088353590036574423431155581958772873481231535849203239316710296162384747103131014018882220011304783676024137072951811975767057731306268540901666695772403213365123742914019466318593399504033878743297749262819165263283124432262197987376872327232152370075644384770770570844902792627051177189324111840107731694660106958069370453545866138817192953484528534001500047182428835769717655541292630701922787377088378273377346229790707680053476988689750774509795609281327790851615594774946041527009411553615255608430443879842351397321836436238554309456490469112407267062973728181695293633869912574954305900350644255725103181551521317488190399541673651006551379149828820934846109629502514823422611702220898724209224538897710097799900393912719517839253651504834985045466458908692229895345450886225631055245411370691722100038173314647504879055874319731256634387790321740166439153580070007615929836494021622645982324309323275605668244560504357570026886633036841088716863418604439010765984078492167149158340902898712726820490727142380098233105290467189787351164889692595542406668038074943973959606360273883451599063368055318590061591499304973942767339927548916359132348175700235172423326520600520945540071062751060407477032078566102047119041703496441206167741940460306592399212189135370574759565018366775026463630452032672500461317793983595750589208555016075753244536743977390931915921835865965755464118839017767032740033439438584304481927839954773507940347394514500432583462589450385056657646089136036683696412122022544847698206944189867607714395440812379850893323339811999821226652922395938504164334534380182655028458053739148194255944382692251672165532271133223656805168059958791175813727020548780829031558306405394810736170282939580402821564042961685335719110797478690886679575374054062605473162960774312942491676085205612698995332949535637263438178193538536336491193657698613195813023494027787647095241557889262767050484924993495987464376980616511353164539309498089577064472000312448882490018549947502732626337433092981139615978462704063939914966811786444021603256034227781310934146595657858376906271906292852558100118951095706356540120117173732935322855309786622565469564785258661368596049163153171533451471191147165176743798168950368855510207115333522862303507963975506978849609187472320696500304732307843145504058555004703246762934396793591112678963211666121473134125840111070223123306755614366324896721431686140897503403092582382414297472741270733158706142686843146189565731109850629483631512285588808768722203208607198824115787836917331929060567508692898638479761153117052751598606313177295399354242702840267288367166961251673584698702580921877896795622780668292758444849316952488144541396467253233395622640531820736218677466975959811334049667391035209018840837579353482879316192565847537656513788472675256324024165512030805904306035975428368906103777488778123846294397256502042992334629088284834329333919144153239853232490322495980983378590248671309655569987592417933990945515195622590572796898386250462595376241358766447464962750589992627099446512711316867656645185506983641546172202017066593300279398647884050537382127013817622653791309697989966127371295628533542919884964197737718660427766690958766003639316205473766904616877723586504008137076616708497579030707284680463550437997166245388484191679042230581209944774048044102986261169694128785132180664140169106764462382699738949039400557221153848872891697167993164597948647243653818869779916458567668737060552501669457556428268474160837165868444991071743405855923679435860614806694369020929291074559568422655780638728338398143479055920893218370619823185100940029112601261059261812450718549859145849200126478919833494990186382998171717672019874083440747823626418253518930329065014050756565744945752486137020818530223117135729733815799423793276272549819150597603059961254280906304947416904232788000194462879001404351886804934495714747370860709815010741914373078667292526003418804436896609634085231037836798200539350546808213504199792741882527183576432839624197333588751808627672606692139371523150482265394924542674137194508297214190150249410136257491179420528735950924811470347670050351380481622109161799256283081314941565794722004745832944595734458438474870893408773013606101071196327358165575408402851618700272570171677006600460193694371850088065845516816894713026560882829221206318335271928845802858456508661614913024371241661740640194016936183578068421138127636963783593409565310007189499694158530383185484678553154799828063752957011517358946570835338096758402226545168480233038028982693343327826703970875535687765000514931265797944716687874915729392676469827312274678764360286908724158223073915321600824064207379341923691213561527483334434805605631127488823574130259142097844234776074322245944198011952134051176806089998681742654624893819259410922311002130347337102497424426660953944261038685784084538766131762511885615458059298684594156152225642859602997156498243833541449252342839613653990061565198023189714091031859428797666781500149068781258924660250077906073031269137057506796414825315473794144772003163341119187428637704311496614507878127066966782549866639289077327385244269069673253722488709701457655976958055451602122524751317648773616834006252695968746073421128147154825149789388661248988934993741640738529328796731910459453520302592779719222620990278222443299047055226776842526855739649947196813094784985226799166039140686194913434237826700674305777297727311500388940391805333878011488470625297130924717839000054313207823504990067461808645110892901298852106508310157074914428530625499585390490215222923927568666413426087126700363652668374757962262953193493930201615640282537815906266335773452125356812680786584016292262256918690964798931150235519603809334337508462163946894539764211809483347737090007875441292915602628350544563455211774851891117267210011983136423132508001571125923880068728592585090013551697643220221641730480388597380522097518586485171535938953746224620285119903760821135675486331191053770854652377826670407159874444146509848797207337329541368932363243183551581088445400799074743384608278603042668207850585193173154063082128719552626710056461879507409010766637246736720443320993460415251432084860385602253653303995363325855710457299688482226953307352799212260363970928323925158847625832006305816064440079896677359653687091071044117589650673721761753938805503701287366047357031572129447409080854853356330702102237671458559242844727539839817159148400538708881842364602412978041443414544602230845489269789833597332757276200704815475315099619430224210233021847943885315823448056442792443623896668495433902698830936409790634126119528153066014795463750248419988927320139401558623678738836566005917149564357075565218755207598719498070079246071264487744015543685587624183149849390407189073439666676212989384312746181067630012205701154472720756657123276073710695484159406229164748092474115181293108959249130638982439244708131637563072221173151722758007236509274273649429931661227122962613491477271980706846682452535335848224509700381107771451895899342801179037086714665802802934991935951698848525646408339398234619682033639709917703569127720513501254953067360822944421231265556034345568208363668176358854479660319214339214068068073747448056593214456491899138450421713596332215576916041915753113761609198196879136532101418673262582291156954097043444880603521329654231980810603747438570522818795228161019506887435689537707607645270770675900123413284802073424883578178706910915010321327022012850980621304918848701721140196712474100461653569007782222485523717179668497447263936027846080445700059505127576272674704667035999770491698733615842835121706242785694101287999237314557955375088408752704033762994915710301789200438169460172901908116359001465065429538866773210319122200140769397986498548464278771152614448661799257515932523589777829132816516860021122056232348576024871550666274675301172102009653726845462519015279134995603640385180118771879129215506721396191324003833870197285220483153999308828598514750936893843345684859121063608066434004657105499444712997796454522140013087505152559942277656500226855490077970670561257224808459047790865664903695957131098510547379605868965386457749311714651573591769852303322588721099183929979940058904617596498395994652991097336136612621644904319825588286859973539610741984418221212010175975986276920849532332068271507974506589003588406121680094920104640615574801284261014880907816786824826275661183183390291266407232816581908945090144338629822099085383412409173159569586144749781423100406555563371111301247620083280330033048722971860054391603487496572761203713334734187708659330497753677108825857558907383728373490676118671868634631347091260910280284462093737193286121199281857019597314744225337903993374553921473116985773565456421316333221875596326850290458663261192426403448733383923700562032619173122096899885952673222026700293385306858710791995663217544249106556707702910231353097360403806369439923725808514209765511207646260615345198077987863853524514388208807784881085867884466468677580090066231939616342775083225359789493015304760932481379029764559094486326794124250776774601388606458531913984454586845134672641036454932741305906917012140962175909167941504988828145596247143478540098882308581797922254069348686020137432287685021556959899807568231100930682056349000524046021869704106921996349110061578753320783735816897739312255511915610026729245045209602776449786736128668464027211670258363541024342515238856615489597586721410979113684124064603954905071818806556364507907483656421893713005282053261431198952689579664886436996123198051782949003784127908395841483052699045718627974898767369706202402262634736375628925031716068866349239457144365187644810168799502230789441626219387805511116379840749659198595484507761132434704886621290365831349081269515603958060739946089327456332301399075375163524741293156577081167619916065684899548591486403181891562268052290871951116355887556799735168831924069133002587877466925357776877090469084811820394903091046158554162975764571032009672156702210118666503285784946861409999300831697953746154570964354438680005264314494185232404539748330073783011162266590161256868557169523127207943208788053443688342176261453198800875902534747815338669466417593746143390796801729567658664157553100869637919403799136717284861231293271802268513084826930287007350538448969446041688117378119693028060090947103367712834821384166716359489019640226267970700045901963753733809226643706762726563114560765609774380576409736698417500803417710646701252634151175676303335634281987649288978865017762381334553861689402155581633754509879937114254042018306807744592754015028241411909686312386265917426091032999348935089979558956025157854738494725064879913137130096271124134452089180444390404608648310457141015448666561248824551102773478233755311088930265700503774000459076740142546926474253557204547358253706584816554285321016226296834214979010068226384204058088985757338917418834877108384469645325801674639120895024459117528736949636472798612580830241085748004609655285912158711691056351122816639181079736839869886745162223280507705651309436363618594328281730130756718513551930436062311708304314780319361858650146305821029259575347715266118173919718775847479734906163397763247917082931906342539012465503874642791027255011439494201183318529499835597310323437618346224880355487481514665278380813716747968844274316821475336299879160806770688588784035821377915470956201250044123780794311797886410157289429518162402930825213155486048316715919013139291880814981550961487253621230488516496683516497311134276817563753412965476859252112362081564707473834130681660457108893744248276118487713934543933637208371758135217456422602198218953959773505471386282780104540269086241841065147462316737282686650769672897800062112668834043461922618768792506228278595918487740744295818475911603631251965006143081061516309441675521173182125531561353148064527715202177843235825827458170827000735491489127567707906154504116672930394339322022163213628706006165156908245639202442610720059786140353925774850833971375056656048619219415534983757592414674929363547289477654087252498831959754214966469339175816574742955316252754593361495528422190874906657609792166455450166962721632924662462392735608404150423767499952030291013044105520459409349412078137074276711521040664077668111251787841742828064432381431046107615088978084707816688725710254596898568263966780734391816621865731048858306989679324649342761963155092670235109884164208199450623090401918450498666599461902707332484787134348833108955754697153207224681276734941411154326889276554203793146452778616095380338249428884831090874371920729737170919334725900495151868889602456998227210323229901360378863736793440707480763517313319985038425705808965917699245097396079371538839102122434005296556169155130817442885207444461578958843110251254181325867884439596173429414648466031009436853003090017814342703124576961712305909623279316537652495045389826963894445455016472227134016713400500864351057507306197083358180596113995072481613677768439434843496215330781066730006913746155238368024525650741166899476202249302352872336589654803195651372308788807010530220317991529840500881367936951336798908992656981416907867467763897063113271061478563365662348162264472676997938083835223900338168887751763754340046397298208863498660062905215805499517907573057125361089066012797896880041629228599925365271878261775729714086758627085578380199515049678157602661033326362099410510441194500281683426413181812075211445589660523398033103798430013768912887275630847782740974561101331641133760807124556123862790574457515823136642806028870103435188730022574484342654490183856283764875456234900830980937762158656521696923917045226806480051490573121623052500642266864893733824364939717233613703051451720535616934260331938922701132347379202389865086652910857701109390078952022954674833906557634750785811739841253137782459918223402329757010177030706762600801122688994138662860044638131111737792517783616344151189835225477830940353266412638919484202077617301524783495693853776225650473598962796135614740834520066707910752001441315874028117301771634941671668090549019784367873895350256102188321424830094893188229921375199669340090544353804413304705683118259765441025389784919359511294409922301550225449435872974305017906344827255874673334393198387841426643378991142340947605666963208426144592297901601790072355802791301883061035215639858513916134643806658836737297343118138596506388768736228823499548889112070276126379193165158450220154336598645404268231566215900722937295041260359955395296493793617191737139917236484028150510128369029763518530804907663340797739502553593544068155746640343554692389207166109890432289511119430994401705769120691185532131668576989847240097705461119142646283508425165844279375726010761766986937907005524661678471410162857985536959561888209543864609408298207722612903059213770332348297683670805782608464950865137702226954123670109125492405733812717865746027023109068259222022234474645485985703382475434698587146207600323849534339031240425138251408714235893063685043072430165229713457683326696857519873177411545048947178404174563130572643853666859431682465830622271974335276900130335184932416157007396821504382470698015646085223902305547452490030538713815206309768305823222612044263381185959961701576827865885087495535839121648864159680130306512187541882838942603822957520191631969425582957646374818853454598995486329015816467933075935436057264871244031978860526630682121408094017899890517814622879975898688683604699553955485534080522192286335937741654963577353920200365896809153347793397172929751849196713011099034092776743322473111557859836298504616103482726384576377561940361091698148253220565576494597425517160146324236476222483156767650086949330945112352636414094585922076091367479607591543842021877368108216926615699125295152009777146563823336345642673906271129824096051801570679637628504516417989138189788848512334911184336074354210111280485431572495704640804373861395487377776519198289713032105909474020661939531452551237844324369484549113512050499172055378826142770707097856684723668775816221078991241277840263348161196810716068132183980427505848867420581494321608204285751944304860578374226628677236984953559100346773054043527333462045683438116852200882714234318679759765351156130167847359059265374086506612431433572820338493863129126492990481652488836623086345646899777438172948965596549306722887488618416127196037328672796347698980583464566606579752811167117779201827624364392082924146390691365438942852418488511042663465602591082702946692437431713897932020926486992808237306030976984987445067391240829228820666284892080314992008001589915788632629494878168445655372654298397428857448442213091406269327294758091472149500225702701103513457453434904817032144217710875195568482641432834889966110340292602658938749591015741873931816420724338768103478325380209998234121403617175451403553848256986583417930882232446976774102717259633224388051158734859828069575783383878207594597802847507937223180919251462231298419176284271957770774691785052802333423242262195457747422390272110365949488445180954155068848339903887180620222067895700323417245558373442529550004381417135360845614075761262837521493961927022295043773628258529474328787326319344796160444225406888001925002453986767615506351738597932710872557569590971574991169790913191711841994388449079566188629814161118107456303800893377526512135368317065929048120904816320126557633439343954705784606089195148199391734540527360433154708221086259707782136773182163382144822833967809529734875759010472261448153884112813305374397422182049548795961770479353705829326367149417835945909785041604331196615653508489443147121109741728386407242983342262818242184097801628696577952480808396372581136930730549799200610844769903352269357478816118298241422956670542597368336110293603928621270906338129690665056299449310920908167632904971518285564672882336267382419089448513504215633771315470968645284908516584069962717005665404531164794155966465408884383542826901991097137405542984956411671448776065920412478432239324874630042131718935311280345047130317965761475567205307857205909165875720248588932142831971801267438681849528517131475330520130297597134592586099504486091885831948781233159473720448922463683510345561350099566154294920996359124265766759618685073363830977685541214418398942248518228173104482609746199805235627670856779469263190456174681971940063999233596520154496597738131214369484634607622247806637952336826864979802852025962877899400056944500805653539656387448987801403426214496234281638308724508758417114953302293642548478692819979796573172531918697184593432078310861878809394596964019140055611936711531439804593857632666958139032786322575324644039401125332333003004573743928547400009752537284168313872856932270392170145880861701539565452711763272587157848135614764661730451433309714711134420672771132734095213400788236756465882293430104364155529301799490440766511006450911829313181391525359558958534168022896263568397537289246846667730750049038470545693033586580267936209847915557598910162803441597236666781896545213336238583204579603116490036610631703858179869437141473594158308387308529380822008371228872344057415872840708077383112109435758233749272926885399431072771622566418887606073890052463775170539062033546030140842340003767315682440731932793912697419676828929745855213127241786526141844419755575287944311400406712855556336578890389702395909092144251119866230401229737378272656940771711916728153160794128944134156408503250928698782722491921864559204287893281680695312948658305388717576048208894390461512630421077783077690476960111767542761686596271381084559165104844024611041222870715724285669376903077944236445494205841557535542628246011596634827881857137359330075955745722763456519842734317833648115714594567078223721217969786508832470930346820066345233948661917031110189900868140922417097053187378278262770488038178799339649691350011821189206322652816893541153913290311155585534692366520625913170458828302143681915521249070162295992474228192077468611424665055694022135187212143392129113360540020692306280956563044044460851626144041201464024162967136043049384071534373393435344037249279669545202620962047445266297510198422812281670632470292234174413897927766906055857771964006639410463629464685182061555361601417808110735624274778948388021325752652319941912064274743437705199830281488537898562732019494381574504632735765104674859270380042355784944530277589645528885100913371990869564184086855834471635716830506140528817764103604893600183589146991961816232475623891544846989690883764280164267450393087019889724957701698501212391308651851479662540168647657035811134191375683530970399524324767247295957446696720162333219912830308306573351404184837551410327556642203645482850314929163392666372925832198090948177108170388101239174810973748152670063851814257791824769727352933962499706869516825765228539726723630116251287084484526882135504916708567207619576998482193536565514772160105404305183956757946893594270549225169257973157527061736200195947307541136642989568499151521711225012175745943033977912781597013761503350624963088719539236675913612887994546736246479699226691114792352122511359280346920485677561003033858763242993827504475836578015697255052547370162683870091229803305594813436064474579124640442320918340236576850059825591173210459914712780058317026704437210835820138789005264554075182693952412570029575040966700716491523546266293718043787894592672397131196556345031303342934190035368127728195712096266181347484103244366490880640800684878052299149342815589039121416107915728818765079130984399188247479561394768970661970186566919487595464301897094346165193148109141133625193525788038951696820308193187852359043210261967755089553694585019928020895225056972919007160508445406997749175003489273241336898817854695311743779401959691464908460174900685603717137311995978879641625342713764536844058241533962165657536675946278413989829654110897374127065782356319996288474350121593456456051280190350773625436109637528484834853023847634347618612736085565618901048608331551306053603322181363445948235026763436214262750179590260734250285302438782621239838767662148211515573871866750945871255189066424043989203211592669415189164490411790299885472878246720196587773216051905221757774975283895227269678610037749252204558439736659288865202131673505459365533173471999131234744391277805069408310339282265531268975273807010933399660158229768492360046192657700909865873642116927677354803326081300369719153751866917788135014287155272672816310628443758189055910639929748022058389395810737582014634609547524964676649553949377528682735217405318433239335434294499941987313292064463735476057634874386943822654896504846096152975780709098838861967079702863550930840481545972351690366507263696014630498449167476768474736759496874527750142610997994414560148778457975699892491318739865973875881388550573976538805685785796850808025874961330040664406698900581271870861958501454841387047636334087383003813920651010678729758816480391868834617061120660997325648529238041617029128760129279843430532162725426810014941454855790812730648212087298008436490553772809689854616613851246443809098165522899737575920133924750444256700166176086111567353222550408004552572612687971101319694406946461614769444182501257367103700022136064292976905614053461937582321285655878584818880574306579400945691117327922747553457238728304745541156975550557945017528524098299873241900957886655301818228157309594932225297522312471862834724793301337083869624934508725416254027120003727410570313153446898251981372902727878502348624063143899355263021758629579953639226705213604463831970639445387926149303065360012661333982455941630162880851928970394700615811750284832851727740113581198147719077196694898320388831766458188263313471573291570392382582733206401909755261644162412057010200642022989597501068621492154241967042688078011990938566027171240596858167342311946116217127478047979041570740571394507995267988100096624558194269209825942750072748070749771821820224553387912477615170638578906165361108521074448028078705206686522990511134118036847408927037849787293290341742158963061497501361387110520385892483691095309742553762058826100867030286430602076196356880634369997377149532691708020707774542768550101021866441621354958812952610135078175119596771820048080161584067807504286518535191143787149378042680495135042832063969892597920007411437097480303263112878082386371289611857029398218909219383217330464142846932145387896989960614361167722641163482813728902261669307565320096217842925540333038413523735346108487713395559012799040249552834895620952848307130888003737556999663889670063869409008674497913391488677316536746835425733850317477384557379552622352295053568242672535594819488546980664335539330694206179425287742217346473765063738078029903917440826015467516799683050539410424933459823572450063665801660476247023888304568842598165036735673582231833042387253068381991819618189191665106223655718370931888877493109761909120197534014130210114381819566713109790014028221291614397056483643315478433884259576003564290754590562459205741230430375240541970417868847630759323409291598177355520070399979206952381857268454246435829398221967095674124749870843930312116539196575191266877330343763365891540931903750439596507470191637032145056383983292299492962487737221267971912476261733615701523766777305290918650809729278667501552991830668804566541905871671985195529073349711577030210391458316262907581730987460284475215302999978514492115471844864593178196367990018138138847946173262077720523568389039883861265005670509999005648212898073197158102837906675563297062588641705779803933917348121161979270749688465975962783747267913532811213706015903405746803665130152705626485730450852217487956696502607436885711951127221496129351160070576581057653643172077241930033717211259885581427984028475580359663071408543075194045260371903154665210818121229271083204454062167520735127244698408600131876165961591033037801270130391348650725746192249667570013288932283166966826330933083364808662999950258930427423107916701457206819903026318336342681861849436881025293191043689562151658860480457690697177499334716399564233523537364539543416667098965638794314041940654951626165065966207235506846086749708955686517291004455661214799389123378943857682564280676540203492792686216806247898475659027400283135687516485229337914123251696711106588653934696443240439512134616334181556556377181120957956395425898264255969255502379867698967771838802766712425244179153088934487489218268760733425734910172878192098292986068410927814248230708425237558571369943652269782190416317201082348166949604455736730396083868315427889869011193652793113340713927144064720816195563871137825002881345415750219923455944406373898070777813747253119085055652328883330150942866391594653493223558766082729471098673301011143964161632083208346225441802394396682145356883202396583136733085196907518776586732235068888747462742676578693774725735284390488775112733421937622420415007416756989974369785700139676460395380078054587356738343877499985149006390098127027755874173228058203582842793986036348704824898746751270544835548751139522443550256575800172112374456482609690376222835560322786273321656094854991785028385811524527518838584100669067705491129349174484189720285014505744081820693473974140688401235920859240543067372502388750804409852171605066048790859456847711171929457080436191797283968340675877995159247340255829071681427522155961825721843907756951501060083922383063616329691138463396356341654231244364332408984953153017488155879695242416240343756263882255203367040871512564359809325874355981341438931988780102714237909107615679052089766751615849972793314593019463599486583888136149018479670120722665554041587013510861167515289449956854742750543990976487437122010378586497123544214203006730496850496713941466837889318103246288514934619640377971161571379820968605183553724428581586607389340835500404431504582158440198193533499234423897708370919026034163497895521156055552113995153808447802373976018196019897487088229464917761005897727412560119018124351898077507413607272782307188816408269957615342528344470205547965053752680097278824556034851465463736908800056533044534309726200326894738471881939700396034256510933367304923854335722278643834446704344973037997013234919089036537575338832098367646415241323789514470490396411416223801978878456344108677318897124774473883258225457027201630411124704123623429477809957948113229765204447315648630811669095700450712452462700235122770511517244180565170277934484653587947784825894584875749877786574384803564268795435528083285847640703137323024239720665790728969947104580930422019966450895290966905826494694126544192338693054707007425930141275739959564210791643420906592559347320068412235382941262731811993435647118676928281210413141208049884279898890725643005536054006448518020186672561776157269783558364223497307471726969346957566243277982623818766359092692379680942093817512273377530257289975548045105702557496923579043204258434503234754076855544854493462836609464127364573914320949575084797639512100553727434669166674558641468052618407656377725202422209288625639937340972676843542863204267382885539711150018722592349936852143446773682230516588952604116259566476639365706150220205898517855649620379289937903644951631407842568061813933466405349255414966544527752416502141822185406012283330399632212517335478596805771134887427279231320364868218146987589064781702621989882082748394294932664906345903344850610501748056221999054186739578426015653927184068383764218563045555548327545785011878220324609711097942653036784910204253131407661526688426011787361937497817642033824137966275958068022759494426924510844573482717424175977711754866519409576375025419758711648568574386590515050164119280235915363623827059228559498538570179445480601144212130902192199049851868139809529576251754332433291796593613049259939956356444438435779712012775338955582380753010274367640054697215086518514722608014297916596072568702287700374710395766561540047102557564981452416509321871405934411477647604425687787442873360693947582087778983634474760586878714883827404694985089032371793852048151283292121450014260758101068599501949384267079165901356617961189901928206111463264755804016881780586989142141906793114485370494601693073802328049002515381637173449654903064209898540305579555272664794312627446109456679086413946258575577093528355375147912389894323604651679832627087462817490415587982099822195131681742469136277699125422122653080591473751037491325287193948612693578477893485051076569593514230291212955508703160461539386291998569706717145945980429681510277643720900026782229605047682053477358400155026293458095874678219491153168171746134164650135505176461697212533509756863594919422632772752710355078774040975983476282411622812336030260856945649424604992896793882545866056098749586051119696761722723929469128225127531726245046130724015147394639033984872718871778701378347088432483754742495448099269889651688600960997161936274213969189368925359461533389111849773666228520111580357185434245875883743780573152669399341615061765390482065349490675003288319398960525619504543214664623562369905922689652205584784321051465248915922811231335121071460490968238137718660043957949384747790028897488092753102974416302743286846997362617003321692337895266331914102619402220264541667001062057415091320001578746043940841823383756502175357407065887994522915221987445404383666563541449444356101637365335721317162699974387652146940566759245384961804032269028683963547937149582619840450784639242058585070253029954512787855292324273627841150686618660186937733600106500404601171891645028018407363022189044594972660060889909051614181242774493438223662758543954718737293747890054331185499536616480911003437377901428818969670150336618237886400438895219909787138785438536100301543962682155738740081950991447057090367686633571742864704519945243508701730644792506129047102081464710305818957688051803839754303836021158068895278161087249394466128634234187357157445284092194040556098142657719115746720879636746401781977544593244415229041874821883530978952549368106069019676038978183498923977179726552341923623225357861155367983130164156333072042907327376364238662240330865058819717337882706801423462792435712536851429941723683718145755961468503162921994987809820067486097570592308807812939286751075432611371971048758163940248909795457893866102179546401859911513532375425395989117134581636075118849200554425917393533308144776048386184267951585527788847212122281790494655144267256791493522372787737804247819964258609694431894458031848914357899500740668734448922159151635795548028953325059645609245591066492202739112350528914244559492184830371553076828675600643381110748542081748691920488224462477479979679543508122665889030152333336319587718173457485775499831966611522154928341458352434306320611897190785344214431938227190422740016030591628275313684177926729629862942188699449327379178295663752572360466296912186926385963183736709023583756529344924899907395191620925331835863884580291775465194567971036710127588097702177832670360645995166573109514971797899436152044477278979120321374829011428959031613446586787047576589445351234661893326399141647613661891904374658182625429491089431461200003489114907866264617659937466440291450136869171724030057442217443040250119722417651731958288285793564135088142726180815416526488349895575260429922117233733150240512671162598761534348045998475207387380119361344139139959089312840001348213613904561749998327928268283984634753282619395075169701284513478590143029246833568080847182131924048766910275396451483117034219188202788983759204062894784368616745992883390607750917740187078994508815307407681756262998179617268606917376053003292388357934050604493405408265825769654951734548226948111409560547028006529803197371213162205138019426829336293626118601029859715140974160322166496370049602974767908233277414696908169017684741347131402544006697223450746988728328970518654005856129475291406178071167028830295857861772879755411326962322722868595439923320548559666229270888942940673562738021673572770288138707477962444276054810045889623843495866152207057837122660048029674574301009525925451957890608454751606881810081469427912566789961205018968850342359195823292058292332992591196831430679436179037698487796427731368399530118815632761819016789241373894228312128273644866645556623388576112836749354426858139498125705681929467845510305069763757590803547742863306876938100546590368957309939867530891482941162963635332205300455846120388694009011565472053727953792312871966817778794042018554988397659132389267119758377046915694196831975372042281853205715760029789273067703310094113490990560921791508925701096533781352227502762763824967089426146848991944268658623756516114445528054209415104539874269595098899991673416918486328618514557646474258013002752316112639525768679257691720951312033951404521344138667549329622325028674137293964367552261252280366071413438272591089834268460004353930856201095348385611949893680180300011069872995378268841613507785041923136174166980781762920317133267004550252359770439468215597949172836834648385826537920189229827862551929203690629385334285573956864666308405390445297949498108035163884701571176786070939147269110207585433243545104950259452326875497811492467979925261461171926766157559849802658774709261449621535699022035458483922094147171278814709854918481263192252538180388917732617223675187770231507117698534373843512969735874543792428773762849652164165102318614268243003595972004995786102268644160087493296419728268875321026431694656934597317730765603063842932282360776488615446198744726482123707505450940028894170079367698368997827331695499157749852802530044801111840623342065037005864968839902532860805045745987876346254128083649433627314832437165860577883819673901973960764285237679702810928311252323855938618896114747890519142832936304212226354496813538912677061312727357469774535426332237319957986454710505289230757120297838891129011703282950599549207438132777421629570301364822119638929196040170433049446875213179971254814647772211456871391444289918424809952344175669847663105993644787926541322437760738886933598298146420316186609778972647854900895573104968934335176243296090622881001624322242803953597215496760207065710154979871308021648159160136215419605735788505785013484774160915005645177661602077696716386881707194290147040328360271011078677286749994673589220040732595231344398355315679262775389749062836873559097384807075597936210443631305861176095600969349415662503938567184326170107845855004214722696321173367094155340895988316238512973812940090531052473385227972420890999704576589625293233228340293518124176239526810884899071168224777675360305865499269383678903822429255294488931336460927472793104231064407220159188715130214128503009856209854793837817316675668962755281538310327804277512530919696954362289413202687133795363949670152568241695455921696701948210461538651625126977510931464821559678779747622540735686827460554112068128928299842427237961494721700564068972704188268123562760430944622036983599111415478314418976487659420418064737757054950958351686956371725829326516000988812705632261985016569787268215112848419974040871176779675937617476082202418851074926836206050581605466837067793330349965518115949340591329796466187431323839627299314636759278655692407295474358256120110654898062933259098385922242508406622056108322698044454691131508427278958985484330312370946515448305915961248004755029269866853875836912665858796007311175475239584858092522042125571156102010447316993354327799160923639227154666725555003346093789340514157584244648690036392079473449474855370877008030019129315864133428934182211642200095593268613165545695731445128685052267130051438299547751993229736810784164546723011122134452502338223778273936296241432744284556636414121337948121170856675855836786718191862179098321847071576646974537947147650261479107633765092517816928849489315415253041960408053611251876042990391312027598998024015075980031002176916017242250578043162381877243795599430236485812166511237849627329921262379619194160370435861564425624112882498740833397934501345246947055221412732436211253967306488383489331624930396331750874052529200800479136200733329222865187488715278201030499718323977198814228424489377884266760237968272358322121125158794651820068722726944304160754960796004586102510149818127895345619979548750176037874074973203643622561633839634702584818529469171582902833016427720390855929662459718266513213998028553420994973165786627802551133174273341300797508801167247885737978441870431598662499732026992742369713876999568761058155038723263490418933908550304591539569388552620812263002323251768958222448092316451547005096601573560353083786890234170530358158122205878971175924550662344834389578820201290383122357151129647379237945697891685307905511329734294605961558038364434108774689781757236874839733433230638900623004362735040691601387095337703003972251737877476146701291815425012596163456243705543695695174883053223341368693622869067815111876951936862147247974814263594545441312765422086736272160165387812487612875335581260195021771897463147158346557059615556616984590645327538516895973732600876999635187446648691347758162075378290303760588919755611194336480030167480666097182562757371730897068995377488147274317815041571697381738354275924181004357544444762828673808216336642458294467762438188506500169315882931687990942305485899634660694405417213607962497984027476070416161287341497560450777187956211021049108857850394062372507075870235685418171886685959663181265527446178651703841241967840345574764058888911758731432798184880645411219171937588988656285197243247386202484734507463668666896154356329876367200116082022439336775497679747570194942345514751971837523492517111395192552645402225163402610852306968147258033853333335442681137354633007798000398825635512836384478519976378132667381311469070566370440830394686944864403689142121220500546281376931628674821436343001166721613308634854066825630515085841630407502928826135392025978382934483424452073261072888904075668917857603345196133391065672205814156843646296912745624579044215187797465855569314263606177449142270849891051570884013637012669687651268720998121217191410921221993286802402107409847844769853800401270439348468918998100819594601331404372874194912423991399242502373893775641791303945374754824781058943514333366902943221143142784747746128057552827554501885828898112724766002175528229139744702480406603545877924458004487224506431468208092757183351680286816807452704369526527168476362604264930103851045842876882767768552559890198709514218876796050441556727685037569592187041419537768033009270571451134062932182538017127312221850448546800039329174725190873452421735326748051197623193506827166631620851947324568125484565620704489498689538436318594257024263315499738882890850186307811225514513345018307864119783587011761093324126459081603645620138388794152511550088441380741145566568824004245911662576704606802493756251558744235956519634697342719915182527008352297245063511789697164915003629544824079399336472152851447196776519211676072794176737969677532987654110307452340434731715040973499545197053494699202435157489484411988025921051452899372416674727726675144326919175019337850672679357622466311367307432694857026119095164833292729430260888352822313726626747201693621262186499368144410551688492689421777183827907953726623628464826117937379329675902087790899777833392929036147198168641486051230061740047642074505603742394957133114970235080175052049585200647269602475758460627297109743744116662493995314416415483078929200474812552198954493303334455844536146048547433694482913321277216694975389254496597530655439366672070298098643371397635892760701419586862402439611181277900201931331023644044974352159495915838001151018604070102428628448580615962072448570700759432710391079512276296800112799097546067837560550557518613979570086926930241659055559200106781677555807969348409393530478013160523810632960346314158179679944975817218579346672494554261927116642589839254500014571998271808847514871928321884921219373467562556468201719021239088040434885367354556637434768477620574911236810735762501739832829559213941103713188065070097030801987036560819863156135540229535701836193396581039083388047421797341849532585369891392640867280921643348936955552285570297167607399694968547538263499874174800269204483757935292173632918749566660143890583791519398349651532651459140394446517782661381330075075726597018293732503634134520350628026739996295966215060632778068127698838522160459069844929156515192465629994653395386518123802983509554141974655831572121216275444558825302481869044577470926575191703305688079720088735462418904497728866946636220253166325865544760177682007224263724079610428655770203298519020587686902433622593080837613511056935338641038476831332132251749642371226682235723924923544897633094071806026639381241939518387850718178725366526456338515021132514729569155188498872747477978485273292651945073089428649265884196588101107406877930283831196972657160470038609671336863487861197334795603954359372721017060198020016085539264439541620433291166843980496548515556692239223689686726461432732124001569782831579414549779309754960064541135202416136505070517218090278105162862557505055120266289511830835427565014764755083647318340454384455295455029944174198376968582093858544552462220853054088371124339023683861447538390343425611581212387404984781284742117899584081509792052185254670084570680680750631380147440763676814590131225996316663761547863870540175116401138430240228218154132228793516591131396515235832712866657497788866250198387008925696515866088995163614407072155611530669119872808976528374987365456031712158451840894843118955614438664482532525581095077694716324061402101450308948769536304823888496457562329093661270944738144244760633028931327048730610606662653708953341286263375020019155083939211369584743448403946634301839948391972341214167544196131640649471901930776690124659146689709376403280561552323795317676941813257555222099686837075698982094644433891920038191154572869241613018746354194102824115945490935059646554839863537896141270877558931599079900863856661579739775503186799112195554819948914826606717488031760521805957802360325137568857542475299498753503678628252042804796633748165512679307852375847555782749111357061599351013324323295696703377650494566960194343053315240938510735492377138971530491958081746123327981403886285332537295713184445311779415531266988692588262646810830615008704584828509027306935448117212537047290917561844916439928037586786824191093118721036665627417170026170721049468872099619462998211542238890273049422205117667908250355563306064454501444126418518102507610506230698363869294786582296756803687499981847144181076001889790362411025419740315220189188962328325051945380994240783583513823250595992907531696322289019036302949790337759888614794324696668502153377926627201054662285301049797990665528338429274078642197728638410303688242977776893364092586622984356610843475374238497192077758506795478865374430577871298077150183680041249410255528304436463301020550043416230610165756898669371054558640539774717383729926291185050745977016431277433725514333764683364337155427251111285550689271354623114599986048778199498630698952272459537510022907923628853607735465682412752512856815213807997614789524677197712675382667594700189067575902767064145074778575180738501895442492980416438744372815311744138844141946879028238309081170421011732645674346838848859503578650372639774305738391859563307159551744371273344066777715805349992802871212060857359131476502122777170616911215080738729077233155158089999428334588235956386100861924845215872266810999169218081049892927920380105354056341048074277597859424304130348002124878393660942549094643140137877144605407993462220103521919388345431066572934533773562311817671192125260771705866665525835374676246017679256804348543417529748812786397258592761833990610786076216793749204482282566957471804929753674395263646232616866821873004756386133253083525832004627872692555383246610417943048866192332884419093201698273691045067236276218447686476716413089777565982460287464371590140362338259022946104739170777524213398890526006736819304684367336248570833511397748812739017256889150291436163045994156093069569078631767808445595113010643774373292246911577351183101079986067777582862108113315549082299205473765894308609688814923455446010888324882123041305413543415386508072904409794150579698782039486049221016475806401559408178377073375451148302993888939298451014425119795498757457053820077910950860224720403429018602535259127923564835395884689197806843054698980510144100548549045902061872008839315485589399678790585465221583677530701022991074836598189374758879195191306278563629505339890666751632868407081566141103219533562284644048166488615039955673888853006185094457105722745125887532183608623393865633345888119548988646995011557718926351435664503836832417453312027218710415005961929199165007659124562167654004159139651406489351162105807279093977271629296644022263605054332263308957507013501117616358609038498730631640887822387588959644624098369007313712068389111425258508084850274555778427850683729697693680928870428951950679814013200753660522298898931661220551013735566363524079938599758341712283073841960588692094892436374796422530584309338629287995700847145903124732160786545170480503848428559244052437913209019485564449950247962222915830714694091807776378872199591868893383062316240530712860683420655696275251108681627383606099148786959003687749698092640327955297979787145056849482406363354248188077931632197172929550613595254096829129144255376460468053866795377169216362841885750202657760416856189872889705735540646280939818641686486580630808096853884048791117304611200252083896805732362471807310432305806191712231960793577213295922886002332897238175892480167229662799548775712467011585324480824266441606775545673941055168517703911271222109304587765799019214873518728258436240721998818070544652272371924283147354417336510872090272133278857044646410819655044351171462266848832361647670892159425810489219189594885646880002571703786682471821508230687406703057795762037457063571612323498595136603019564097654319429157936828006799292696173507668545882435061886070367312184563581973267970539924542283056357898017872183416504834566634295768176081243997479832513460436725179276235972587966532492023903497951064097300744749611058073846024348902094129158511265001284028525360602058054736571238712304069263184350694383907998708605130499637852556663683202831406079502635098863589574576256466426801886529116844267145068326805872747264975588605221782210484118796325491993647985841333968591782020943723270188654993782419349519697059719262964015102065002452372735126279616816281974794523556358580557643676221444716450420694619435110254145364246544721740231429381422700041094962640421617293758415131725889203665859335695118326320015255100619821308450755495165642457780645618509426341075591406239317958432516678328111101875038528367842628412544441616088801059535465405632669866370917185652357495167198717331940436737899290656579730854474786808265543381814604078524423446674413236678032458074729714302746642474107856062220989521484492324067793962359980575294194444530370606103984015238800740456021472801899729682627108030409696230468343077322689235451110802369348781918635114145490723379038910373530180223744776840532314126268145613310235525515953450244225216101138839137154663648860310712118471060705518576664593514217223817677366860271292295421487838672476012582686476909676914374733806688906055627171931654463632805610961091350747108059376308354514273194153225762349091568212113076226446836141085893764000928970879825488039721859701688612902458170626740050412666410735943911593756264271234590859196163669836460081046836015865473520818980497766011092393460186047252844515425194464033336657478696623802558050393610157085504735654561137559772464255899272830562751517839397491962435799755081291125448670453974162521001883081442113859101912674660556566491655194949360367972293461190217775694493528017231747785611167731209188840873341758965326843586099933868245897018340516831590184922983629870688213461900147641494052046392229639847512131686387096693580848643016786676733568084218175471268189506843139737457692042433607175558900764869814661342836247645773533131884488100115524869475345943095943283986378687423528790360835706017837693860783804835765010055966846331216856465217712748316594328626028000896846061401740814482756448961178764751661668545131424944805098739277953433225417540523125484966996443932991182476516122766944362062906944877989394532739670943192470892527391537908580502465102475948247962290051649422176962963895851833470206454442488223079967964935455167837425435699383613847390082814946838220007823741519150941014137584223702246880007273002579069989592571794192478446212994605296549636056667431693034833314712535453156781832653406003480584137963856281984033330988963861096428463761364968306701014650931462815348041883393936139160172655016388502795854905131736491401818703518712438247977205068413791746697761891730427374335734986316179315180428221371943079800371222413490597480100715961688695871023654461792514988349040257138482699328512211401226665460383751329105522737803873758184233414142124140753822495082909918441195949933108173792894782496572287566723653755956766601749570176094385637333455077968609598779154576557549533035796632322514604664586076074528903767693609627184186076126406787506344215756055595514869136170873814692941894233673544090304824349366970720285385904133511575720538167560587320899304388108537817291424817862078899988715469411788471131142120624557729408582129581700871498218953797986036207405344754323933175477582009046162137410314783239895165726801155231677380671042599515309130026845931770617074159335879170673510440432750476579815725898697632810297797173640850955670657332741264158068687085786269133339772379338382248702814764938254199240346180712996255504646044620490572021856996695670409319277955120845527158690116220598216330059346864799059859291968489335094778959136625626287018009826037435757815018078151063924108725112120320192820717129663812085881718473782621755432304390410155662500445525755091907995456113677672124428507432608425989354322887362452582340853449663887614336336741395142693524031014172638604158317528336540279826626174014352632256219063595989590140583798483880923818503731166290588894239437718946106347187549894075926608492172513105421077033185981603875222047889361512193985299562415388522554724210118461920804844138031653921305108555668251550748203689587677385576121414938644506406185935330599860011620653040290773242851390587783996161446853643046044266760300204697709972016827327518060443901727253390327944684965831893801375005834819563204846657864072196532423830405350138516671373430857250647345933230070239925251774735486872265370998519506054092045889055566763368840176482353927343711628684976231346026370774411128267956034078084899819270803622188205631097771956534923524428095502059259176965350155754170715324807724854158931354874992455209463598112456531821848839424726786086463761201495591361420381932389021375374319000437915093489372085332028559661132855278704847639102219791831450718993231591094999596678984644313606750650532090305877268616206605964348201079967889559371145170352775590415230047300624736472853921077683416386679086840480581870722191617587330502852714826596854869990440032225816885393904871776233049668088311311302571839129525428519604987462158459056301355330009421170439406688319195820227006120014192450304009750208991976521292852167467284607702492598527032998623152696425457961495848582909258026676514055863481531068740574600426306412987383164898706211324792963566842980582902920799201976348781066361537463391807481251851063429033819574818583765207897712222344640378950484853252236623761955587181712776347379389471873830925230551999946871627656636931363152230559714116371023137860045922330829838375310378256654087249998555619329856717086082406928362465638433972215093710023542858809514308824119113734993394571330685690346733448822572200797964624197092600571826931510599142238080216074549996622110089574132269394992863735164807931402139306137516365661608131222641594857024897041545241522632564741792544834344571787044309059098643986840410308289914409194429817845254671437034719090818538346780533274503420292886090905297262547698106255316927004168291588300538202194506832438301363431079048468576681978081487545076588465358640258537991615853819453946120107027513054637683313944666494400153270795425673508535306639980381874422450162981825211074056894976933237429403003985357135535025124811797180372133509844370957289274033364872456527636696247593055206575867654249474991481405008466798023138835346196577955977397956780278575680660383697085819992925052662948072461463756958066180419645244804350926153234511145575291702901074374132514521634711535349896558635944199212248771337692428727219360079446707392382495169451183542172858381052340036078870368551957285067052764302517270787144600973752040409185958278263059085611604759312391349044814916466665930097103283093582263094311927154460457788958794690441343986369685584797244648601215265661222144093124991200194038908869372175943051174989814019587881122426832571251875691394790784559478257576915170527826536286971397492497076977675442882560925639350091636007955481768229982963288266270812127806293475142237971245703770287580568269321165837711961882459648797706402506366119700061714402178817077657611378883888184769319366169415048434278968408989310371949135216474885317441624299892305575434034088093773264005063967304089987000562152774948034662250772004817597210528471580027445868142743331108779095148256284221156971059022663262797050791886646763161814060320956390147046000018996808848603833423118803867389488049807666014267234528434834744639879942522809900277553165920139978192599370276939707907930434440928009195191399561940222007226831953420484601191123678280909263108622117898437287724536928034751287523327256230675887860730867447446916183754314408012440956671727346630521358613913024395483460014645377368822842415562077565250894566136360619405329618216310829819236238877837894370804050130385015216519622619726041973228924828334176708184639964913303123223424182841259461629758110410401843880964177707857785399298043073017819817075113646429441084003405975416380378448235612068637314028091872677019385666496910274699409822956905497390657526628655823660992794738867543018822083842098221089969374447020098862889983450492861596100740341552700058860781790325766503773506872383092564219026541180567869064673081200482266978373884382433430150679343082267295435397595967973826037014206784193942488486446329074592817558138253472116076580032997058963162967813622514965237614423128469714540029509131956915328249356837070389901751053771528676170807904212595676300885019206911990783319801377199173273281308512560604883733545523229860194310468804464514648771733919899896968684294457344952588471339153502120603118809009554382849598387669372055910367745734047169698394463070109389800658276828343509564646915091348494718480199649311320798702781162798226539777543860055145351421042921388575736167570336998094675015133869393358037075690248768071723362032626049042304302389881241221675167542846415294947590196264991797815719490163739433662593703501391517557043757034511281973429103973071213106394211295784269747037898077003182948596860148849307568687072210676867520004704372024290849673085351189690829926600060578232463852444774297903136432513710573890111308409884438332645432785685104792790660844782044015068117403284736991099747729970768741025099804574934737384351122227962091063402241007923125297880372829468249349094262804426760226536292022389727719477756095548155150256438999569195532367373753601073558923400674549812324575259742624647214909200554764807672430559901023066256086034046974254869931787540344433495019040612690323529831049244519342411210587823638867983832785480357922446815539089677345350172063999595317113058584151377312468499557492417869284899605428878714085707627295639947791741613026490285304090217438393452123048418671696103757692770272657090319096230323488679569546426522559017450280844217675287771468854512021407772900387518754805833122823146813860832590623645334146126970415915488441260034793851569966638605105954481329608234591078772931086768120127686659634930797578098990261309035439366339998854733743578274740087357804434865617428526095986837775958084657326205137901990460215098628906099202516127887021794308947203395115234397223889748637115979118366177010409424636311076146166344021426603215371179290559587967867434041755140510870798555263180282895596499565588463476750936166247722597739618317155305665368829994357661263853639952531760840232434193645274780516853320580321572566003331310110079537874569648908744831051908468623034484325247000546122681151740011083644973112068584903611880764445694860609076306329045408573595186628133343295646639485674326899333669527897465550955422612590352110948094466916942151400552242432200531364123659598633135538044366257502639986576889399169482682021867306825840826735284599332694628257409793382410917763956438138975703131440315002717363745488772722186175611120219482383195235307526848059529170022362050247114720782445366313602403051855964304080801963034799066125088748512264764002003808579738430814163335240136449450746152931992828316104795821758495898563962438516467448468468622912802618339627359309536463857402670262603598832698387089976674029336088652179566243673585672750903093396727670131238437586759275091662641602507183756683552247983572774319676882148712714817340228516883312657592639874422778410391774964224836654311590695693690483103255228595960037009243503766606279106075979337163369050219413353724093260227964625381904520376629847158035061714419664332817886853247089017079112766187508665265376385331277603391042808288421402915800107653686273881091975926127903243521634821376656194418706107382211599971015729615754666492328545646493070343235014806539791367992493198700373662863395919729430866777091846056912384561758691711834075707315886592308482781827469909145331837616443862388426936681134358919705041621311520771585677055251447518585292033859016087043552065891051558233126283984585919162794200626605055953412914035868393549261114633814122277814741304781344573277847847329603800410157908247347124832018632241341007847045237122232904866910231675995768938653915012126409305026373965038570465682231825815612643043373530625296571647438560672322175110878840236955548913089218238752250932516571596658121665159610886016252137442219959210332370569788895002833002921159889548519016500449180824423440012105956752425946340284651158757299569823806918689104336807649425362215863105006641247281722276292762150910620752271268087346068024756784799211800360730023669581888534312950298520970128587316270289218396221160755062001507762491880790114205431870785895693176827361411025994947452087404633061069123513698705505164789251494012696646033346662212124609497902327016740830703159831155794401555708023043145529735646816147069871419748146232348406864100143914422254331841310922131571548148405985155378465642282886995687803459429462617324191577262982810077703426573548543578768025738032273606716223518451901024948430773007309907798808734905247269046406846064151877901690204303812145896280947880921338788505515638213631107313640855975205157995503111177190892078947467729411114738312702489378547966120186812870671953811045299093962828205173668091093065254512956211037075874008168623054651451656497468221719810482602421100507173267015843632054758333800843359932597558066799399274950504991966219860597860628199176721071610171282981164684278818090334093028375430553178522350586858055648238384157392982590012407620239032930693612917086829052697480079559733073813342085325968613376261622870601363791759819551760300865821187229783127473614180558066450557227554999258681828168316236395752767100122791214190763524423403560140323869794520726112153040297581750175642841352467828659816273178792049827947474859752672547703916116377122287791362222244099849138351300036014876916362243620366914479385528558991362330887999555692517457081261009192845057898463347456792467448259809408907337585558402815050992314542353757892514447105955344288730137005868200010891940176102244468811946940372353476980962490647029974447843723687183199505913022135711156212574190812217207187918480007614251056294792390637266451771995750570999424974479582662132586232364175169236239347638688568124667948290418009628953665959388873742396338740370190906331131134342535932241522186850742375059743007963836456542918661961358242617748136407410637899005471061665716458272338175269059041809943787534529304971538489404555424009785584791055141924845552845982322665483954487209444788291060338454991282418898576540787397599495671259031116976322672975038388990220731549275215055509213594830831691393192442329258767625707400376445020048121168078818945164290356525423058131815844234061295416810456607057063762191494119232855421550230395701373611726624624885476925869800058036109148738113768855478128966630434690152682253297669394017438789213918423174910731391217709339788436932134043148597865080927271568895243235186473294821331398598397747884958326208807054200686910891992897127175566410261648019742977869228466660976721461792935922010441620259382268429942204908875645264477407279209336048451060989688461450095717355489893504093568456696052978501295868984161956360013485795935830155942747617107243839974738372232406571919956136988699992401651570247236261291720090912377229337295461297961299347554569744477818399866353989793798107260815716430729616023384228562167900935073458658691634680644266002103566420198439136032102184698945069623544503590288638085921157698749785666907299761048442208762603934422583788600652307055915734370752055563133613050105809186922590199730136436100682064559475990189641018609752593456102326279182761658516317052258876705545983811240334419238488916544402172402135521995776093378018060587212878129265357992120839348752091193662619090500871010609106561591540208868069223685925519507333948577471600022508182296585425071218370446065876293120277504698675174938885275384948064707594825262944983494810034987958337640113055163407932862242648682917260346166302271352337321799267681682393327553473364694254260580425448871171582251294066096537689799124585940296025483314482356915907477789435302486597790304283796482371986164526422181318660615355708799333442815357001176775177041298997161148995889244032210693286286537507494852697018856491191990208058227977368522050866565387907343750469019726838674539617340431868388556681200518626509390235438407965549417738542413547247809918643478902557417901710645259552827067939804026501775261968984183267943215032103694324591151045892660334261610615923555488409840917014756646987868034255117687818404631500572973678165730995455297906399215326701282530803424176500235315573975386757272177057454286632911913171606677122472101948072175849248842345115073280311835147931942565467813489769548141775866467249007420379043920197708379511881187831771289102146197813505042960208885915142411910000975476170777872700873396464092118244454966390381167222765756824405812944257973795403298362014802011408342316232425808704803381370161255011741898923790609617388672847573387349876225626663232834633036494738856681556340892686124354735244914059118833951486719648392928364135222010280712329477846877107320725925382251711855751891686883359873040681078731796770508931373714606764776019590305052178985155912667017956239844993134823549984170884723136778373834552962330646615313574331560253380841662062237652218013686034400864224627242968298653870050919575201791412112259887353783293576051818335375858308572832112277009304084020358970847454607256488216846607516359178847306899761695533285520299692550185479148310512330997821215340556171562102607841234552010702199113203201979429756414492899761115744750389793926091899008242738722169556673064241225630273471993642598989449169525342981885883544441564340286659964059354587175805656362148445165106631111288149434028278698414067447955324446277115706663652139719616018851066711679780011731731613364349736689762371261032038988986569626000867843836889020599685627806285488372252164528635300809080109144605809080128537925424333499534853475100147420955368648698951240655258746265253944492698285973451367797847733947746922757009614651192690171146116636590170296473256804373238399346040747904087520758050357504415240827012580331463236431110987624554218005127732737923362341997601100111668244043368182062068910643955552484689077525680902451969017741605526950886361092470655110905865480674299811703229672453605599322994485725955078317095017022899019956283375951051621419834766394727731038217750331814468926201024595170975700888545895557162612923775649359049779637888378165415348671015379650539341690251928437621603161507491054813729223202463770428876017799479412480059604178606041768073807493517827374633681428464197376209726942731057319264157628332544364856917887279187314084888435344186521116815684310171652050455042660562165262494449172534901736383148956451336869857635435716981790104737658438140331160789845317036391481392997596034453757134206869496281592004413325672072376349633212687967652518905829756941431081257827194461331712123656256843683733544324688420810826780808445358458074618097018876934042812226656597405459408865042654871992559386451788464127153174322274897706093401219033341933715257162589352222025863274108080909207448289649744239035050326966046502542993063451768098388440334364649003434755459989129622647725999176812707396191779762426032494640474937563742376720071065511907534712072130018244050329274737958257026047747195662491227344270644744021525463102493554092482158520500669867078285259656546160638163448814686095926416813407061178711967156556219217764331312939499294195653683084593662686739118828966197783261909002360912609732157384539236983112041263735585919033509119472737302857447998462971223877458672955249364986814776945836113754721502110780329551509576129866063937545336022613721094635723308353132868735681164551138457116634878752537248404662591476522137768140248572312266101382647819426667866111176737060738232559675893096022208417817693285028967879956195208790134000334874136491985712919263574230754727422466182051703556330437037894392916025676632552312733675954906997306088102743688298028746944929546892338240916416463613028919032245333559683659472172882958780051740434990239836431089793184279387006827958728888336442911097915758090457165724932308741341422389574008897425324764133814863021023796994256919127530599460062688960928000059614585628290635371043461454470473255168453188936856926669250974638981351061033229502260626165265541303624187266663088915829289271584649186164840427693242236550784615001999959570643441215496899637737973275236269156883793237030752300921689995757319952910453180660430777039402457534446257227276363605865373328790022022256573778814527622648427426969794267671487718530911715897073574938508406721931173635688286685580010904424011383879065148197208812088501277083533592843575125271564237611792938868934774228993346923312223979032500906380205962192312636025856735588923704772688415448975737106891977636789135512934328417309053170696575126169997945466654905672917116084097475439508961863661259590125959812094900954100380215135133894247101175194600338053071504759665138180227770954382617525416003348494610803337877080292611974486449466811946236536570576525459737805239465047122647575688832159510362041372759256887444083198950720163647451261321973558707554722665052708241913071942625847544009247452088458568595397199232146938317284222494505721985049872354376558280265504117112807370186185049208011880477478686457761800293004157481593935951352933782022087507655204013980617173968575235428856558631001138765008648944240877288770263929027426459395069256887642903322879518546221630971025253394764066685297802378473327823653870154805703621386969387712738904150684173037897007313845363367170245303681820231457740749688179422529903278279821960543256202408851603698869722782205032112840854770898641595205139661915514382971348982910881764157456322285112153741207366442587948098475646292143682849235331436022927373606020463777738636552343759912590501782456647754465429009854315585032838676974901145586374821449004677723576248732039857574084699091710434880682847227545012541629039795646905706838276661684237317194856116600076867232554910388434848648611052747342959891271422154924321003229010788291551341680436020266933001249795651630727997649058125661544471988052572658558459552272431569030418123906964468559200711794484396266009391363699303892049672472679319620953763451291495828358208671400235551795668711336273597146132778870073608592933275719902451542548903934709404455100537917302092666308114598848351226441322099366283308166642824327917566924947085654053821424459768155691243939614984399946118182444360308963729169565730318135784087267887164606451659474512287670181393628960840866582447467081880411340568033535690585556278530700108054817363266937501140282721726381981574062422185872480068294163495386828855885821787756728619953466628552099491077905972427348669398121559319716177674505779757746863631344287276472956604433959761444274985606466094399338307663087160275831358852739348019997049173176113268026997016339538677698279142312231481978438019146132676029667169161243554815020245241928115784430838598109032527466536500217056713462029211568418212049394202347691622443915444290058897166799885853203242969292459983795316141091424099202706966275194808689573103228445552308835502484528507567220293849522411842442154664591333886830351585109771906738198407152351914700791421978288809140225771159582613577761428143535061356174837537688476923289872592665822955293537624651181834891887567428851618443809800243732320943392275353973937025241782408285478753553585445669333443668122952852580109440809966743276123256411074480629845264666647950930341753137080637440069480575532626554525523261434492645414161786772071810181254499474403044578303169696146875792314553679322824693376292589729871798678450658541065727603619985655124010937379561137427130752680908965946738540377115533066608703164091696877858525325928889591947596525796139745951502566247840850787414533040331153194214484393603754578034034520493286879848230104621099678528088318994929130662716501139681161740440333712841862790816930242470253582531008543378641317323937657813880520332388865209059490144363640393924950886749262435713011705723294502304686690888032838176816387504675515342817985230602107076025474713314218188889723159972740618107889955984392764659048767588428321917500742720375336229872907953212769608572239540859057850586262541268650754894068526192208095594918083050687818131592289003333726939534872227658068199023989191823366093098887076566008845983431547489519037266207201360149824750956647929738313640523125758764204365529187133206959848501200291407401305768506601786044807412189308937584904503470444114155782742803237128316325870218855655512424703046140657107083868074371861855162054678386247165395844749997932351650757336366519814116787293766347924436425392719166903748950406569286310189680413807201335412468661259860194453624050934969610247589474637378737646532655489883664050668229324058404347116533040922734399713963622949118469306210176639630360042827710730162215432567591558481283840050804194502529383868743316839895076695260841250929456454141276665585467590095006892166946923129607013550144507816565693982591527946002217684919047655738013584380980200126396592479071735800288071912212006655341287965570028988379887747811835919757547374843761346562307644391225528479026351294468572888602378827203220893516179030625143660319757975845889293777517376833518812199481563148511900246322617519965693722287714618392935366838120534922906089355036714408040964568725389365806854629710430703184628291721978517490596610769853421423810445556288354079212917954138228151333632207091183774844821055691446804531715905728753229346271818676586050612873492591402388946654070407800512253358271903949148876599740895837663920550398333452600851074144150070025349298889164184203815699119947405227042892442179488577104041898480599253422381543334090529730915718887542874522555204578056879394101677390201589190726179401256475311670039000907651166117810634342394779975495251044332079020965182220953792919169021408028942465552671139485795627358074234208785910166343442596760656099024104975350726930375941628508417328503130239907063187043819854441666827139846789833553307381802694184955026522061926340794801898319821676151717374580999266942095118030095510901381513899915132825147002193410278427723169470530410533432719596148729193712832827078500306204378059205951249630921752972791752290272908154713535262032615153832879646802922792029051438354209516700951705922620325954908066494861956347847162427801347079259382392512791023122208641103204910512295776131399473791429670706648954873758896511509128069312420633223984257085898590651487858002217440495120247400743788182312433833889768453200496604614669139630645816629243018119322092489535755136091504147674244543733358677593576569222534678973725722613400105636345536907437439640721403587776264571064522730263640749839496075199244235957517997425486351210551173106486894063680843050275676801298501527282965364187580598642621811370395010294187892881434751004867244658860844940684157112237547831207269354036785169174493725235005208457384520932397124619203636762797294984621933362336034778930414869233841200576025473087500447382851695859551549064721223676204239471215846780468795757689584396500954086641473603523601285059173984610854454834070461557110636371806606071131430003912615157203563639339504282948040907385679047041507408760546654744106977131917589821886912059245247608151793355503231796334553727894324912448166444383903063937484791279600257792609348490914524218830733100667205781906557120396425698039568120456817495314670122625579551378988496953192465426392247980037960149643987313809541379287954244838229641113371945232968941635870169347664053199943717012231301276475353378902123081375324985386722198026616964702649496012374281906083638630346829878146887118150582287898823935583800526053305247676896624265630465111529301238837905157127164348557231956462756512985711161155187437985665002879000509847738425750572094444291899251961525478836743090287947785502822029145557503536766051167712891114135309904905417228126843277600514950246888510748290350181827302703504594686430985077546487755853486408067796552979063990410774199338709479139798898821044476342307050843862615175749919546257079829142835361661660540628928173516578276814934242370814256533790083531365405090941197975265007366962061560805057672897416811246909185834636602190909744652026131641832548984004073537165025337784011698540077390003719877229064718967954238752705283704628800696898574045358289666315247523200679377185552743347056981199489234733523854439478321781727409626321670635959026989693812510339033701234176066965139808261442615002101608359489273276226367949474059373574037391915476705315962897136995133716172762250712414250131464412431433417793382130420697022180418411214956413928508344066329884043726893008531481468082226758409823997572225752784721445150396717050555749508019405116766728282453078148861268757076970736348370912178533681438129045927919362751578493163435883716089915916331856039052834937964749982208971657435499033674677433158381237678818378191309397376948031223367752617589429042155401255030053870649687436823751014460580042298654556757859889374467787815662794848671135463181838021682238435208858921004417268467999833603967303423912283760476074189597375480745493556476549537781293959827541446712486997597288280324969155439451073403430679870561855120612122210470744487046737134509893324867118876271883628107161339628264100387780024424619047312507308485079632424066146155197089659634034800470178252714938828608365640308122266560155729717770097156224812394921948388001361604527449237299684338249596596534083759376163935954499965155281770455748088215673806549452261374066038709624032909360143425847533827401991765340366383022546646702617242854761436593406612987341292540954990813111366114699515411376772080789403863745553431849723739548146481035438753501709618326038260668339717194935833871405936316713602582549760864369341524941094666814495491834424210762256425065937429429955446948972702284861575542625415620875669430928333669247952300603597691262484037480498798119962137168058947687738088712912130032781207412451983321617270598174573217783999448795245983416363075204438714684442629877407863974236840746177256522392376259466568690922021074450602048926389314608406023705215525067050847471721655961016598009716994486202175326121673295494439272063548366735847239046897804562639033748791481346007408352778184028094083646518348801073150115524928012154517976922414954282805379673467931604472429765072957712053788908579916063980451995151826063518454640402012188991732026323188287085732270994199528623352222500255485896648875768934547762690493768925632111479391656686376768397875820747729590870909772543290168818087784673751209529536776146501945885794787438742909927795683700624484182543576740379732895782266849904069393452803830323831008880483940377080768623847318378434126021278043967430115815472060771178215719898810160823457864840407890138589297476701844786681147033444124959736059073398314790549841705680375752496915696218452879127542294707449154939472537183983607710165555060939455451851805283284331017255050553742011756747193106213458917925163928862466152066267139524834710833788708818381289630265296967719422359752567132147473822624006581813374936469349940470201747834881523765487767926913837044740820942073183756599301746387145773360516235872660054448474560103422510784078309465999993784353006015747231643210327955313354725258452007023013096482407000846845753736067592224699615838164389412132187541072574774193560427031850399748472017632933227153243884043699449617012422780905847214703147094748131309779830806118281086926285093203513474835910255674232679041992655224870177535487183225530164033784169117685239590480626662277296461062814954447144683110853485669283111457179799718637406109732854339331856537363172241199650519314742245371739989483428403334389416943178445634039970862316115162179544508265920086977961404114516441836213460137523370560579900630647651110268670332470488266685596083203351353248243313833335538410809030985539543862522960474100683341926923537271379503314196535757350118046640537309769014201343215869342284832690657563678768535572822749065689403620642186608414360015078030126743902895559945994834562077735183205948720960855585190946881994324063453936189223908400457372267146571775986029749625069415408868925732166220436456967967845149180235523357175072975131468612068249399473716376764637917390180980706563012608058142828846986338333402937245017469850464872928970976576287101666613910213302068820657493116484092171044281748817680789912729908129444438142652060725634662273003060720456317270320837112058049205632152192531374245517969047110087904436872462945125559300072845443135941634858961989956548687173170569225195650407641032407378723258399289700525852307021519713329439018511297535698310487713098284283200328707707425161737049865307207659729127747652950428120863071292688655195660824364638184425287134069232679107208271737560244403538307959016246645155033224299958048074981667883737087649206316444137033217928643156051756253005053818574312685728907025086854413919732062823901482759336822233080748887759571068891774837132834910950739258878015491548939441896252398549728139779585553962518127865639440736124994654847774388472574548883395595786848466512281987212502641617502340060581053061696172262473716478686743332839796713609797979934097195306477232874477675959198130928431591532784542256595227606106002815851864643129545737879415607178987999698216281727475012953305798240247949891840743815801725966596835172212713563338282853661784676929154515102704117100542189850298173016796284460446608399345424509521250547894489779834370215307395284239604172359604926367477243505262781091303459305797671897967083841751280370731291560786519508604692830507420346992666965344109621944279722644627395768296908220173285662859650603246984171024279237063763713725080765618659720107206443932570409214709679145973306726424256566828205540763501345655371911856907797949360410021529931114275586200583806146996515038494695552301286539522909268392968634567614457741311958692559446992244912758574279259624487896022674097037559226695018019098080818445274782922831286542127838855881062649295007905346790371568235924769038633799340438398867209320557708329121420017955392390458779530031041018888626537909782104940786839886570674969197270205735242673876298642530167676232968481599998599455226256106459378248245705735045678603382729379361631659515978775513447421222688116655572009125176414367432739696881947333782557300022854810872489140954758748152315424608298752537706128327087629015981209894744169051453583699632750460167872887462780242894804361478325992487786598942622943082048595596860396012254977747457069500202436304971314568625838737568509169332325165616497378231749502726609000954513683820167039920107309424608039161000617184800408236192489471065934461082049921657593082443668045106797843212861784273891125207227481315118164867417564270732424813595848436750041372266994790312813834339760059924083825237242159454169487133353568261867870503644052818818005847176077981807561398989691269501453719374395364556687081988007925075685483291865964618748331407340103214883552859519191045232254921984951221078158591922690460804567289957517265830440740790909103461717331824056890903083754275904795846313541003420157288402614302465209457812566946169515787309031290760750859109225970539115315793331254067523212974285874700231078975087110638715555793669494278051295125812177284713821843813931157307384370823984522436299649484532399692530119355924717561801520592617591628946196344985084538801073360185578258020139584989325861265976548847254628599462624060083969631649596907950930831780740026666489561536622485431805581429441756444803760460865466115915805690423277488242838895177906736834494094782747908955399366436798117331139779895748686261132637675613976811208300366541185538503279227527307989699176058838453216394430200837516607548750694470972356176995820539160319412125291757287560095379074748483907617111567378510214847975903590663524107741312397853955593725082729453480642877685830982432568925391249304289942748459375721919693088057004744486247004630579750071726300312632573301106976200503907119075969946663920346139251986228571102848496917163911749029526463223918518351323790420448710658726213630928112188693333937179591760650544509970317551316111639061055069714616821728297986585924505293261114316399707433664643978580525030437536569174432105363912793231471932843807048109811713000600154441300212844634495658040627297076245101014383481690026439800326045353687345600604379615681983985389855510265354506804740657413040722397519912598817051262517955520286147664537797729602422336570461519130925892019019258878969887881940831644951141683444700454373858769767083279210545071008397201655253727891268064542584231003977754172986592555892274427381589543663984848118152756054240296360724714673436102213170667305936774304231576749499714972067803059457416357022561298639124109308689910214178364141594713434880981033463966921824368483525489826467477125668668360028253248204304690954127897210222337060299997587889719881075261493085742229547069847636326447643777166149516819106574420344154467212580909767446695594770313059164095276091152573021728963583110044516900935187140737836950469141272845347144785664003361101222495055575747461956564801651329096691141882440013514525198940831360656586357529852727746111810985233992125278220755783881885576939359206136405802945162196005752686384875803238472171742102513230214415890359005114575012946059137242722566895166813420176838606480099187209650550146166187647170010449857385920291762893442073591472495261464956195097308989302599283043266390880774704323157953781198556573198609245840967732650697900701808991502117289768844869212589743333785102366144112576877739418600010275591732836045470447061312544496287282856222620852290089423194927764277007182647734717043578753471904562125192453524229464187355480628598469569150253662986356709076264083756772663823943885837891504019391692460318650025705617492215662715876752557872480027671083444916042317286820512369616731713922954133889090803446007757612452560783011694166173552588759123239042783598039479103762624303738337128721946883349985877823922923100409447399951229554420489123343255070214311672951945591161691146123342956382289108514264739832443255525105609625189967895727866700309967589994638666224321716251888949365395324540015561817261789216247877032815541655203495967662616056399337638775622131640346167681037715004944956498131520629814783292448786865761864158552485017302389125021366235482405178012565089143719672961914642970146953532333228009186179455046121857150321687609975937639086973297506481916861310496017643740997640174641297845048396880859817041462192767404707565624663290561196948325373268211023282367701249900280591433598203483461973699113640937287208173851287066797839246950859600553244842258390593027420286611542291584475376166054622346952265856908123570460353311000644986299544753783215477663821309584904928677084098553387382076236636522411930008888226469573696784331508216064987274321213546004333291579297763797508412654452354603064364869199556882861800253565269708853367636566969563861223988569510268448414942349409750485825253848395429183769940553432176831312514156476807445696814354260654048562252666670736146189735000710673974237866011901559982771025651914075833047909730204370263432207652496200424468865907407424465916649500416614258108113905737571459208770709183930622617430865092189362117591196771763247295155441419296868114437576016625771422242183580928815192938900473346001606255144866119284809137158987885219870371207698614988681126396873009261714712164210024318607314252258001836827491727983779332885745685969772812761353782330191476903179582215284868754592488220541242689452136557733177131322158595129368418545724184498389756996866741859856071573254144100382056760483118712471165192268073011035189739122664692554370333472883121540421890690641865048620343236134202486334782644178461899524738807785799256676679415655103316451639230309715963937745500550441071481037148832462688158194080242249701201047087011665656165979038035191314233429750524651610609566193990376849096488557785670555272877642959277165595527378364758821123568846889208684011317340867594822944510311476671731073978364279088959100648056279635616199110144927117235521241949271668227395307554343155722842131763187911604618039715505660015117054864359699609172030098583484582622819999686541821925798778458718371550945181564875458349997359541899692559733946645483461913039037093728480229571554317825270511811281091988681202381221438462765081848968232642826854115833739331726782046774391668582727627216935512482110254021106315900029566906871393000916436613682552017073973784319895056147258810907651856917762677585315245129837442525793281056637411263690906397373725293694419650841288316162403672227547226284331519925103571181260727614794510301864431465151031237507908459286598369866577800909437605030602606029380716906776621647067927783558726671571508292975499536595050578867868894437299628194644934491917520722382500254942894064361212709101684077336687176351595096085411264482633096980372271907312253208199822597929165410655476992108443010635026933863885114499049538697671496507602264802190166343175137610983598823590690870017940641801469013504992201580950197649435928801559152795111560499463680291346106462580199294017396386365097035987335387192379173917730456309365599419065847027144219367061129534798535366752149014846797252937585577783053149319464628235142085288980925193503675593049514598315500446571507180211370398295280739825076645687949807303963462356738133536788038146225663396752659686968334140969200552571901746186959290854587662363414436525798938967132576743415537002241640218262147275950603797739561851694924578890402662109687154624303489825746964990633974132493802158608734193495298069553395579174778672178897549179666359715198977387713530233726033981017394092611938578994272676489035482115564924279490660765971202472976155058244071342352938840166134681660497878513673662684783112105531828775851079827374945308394366491844416264855731260145888851238526336407972039613898729690558878596780575134355690240304684128647998278935492416036360929842899301315042463735481287606314144658269248743563500022817741323345360920635918766671199379308256902232307478881582066398382592757517612022400048389284243252457612076995548009495162649472424043042947316565183943763154952952706469269064054479644597449296697664024421386358204579163597781950996156990545414393562074914608882366754289350400814474208245947205114576438343724636942250454847907322424620669694673003050127803471788508057592532160521605887229648327374374058340215957492620036445876562005039401951672675735692356635424627517394228478069408334921562388664979497065877159923412811553589358011522015189039612677694323897439452223429561740915157020318729550029798789512036865555160800997446982607701351274114508240514514454196358872050577896425399670836345195680809268519161537592710828021948659009430629129388990874033176529353659101857116597062711163897758400263759097169404479153059048942930661956598661417877628305047473688103068199646927544659951496612597167576357731939330407907154676615786852197802724931780576461591822595485283650304194307215185796293355617506985787019045857553750808130697394018691849597735604967958794877915056813511267214790553431841484599884553992214356457083637784047861625168714130719836228531987412133210244070699827813006621808489883956443452963052683420080399820847106268711515158087820364032034737225438010906929147733701466612383280003950728024805120501663075720995007378839307103980237662757923665138027954160719815273472050094899685584318942210432822713222255727071678067214471014790116224393358481301841410717464273973626950400563856826175522060957960191120730441208310190116071063294893936451041838337783450621011151599452524897473590005808713107525967002160496732272772794528154786159587424552042765621087107721199767962511580946399197445163310336175750993835990734060404886277747246270603960682675476281533979003782154919223596608977257018620450978034127266504079983601115944854756332215928354684437651324887995193378751039469001724862137696443042018920699792544269827446529614848838939955922388230660989108325390943767976052374844990612660592721158506054085150289555432258378173897519268246561011160748844424675833207840461659118906187244051558108764838046049824652445303714325321086452955890647160353103147362819860721273749823237742194102005554482024335518499660007522191179037516864150765453438540527773802880403290202132961295110278659554262889002911130600233097629726508754888744584078147529067795233479610203999968767588253216923794609457533531768824545930392495027100172228678335086500988426948013997006382587712150408606210124942150873695427623292089699798402460045424744462436504276029883348276805004609280241854389416448693440481338615857429539140161023664951068376251407405152799223139666515878400297655513404654349411107258922953493331969224126939729724271356323968473823264655328430835160350558309661276526113170206874211989818859348700467280273764897110551629846733474643858239549135510153634483048549165857889782811865756047300868509294029748437353039410716152021129118225442948604642010123962434773148176341774005396924451420285164145245665074246187813407322552785946682488310307708808866794363740440062610245976381482898075749694883814435246860481122302069059236974078257932729782051752672430787907797513954733792598400424475399416275213113084590458875092376026938386723049152284837510456732630762146429558234668451744297157351227331487830726038848227852428811345226459860098916936796539891169112574328430045032251882610823123419711595227722751846319836224333612167054943701891830284370547539067112701293270551994417019560791650314801682958821133892478208679832239789684434498062500289546879112756736722615759205293827981484176492422423271945125782294658379904822766417237663186320881468200733963962853156315697491358780516050189259523460593353140851792550062448989578003230041161172207692207897920882778996723908729580069877339000996083950779854365946879096583205060409331170062448276635182218163342849351838963299816177094611161640560866138368901490694929706002170693032586429978875061267792631233239468013453294721227239833703822764894394497826967850053016766016702973914767961014800878287695980927733645883022266206533405502316357629036750225841628262449111520147382052632503046343388276184096975118378891943656950613294694402507222555292696879451329744869744929619925979648747469486528529893976036021213443351308049740185960958498839979097819454688179765656047496954297268902391647187555576901045203380881888184351516740208318333897191250314154433547695163954904405240182090005764838380396547896304547656322115850749049948485045119558606403172963493606632972127990357482630669314973470168015912557534413455333084225199384151163282433242937522338210788606231494804369212313310065740743665254683477178166044589412371716581513471579511969034969087610649673887134009822825991100620651230084417790311522102689574221964669065401240815028650308890120778777556250350844706129428804392289803950263065947363534224160237277176097583521989578329436048376739919978575944037532023838936660566452022274802728531506781542840955232336886787998258542053442165182902802984571806617313495200609031762779811675695310769439341402063822003620377508367446771516980753734128800111385738274074945408230727996652021444520902199957924474798671885705753066467412227027294469232299272422368564018637228629011142520220827861189742381153371250785910875196003978960805508995935476201735554942879990931417916776514251065727584510755260046193934168988708475529300552964068187798042350281867697462774219036447115692652234662604665882730464136308258741709931090087111405486169865592763111642844254322912354978788683834359571340513649883241405207048851136191410397388064916093832002320376219633426604881779888142663618839630925433012278661553298703831667033512000122355625103493370126116631377503051940842787723260090617696266980669293498936186599609448931337072786157549088881664188829565257002285633379545275419148646002122663604810282447602183915617233078627940359436284157228533290588124583487369748973543452035171167738759113071809624480316604429947295609769401250841073809616180914490692110251128543646742643857664795843006222871233731589269081962496548957042244824505689338057025649135710865323402195998676028374716153147686469628268326162094902199507200649157204294183543230725859320019157135265658055769122022954060772860763909748124891080976204231573894535267187659499477576207112892372359475008879113414326979959992018205733834834657201583693071668975118870765231073853646473786031760038913127334079422936363529166756289552405893032517757870170430338515534564879826457261582312530269907718592354979000735612417595219027226792262622032134074522229843644367242591710538222711720722110682584818872206189640385029601686938254825619434614649879649345846796617212800082195769235410207022996449854802619882836147997124187508886284687095809548161071243971443998465106758043090709940423386565421280959813074945777231783215048714422996566143926541887334686220836994503284434994293482095106511640374184180802939991863420101596129031186540509097692294328563393314659870020744965282961161603018314605824528664828639177995345339435287841522121475652871906464961845976744953065517231334110877326727572255153728002827038287532777126185039202259032217875138521116270581511523383399083234838784818947716807819374983396190583592441354262019542627378205626898462720622822368211603667108343213957927014685859210070934032692462690560406133019562882721170064119703331197892887736894198877528643952602949217840055739461080331565373630822437329312165446571183087691155697086553741668144692386882630527591032754093955264504379992166083064313172677198824221113062397255119751380551438629275747771025974985584840221168826100743395093392915356615809423419712726114091911801629153096819709262615987738016343685757853517289266368936913352787134503974472211249919034171210484171690002690095035049890379029540835030363081959160888533516910438245724698094231592003409498686398888130156024471824746621888376545778063730326786932668024640627283927736012424119107613193324056806520658733555252621441131768886289780877332522038542841636171081051487698751674704450954488152303003519284686814441100047122076349446859930774992183594533714472202546709206592930004776107136164064122051853617202866206919406130912386067837246709800561507812994455660277209397611466517123221035077978495453243974049963441079760383392691396966241365022414522344678546452685274616112925780413621509641897294759692885430348460443805968028869292086049871073363091881192818537583231491702683480645654365609493359742015403343196557266976462908178452674806786720907524607472648143074325665531499821735394538287248027960833144884148467275649689981171190534222269571509926853551076424219784279686225215394560975284504339497611812892336008171731848910331977508189140702794862717155735162252804362106909373324210505622177018215430843005244661734504578887765300780195331321140381423453702916581935500295595651776615898466041888413789657027523372051951619646068017105547716519547283761103634914170534355168806481393750339765356425262984636418322814356594310174652598686294434234369034772150507657267706301915827826269198381727309145421188601346801428711310234317841610535530344568272594933381614447952512605711808009685208339513416756917588492425701779623793124723776244334026377358269796367310812403512436718439538386106560405422028923572565393159708451411651411557635472287269012609455701228226005227300668451203533490251453436437310020803150232325338709960379238315496679012272678965692675124263931914799837560652333090144864013248988020389342135414500546014443520980724424942761796270546906749874492905929649151839087655700383636858086769150505537714897480597049971607694593120988603525453996454853500706118476760510790108794707229389192353575089553525656693417113323666915118725365201473061213655291679486632886983659831168915087790610792521207069804705711358677272921956829595793559651644406045893560840798015099323342126396882020106091506840307744138100122401180640853946938642420917403007888960692446921707075351883544419508772717036225667913645434805538519453599524753137123477665968282960354185257827400632123677929424616947309208564467321206141004850285098271040042635924128499206373624564123988046723396636830902805415140279257931502655990559550012661681152684624249004306900574056996184954762898775081438929745539677705936058331612444236295497012013205048763137882974514500736453749339606725854653223751907631247865351461254076714191792187869353208967843745414567366522662067207452115652141716650570199973894532978508117577387050765565173711393208767463010411801032723092238894977526144541220482349365376195749685734615725849058326008349502734090888441225108740413584139978624914069153276303775221043276445505140437874587989085107447538188989334536259893786816592387575412146617680371046170063825802823578382072612686188332475715604699133878026759004586473469732313072130900792735717600718558600797934361338322649615778160964719624568490263430536681761796286574308963519189334545943382600111114655623328196546930292691890588849852543019607439917206353046288361064613584909997197846408180934415388219555775303151869433523742329638641992201116638250673887764417939460743687602243420724164941687767704435657710598595452753844641521805193457367113895087339616363226412690167420749218230070337983579562695198313354662180063010069575609862359836986900034729796366088011597382389345926744068602576140679319755654016908236129771043094444688330706367068876289723492321683998055686515649083372897827876961444370402383877609587825134098026333047927944875721571233142031426610172956255291164601190556275918299906188830876445634906293107928823451686525857521227043097036786662070338023843066874885943238764932995766382691944514067368626105364354902517293620305533498109070244725568275606505496468882894065934699694520164397132173427693855152317323738134500714146771725290217789508158045321773366232886293626916306728846075609849017777796571219904297190150656782083274525291354317191951236765246956627020225787178969249074465462900183649423797426353622152467955617093124018718176906806042581067236144249586033400357330703797014872118044551021521171741284637488719377309109430232222115042249273484066327935488679699964417807509547997687031688736035680880938420912001651093731369776191632778939116756142786035569383145594477732673039913041176004016920372656957028189926465083885360177920988245255274698125321626572797747579227755492894513314417231928142422063401761203950623535362001929204433831900507375003559442395217439545171558801757950075573132726489183365943495692310460472784285802940365579802801592212713371163091440821264141444407194705861283292323417683534717095596990137855037917911026006334126280915225163974551940297648745652892671247298209140360362197306424672999474107887216918992915137681235960226673354163920039798745791480948812818377006150202502328907513532258940366035385470654219506576126852271229884870068287872335899819676708140532081652949175191031534301862500652423551152829286818290223077366065886778639462483387537470429827801730779862211792912337521354274502068980370906742032548707043922770742826167920452907655117926784867272958626678133745107419071172513192195409747784967374693877462844752789298035316279748032296690930856586156094766583103737479104259772761632034139900311435277781943750845570694937553538623103790865915604294277528488041894636952690947324161990491096912548160573342462734670622715874007337588168430142023157909472070107715854956643385570156687782920765130880737714565245581707246570020209993181340824195627301032832046892076073149828696381098543201651438519852146529623779112658621128816721588229810353182867850345010644573495796031022499188516837581724410361319858102221213348045892769881052436283487037843908290758982843209286931738435514714212408420057908580784744337137900456753455881246287243545951430948860525794552416138854136693419812134914358637345755709389986874141527333738564334622794928880066870924322305365190227514323878859057733992211758966107116459755203750702005198016161358342656443293136311937409921928108019605646820779839334351298194338713683751021124130376652811143229796699456452909167285802848140768871788595128184293532487075455119040175587086069687768027184415636589960503225406752991623528283117746676006729549628861914817207078088771917942447939937092522803342772751626410258989682014392395906542870108488572282421651086521121549313208530792028247137608487902083815432202359003707682819151779334283410176609660574487482581976837816456692884939644298006160517652532349257111851856731221012038258354176583409671762259802351408792769395574458704167248786298895513513977703099196287488096740611744633231135588442602048547704544665721166055542548569035769930437847866634231023255900554300164150960806530507117838993199152373387235941988325610014083056334787648884665306593146543058486304331193906319306847972041096037927698372147106548760869174958885481730279837351521067259316559905231497880695582212300328267453759455324812435702617135178446086091224888841035363397337502712450637574507471819696227897790917698571573615977849478203275009220434740029486191611632134860227081504991993204224984085028649208785630900117938220474046666234182277521955441999399929784817218053499423740947810193719483110118758078122559460020298130220186441531808706901411106620660458675579603052043031144461471279641176607382152537204647799074324410161778742497343231321121971959326520655253698097641406932422635815472227540634900797826380724706783352035183077631837926610565691955330744871088672284818649170633535398390168753453434303555071369122756009847103853743787876132713882093060759806355042874969961848225537452244152694174161446057845207664643945894645319318518341916464737831656789770212902593866181937826742297806934332577266332284580018490193402450716082198438468356512061865878465226472588187537159183089173220756760760171229973507598326060482311841863651036221772169609384402423744757800473776265993347810995598075788678556736734283406592869937826581452368396083333650581902410388128556822966267448537431856322263304622650249189033223294575720694571309959778955261639773300435504230124780247309835033536264671340823198156200834111328847406747064694058759852754253961417595182113086677215667462209217428417146184069264610436675067182085036168463098134894638714456381252174346218024439334721777543748436766065588043533770175490673377520175307484283290938429053447409363782117628342138899274121415783902957205517729874088485786879819334317147258676980391061538967633490676897144757255657576362098041803969692523377396825920070677828205651220743695251078509301466397568540230902969188138006333533025100660724632051086348131776242664270482881543074675480115055175836227869786472137299311237577912836821354015119978703504152095522412063260234358698560350182447180805624662983636697361070621741599514062963357581926415831969521793274341423821139312872161728955329721355557917620892901312512024475385020227984242686187126943830613719804310390551995375324408107662096193492057682183600077122085053170761108375469776238700451208958722655872471688584839262733562834339009864938779435526226775979890594858129213516567677936219382503265882428766117233214122338717182169029681271758775669448118451043090004240979369013667929818672971752780080638193468711194710425887211625279695784006589965231398962015244817183289094438314321272149589715049115184672143646602361340848943927180956484473465115296974510886518369256057516243687649109139408022649076259297475920131186782655259260309156760715836027244954054497585900560023298798749382389411376179043462492768248479175403704607288967170748850863483835773942165166906583430279871226815869843025171666389664825788763412588449353021891485558054344428236395613814482439833239045167495969645246954810555667208488056675232620971026184135684544616457676082956396577651681528637864473079923853078261651176105624111627970471963196025159567113113299182437169527377746832241371116084137235646156827114906319285569123306452316618845240236344614067601942642408041451281527787629265696888986200376339634629563136897433964108412858113749699934441256102716023652075858628384865591692831622626151220872221010425030204034386204005070603391114547627142340616489951546123591214691856340867901876616963363110793925280593303094679136328333728735684619813337360461340940734412978928027679201095139310612179771854826680061190594246123697303137313485340891973486644983710839108012899938706152727125867718104491048200803745924651045293852528267033391794830744944078995817063820301417508203065571606547019862271627353394713789870275243511878274307272956370423301684585935741082665727152344005171572489308534899424101244571500266682136522759574500235724731223774879739774446467745808588481543171873130466593568562821559834172249465305462657927831494745031981135901558319288231208108369279946626376156438955855175132634305787565703733310746831723127776733977500189956935384433244807975641275825916521412575110167000255585914568720347005790781478157996580539859455125012585564838834076662560613058092187005240898507180444691666148163861281922140530024987078230517619535135645376733114238889713474515809987409626589543151650116548317675115070761952438310916681104666566239645607089495581360627489256740600687266888339650293903541585794299787444892738909354253226479333839571906029472697746278350661482317137192508505991855483143047658049169525538596869631969957915841425747975890987462902793387757341391716086220161471275190257920373243353509085364235039659791578478755553739001972789135070590364755626882311447589502944614534734313987996154188772153315815107053029137631694656384942196070257574813609575965565814983283007647125751598044729543445907149892707548409382724463527098780787337422174569717333109560562079945511468033177566517102427378612680220450371350184472522109289994510036580431834748898774054563329355968721070430719189376630791778032572478516378472661142759331571461317123475769383379224573261526769913047863010581271383274248246571393122286357959506915910066967879480275831462498555892817850331194319152071485488068782457819680936625122735731500710656697133699881103086346396853936381255115802230076969513038850988882954123907262225567665322461695503195774224367503960025292062495248009802365608980573216838691936816433637493194625195210235769948206459077265985180697253061009168101793543315245619290264061617765392743075144271956709915764101323322160054736916761109273543589205912856073391396885397985882666845096548759032050237543020502954785138853741726184136764548622674447693071950941896336605137488361250548289722456211403958058721337885989162097546524522241383367967828605660698485661758896586675567564311998226420909379140948505758363249950135939702011085381142596374882328313929001598560654971339088879128927065262823327960464407071987195679487745413158583791140507432978691270123912485844279455253732776820983808349988366238464919460097881052192561645995168313381828155854020799916164130639023949108156849120642299576226717934884202016977511069152552489425480646907721593263390112760638145782580982573699408360661339201340539377600140296364947874495722234902095444869080566762327936319451790092300141064870060097233481603393460841162438612903549942788806010205862804477679046584607163832297800996468494016780090015686464261508686423762008257486835844164655735616369678418549084557615685262891484964985953755850260327461644089380191733702993316410074012050354886410568258613074100409448798494174297914555077527048249760648779753312468292794519181868551081300443351522438188507723132889802656623082129456995958520585067530664583644831233346027974425758802688129122725346836173783949963831926627578835480029484829662515149400608013689154603538575400182841917449397102270762879984396299582836979620759147883965393825494218302907767740466566525544420594245920867464905682223127093350884025032773801898083882730464670551443248016650466874170618443793384379588726560601664136221547372164203198444862278388637732392588077068682793496077808688199147224880030341935177444110660746591526464863742968331189196280358667079588204246804952926093260159069770818356233965445930363315195845610499206102960235654358892166629190701734502140454522047658545704436671564360219011219787735280551699229525394838570583777269053215757550336637155224503799639492091750865649924268595335977859835757804159583178952228124559082501272382266057333391537233136125516190615993207399494944682200342971010257568691212375962347471487986353251455957481269395759394434109482699146864815984590702146666347778728735802054206360321542169504170720407289453100408369485736982421631701389111945400937211936364552275222344526462830511978805180350927368323606307395743438534498697551534430010968561312643415627887769843777967397517426474999816260992902804007562260480299905504522641235052659404861043647964092103300238502247938524611034800645191117929538508412474337689919172026961735526551882369570272554795443744138429497703811983524969593234159455010739256687291057392390221721022216363216311219897807631988432706825465661637257588925164785753999034342315271859838934351424028669566676331392207799242241310014527111549548029574782355578846848667291673670086777102821019039784827740295984949506893722003409314497579283363392342092453695022292637308082739181863404071182726206867815917678777962285406029949160232920961582978598618533343349901279091144426031173751259443546691992931765888771952091603501418228539280368095634630980652140880197929880336786833755962805683444535720214947238517810457341622972757698239380390511107924041371960390744218035682002450555078818600629960374034020941667769081685978059985320194845195414755058115459196227606390535749751148602926323050748574801809794968204450764987498342325524233823226129125078404050984472598643671583189237536875294312775273238101666699852671848927751147694084634069358846771950934925247000135020328090178845621507350442443302294307398292250794908752901670216759660202685125022684501685044702177692620232526391541791385838525816097373903585759768468293844743055870035397582213195452791200104984242416377023449681611648372235432370203480839309451816948600140410178909688093292234709533913895364390898200055312719063920181703812779261082050393349651941175565298951624188436197512723647014354695709600808897098897911401671178931923089779914097857865550134420075609123859047560410492328131667827337735410445116528733806797841151263771405304999398904275328795046982585774662840842966772952805660055997636065441107378653664345256337742119799958271869135691331015369493499011627571960862842180159552504428966066176819669976890644269981829984391764053177626952092973200097316249564296588896148636084930684613990096265426117261607121226773618939330099807554585709802042821341729759420182232500214130984286194729611677253895980824283553827088437472465372525709498634138152810945853327470243423239072400216121068169935038235927516955088935666495746508152964170870183867190873207464806884739464266080042100400825686953881159507041500708723439614838842385930296891591472480593888008637623119221719564047040365563310337955555573239399083699243721108716787156633513854608536971495884021853158401755586913944156432008790685914765308251228512586794744165441843792853160369347602987871794593940836582274318132416112271613207798462946726316314778532079789004501295343303341644100171115552212772372033521122677829456729316316924593043320765587626268818410045885314301387641671913884701298265178051709536677567756506576428603931578844712667069055116668901026195925718407584129782656781860836966702102485104157119120570839437207643389981040001122536399672550350912085133539967073173993871988229928778999759003064252996333880727330494132851261537831074615857227328031331164082626761062672980466106836675629589931673365011360761283893524803518509508978383768823630730751644185990515048439751630639051067535821842017751191046954224443760326485802384706710126547759588875879483095067707377165183625505777614218582810026502217677047952910093386361399233671039437500463062585721879145895650243909789574956352200790917371676252090662077491174155533253279342401284918034204613728224126035507188023425741787757016856875318346716694033478559720782117386929874685422525446684909122293740773714583349722234973745837253329000039333053612199362886542945603351384696145607504260050693815172497816650930162520533569009990383180860302893353445579323809726752459857250071504338422175185553797818629109198265074355503093408191574433430529675832676020604554198566949862452177092406029779042609680090535850914014982073995177538858084915262097645616551017070383112234438778644615344572269813762406608681991670100515130173009337701284845478105605800380794361488128325453862693188787322849181722153337413382815910628639457841525464837101584323076035633402471436613295032171325599797262084906400802855860730946635747199645806751529784531712765100089768460603309777439910554047836506705549077406316885077624979515178240834160619461163200478342910414219275368751437096461061700041014878895882141079264029193485181024125452509598430296777116537028426130585298997557528739098629880317785353852291052167685246515664224727200406371627713218158874696748587512681475839219971564592953129957392607648617509944143256403435850676354146880730697195041296883929145397072956310067030682740327449667510839867526174401135822796413259067553087121233874797482181813897587991520646560532771591478978755994626076632478639239551720734866150829426224839643330748459863498757520045957515774850672483954929347440100889925654928214368296412649684865709043238594450047460724792947624811349402771689097141546213753953322538830877158058304594735959896578955313928446491363769033223152560279725383031999577598657403753113993949177983746843733847198940464686110610527540222742965476910020821283648015800092530827352194299260023208045016175525664621891239492590156843977696010438210969329922813920875663665122107887384356593806832307870989169059368121705995493857413143797673554454465333641439187749403614852075267445494495136548023916981294431813826559444459633121301379979849546137722721213177974170812072668849859665770721592787590080574140293926545357202595677320692516686674828685792351891785491386736939926807333011702807302141931580267193703695241762720302846696471309197571182459156938996679868462317850111423866406585987483585423805444046495654793454504036552525078686849679831355776232739367015827569990191182399111242336619512647113914752731872216388900047682489951302511782697694075009252439929856153302778785376199269323083034561770214926861949925711372891327904978804472174292078290166937350692489305287573145670863864662864140023629235202143416213813900252154040639823879829290487137330428741665707627415652962509016055161635982551252389241865509922879777472334578115127569088326736529646260052807828713126533803410384086776655009919427059854611483183222079541904222760007342111850191686694760315918370789218959420347397998126954494867758637804277506374566469006659174214681288756813557897575744684696678463654336158230094885596009873263075684023439781530812957552945249759447721916280914622329948427751428676806199612674752881233425076897766278360625248235879372688036548970271501118145324724567354673649498159382573792683938289709088730798060959021745694798582229143202279489477745171293412862184656585575237901347340347157853347951070152469518993775697443530170841252157458906177140692097129052160347878464988434203007001302950876493114760485247709670357430251339934051658721824219917646268688948993431606796103373484221105449371933156945020295577684767932995955120534491407549359989663306383538241586499387659626135133434178346873148407066105726816260331820713976473283343782406403204513792601258471205490750584720136670815618740735610453016156923181009289750259874426462925879404758046722615998929878247447672357117636593208081775120452443069505985019602102612614088501734240982138241368998213149010711690943813453829229387094635590960404294370540169353108056026050961027046006025742435810323741722344304627645789687762567800301231002732763252981272000487287959742182737675429907415653823176660993628739491798163561784771342660836358677998494394443992667737828956838019919547176163312316298103238698254464291829293225374900145700190724200841116207842492594940553236244475190549554917242802198003800825635437486256817086902288342112932047433234609064547282271387510372006273938409673272109160542118595378235803500312296092562413921466404456724953342342372034164471413757930398477697562740121082284946623104939873451110568268234461481317881954179652498880627272959937846003616771161250395039164115704970641025925934181761562969041007855219577018771133667316833378797001990908182285350074592451656729882798024199891618050279739592104620676150701187695566788435485570219062450589641569103718100322083481720763612174414617179904082803860663488378727336223769409172276459091572670783379894890650446417125730167590608670145468539422100506225665277429021199426022907202069171455527213656157082316178708235149868050181098143620373305580894409037760093459090622686884613306732001457300499854460966856198333366685836696552723002900138509960939098224477244366808756882744742018742838193470955588848208624915573085747527552618445579725647687582323322711596318631385441666980215406848907268887853881944000737359330032100398624709844957674574559081493140977000606685709555761392648060861611481649649905490929489294121698495378111154321142373766887729069427264285403765874795384029006327813920078942126815190038020399164458145860047641060432388076238491053162465954715860153080213271406532443508005194735313343438388928071857809330200514686256542711034282529896202712921145552476241537071396297530171475179315611058530562581717921346128553336691688359588472302004697136791088623407013087171642755609587222675162506283474910280676564678296551288364655056890099359221398139471761463405216676163270292310570888587669984238031278489193469649985154874979827189776907002665090519552059666768140601201522830070436680328148802663685076093163034510410347606779202245043628861946403271015312215063799398898186709095462302544588994310707353702865755554331999236336947116985185744604300393657431497434584821492274791716990732350314192758627727061101081265890740319720179600298277721197639575365194764673582073401311603197453593496240045931572760730764175340672743384064897152772825690360682549307577760956529395704878519201481846561465656208177712390032756368940429409168722733128458626279748022637267966147469652656669216449492219374853073166076312808046889572955596096196533287983715663616797503513166875134604511919079679804654363362213714295500640348457840032607151609284850752217341093272350154547345903171519961381844544682195278661568000725188225357156486934484128640241524857550129064352761191075090748027110294187318169712750687214571618657782737827300084702716589638072647701145264319378166898238765910996973452289774328262768577323985686435883473654957468231725006349418985065166263585375642407150238219064811983398156678986040917172082902687265298757430289591964791695750439579444099830498895985871722072942785041912223536263433942567766328734155396385955263236927971676290248997922715558668893717483969951125451345850635901707163110877850443324303088699243683746096464288747513212996427488803080919409480800458627709304245893780639177334911745525744963718455720232344184900117744410960548018355223835296047006572323515533568000747803464613833940647312187127737368838471442376263829624295036680683455844633144692853972809294420223978041086256414192819672013017472052479862533209253219987948756424814901503773733121740377731840079032770055418401123187573459070927349154339801588039238967174701330986307117477688738550521089968642473183013830911040635616816149238223599265269401022044094536883713831550407693876930999049857716556329319258410334278593403881791900762762075292978349261073692748089759540584034450943520972573068189497298989092040168248214238617436264266467979953341598961401741736907524891503339750136604467679344497929911124305789464833118931366413912440356611303173390241596389839157293611235147505516619183753258873005674284332031427116287492795677843369450103416976008301128576891119749499646990730773487361566618557527441682775553780995972707514233045927539250898886850436530071959139891891618464624964237056377352684655622912658926803524626209942437713604941853301594781413684797855246104882317436692090699060828332126070661757357185746790047029039482420681224678274019942920875781250042665100938324513745419945834416261084220587856330900217634259716897376851887770403412371538864528638792468588606798204336933133689057948881849592602512588081013216773072976455753387608301911584491699330886385077796022597194006718541214019585660523135252232901486370054376770504051117128099465654894239904727972956010653177728053224859787160327393844315184536402511691913738372784227162355674951857344437363087315174078634947547162324875493907135483905759743787908718878979966666024757779526049598747274144931800033380849410737056730932646811212961717833535246480082543292462029430028648909916617950016762128994862801402488399692675380448341386273798052572419216651986855841564339965110525595813297478226496303901576282444517389442185289204279903983543094464040274843866352631663375357750652065513448143865243061225399018375548671173440356324786894332872431630904551081864142987075116865570153448984316573113910646002307534775337622137182087099949374250729508836690144557009575692542138581124172067391957443901323969667103084123311454655345880274230332179911294002693961152027987716664960367079103443611264928506080674375931811980574514253344347274741815928245163036880644123433554402680391401630524725364852760388077327638818583145053234259723568749248328630281649943335092648316391419387936494903982082761718634040104790181240955015397221888009892255409538282065842556147878176682438839204427106186202031616362176746385156285878303678907496646938769725384557623926931184848115132450099451244167950913528295507266662368830224909532578966364151297522876660304806506993445921892361681414780100229385890645150183232199839310322929084561406904907718558428231416477773800343180992355899062609502708173752525700329361899908790767187072227917356035711908830190226676175449765492894008186524084334299929474460378452037363243171266631651748825289935297196770108092446447639193850340150686732588697162395861208614323583023686581021866161077908919577790857649014583231390693522523271974650503402336387284797514440863190281259251458794998586717176672876813843600614449803504835213147194632691976307404200114469660553172525372893937285540829954700788096163069276386408028500057074525330565126975151759468608320083348999158068147551795527247648690329658579728990296860572544296249692259179197501220770352555551948983023334091596823810100179010536986452633164436783159227523989185314049720935654055161658731427234257018657648065115602793340093807134781509540617137600598738019675761091598036731446334721490107564061003683886378574664589912389022600736432982892588305226151705110698159652350244777097054377409356118881214650708699210239447876385611443099953999682701093071808205578572200703025154946603720276103041540418671924052207343712160350886715322594516979057026872809352728534311409671527211368464583407719968622901506306620488734510968519708840427156588094417565225614129265134192724597182182179283517028201791556367739422046734533892897585792945627412021268351788432796074221869016151964745804757019181385613565628003406767237948851257651703471484496704017441986788163853269500964513459975077817799538476806996611454163831345791869765057896593595644490141390217263086425842841797742988809393523233818077333509512550624362538093878924970942076506032617337172403947042665566746008629906298102300300492641898379598016610202402998781352162397583008643685417944583883661072283343158675579390962728585968245505227199592703460817137914054323875850770496799115934665757336382433327227680947130978862804324502636305523398921989081576748884749225574461528535350836070931319397681114020555785887063026202254069324622554278803472673312683376497255713812475431050300533384504620019991888133343997876020841220398263134919594501409213340907843620138857850016638289750296070374099596334042063392105653109703370096532470203097362909868710727298272787537184442182224584397070931365857804488765743054884090531311810885328402516108291272208203916061176570081525422220722057161137459429632193667416760019285261773132587505919211299398734516943122215623853175262018134392571459496891109099638157467136984672347192145435278857069744356605350166082422368631485132799739444047812120126560884649787369585012538220189749329137201764883766687939689335080001383033988470652903232125614191095475125727195660715000718277323062200197126721128963650085935103463590587708094299979636992119474950587169728837972614553642440468457856385578191860517683996447482943093922576676676495569769285550847258217532452231262384756912938286468962866578550796657649905555177464307199505851281856945375105644836972777631699423365756649423539868746689306545813846386941413869810262891582231948903936065581757944488545519346776460560074981501767526032126080548261123882092600284256313456246522278128691753778129843010353481434195719905535760122533312706714939056034536153212381956648688440082889142563257720105553913429641449179278918479767610495784696279103183841738934987398723165175979010417858840731651069741744328295640177360962125440252311814959599397372201278370422469254335070283450681907178615595641842548989588812666561643410963884993884573289819684391283444052659017563322709828914545848950887247211490967423095105698867467610939139172675861636633694906044745851614662264051736646427935095191660800890516100851524153954790179606227516786283391040811084562261701661991823050646685287981132922450287744154689641750989702392279888386292829213420557688920235175439609446589237583093570115998844992832024144931731046530888252298295207668876136546413733828855118855863881968532897611652705845773104605276915930846240184671006007618738646987732532213783711927259553742510318059469820309387763384039515644627099061725682467064534473240620622878482320889875224520541648028739479443174378446054034909415736930053486140725551049272525595050880563906918681420476726585713842181382303544985745989773008809737124540768521413341171625364687113379648224821672526795731592819507906927927641130757731836833768776602499909965741241876811219735474137329181086965313840245346430616904289142494079297132870724874334048829447526212056035765268299656313841281861535739949776615365105047518652227498229794277622480017049418515483177924894928818744928057101209220362576177925668335853455135345451181466279880081762641418705901646543903729073725887184434275752604833332941403206520431327947145433063056840235632021466413427313124029332887965432697255654231575796954235883288627429762255504273392843486094519904907083069796494592188054871144945154170564600329932198991200705163045924421374351426325353901817422668084885321863129973383926472231217695882208262171811798991124185461344183988042921899186196754837282152088672621307502356998030520332956967640196869866975035889674965467456469887886103762830970213498483437012069866535101397643901165497148695398867331282941789279368058880564678223635547180596616340878740611244320089856534699426098927179451174564387979157680872135826736756332651776763574541358213124854552872505955087820864133312493445606911900293920640048812306969890190935427815800121832185420479523353398864466536197089066239968110971412973563005888277700181117453940806422753126192194136434217148210297473735056228263649154393181916785700251413963922847809576480281631947754710690870469302299896922904733047771894773531694021145632420561161157074804719806818076469750632368493021547671778585515520615845897298090729504190026242434564654803091144173691283636870384713651656038223792340956154483130803100488425540511586868681338332714040770064055799141938633851551077140868971912111352644770581404846285002062622534813564391879038416692612540206602533053585137317394523780378423087321704505258112204208389974752610914147307048275216563620957431097885057779523380447963835791566579719609408428179585352922612862896536016746763890499714926434500797537757721685761425953852820612620915032269442962013905906238987216366923533765418124078918865022596947484219468734289007707625670536110652564507476349299245972545151305758487705041749671481728012730431766627440382980551996327205568317749608560116767213257665421109669647012759558921234293215907045159256099549278870347994624905051570784194522357023227196317315168258650249294864054924425985871896715385065542084820643425426918357049565734310507683034623048829461162737875126408769918296511909789081028574829945232821801605682988919325360997416487628848862161499976674453843408205964481989996432750418986259946809491323354286140860787244461424895511181280959981322221921425330425568756902292162281708442182167097576833572766942144756582981483823135050694151644380877803525799244292709701172267929571645965294919108495203575338626850274860746989531020332584072865932006052378263204716890114423630271509920980683741848415113290175217759290866363444317031437713709574288655036864559969599815408159114800786535840900860820356791931183157074452402697712588500365737819341444228852986203690422299732150908358399963579090954703597320602407537712814566486762336688249572293537860628438240994511920516315671748591288994794330108955071998954487812800061101072507831423769976829084388572514215219848590418672069742564109204285170736997484468993958798376576644734009927572120052520907510054445831261084910749792703372205420727989410853890896015345819419951038414386721783024119416382593028287808425247623240707169466457656473974862678542923523699038402136703030238873068010118443632085495203099488331484587134104604792687518982843563515918399828352074911719772262122923855543734973841502107154671497968907400663059292797611257751250272032963035220030610462485278808383450492037020563266737813876058659307084754209821727454891581714855097442921049695287669439115443649472435143619159363893592153658833975314142341666656325409604409393031724125182276049509756059577842402940007500837523470006137107038796718713998050293317050001976242621710021033671803091093407776196376930278735954213795333471707879957206171694621383276460962582349494927692147418420771418527378484318814527719225172255522219005136305271105078840215965782240779405298650107188075254537848152797146077937778019904171902418134567854056806925169878631171004529302124576475771475121537704726719347039939800129290294219140972718931212374291576297859934360519617707511953976064155206290270379352365276027488231606282452538651044555512492456098834415130598337417476894822826277025412037974646487100455385556221549823177837736400630340968234354038465908453784544931062638225338045471218645834960988013559169702976933193620158789679960042645780974594273797097775057657349110020825765310614613440515479543489504028248462571978618735325036401900432219720813702195813122540531133263051285704033849241898104446275281707531145790413996117064604786737364779766618360085800333517567947904835401246037155874231021034736724440134897424784130169109050131064568028492665471427825657842477246756515354765108603032722158817267062046973232497672876536875203635977604189301272778060892811977747080195719041512685016431348307613984387206270303740076323234254950943315123562408837266633377028868927636268608025483613448515358538747296585136799151429164967751269708104596670650746207817032633197650315133715778521313330788438606314066932758205479176524564029238291924909661860472533204120649758419153638191208037769696750978417858898160913192426645880116115595427065491491968830378005889999095337619015932333219533008824938302036514011141049840793996435432443508169511708053610147257622221865716048890335819892574258073423303076836555766237166023857543983886113574890536343976552995511079481092916112561231561035675339491229009363798009562279442136968925984677820696311651811309794592979030511921493816129919442966340219387336881330917572636696768307313365376582526248844493721979379235506327843862426644688894312141943737814731670277851639532392464761781500663138694626431400208698571220126968888192572578941505973062498436326665554106012642839300758977454261382232771156352363923566307402091334186836517117582775850093553425236082833458631167803359866149308302961805150082292947455206037801828076770615788857210718743409607698602505782662481348619899631679966249924367640030065637071103070356107848418041390624075274957162076248809073383965049892500331486869376728422166190044989350670771401714602118376548476897063296679931459697925893831141483042789599998715208503107977220290966311630289172409857822121338131370335212791070266843505103032666772488674321813095171533006650737197534201825464002995457640324681338796067615815881135418956530046291326374751374507767811199793160407542989346175418197665028024819048493078996051103274242876862375186793090861112972617035221477309769208229439305745706511859771007640760679154508667195957876224087140745597011900604582491139807960507702795118983474908931963647076960010870111049340896688039223768532992552129686707240063587327488501706042149535674585013870688013219849334951596346933489173417596729572291122508362109363472102068143313920664262111649406881426940892355927573186724137092033171005598553559599228063255202492184733762765319981170640250237162703573280052543038473496608807488263836168800521356733760676062644301643599162844941150632050147144182360524045806132845693176079915365635080203242450881029979704252262648475215988677281351230030708067599559529402320765799446702329496038065194238597194144045402844166258092346180958375777677962891245512480110312769442392259536415848624987044017267124184773488082726260453957295693347043873423383802587107246583636853454797444830360468657745426706386122844244228553893191598029333900664346122983996907232422169200814095831253101129187062036470338676093284157800515463644821663194078298755857526444915663757183757906600081112213860618743573555370178222074587370990803961962751505446434087684171873085321227342921670701292150214965991710840936536752768633232058073823447638530621217856825814819090041942919392326986460586058684909992167621511098505596502315880969021962740089314044777981252640115511135956662624418441378465375798693729676510114283682012667473319949582383110099902483102024624837714560900802147548179682860410394406087180726954580541730403017179429890606199095132597522895677502099034863619156900011479625252430335216069176517633461830349506473123964072898764141102159283740532197370558331125399671066564212615938960084910361289600294826439797990633652367426242326963887231983662970278198928168955910882089801872155548165830469846056453501361298386933813934165318235429872734220338948538024710224885999676582590335529459376553759452871951412066638583455336226393570600641901596095796871319107239722636888932220815416142749904502634535312135056626949160738932595819317846171556915340716670729190127661673894270386620835657175910111594161377911614794394307036269858085325783692947108470306510899492135819065971210664455618021377326251869086230899077222172920765292944784219256836667246748548741598446133726270317004220792525749473135378188759126255867404876154501876473852414971766132426353071872123610656524076947704232827077313215599352013799940989165074513201042119279866267058104196473056205646276289395359013722222301512499567259213808543970954583225125185162373184166927194080383780472861994961801364624216176934403953705355156580332631368332688324339941645656105238192250270298974625997590063500393200905994699752757748614044557409497738042180379728107345045488366617287360737309701087483421919633009469543917324172913126595443527702503248010298810342527221164012556160400252930383024048069439750636584571100207319429764957807705759953640782579977139484840368926153676805139571845033107548794927762855395437673508658781636074175794570219672505856893903374211082908338679179898459713012448976583689809424818834137565630932287372054306514996234882937542081553883032134863699645803949403056618021061362691390626653674123484397836032171763080854876074678945942699144690982459758730899839197450098356274729163803570335443590003483356815307496563907811160815943096753671024942576488729694584251269786887584744452180372258083337982604058310249564141674611466038686343445799020793244733304739089153410068100632958975474568746267614046705202518183675999468495313110977714320851700357600094778024301797159531836476768486625091443042470890989604153469779376243292505981051750838520424301194077915006077609247200312631937245488289435998791505884991395158568466814970228704097166829077958804637141870871517373836217640650692278989517347924374619047379993024795219240996097555006693267966707488211603288423538359518262114336791651316042345662171087179086364876465935605251148807684170847300432830443266450988958965159281650759941982891077001052356748218186668389874571223468125498696683504533629561539354505360559076943246157326022178057652857124265163166266319889611638973153276733231201494400877709008665582372332952319715637474442926077599573713758998133008003656898987636229166285570358728049185538864847141325173502922739825985086687957665855362359916041751131604950068491619933420540410068287341815205747901749147763927199719231225301503492686316168725559775791619643910251384125506410611595378119443141988310357457657364734231820679359158208406007217255193605241124757536025503527493088400674937273366601237552487928308193434647121459892051750924448528329244333467341913866002238452356740098369840496192686447780255549851461739451573745541543382116525305794121458888510551554790393173161870502441238788196437399947377657755208179317830089085478050121902119390073027439975799126700889333217228667310262432306607745080537782981760374507711249783603480902777148834137561841736745341863442291271622165539350302581953637544808194000702822922548569043870649833440506321632898959586934678449774673721431819197205606009258205461225468251099950191821659342527004252135346281913315113723309483142375703161434819123002561724107308478229520365945028583293317560252347131105848786397901846946095626332709712950377583465627521879540459875134091984363526924520151629333421079994431616527433659406338057745238774088066741305191618558775178219771862702826020709256793846860428347997273653521264824566603558968962289216838614934923421864327615328380775818465550088011748374299021104534016620878435871541526529921795032591335548959831187956516443604893198907685677900376345912248645744116218443581964446450449314676373488685412544687853987606495373060098371296321702356149566497845722833415867489345038308304605746477975564793385896813209947351955386097892356259720755080558960602192907370134667913521434849653527785760735179387009032135105787178599592424523907682025769859877269289014608773131754100435448987923265826388694132877184841575289041101738621430634850176674169925439407013196993760436363813352104744566842832174975518061013537364792451027667965924145642733814486739591108259545187662238100367841731234673714753427905525884429366879423675804734171995160815299862815570190112342404856967757927360635634424611681678066001493576902136660212140797837324109798273102411524848959003229987264829299335611221859808612678836178662124209599686978252265738139604758617898741186252075147800724908864132216968924246242522839383008463606350850581504407090017351857305584498236230293608174654876928774575829506857475868277452199795238842173975129416646097285897992429063942279909646137381493989283767291946212280133666638379676990550062309755683699146559324167155837897191839282942806433462230879650210484383949419991113196592512875858461499836565899951133013823267536906029692342917204257298192356369694260568340077462161855216368797832748829936462640961397938106103695497239756087411709213282359819771046084965846899089760426236163846050665841204406383937179901512578648808312860062414781762716913322762052695129637097939325118586233381604713738138711424009075333542952630928043884287178789655795063506372647423741227731607221101158322545507737559982195567658057195721229414927765266219865948172114595232576395463427707999547433594952731733016916929083302488159286042003617866359860518970899246815015728927218765653324621672852738030795638541832082866971642764757517711278218589181498457074429759125333032594491794910499521904716991152214391327967810438128270492656053681539643067592585325887685864282676922195196395646059652775133740429977834044057345726313374700912204081960399964850674865778464127997582568540715490933873306976516936153488669931298913086884754851284038278833684844567055760534884087029284840370257239478053690706423821064875626079991194967521916773977906425158790226110416293976509100628061435799297548236044870664239761386845043991574005204473057025973286305211985940634700533073598231617260990196529255609761950107398567336998903475192319519754478864498959043925158158754811159607846790328866918639530666057232711849084353191399388694072332767205993169921642612183175973896130574415304716949932112972233523385400187933885159072683758650896863024721299685067074238310955377979780920021644716538244803172194431842574585946306914341722231744863168579667232856191561452209089792403483412934448510807470609293365258409852551985803253633846776606557793378360124309241164614655170584849917523643415963420440006127356744146870320531256034081640130980394889061527704866560962685957938019623040955594126032307878371769361173661656344560451013159827234760254607981827030257343304181589781319219679938552508275490002094544588129799999007903366223549164655713696587395356234505649964333448931308277900203598968732117289522571676275034597626591612362300250132445595740700882341989413702228754317750141701317248253941314326047152364759138734323274115090550971533996142246445608881622797549770761444359021538502625052868215253542534184198346923546511955447847109394799323528865405582517510495558901603399223715950681521841997341015176986669979627793307738990859153928839189983932839734508075309972533208768169748460939974803637546314680366581403927406755943617905273320706393442210444574941476036915380492661847777654142561623401520618112968596665425242663976949647089668510368028085085989077483352682700456743433017094160959184027255795667335735932182901683030768703949456295471600931066577927494751031697229671832073337761830618950837936442302718371684289497473511267071289090080811414618268205464562707506372783594854402364607916140490874780405828497287617572739656628177294912595644162590318027264671185168666487659771887665675906845586601830033276052842344151744163947795552536315706156846380383509323686024586180057427649477596605522039817679475054556235107886506450785150968963317514055409897953946136850480547433487536970976714939626839762396351613297100450747456391371474700808180119661700103772595831018401788745457955910194614209899374783472023386489193872461402619331842200520539473818432487243156875201477293435748648014333424587568720400278787638691857667864596087139656754745030878032616126299804098488521941779832003163742986673032445449659856052829815209788369319476222568503025999151318765300508492697063788303319629858634127706315611882044417569433193468632010236715698470584763577779108071749381923091179764496988801718138709461405177675618304133064757525815610790360700579599593527591211855312154292590158898362924167134615239510819740515123680642206331266658218110749151637776233907798723184224526121249882342111251159194447091297893115258529700558660867099745071166494607515936466390173643629730419600761427111476332986757467822032322503382746606300617174658696376290649665774437247685817458009489023880283325476097349038388810251277822359109172546622024352640873204230222210463045038414131912712125492460414657718028353074544412224452019309120681542709488730978252483374660026835562456501829656270389959653403811811292199775845073600895728417832114505757365862174868830272155361218246273203972201195123907112152234483251931456929125684067051242998412135036641983724104377757355426022374547791418218441983626227446145968985588873381288139856452044172017381655363120704000178067370578910300927776514824880527012335048821354531006196341173682631781851591321723063137182943863400268956154950376905271271147634930483938428051934544875773085227313374495263101287125297666243063960548515166963561656956333791702698570635705134888400246305480819348514999305119573818635610448440624150294538484100008107283590309865945548614198467378165836658529835622543427705341440164058195798505658866456514201379955831973733134008921376831048080717842280728931835299954820568201581301989223176460421117155421227209654710648227662146091292332232873450146180633400509880603340729193677466876681676932161625216966276545017106667336413891985816261596703910897808864911199468560239819541515856639399255106696542742761350860631810243795464612641907823715746579549680584597509155589706070991961908689935649218893111671032972957599207396016776628581474945824756987537911663513660514232419090499600859118684537950712018034093497396374480821877066768662954771205764913349224089867633785348527557895445560651160022722561622361676966492936010637278091869255313760542417286296992068781236191181779885170965249200420737777991858969330486611127617473670312766425723960961854214995935558687840705134780830965830633746205987492662619009790279562140643136308231230368859497164099310555044177988420144785289035895923508149341650963451165630539478010601686365116042832772847719906534679673761290659887740606442046294735271062210593101809066737346296722027460973487748655807308525903608257405024736111383187924099697074708778302667370879707426797849992086239365998906874070182657019578833795328354316153565968711157420737654173240696786990335936087293155366620863322758871173348619110382816437237836905110244917183051535541509007057184044476717736266493304668735435323839287059313245920737235808197688939388618837882524237486641295668419110904547176784201629893355406923831181656986893569648039552369421196413665205091650979176844375150772747509181418362713173744888864062595830289162620237915954148533247455974203373384837222663385002631116006680002575063904836937989606751038110414995128672686783024045849793669104191522464793795595488879429308781836445064570866480053304504547360641849727707637063672809556204153217658757644277940171698661461224743812708256388335398723684562080435660019149819471627264918927386299029862730182953737941746935117463241263805866544848934710763912978092271959959099274886557613802143248804537458037089879777149266638084042292168283077392236732429174966115676150315510116714142460211724321999496043506831362164441264069769347828739948674374417599778583428094204174434709694886200913934728578420303877214504098870581320995662520924520767297013066910891859324270655658716387967512034730192385979094100715741700952586112402209384517725640628556864808753698525836730849414470812372447901634366547994700395529357770089011259148069060464738007883206066637755803904453772542963657577799810077327057071920115426968122870045004513513996645300462106757429680059913651113813123543265359294214975636889163333143141704875371902312166733324500598357198765809213592468354049715919309032927113119718582490442517829176460143494042075267560016745448256049009445171203098986825763957579182918173125814098691683546107108980595246146710797997172982705522015658005862294027392849585453743556138346452071919881566229572801769673762965391550587705330100144007224306201018160192647632483728474665107101068624733849318092674394353826146685564439407588672098071926950543506752911646567421217817502419823469881960332872241328236847322332599565314841601503363459307357461639071340541824940314808235689157513580832909820736203969389300845936630247362280825492634032806806654647702275908502145112796078247139703203631043390911913259189653170147955066051159301614710991254753766930525882364991048519045819895048902462642547849199836661737420374140280910975397021710316866594698162926829413640755552242523812554996849182187353546026812208907936940499945219300248332032683863688827693103950207167877544809588552446115087565315334290172587225245855909499319127041484774120650010020007567023884251497205178334214624626222474614099874112909964640012368514992235312789579864713997548401488282951752613723918560374097517151822072706828990255436840820916774417606941963529005801740871995398783330881015946231787286574426679447670059663565319715383174145432890420604769009336076034572368648742821603270935493586484711765900482755040748111993697811645102922055822714774004148219335394838241613376528319901023047557321206190729146891957081372155978657289144735034612060214446550782662048962492180753500696760887680966456915035054677063606236998199853425551467737409359279901149383512799882252955295302948384816758716566552741060692636880045792958495984528712085480727652925973066502094385699441521164642024375366154698404683933101728882143332269663511733847171208053913167913023619978303446866516754886693623725668344642547892445476352993742218197720483753730758682615514893557808846087998228775681272008960678847708100658871498692838046251337810067568563814827408796740598564940090491761098980618452230053189844646984646811778840298540195894806715595796107752704459145622782961619930714610145085696561580759067333027139352810585635684593528817078721884639576132589516812287180870589079340284024328507064998134922841685714337681207404687876372647525733182925858508852170136472077997195179748944834756582411609664890815166132208235689630318179661986173432609045660188240392420812911343712672007495735854829452094890794690025406062292434675991074563502616741357250284087868151749098737408031088522287139273353961003874557937529252811483377239782129338400890567957155668698259964535905478893099238301934254917980252331918775830659185264321152905235232434799897397817942538189702671143727919738707819949228811826851820665896019873274855930599515080216520736577343685349736724460342660501035481595765003938116792470999266706058019863637178516925328298888433258776772714528381297527986920507942675494758409078093909812395837525869393038614426055270670736886303869783527964691169476857194433477364325106511951872488380679006686866163255715251339022203961242724763031020115325258201929114822354862448736253620566665325842844667875649944909186177231576892883151155010813686431316345046662959723384275833917287872857030191516125389900963510551329793006473614070941853859120592984825806106574098565393606699198372057272089666086461564406402245934724949636020414141514724738431377855727952755887325083285102670010290992658217853975755499668417364778447894955363417266196460641726917054022190718816851085273656904230267792467641054557859904462955027490722895326857317112898390244932145689815027724516981795616409731676887870585204810354477083385013786016006529693865616323172092794043161532126916922882323359728983056917418072969564490287058341189193875325741474497773263400288722837899185250636489879388936213575312551294175463782781465484975313547047600359093420076014927649713773496567916075259500269024422409333106995001378053977291632327727449659905253488799999131642221383885844988510637469557747647248030944158127621220396875404418680423312031891534667097816807285576319114279179647233309607083699611519646876339557100022067246619046098354338850287240776238972456766689939995828095741320793951533287190388263870031258761246623859804747529913750503058108788320458381128359473762377353990139335576242054566898129897516173506108597069977945298857104679928907382659435103079000474319546353232486932571239959481987199256492208552665343318396044916153736094573121189617662893077552879701633101755601612728468799254327336253160410336328938136135641870325773446656932278506086319237939385686845877552394278550892554539746625117254672113979482532718970976872426284740908033895060201167306322881185550028931329082953679764084314969658463153306894170994822774119744751089040024298133206511441908500605487404129711281423065997206308936537703100039989630391203609222701833538420734302848035832257643283820834604967780220538662136886015766920071858203017919753440770646696524176589388916545281442220296798901294801810958863446597568580181427271340975284241592588747049135221556500987558272727044451618742553098039188428595360361019010085175000960134100057999458835966917443414895684923937568695991188902286436429106583298324361099374817665484548793413666718466217527926790313466111939263085775802459693101277301716639276726828075597276372846262937124584966541069380514518223631316790830680547045343599000605788850470955164646290332376140776063908606988176234117559564534909234193226365776437656252095420219260866671723560827387639164809929176869983229908339918001319342990220860377745339841062264022317178993007132481209828328398324529091777165608130667912245124697299236776913031537707409733099258110149150944005922113219550661474396733761448768442075265714184183067933523441429631328111177228623249699161175997691525907265504061781186930731969638870113255177314102296357333224372310629275561335435592138105847372180472969255696822270536571435182661124918144513725424625083402391874374656214770078921332721910054248148872705301929414951534504722562855714114958200613965108412490070628199992326665017941325499598766758489212807933417676687129060434349168227239092664427811573925402290889642092587290481224755555888057539157385737768244792112545127315047176444931087160575371187002760571737056970981727908833754899839571656914777891094796606154487780165278829930472246035305203726002281430293760268555768888273954060853663029156746129701246390880221284415617958151079891508632769729031088835561313919862568336312823235119782398555863367324097249111236456379049692882552089857796045107827291847497649325137224399455750509604270848914329367232249170744406035120976845573793607726764357972921617203459408669812724831405647011579177523335429019384090718179664547723237139461890172393729775801695761810603106000703400538145638577729321799731227966438072875628026536223088154947062272164686774378363105457489721110087875736233682095312640719501011762868086995698858139609181849783452359968745105421444261434684430417745663892023482683496004415035578004370458868390026313545287427255996836316082587825624428221203476859356268225106284479306848849416211663319010374409876697926622477073225158551648726734731833438077186158799901177198277303423770755636505368772166126826926091905854700790235231848091718165935669120977995503678004843077072808120034294032454712119641348645201159718409671658287518104923624765585355843485110898431350044903576273633832340818255765456200595345657897362154656002228692063787844200623633445009992607474360998647695179103062568953832636670505257783731295540707192053871707137874571090425392511330794301305249879794065123280090038498743297686908261486167683361773373317578059068214081111051774216871612441932550566319619229648060319982238658388035905099073828136044142010287984330033101608151181744185541848708228186904127778493904870822420483282173916405418967368995051068106780254080426127570119531341796039029867539977437921647529165598276687243353992035761979660035210882672212541857232545653178189105437437303551689444016388355305317099006752803182503328541859660355924040310548347072027801710512393396945510380592371127252123441994956787029323393407265851670624762778393349762614684444813939903045986952006199397012940264340437466518623574299382122784804286257972829573613119368662996770406475293754461211645757602945280759090139788163990330623508847735896170898815396965768770080996395636114343371247189335580922442426410527277980164120830138092471903115500775624585489640945473684968251795340253513119452918078094343357737440486956322421007435731107332764177862410683111397145295619398709865210852511437764500010776964913865221777174544941482309083695982014577214985916124485820353501481256853957580466241699639686285763552155923552190598840624398900988831960928832288161516601437531582578438514953319099806441021491590235964902956233921613434917805807573470336002220747022156748066215535810037889751548025173779796136984261694693810206030794604920337516626013048237350225503278885452478349373273581305040068033581301818434035793309547277106716833078641345566630370598456315701434244536941659896151022769835291273951040282654099404308352246949424260629836732018390426551745367285704785823142934878032877653935935808100487865962828385929824118645016161246433719127577571912871088841630822096085414725353343421171214905975343950706253931103432454959069244406140959505826282213826073393535543739872827541870120000716020650420253534911198303957001792900298599995755827278630156358154353444720068829146631570717744661101434310763483556857496261795875287093376063462181307894248432196476538092196754282390238702365543781424072012030717223132882807989996594841796018016072010877399184910746387326725339254166157999582930646836534851535031070574199514085695316635117281374711576397476763501062727017245623774358927596208486551329841003825442802012153533544989416857146697658914001483016706179176285465797428757302421823579570203117366096647951850549357447050651221498629293817770373867009619164314956334171029518779104899369945950747655147316901607614729896124336908243106162732766476438323501145624739160276156951814958823620728939650607729173930899143229145529542005563404623304170780777051777286338453821138687762626812311501776397176821520301618784002159116054094371587806220717623400049465382798286135715681112565328879242860989097018003224666306776947946191549446646263903784012814572790473916047533975292227447332363153710769396873054281748654265042639265337896574804134283086307062842803922164424380925507718810797779379203134666135351782959671145000454827823758384005428397189166057743084495881172642386378289786843269457953381260293859079451336138650714247603445627656337971539104581181271286868758833371926091324520134837413340191116131104686570394045891807097114920965997130222271074046037855118322640649818067712584301703014308210859603541044601350448913366431257501826737397268139561005308053344754572302593169829145313879529629457772741251406507500848533024363933728013885859224928054127592241757155998617187984064020051866477533288568626293533361397285314125754480015797153988217262168242154566037075420989017049848983961849961071211114265189663057637453501070196948435060673543400515692917613677870641619109184393671248457758709125783136708686637430389890083126192238714871936203097993138552357601381234911390176426812184112524443841536036787112863617713941726949521797573168312607872400901477249823212914941810355840313786621849983776339512545601481339675694234427812584159062005339621791475548320507248670001155912164798960265511560066575817456242055906222371918674128589107527570794351982665896601856062285892446274671720916820476495597519658613958297628264677542947840036953665214068362960188992369416973935760701556865082691212408751150902860506360330716497137533573677334906655982150044546521171178688570528962804304030355706023778365346842225231209928329692920157830700296003979672670819967180146756389553754016405861082336200136154980233472521198243655304785169313968287221766987379829154732577573077323426643215404805243020699759635793831307093875695861587363739350185555585722616713952002350915625799323975308142983344266356814920953969852710193397208779889393791865231316472452347298336862466194406729292256905778032685636126239921596392005282157625801780610011248456659511191483982466293339859934149827105364814386914500441165333226229529111429977855391147080705272584573587841455618530678690207479575164150834701003858712392342868965949902895075888479635855180645892215498492218025386489647663302087367280149425297320740234445905839026460618097584170572044324257984428843432891143483377776588922082141758889574292514112910162033693213665053651887220879372290364991180640356579828003326806506875852294437473465418543218633893379799577518671382658678491323763003411904725768721507906512980874402785469010274799322338858424494446456012707398241871106700222854532409903960141939678664358802735468442460945366346797335999881358624936062158798303819988656121356618682013772842364969704022551213673956791761056411662969471780575984700184247611592758977432318687179409326231989325745251104370359685741007819117405973850275889888187486009069684588634326245118003533013223970302333936387653545951997252641186164404353218571313891971667329301460441116675662479473036207276562098103800979610997353979038737077111654909854001571528144444766007011420546844870887077565873695998097153470587539776307734201207535606873314007766730775427219902979940021007155923170081410670209058476744618233117824689906796289929017632407765704621565834556946200006735253538301391621545944041730004310198873790041187994395863174402901344722435826932901938276568017841416170061386599607877103525955994153085930650199561194183156179600536414199886193457668366475213123640395757984962061324245130154459644160123834437662802939498676200306920767959971916723989622256787635156232642303315845035008913684891015531413485228997125915682373284064381792889855012363565601213759202519423849312582658735776051691336297869748583662960264457113709515160594433950479895422867160898573852201431678769664969976192352877924746808207659313699576265353048376903943391612886937197594971569525447864916102525046154446729297533606150128757777877314804822415161896335656517608911717529039182950525026642819758899571143917285231896745462533712988569456545762893922477208137334096924039515921985115596751063057914784641647341198168468656972342053402472478142120422479773014461004150358753129661150006322569001687468893128352290280924628771366176815381295100972658568084554665073861663169707008316792435640846762647214942316316300233437521148196720433524254275928901710745310385478716852660124570100636710568524635692207438646118431741442018908466794295174074013852624952095911659251687048929029079088315458385837766969630864856865166307121568755936697068018021655720917323808796624605389286796488673938623042641811647930040394620564306431083138368766065285318610507242493212126846206955595147153269702023278951733852218463212818731529466436699272249238569129766476233670977134169941286446757081348050581743444720177830799691822732945420108220185785085564946721666876627029030659928547405357759442544518569651367373976035567081402779318078955215850982724678638955357256511175213125112975206737765565336299941294307545158927966841516985331745364680569698049930157325963956632909816267584965042350365154848862153727322723182522087730692816547249356986070425491727741690302153712841358554181221686168560206107732169958202629921627967305813757068766518406399414217166321405367040495458782201601503491888022306860300810972705258721913972127607274682756360300285536177367805698381970615108062481667922472580153152732211200359205676224045617035123214831129581202935781418104815939311757011549064537140959824275499175068814871095409131605387009360475267545987275323319641149814282033345369542022402739662839974846799342571259668082962411458777725955169854585929007655895997479133346838358345842512215253887123965766010723049289528437811347620851422809401579128485703843449838692222904403453697172637169813062984048760157612464804565404618436282930521472851753793340385876999370167899281033348054538071565460022996283081335406298949537928638345059969619511579208789653570872296397771903486666281790245546075947960726851980407684840772062696111764510527792000169527710171292420131372383471423397776906898535794203598678184057519231030246842643817180544470986761106213284859630348723372862129380490534886858194022100187218103221895525176191199141565614471255543796785341300564639461979592821816302702930604691827119769938589281081852447955572121217642999009687863318421165279540517844671053387246613963432159047364084669378778473192856818996224831032796787896478423008784660815563542855283051032677788976348519511672846020757322189861856864473574472362290768739696606981736764229546312142156756394717963114270678478777753242431413159022760169879874851390148146714383752248350625854941081277139821304259080251920178102107096930589318381633540306287451225522116297905250087294158046245467868946242417332085240933607334241601051041798024069941243558735180995757234724424999469828434504387029968569743834065556673830053930472240619182377604064006846432849557596822651218224679072017237898798483732017409413846021844625663777732924288501071473669920411497038232749400825731919117757781612217289752556247819119989942232586063744537712736220326906991634578310474740899529157006178554722773162781651001116132999165420864969366986134395147961613257865103950039797212945737138023084457392016310771778100035896008323058480742295688936572546436532969245533407641632413561300998362936139094506596804698904629959171358002417823967209767952392358229744856742934976320473187490026361522878806762120824872140279085818663449939589982744332579687890797650960928082813281135833657032940583678569714485935111985235025459343450519918731045106401217638291517549210565760929664705911436066819708326019236372853836724370491749555501587726124345487660524773400967156239156596998151459531945702704325919338751602628106562831789267795240802842021494306201333150557008591596221253612423302854074599084819625050299318560421505911196692934101414892713888939668815145793187351215701252950702352967574930111974576832547509449306840031238346713235610491592587783548494771855664044866549368315178656468440818454860150869064075874102398572101379469629376453876068310577462857896508023520968129938038176250630828236488665495634210334426754815199614913722348650641737549903440504192257138753672656578794585352733471198094475665708392853742893525882268311073047219427767187922671043569851204475352045227051311022880788027632335078644361032404780738609123949626110690617460193949595373225012374294528204854191635279877258916145452042132856417908593601103165477896352675687102159839003672580038994696041228684688841686546990607575520394904595854050750078992769033402379886183700363538283239206453916618079733605339863540340129483132534383706901970901311916631593768932790899703919841514027460586311068446552196407332715531352998907269355482680883235746875722502965914853642232596976802077047629587633027193550850392665721025390983792669449243405081162685918750462834960226129235968945033993037453489793135765992709828526667611602850895532727087119807351244196204715331009641862822911360295246792840255422148202731008623953337546907947030204218799846902165160401114910131279542788734065186991384285513143594414509614966159267302639843661391815020451460434040064081944568367616854037198513401026377165465680342193321108129000105652139336236260478701078534831765612736032472265736044721584460049840145127517400369256118012651249070189173845042966587295969266015460574499030927100083095171097007382496052947017250786289295618739139236160356610564295104036208110949295201517122429907729781818712550651131516711385153536012858145543054576817812672348887657138940176770022684026077997985457822853337408633282203515454082657949211776727030333445110824378081481223850828381797551432744053128701960930484559483152677077958150219491612713989196523671709446388700587424736923346098817088738873740014782237879531324045809841262537375990788724791899293945338720165080889301119255815008763214331487299080973923863355404128450582152018935825146474319763059228823672818409635078498765543824775442679893396838198700776474483248494337106875266238050099763802508146225912707512151208609358898274289498485669374046096104548874865452059521316184202705666827956524349194711527606279245600736270850172639652374312558131698696122303826798460307487766314101388876210352146139488890289144225546840222637066713533374687579164131556397306392930620546147334003790719799908389829199988664682951448874498017753097245649385291183793112442686032939376289791485654189935431645070232881531836286833518122553865525941163356562842204678908835132653988362372313957298181879659050007095084728338718656530177370101902977265877322222322957668884845574747655574967444239895049829500150091606596566375910519026360661316819887485987938427716603528816844635260438885302793503308915693955691856448984769112269538576942115005193743169330368574599981698336362844836003309303181946229838640037268790842341771011966081692291849696609420106233808703160184508160455846108545393422143637175038426503841665893252383863610279739467889701848068160617591410706102280061012241739769686569293915678506655060647358468565071181826439213020538738653563109679954637039028747727883843478747146331301485815814294518642950969819172609498066724465116955878222850186532842965346850390344506754354173517627096883304121445365939623520385666959816515679831904817745493100116006950780777964531925302738205485658116952575131382638436984411966355291451167314912589804164548641827982839539840418354430756161027019002375897849024706546102816963020137958253233921351711207350598856274378594978455504519682840535654252084255967341816800476067835510263728893209281428630581713846670611703899407451421122075966947384536433405535957900940868343875313760670092554555329448904865163471110203921034880854097297235369160874619351060684277171319193519835183920890393003872467772553420820021624584861634115034482874270741348761583835206081618629812881334411981682072632553509183369712821203935414880464836406694325236870885451764644717625169543474549343907357555677115334960948664645705268815423987013190670278342482698621658797050185673272599582244191286027988319017124273680365835979259743899073999805178577490957040774500745957615929876943540223491147400846117906148023738517271098316984117668037746931835547941301071561002170613348113765955027166493486083901014444473705362492059100456139694353520341140602798945902762568778781774752309967369276358366727809193215807389195697928842014244100904244106326350025830487887740883574279235031558070308536375812168159078578051785273127012000600196826149913318714462150737958201903277994441543152319469866797429322945190708678706982223210819265331054454547467420055875453147680536942080808754464620337301019089725147757057314228370174573359378458318551361429999862717919920711429606131351655143402793321049680256382288095312513417312111646459758805383137068778978685211401819535325559714395211711936140507143728569133643817221952277907634823080851337093062182379922742925354857732079780863659791762941032281902669083416150167716436547602218573515065565198899572642892406295259754868735607939296186823708350618963781566848520103217178760088970385224922151654683845907883969075734742090587369102508187810271376464926946918650504300949510242784713492650953509091454151197234979990706737991092809699267809748021547703183186855160722168438364564565447826436295588328232710112763619678335451562138507909567170413421087980167109352034993285911980738253237003174564990560137314055872260356322712104846705787655365591390346283134455658175146760329748419839271534876442525164930309959559593911294395482375406228902993082278207424972223350632947102806810385953696727974201524196609766138967043441761525963554752357838228668429773613934731044663094935776273619382528726220477090485915690661906908850607763010521816326323520269679782794850699456642014626480123950700516626181831243400845172151518854442536669066056866398376263918194869084712308999699719740893220940535822372376864768088007854319115654861799353488565962885985935882377595277234444462316089738134076332671333138313507171209349601477764310284293985451474350707861721703994291286923378899126319791774305601685852671831169961815956374246032887461056913572324377257818567346429807957834968765798918543622276269538784815871940780926510294336428250500093257480437519011077750328880879311974288618836253331473582516729980991747092064824652086348589088921199286638251419529648829342243024732651641150190150392308794768086727150383291125052419241085816599908233287134314793505844449025045245455213608188575273918396421001814843701882368702132014107328555123543265170474541097866551933722045616109019097845490223434680959154476551083312333741918641278945418247030735271853391527658839837870234636311977751998991343895749729011123307672369639810244117660426311363718251719254295064625548537912993957810581282619614279228145253608429566196314132682972052230259704006549323911361794987189468530036165762775964674978286732470715298745726796259574214422482642646249730468247193549933138271595507143695659598432899332103825606154706911591529692393035632259038371842428367320879648782276201329665706748749848571623001607370608903639496368533033382849965580692193508388458585872542216318381423123207598952398457249036657038889809842992228704174932973078913767500922509182453311969203862600517175760206794814778111459054901313705721720168975630776155001133010761946630608341556716253684079368125766901833616732133335110699623660445017635237623330578245877987518865738294082691851856269308335369649567117051580073019687054372329081376489054636941745860264269917789466551627388438018552397249280219790332538502469093932584857590550814240707400477980644917364791890940705887216507021856522319376994156910252705921613971346425829103390007924358570425688605114253612226439968950726345770853345463288269195372933055159420703092703697558545827824570045271804503091781544043658416187157196689418066748032852620745528967838849737164048572778609883471478779400718547507264423554967508777443406761348169299370546868288371202933298005123709753631038966370402948750012873194761475536902600720396458754948764200584911182283880926444686008279202716267475330785279447843744535618049420369948924729056575924745445503590325690532573814408041944120379405654477078054938291538627915117741328092535207875510644392404431457428384468305842760285673278017220463319572112187812513063020461776128878605916713158168232106159441161722105711984621492739710157232236113188768022622398215221788061783911548715694310784908423062636126761008598052527870860707295980630458469851146753352645970642071633747522001975660038068550297110134735399148052024361126290129450158491593486884650719980906966979968151598846382235700386322066667757253100260368343290156371762918961252163667871404585468116044421570122111156207676083693949163088238455559924464202624746846495284449955241051836980517230960660285318110459944108411478677116104989758258088836112376960956993170348499095473470779810997509191739550241836305795686680841270717840837443800752514357217197232229021778960559501703851954355612433213909652945948714226574111329806965803930199737803465602676555580442546567086811854967754609159000741000033650996648833634568647362188231549346526153893307001278595894966132731477398707266946043742801464781829848775020666810378919175767542118330348593016585900366877598916755196921839818155094420252835012584933910687229411161756165922863974014541678078373520138694935141540458776092424683259957399774016949046960326377664928817949720544101174487612370718457729776628641090846990690933127136444471411760964977012427244174324087663868659484961290650596300440080654931959969958707082187706121683854136034580239935686722497984795966534586946989008007897664775858212280877789028442450441936726601344582581721543518999496278796316230303905335089627509338011276172304283161188169305538135484136488022185411401029928732733134931563660904290200108923050404753187263357777960375898346125432383120898897565043186079076792620406410536575306887637444956522981860774619566204354066551222808536817559820519364493264722541354697430867709226771436439597311889131313810332837616087302727668527040001816928819727266407971712326614684381406056649601910260745548991726808477957863074812441887958011660629051311529212057722096586404654734035922556012607546630734814024140958232721069055904238625889361938158119100142165364659356988181229350919287912732718197020738838800307729870800441010063286038550244433090424448117531050703922610026336506029415766783818825650077661685950499212551512515865889469155960876020184782253013210103258722420244617055225833728721040482458918246491940773125136163991813622853301555520339493205884904656225200669698214830849964099846326131731191655395813851565604050590069112394155218398678848657027251685389025672237707178543383851544974284313476230614108071532128504773331470006738829882062789025802925736745777055284261501051741770301521686543855783116570827134013421339680952048388031597420177042411762151186095045375229940785473084380342870180696676863397617461631529258419756433336343986330454270337809929195455953684166816799462244455966266516099240040537941107470029095788844456291511049517889301602252422729276254575233788322083899224461480585500465980068102083244707890282660869843307024155886123341527886762669386334274396276764445496038843442440711784354177264517465168478577384220073880909227666635720568684272113824694339688311563849295587218141223129648861221712757151935380455002793303571622061641026564824526338589624836351258034926019833382031184674124305442914941036197201593876795920321796166579962424100117491246385755586032186385361060401080335884502509538235899416892221380999564060472579767796094856721431055149208939184619024240078571731614543094896396278969704693638123688571517659257570598824573782512190546731784426049016147658511081144728065513444299532015063043208073952108993939448733580825155351372842897104207806301506976403151174980531723524189250603237565230678874607778827840923627295539204059322768138251876543924543346231681558746708782547942036801226252673001655909934652040398347255684452585173121131422309776517238976512228693058126782965666706158396990100352170199011140993934064202122243289966298989865170545700888591215163440098746694449375298129390686510410688646652405503963974882960862169107018692407497208140790582122474882533444824657210143288016484333239239020130810873500444675788676795074636141049218323556036899529463011263321602139624073668555456268338311472858765688133104071229546981620568088422958157238291339178050217897440890819440397619528986637162753678873749293163724391172381163927504633800657302997582921748137212267880807208624269854562230429894036891253579802658122896568611559370811289188770565524828739310443450100277981473647786496542509624928653417877811185517701929903872026610613603656336383596800580192934872741398716069221121562573477993678879762492122120102264437400930671771233651943271550322767561935595767644540390483725165686169880104081972540522823707639199292832350593180901423462212534148789417579712791362010199796482058613206782110152851736876679254628441782628945520727032140301554381848797436816017501544007139563438847048138941531721910740707824130753578273393794641207692811605386737553132112405213585123857299194615878227740966411364758588177321637325183837361425729370844163472737836935415676976982145400419154751600622619977955095705595472002698390587653541047740053675937672201311192074670592553993610882865293145409983852695829682045439824030071381271816954768647363916581202647829291996242349048367786207473681567011150077435458034574385286748629847700948515821531502276554687408456065839302728055530867442707532745328498660762673764678348899157383329648902871575832655624042017039717244890968870558163472582512449582241491470476578497164434578933697047392393321380075047509755992345171881400915530733270695871823070664317437832596426867348925539239967030544907763802306836972513455332824512697415331182256407375126057895194505850482296273157801947430834868174431229640297215151990504424182829653376944063951149012264569910472783093733707663018878619416456201680550334430172666520234558653343106863179845866378055975287100608326265012317680306472040837370558201022447918159077784660015992774985119833111279475449824794235267424051776111981138504059883986944647343391267185076640241797620565500458621242020550319105419375632933550152297488952675170563932106563248803503684849621371993625878475365372988776005891651096044554298888607285242877148336998706697263058908659389286318187009079834330446653980037709763546966026289874497175535414988561632390553822986978183929928817693898437077386525136462549461640095541208756625570006987023122155203015211359186897937665234552247208717134654416142173498969738154206131220250473933810139997614470895240221286974568023394355653382572070763431566797378725047565660847615149394527900487373261969492237733643578579530567762872316543114696036990655744462348132533401623790102000666099489440277733346723470451794518979057873945959821250591202475308604457848125299268438507008415715377298094933549848280493827418405380241401115255448298267219607098721624056389955825578572933994685325437550025832197167814976880091153630937892496523613614221236591946083331307268867806973628753209310520133671099532500158165583738676951737960182398483262159243055419896695420283413645479352469993194993236377406239661683257308712989246200465492025986073772621431737969296927513143845145806765963177724320613444858220090584291382291009554201929895761422022588592948685504466240360300231693071290155746141942431288288565807909437894243412751076674790347100468201505766666517336448504777885741637379832202729412900473916110240317071723602477310975306393640722640237401921287329787583164873358749447538485140615838568532598639891722460843924591545507293334603899637170227884915393550913849622544290153118417557076214637781735273121895294211692158475624833337276965131041656189499594479968652106217732910207239479964786169427374796574490882955337210440315179527120714852223737702426931178147010401734191413132521946403623314473357780280861495755335530571287115802711986490273311093315835527939953280062885397657471739797232983704398085785706022448192635382571024622839683784105513147495359770995354235368300386364113961508653530532248269168789111358532054821598772935523835848349984537805274294663757290853854073858157484861542984176782125802119087498939787012783920573040307504658581416084672561166036201190572426639265379402319723514644650489394038661725957786063811064221133931014960608302904743157591248480091653799293205779138840249456302058548961295826316811192512844421087014263192688646573654457240678673433497751801717983610903412725676081345294266687053369434614090621277625569025836812051805288048388885047348344220561874699826810252219305863316724155557780260824446590563242256278352798965876471937826316760649026973618751243741967350575847912801844561755134340393408642193453208585094496581519897919062502176752599053254084530316061092190224618471956177268588088338162227280573735921820760650290013228706248784195162901731454508156391664577538925393982281599015103463239331138469581947453028710769460048552118631111379289316613877988298726848487481562504071482163749157218982991138661882653099182466268642306613258235520368282866997006042446807633159100578848271928733346160134768326543835900573899744387456061312349508787523718379565973639448633083578064601892747405570195258370985994001684496875412221037683042064519837530510493840483379411187617944332353691161287489466410383367733022419909495563228027983573257554803813064176910685304748039719294663108311852982294354003193917589245556745099024905381278468107417703695409445860189116979008934386031144740045402298014584228651952102272793567109780863979375747431622466262300499040557108164284513401267820357981768211253418796037127548510451449900641365246835730583239734677647410647757255973783432592165290853274697890723863157564306743132444697037784448172317111947758168594125582423020289317000379588097268436169713990334822298543446051741675311332672321039933943363539272687957394447293379701676069240123789651608422707897084838350312506898337155999414036711100798192335878421320588925149398083588803853339426388761852842542006546510784156550971146333070022945148592262167694928172808627032181278050491040154185239796934020588830861789493323300511223205446108737023837644107861113080862251770888528290580402820451076113771565091225155277128715377953487115622188416359629537533561463102937217949283814461520164132530757317268349931853714909183980113229142310035845492521047053900955187476761537779040824962375015202761606171122748378288479994687559429975318765080479066122926215970522190798749113080879639638571835268054164095414028128051092862830108236105239752282582881613272597734226188015023616986773202176802409421037910805852198002346406593481181423099052100729077012759932436176112974468449170527545992134075525974656800078603456439746054771724856585022887406154827869907702427059610028281331219896166640777865973714315935698570973712965355241791047491445843505288543589760326811594194343756068877384467065111011548612118777547939583461495042931799652897739798020005820428858267156325656430910294559259584387132977043083955281302192716219231226851448735559779078972294092075117205026814350292130461336778283843728909803844866000375931446525768382161699769583645492961490929915959090044287827745859438763550283009160633841350518551538355849699148207951128819360299811799005624607684659850257565064689110286091082574581062675739528689957128549380108613188583324864104488247028554324128114523839133865903689740742483699484691296674795709600089715686140152120079396221061055350395413507645132747581927265960900440066424841915941752946182289333563401427281380431078283969074049021615604490735495437228820868061991692338823296937881870855767656317320657115459871800414061294128948933376835589789384958561460581703959473279741075443683770062564382232045179137312939981979851344517199868597299104550846824016681694325936984358598875264621117074129731607886954670848879025841022592575736072718807345019047900117222683258485777880054081533268625561991566062164609517392128058839078315386099203988265939665677498070968556306953734273833939103451393594377714109448167194833372308022508630548406449987884234183742244293245247214168481930700635001771229421794931679532991230460714269203759616382663388394952073795241083691749878393927870993357093186003301734295676069532897105077329486646443256402499139438043468054020706789853394375874591170097453755099757377905664562068127310894322728654987060249660315013694895539229253846633062632203541116441187294323673315170789481651911734669209017703925737797733995108111320607034635153107807324653095228935100790650011618146411173770168598407626528692563242554580226658974809190134755672271531752071240793712246583003603247172254245045469256050247281988974113878582848068889266642165676818467342244226163578192742006442357797616806928808190762281247500611615706255546878226373979311178303597636977277159920548532826294017951261401443943900563252157498852784317981791566934224775710531765770188267853283054771386390456657748948026144901630685266369972600434197733989070444178222383879143759984387847648065718289677285234802655653281199272020449997283117667950723571707741086458173080714972275236181554164205366288844747887902822155400833880052838667477043301455842546892084257480472495062609867858198463949935505002328991047025592597603673486892471950147651017430456760279557902912918999705707766430186182856115335163245353106068918412115470092120685837867846373570319052588990646984003697668549403830357731943297064825241511239639433632566149436217004347994825958853400143141371751181441641050510770100106869018774252955662808483364616942144428873848863034510442951142778090352701543552943087835027505447955830587700078613064944538925548432427630458831987193782401806729711803220065574228245666890743390510215406979835166892050718149252882251475400844620156902461188903461116309888273446334764804644760027674123568760001644200359365681946635282467633141860214550282275497420386780579203200940360916118588184630843088578260222914325703504316313238855509898698379429429390432078830729577727657816947108055787661752872898884434246614205011195507840116392993809048344876546986168879814047731350494508685904696068934789511236638659830256312186512815216467034188502699558576256940101992800301090196930618813141123877424156120508532504430296923526296292215465637948028696761776214544285936154137361574085394318001336276060490643221608548856465067955280749952964303621501982433982242951264712986983424012199470941158493518647821452479584476650925163670509753952965120720014907506467419542324349578679633195406665586458340824960837948178315480796865822406325545644435227737423326309419238676324062415375172873428184989540882870394705328916507593867692766818772166945274259171403079505741472518901518189148891832596224027939106825287326159662935501017861395843420826252465064802934430592597543416601209805219275298032565302716505438335166032915446040266185221319901216877056479907393612949186656684861862448265974995900582103153781698683329866051234498137314306485437506680099134612571991589928915078505828614106266188807113589182958110169881429224787713724322845865917318269244349525819725772665691823217499440517126273549333968310148643885165015229574087150361068078599349843937523585580986075086482494255654500719151853680433717472197656255548683828438561089598942102457942837517290422334674107779966631706249111406322764771445833482974960485927983341615854924624491267190544380615056007087940783412600836681896370864034808096400741868753926900374094662191253442195547252710871469302901560226764080840353520005952620648080472509953961106061354827448119280911419847549826205454599985643284687418376621089243545775568147736890197275779634205638145973337415417014624378361649585349829909587655335480655021055946895340068874795456457278808485006243951463060133879300619201080295113797911299381798469298999953508077279968630199375071902329105660263738461346560610728359908403391420951774350694406035855044414605130833745910920607490410436273881619512629291023547809756112420791254507941564496127804013886611499709351836183224109211690949093657223496474565687147328858165030071260748036386283000599025559217606905772714121138900694194733253742799908209146460361084535960772046562776493924518240391493408229714591079137244444390105567786309218911280003628917305035735310389880957726329730422084588820126845011755874618190035629460259344330555079186153726040750198471914386210212826603809384373597991115996959809142871640206417246233064956360133913749876490731700437546956303895926608991706877032653004687321500282559610418815129166926172386998335443274520618755177655044030002180980176437942991532400878647497459513158824019526745009318082806236014216655706958055022082076362869850443552680115947479535440973562222784129904105994405200152242331598199787968382124935099644615708268857178169594215598837846123746608031193755182204513525097703999839181983520609464659362529320323372651347587344859899950710097855806698988489107043593460130028193196225229034677260624650854393860930053817114066685114905438583425061221352541790705371904674261464408181420596720686250844176556755814266147855502944528607431160190691132750842264382292688986686303627363731680465681104067070421514637539516318865467985577393510574675059818278821701333279511806489237826320844754540888971459205927120054020191893148972914083958152877278579303580876612883978120682936077793703995175052554868236713506414508159297549045293875592600196809081880941775236427783103984995634457545167733068666970583845935175116670416630508577978092124677989570315409788807252662530858155422099622958248779795348786073551657480402612819314003679250308555410277476565856330171877568377281629595673801269629484911674836140345699833536101947332870816932324619557585567960959663765157027224744731191814370138520178478154269472263821388847818065459660748356666105407247707829689282469650455612898231793896375523159999092789255563268444555844922832201719240138234022761439943120045300889509793757043424434207845800745333479600814079507901229072037090613603590864226789204883606288544811387220257888625812825270126420381903373328316971371455674566942036714567475092603302979558931911308716020679325247329957294407308529139851704381524969999938278234574665877962662736350364796418222364186174827790167463860507359441641719902861291015381570302243787839012955392062719594033263385727530245221173400836994742630560926947258592637877635532969525544113970225490277090084527239471555274765374934785983618655922600406472896405202713635899247672408313842432067543673087976077497483218753385700379390762248564128144211771127372538055296501811325627166237397966192797835548395692894965404513677564184701265489031351904088447286411712189797355980806130273701735842539815501541558227103032032066171575182446215275619949970364451802620272391770219034836478007332071770242083453603018556295529569807229647236700117197766639737816107008114075948241188614250370882594620138708958078655503386484175845291971491954317778407759594506458690188609323552170468538521773296838888956795275995525027091268329104029127439363875794657239819967537624320542528877732684907363871736299656401471256370930987805348670244588655397815236503742974533123322335503567121707800656218873981203225252589053093069834114134302040154418999333845163760550202283926306539953699212671381824829048472718315733810975558333821695176374827774185222227787542107341347563939543674934373885216470091631654426937297618168999285844871100141628130152883937545027359685052641557396496827785367809215509629069346605104463921099564297622782343004396440154488193892441124352746675666447268403916723181420460808884874504951269960190582898210956032197040642976685803316222788688517273486494221915013896560298340514062271599708582690303832207880527279659022748151011504040184682142663864145529472820544162149443771479956810275408735589410764399432304285271683164527129523706427501760390395342548169862335072961539982754465977536990703683980560799139330443023897560834077890914800601974424082003234613743516648218650162532578538910848818315227022656153254948358313326362126177641909198000495108179570552112114668467804392688692353763984852555657850096122850164213616401928924331145379375986920621058184846841562764585002646963464905614800029114677171978759305806174051541670455749192924129645435272739249939247281719388212123252598411543506802356463121528177097904912120699240334229175413784325889256328710979346874797065074117691212905314463566106164433157272972094823789324381588926423383699359420260853509612170433349866167977733133120369469031053756447865755829336856857870648373420596387445154180865044891169959000219822374716392921272515489499223200454519140340218194820107889961023091489199865084484075573068959652023329316398833465255297506638598499313752486343838820094766886498919480427164316709266790948645301297872011696623567365322479135711317176876445330886247126384700909037840253950250369407776202661363936372973371950130631021111731716686855177538853896260742779272632544397804414342482202848906068530577822580722910786623969208343713595320849010989806722070275222810413265585707116357308407325287313155274250453844224963936760079699754958239810007735926812369796422623795677260615867154154230539380504214854456182256860314814756396132983179649815915504179107190084775512140502667792217068637728258960542611000213831702321039573352502929579328542367317272889807581493405607974052930137536004627369985339756692421195774917383586388786621946348647895246525582941417731658682662532935255245146073007106783090101406762319255867836033846934192666071542683700234952112049045929739431500127623129132182685371261045649961249634638033979977281937061881044953057993259563702423531388297706339587806270465222720056607609554596270151614152252437114391238467174798637506915571936495891807128296895104035081129243367693029231292641237638261917692921276858428255092422229639475998760677169683342973632479872043897730189653190066478211440851368924068128282957939938027605424747016251216337564444958652668529223710668367930550742894167948377967915955402818297311272173035415246356890642607704469105416362873541809887120322952294987630791951105142381808243052407412207987644397097884388037803560463909494835078975235511754439562025886639914632574164890066068170365503048605093035802367962486086601236087519229394727488787022742954247543447350271511459255468269671456256672479160145113693688535543140914952447234235591361970794361815143019679286424145937165004890219958814205256779538585455172945042575247261900630783415629936871918415737430512609308835265450266213286138759996381647062953421945269646390533798335439895819841811977798026573360923322932264324990794237529247520620365883400236314115633761369147312907946055326786159233466729655645500088905939731752614103086741035937351531338579239792474941739378535623526615674146555656288657940222937895420261049397827012290683716048410899297317194681741474762886096208327654223417575736496211333642565762887190869974654197270060226666405786331340889862996025690683647301330081562106448819763673752790187681299740660076715335378234596083709923998660366294663939609236605643960747928200656742763531612337101207758823089986388201580592382476047061976606417493087482097001035609702205749378629502799874711004806636088977534054494532243177061302962980104723067619589674858751731665777030724030772915701965181810918461648866627036666491650434971096166653469671002604634255905686170421194740367236985736874674098285448723426156998164047132863574232582823008477888932155514206952702486071446916875778806411731197708448445441861263738350889439413291654486471731921039923997854668801550666844805502533504744947072041825584635631706080508324555566492617282833615508043974027072821495580774142578818428925447808019134717057042136329099507316691465343563853678574104365983344939606802460706544884326288012509108753506066807884243799582507600502208536879189883950065228741900992084288263699102553076055214523385522269457521072682533195303364791585875714600229705239548618777322275161676288653293570868512977184938206830253007002274784398616423387284703724888739541545441610577055779152293858013455133679614908013396383356080760805922198422768376543242926740623974681224347513019175452830146116379482835248059394894347064251480862703708832270529842732559278214570995552123225925594588450999166145526042250161329364497495086492919783788904531373688002496994339145414539738432700420219905775503578188822410851408291269895088727863715252601226897376363096487204781584226144530639529238757700954473748833242151391380516528030524791724288621517930659665663904735455243789445333727393565915868552175760320125564562970352760359042833903511734174969031606251009057859116471442882983103874523386166612927922782501945616071009879959799413292565564435173899104626160389659214720477045656996608166889112216733883232046139816367293218812747712044473063890074826929754960359580308516244614825467377430947524677281845849693006325571950810688084907456388284895401374588149930316426388927850271554599597875135310057549267796628039543118558129200596922960998126356638825842901486877115389484984173312779614284600225366587400528140067642780257600869325808910901493110011953437444063265134158768559093726828550083181593494176323357454348591866657471096443253173741250699385192691474687509624338694078441670066682574057137083385684098749008547300630676892290745192312284308744752965692182058758629648330055088237832474525530917233155421706637272787411043301405312954973622472372964295992536512965053845088971010410994083954703686013570566341758563260565884374229577880694838496552292987383091517692514677798429465678190916109041369440798902285383170860292616623227628533194645237658864803192642458548726084735679367391538216815679748835279492714396980252104739550644760657349544962927421028976055733034259304387501952663092525122548469743155968109651010625989369322762202641733532391159779065117012669776480407388258716285593942822626362539462436892189007702431116714264476095122852408028973977230897238002106383406161756295188214215000272154956632060630590475836484731958468525653257500012712567366170399525030955383315094154978724554172304359747220976132484610734652237956696766637369778743437786084923848194606127538105148487600088333989366647681477019583571978166612222158707838956053563529690253074934917098836101273579269867635956972158458082044718397077991330334845158959694477317351394997688412977605087542032394912760065299785147201915351372298878177562506967289745004812772485106040866177435169482656377948056801732480872400359878167637207483925542115822563246782632290620151382886528325068275775390904428542937009726830704149741994433883281730097354254370975435358598462408966885738557234375024300844356288611020479678558959913102841208028401331338033091158054205069979643441051862693045002397405025791868595898564244054439632730680371495603851726498051706686625466527189742124827166580101700168967426055734128217882916716655571283815645084119823468796424308606890335947959090027411106785981301725667398385970170645097623973751547094223210229407599941650750319551485496488453043974452661201875920052488366313707374632028767941374621839461202797194192339309020889427986326741603883305845597817637351075229205020900517143262143357591380907281641284898461710016519244669455448152912410088792592402658369790509480831366674386439773557900092084509440547301112113157061761467172814336096069426132438079163633761126622741768780362263957463086736589516205469036830012189288078555367940415303112383120626456629295386930467614570044908699898232261599906419531788039473396148373293005063268325461652982079639592774696245772975043416089415534718567688787943073408038187155700335035473938793561005896367509770006444385415663092993239062249584318729302312060520547411256850314145073650705535274102160029136751849789028214322396914651828837798392499828144112838591127756130748800201563837640237764805377768075417370707060929699275231984020319110895451100118452491788587962884196845903384212795287212972185635391790251031639426816188646037154311573289336558790027154364043171696561064962601423132183085146266340594700212223235608345341698231687891138059879760746571312272164597615656706289103498991722093619507909853267438907077040639737259817239523851947956230872240424254045977643009329889530304728574245346941635367514568227847650856252502635488378627446118264862343827894968178763670353416593196294339087103735574265274690194357300946473003514948197287627729232922409333547918838987541864946977640496191298697089173866112100016370753918145343530530563918230657806555888817917334673457831787645673590028778933055374494352458361082392262767463643291937750198043642695726560120612848747435811203626910305728857081515711436225134544897318181706422165423456086053159292868515697865603954042847467150228439472945962952275732481275588541425052254441059242479759094504470816913816547080113851453671521195364248491490280998342919660911382715234904454409945630589234498662378769123221891149128714770717747225401568865616311785097262846139061786182732814802945490715768800096422250773052438692521917890368836271189856185838748684079071444374785991099057411270714591766695079544295650349874387741527778790257452432563314895145238062420455910095326617325655740370608383897180235547762378495620022696993757193161375772309813033916868442057238793574011753093646850245948395078739339440890639747489960944320087797987821947782070361755257428290711754435461840976328928861831025135447546783243339508651393757534667261974010018895937782840032801674162331422329074092906526804343222852437691175050769603067200572276620238975801427299815076209626232377233197812052522057918278995989253038803381178934369515290629525858567468821435540112282946236667298424231838306106717259526704111966011686717433333816641721627485317570925629570771339658471861836496348044801970660113645070703912250911898610498103750297641832753511013372211328380524367387443139314403503135794779726598662597194353585674596406534571050898482966129634521220618015099212962927129906590819713463941244465845376061205569057212827449226426149971477525531632186369575842771810011241434166689916722530646217722774473621249550057810979488625883536308738795396473130945479126564818034774067769356865378805360976166792852391839530627476248759527624618652520639054779762612685771478748518425243233063817685302125359026012397508495254967107757909689082888335066282424343130715213475206295673164251345111732097051378348017408043673113089415918333621732397800578168943030193411085567996989249102683512679583710132670022705607339879858462323090069056497763698027894778218455040704388027505192148514780622806843011633586116930024866929486448789641115472697651129113538839490354981973539850233794117344019549389284765000305011534593894428163795319253932775515666020990744651588357382638919040057900490874265521498992407042333582372682737482299649338209139501374112221945500635308710199296972379487750935383973362992643665511570438331065493909136080972884999164994601999343086859851548822970230818968477540097622577348710220792237292291228428948100312636400844965208026964956805832910008013462452900518355610795674488580714475918494842577504040847217543593769323588596411640730076041958108709374209605368019008917431954335987738160041004837014105088226111246566682418087670195059504117939350299136842238741478887493330589189521089031303499939624653401392604447507120756361094373423932324860259804026604111991358759384106545924290147336903478718985169639959265951297318282848638659556686222585731934499129119405514266232356777767365709389866660883420919937984809274435328896579337793417888535213890728072835211024048756069002967817503760463428792473195158667437730322492186987936835972612492918681403528071187578827028782545039899455765192866250363440022601387656513064370733176079442929247195115191891152082237186152529752517783928797100564415296484879611510267633800346456521159537118668330053758191439981992246366692784215881543826809155914763600640972337639619442020841058673944230123621479749836837052078120395862870568822562109222727785910530423450964808464785484684998921705896725502239693527021564474567770368829809512309998868859142304259428873244771382366939295369555694304054429930129610235020349150970254445255729453147993157238992813288072174906780504601027396381236996941458275256379902969781608248001717144520696174035298622770243509550262537764639848119607541144360840375512122836396919514725645930729426933602719585144531109960794773266941708059020587392493259831304491951648429485365320620360489059198354355907229229158076938672222293947164625512066170274975690358909886074386478741166727039273504414438293958637541507733172723548609114562341601587200321283233437593419818139824364389623498345038140321325788820261091095996813907773339753765063386643174121121228764530438098938965130218850794553737040589227590768639534800416629266225035311902322851535891380183214783758708152213219803585323289583055780780659278778103514961802724963160834495522575629568949235267601988365013800499476724148530160878038110812532880462399025376757171659365124219105448291042510292440049987031911073239339381533566773054892627395340029306156780251109901770510277643307345017965697409291688499524284964446401413936757595677878944423871782115922490150605378392023568763274716585006432449501721030183654040163952821341782308149925192817588667722317213713129513794226411541941151498648949203571145000155820827880682752181476826403224249820475322681638717740889883624754880199591428869336345253553757323603092270435865889427739506466739953885048893931152642854180812917461144253652798577790543903168378027007224646694948653069067500708587414074573371093109896155566406645057080208256841733462961388073113731213151501604194757981224073201445217938227429000843822622342825963153984486618812977925570040796467133155417288402256449697028421607162278500249447006860989284637721213796586396581345831328586537529946795125185393083171048892827168790641304785135634859362232238004749076991362951033105674846092016957976807441161019993557704154087636723508642014771794613484599024411735304607688517715971895203418727369944083851180064259095606727380268449294019788460043439242336122768784827348368100341271907707530299950565960769911416429267951790031279968011799065399083630998968730537647704883704189342525579185907715807789860324712664118779631055502574236132056742304926911047690055695445122068209735535405718585413774007186242222774708522028568047237633509200719603764923089352755856221421606767172280284537993919788733642369041907128393463617548275223722467629447393711800522014794799927100993478724765436510026150669534271535114792003432020004335228854426700071270557120659185287323554196802546457231154964127050491739948548092831866939962468129074092936783026859369054725777791556761320543284643850412976220109650920104845685646189800923553944776542562650379026762781707080534928108584802758165904147851477838469071879925243398607864256721230970256268653396760006313154464511337629911275406940978759918498221199970033681423934618617042651190571767223466280698837995987702724155749104202270453641508488404894715149171295895211718688630354942441250059776459517306417391496810408111268933253981601867518701718374629750141575423413682494430532908368195652480356903559304186985380369353575175102222733821949390332618881319100398328645117608541205575397144142156557350060932584433249907044866868428486880414728854920031616235256816176289560716468468218663665740964359085039966826969766738523548910709824873014325530048031700103295229169878335039844610389054940621431540857297418110614080023523696544796234392791930192470755514972301990476694941039465910931403481524203620686372047831346288439936889270814951232281667199975233645405872746306333069336895881925631151277141225267550262539107742393005698973463834293948982937274648446416906337943443709685858371897624438657962385032290579516965159064870346948021177788953093340344495063409808046044539133995999680729330071948062115500271557022458811060606440705158599329600244602681552756186875035424426409024929384038054010129400612019709164497877638480744313188365254062808876058396553311805792277495965889895153265429927022299705535772164717575909842168517197964702929162346139995612228359560697859035674517496473379169966074295845051936950759761301744674141006362802015466372992774890713476588916945729048180220531070885068459653765215648385260186186500430171855649754159621928284162153107733709385434206061110634777350182563157879169386139043194523082661208390944580388340832285026452553773076954735908424621747485507221758721255076334425530942945794526789792500159904052525778756153139302360742506355760149932278305590113142017192882819189465132944046392648418178888652206367610356911084302231465031495081715480115480761344968126816610232892263318726640661641484191447208530572079914779864546071830195402063915747756461120026390597420348856302645106280264195543274406713348176902290385921588825539913755424401570957696541101525286270136212739038136739433608412150085228437268314757038072212063239956408063411773548053889810470374588999473138244352033558808480189311646632282576973918710313726119836100970989378283730076462625520909993290134152287031699708772061477195317060302046418059375284254565284887870818243084258865245268730300718932176586904724426401637526858085144321646727813041808697398303729274721649027546250894425189514401068574995346473767754309929373553668916482396738408232810661398077116435018777110908867432530009825375852333087083891214895356506646571965552319349179257208725662383158821626752503742854293937318314226085922267441062983459826764447285777945335308160473859625723032984662892480103999676383214640099082349949771133898749959245230642751702711237334782268517698296745327530694407903454958972608055513883164014483607409653925022030563894027617114713860042834801489413400779304094154180089682010026750012176690349852314881080658498665966851421940458987479605501993145758581756465307594718609772439705668186046771474724862872046795311760881926601630433294360718624155580843574103899343129172334284300282199156339911290286808944161588485505851090115397465683527196393828896392759771049078559661078677171536837030156420228523042924016219320254699994304669299461840865403406358152668699049093645740608132702975721699632661905882224741630276959539202484935369834329197710655188125052307189270669993964338823246303744966846909541478091693759141155791705643765733220859915953265245595036174246067583135232695387005312123470982984526455907418766915483093328818962429184780816107939950318463377667968578008085551869779794039136485001154052352941988989432288939298140481648350098732843495702827878306104294081926189234165181591766524117798801866652360408629327655284265426357082693904755925134848963127039384631353892267810177696678568907227628615634067269852138205399866232967821791056740807660835348354791685969655346694182782286124714136636564376394285086511142641965206823394185580716402947334179882250565323394617686588278760933027667693256055379679969567892899720892560763083804063175403619665650650749820762131047427210129290508822314541528506031959905215206103117460630714989260388800590895568205267745259818190275400089991163872419789371530864297542324118481567636832627273330262894130909241145667414531109527370353156786548041265979165271372617208905309546935456400477546327925929115475778476588168125956035248253121388559691638490893498313915028192989216221099208055863884831013783963363714307198598051601338154058164645922595068658439716012211858189234515738135557200040555143297555228143871255344777488588430212957081666472589025868753911197125359611928595262882972052811096238816441835550683701621965476259097716000415250540336921500699985043841612979110691564019632512060469230611364758703240587617768786413642584932042589365801264866750036670199853527325520867566787716146500038203093130403803479495724737166652984100806088740716530431610197153470212364310445665510674664105605414057416290097096299997208263458058652887031737091336902243178692493595635512952405231924596200245561859633023378224514779440437020304621562828154008776906220153396628219706426916907383080609335549804703796613601053154761511623249591597194930124982713179662428835761050397956894733863340381404411015811497233940248373115942579912039557021338129368781706025026890484963271196570477192813537238570514704484593186213611996977524953689411042251269589201207044737839667215864815696639272872508426511491770426692437227240892634717237514334927832665310590687682490684904326040071687904019242881074721591295877578580511325423831012016675105049036260231099611879041467022840133628492893017651091723091369385813663795560902596615616378236951556932661006672439530096554150515708968832119407228124028218842985643538592486690097044027558479475303005394816394432895473378528474919018184091059289408046522991631486573453170333084102108607398105151289125287722884860139836746290274659617547790753408744114708452535967063522838667838854439386204659891084414246553078021648732453326474056153534704860610765740070644681615081702490480720972374984412116461756637020934684381120299861073704777973883306841408587220205731014919484723852628286522773726021495702135746151102303427243546094200364353576275015519046286879064154214200922713962633520499998637496870092110764012850181336516746561461082811603822306371931226291303222054856966471337474109000203007956073267584753218404343356833919996527800523483697402466973337293232150447709329921911343981562142784717391546845169029315852388376800603577394010141085309638317774205727189851202917843228246763171413549074303380029533905971547038416581151803467453204226715904169534928426652085001011914214992094373301043244571259321530367727627805166418486425244848024117304350038731665366423025063588245756241179373946028213737344687652888046336039547037289478513601319042173785710767537789246917096544180351020003167182593807968030820755980351380890219107003235030168399761994405660211732207985714896467047179362540105235539719321669252987250281200113313127361915038422387867494483575015051562387706183177214634140845699673599899879322882327057546231996525795351353664295642238097057953650492149563762968271772013925049608315721525849746311442834413559898810602162028683374725634436509929521868852135821775107608778773179009933228423794556771587956704354820294095429818875888046679421096906714026591033785536257714080364032434647088285240903625271480547162013864183552486772991027252001931679017226773833883053729686440839280593571569034939543977502168763845080285069769426340172439859825212865359608274467436541464281220149550344230547474314825573544985832229304925622851328710263633552564321093637792596459440528081298435841350051504379700857652277713016674106435482082931521461942780629843495209123424011615880417125814372128436243357245676854214833071134168311174101123100308004602305369885916001773577228218243517433642668895036304110185604984302071052707068231139399861052989986036758547874309271320791703503468004320574683604766984666359048084170712570748715839398279996627136842333889625500728501995436396018842649744669359994242862164442664607382602385718952006174513241398419494172530533973986088813491083693259797328890162408892218146622076540643558825258261698739416549725837852370223990273696561076989842632136669671051854095759289221459907083399045765967174325745425389214300356201695688718109410010210071121885087267433958066350236206972432919130204370897201145814226420518935892596242193385888616911108176126777811361263830621720807124459847614905388901687088257675069185135354109697536207757368223202300778937572885642306665370327306471746426473817086045892123620643977999480458990339254137004176273110347582377242452082368297092165201803602658828192416945902928424361662003598078846053355675957312142303057231067479251037669067238094353359389372020115414592928763720609396311969580860088356446839946339361466011507436232716982516176249212596074260344422285277549558152181994009021999413808159090636372163104182577581465678496912997795653364215981430645267682799742240722738002470376952160751777591106323242943955604526768251879126261392035179257746057365755117773784031003136918968259543059763052498949081707614564091708504444540772543766525289247609676253705905259001709521756627777845253497882585554388438106857982279292423680588724616856152822753281449587717096779783271265182342554996318326284374751594178983795506971211763596531971621633775386815203635693538689260445600219915790332584897029079664066163731412169512998586224922358832675270656442029416941538657545749749024492150719572312930265232875765268165165975980354328231201116381928919986450799677853461913964997180924033478128739031339942464334559179266736576968659772659274614360982391810519268717783370367708636971977717389354599247135737225121202205469660554330738799901985767542236720209790658839071936367174214105789223570220212609219923022775750082050718642525985260118383232542737275474555906304093550826731779136238909809207228973021673130225345403442744135653300099508706082268918980237419087234358481928017646719242239070628798489401463072643622684493892748467565021229862375706025076154802354877340938138212448006363169498990557946308550908378798559010847530449593923190190593308052844946727327567252375178051260960828917474483732308359478538948351228725948698433892902865881108192958986077109548789037682241553776038837257218701391557808001654794756282243845295498092797227737383173423275940114400534785501951324584823131047264615417248719150020330505161074867166137908237873847835747447365471334669888334739533225827005155192830095033341548416072650847276327857033948872879613516399307856053979232884226286192168334072729837137441913872837031253482473612493142177603799647390638326340972218977198884455229866110422969912368583486566455396026967334962334212532706303623792340523823906683075626404144927358580766474654029332634645882892583647048820115777472045617073478731429306407298571534997964763853580648307355717263501007510189763225898179011884424261586386311212463685654554446155528050644848465906502965204339174435883002561969849527180992822009572996447433454432693979808090581122393780652191096465010007159884741586587854696359038429656852979889328518340286477281178177154569390024145512600516937677091061706452726899807795606118112728886795258256902567568373787334418988437255900561104240940602230511837373319411254922833539851222305181763492674013603093921468392923781073566613594501691953360550355706449659329380638301711193590861689684241320256275778279078547206415263906821062127211874317283712995826930402523180748615146547369827891098173852058016103188730534948272738735918137506623611955274568402013725599878007806944374203914831777453069434901756072066946981625697371544946029590679461120620369631703479646893848592821039711633474511875675864079403866200100380898586989024786588583246176994698212406102857872975099921662710567157239921489451573809175771248326031219682751354311874865602524165163196780542146789571663573079919533962004292025221064910163800734153852133762857988841550360954954184776297384496008030927939123349922409713296214375117591985057017860654085928181648874717102172187928722564979531875028301267354286031288081001807614971288590047487162691942710513550224597929517542780781188443340369777556477098182680020420954414859766331593738461746284305737729562701570344333171867223332400333601118828091302825083178756543015117602938721763073270859601851423134735055885048392728990743679291068827500985723081721501600354417148029575324070734210141055835425193117548127129521699528973135631383521066635563116949668920625430523638059552108156394097436199828065525958924165251818472577079509222441052840923423245233514800535680574785364212532508210753081630295569399015470535904124323012084434878296414702633807541166291922453277146938468047517795605851984666403202738754807108658115232482257011769142889879899747411072670815622750121181183934606136600249392169041216948413687928429863102829705181101137900489679565221796836474962087546750486521149393769211293717679684491356877598477021947308045201679836406426459520809577554856981756692421755968785742273247552765375255786009114589733870321258789269253564295188397956099254397213181541389059449718198690955348612950068174356789052829411006490917667657716349796612633994646862472048572212762012941761261652939594406431041439222077870546541800009404623769412212046479128600289684990903971003922791832930858926380299494674939046846680705855790889474519389472883859020705031194106735960973984459589338259802165590068894658994056909939316929277756607981421542816886355637386478223263927360360619986475528228969588651097341176336875547852440878341512457866608766437918665299865394009706815763688362036951717654188814688641444379007036445994997298493529922918131869421623698943806740183740839313772316048169124672190908763671004628106711374511392527147344412724671397788634964968487595980770142477739566797643129118083920008734341579748940759934534885731209512162290943328298518505565264950498803153416577541331479482001500204075066780009964067959751333466403039838463125227939825682099842741333708756044123365157152600149379842133708026623155300178489777128129985776552548624316874307331248466870415807200931146205076861018776715522371122982252791440916711600539968718803976469443399472651457404494244315942094822424277504803831061017804692834732350334329723085346875294158820613766617529671438286762752721039359721715273603919051852051208753723087817461518780851201960002129125008720232591667195324030077808080957863604755859669921744611880285668048207272135077077891664686808854283616104073224966519295314436147492278265170386503223835805303774023328589016408614501127444846632055497065685262352897848766127525170407830113447448605501733421546192989205724678928618447878030346171298475946032088010689240011609701060285489908747942064298209131527449855907019480410841073405292496128604185101484649436075332195279110619649504297488118180761710754436673122029541334362857461563121544948221724585927349297841930726021261500823570065536047385120503370610410941433345089614307708503533341462695076746845886756624393347377962325261837598746693261250608355132628911181361135700114630072217743424507920326808475446705939558573585246173981692111459124878333384383341145084058307849632113443132438127477543413899568752804737015150524518828585888507257353299716733121364518671510074506734259042466657475177817241965845482873283156685942758760610186301876114677275415877922821154895283114954321210610609999377671056884855668401049328353721398696546163977084343969450230238052191390063710874666597260803215383694389485694837771668550087823708410722206749392485080296497757521538068341798679394129238615478113391755585640890717958359037252370069835487186417094404056449809574763775085970365686975701120749523062600736926345673182900866936683073272432317770402531898158426443207134751388354450413326387081457694007024694957520697937560692204695235309905499399484030912228425620397490183098692496518352234536630977071960714004358925597686906173257695078500959743665007661985945370119428620841329457566925349384493376980525650237220365759712050135895426266159702109275266256846826225164805036858941448728427007231386082678858292450100434649407019968703175126760671891292512092879413281491106322603267042049314193174810170870385094882855222857398640148494018526469690539734607380435893289026977537878505411765842597817890002741582412952623545309522944522680338361490774515343352720895768152941253915292394897818281105773904941743861008441356430544886004128482204489546402353024029965852567019747873840167349663103307190464550813203757451426063290685124466251116272066434383139542748205730562088927296034577032806132498063965549596246058883304559838241800912484148648983510612766312776867658030389862494415974874640946371107020210140320886001610559917375511462064807519435192855928973051009365834194435018063384524899479909926516865069251398685293133220827899259039411839267484344292015827649303745585318048973743608988207763992885044226730048853282563302822761835775927312582762094843256807377498380354476138990450184914888678704554816684834810687408539662248727758759760768920341343849169818318065960331563137521696278967593453914595356497106987064468024084160941452446783489006077362242017020109846721605013769588037755883733300332384406060960744498942061816541295651179402810724923692267337896337867083175428691908157503783412291129060825562699696794527541291489251801363251477310522648151574545720813924188512806092727774553025914458022968742356820247258269432348156725008186344757442484121991466882853710263330698472212128648885590321426665223196797130271319865057309631246709186782778090351434602890781089537209992080442911143029361556366756920620671328876026362079399559024034180345502326064081482198411891371224448558879048738003785971650241946826601813276426406753459729408705195742767211162763735857697420063180514510010641247081776363707014639637349668500960166536358090191920888957114451125971410008361807053800045367644595393762355776029837182293199895894077603103304101025007929503377800604382345034640177816941522025322335350616744885926094813672542669902525046090398936143392443343247954886797514472367179722317331657426991264665714228877386787823229187044554406983123777103718448180578581828257996252678159103560177854129349015849632180986916714469877104791378728701585861679555795433526797807380589721879779113803338823141872395714045644151573944624990136186109990678917611354930932671298482452873240320991658955793638506026945683058794078759937211503282372576140563147203000131370926466393414884200256582136148871200545754036570236728806802432525210393833726126177659525223224198663454211495722757163216916347836522080811652862007076672518244560753842322521671444458295653890723450184579353297854764102784327376897766793909549762337254044061231708011312799482350781335551822396141289727655810840409067310029791171407433043399858335817622738942300981746708555696856119275178165291740424017712484477664270148899586312465062287724392443183032656004262020766801253502831595301322941463636286968797753966747973939244022162077192533380334067870024902576509003062726087489804960007258020561085313997846640053141011858004939792468972647457861471730161527154064204466485079404863317100430926638888306788490702177631222312731927056294322858243599205867044744342578183444494214676217430844261918456663382318225818840524779990978291113009027849851112817013698125332220172356495762644647733724034462674671204111685247374214613216244639230334202648947656383493281456645150496221946497043237468572252417214797486147276727864883358792736989729765946189674667358426441208283714496510585157726767648295397941806809454752497375887617001127461079870646351650884640125453006374644552886965330788570957271877945530590487963727379606897181332138513278061621736562794520247699130365219336642987325905821634177158770408686123105010813569368804799921490099460170172311238460404415645956505369583427315886420662066184059892684710837596591678698545254661489752844455838722401034100464215324351179103063590359415410271260680020106438158803042403670128998123961583177124545322755277476930979368503549255541569960329481755575544249133872922292410218354060578660972382995100716945602376318439336923981446228225174346259597658186031585001078222637874280597162519435944837274773872342571945390315222145579502896120687529484039899085456676725715812242398013461969961839457895986304149371999750482678905554401360125433455838515964915431612668910103801133600548135127800805157123701229183371706495919555471807735928164808953345192152177899529457574690653306821697978801426636296621437501224029830383247868937244963191574900636728844746135024376787177290899669698121702493688437488213904356373770892248705293042143773006875984389285297398633065345024681521743358810501756870264017360993742295322409976920376115229169984408593488915728727875785296780772611353950279929383614591155385152430661362354450832223837497510291202306924144397457217338898411313382615723006319544813428374185197740778648307154163298532515604759387906079501491865180375514658437458087880167481425218091062146598953854121995637046071788808279726043107742958930594173053953193718880288705531915459068608066406933663100423837929736043641251292777663243253387230670399038908400118743944412937279906293187847335588838807456813859439964578907981812166275774477171632140250345475590331274661715236619195407455836391148632548645745929946630509562870333306389224335348009751048591289662026638281767570657838760405772493079551615123924453826676179026549771227423411591527395789784166666814789230062511395519726487165599142431041908027120889490013935285106579168493747156539763519672387025861451571352599691010657203516160271955179931870292781767748175806734880973180014262946059357687716603237391891081204378386511123387612699796725228305348033965962475996447169990885816961669520250715974307909996501443557608871783699288807420892041723872243856118879051346901225678977244596106657612229782304288978350110597615789774747858723704099514567080534457935163515397048114570388367137655509642136519289569454274927385897614562135565139910631014463205267084717055098550521421589449473651893200884002796169024628101261832250060001281715993466405359537066204019341197130066970379485994538727589097910870124998554676793335468829164656753490462376209771019882696681985092056903354982388160045124457086093402498543254181564678330765055023511506122622018516811871260935785584354048348413600244584244069020406745732291885582451340677342786504252399734082638654314178729309271911748305502576309039727631611518601753952255104306892960860449453785641401200813925546799436081875958215826340160283625533026842628603947783025485758762985630242982119670120230348027271255032045672657136904252468482288785092860825927769603396912979787529141851305940833446501247877711425111675623549745295467556799749489101986918174921155202210811730679753669088107683516779482659824981202074347063297051603201662452121653432211465516808834796433230317386518708931699879458346771819697945836261976210695391868253940695487703864672860160002088175154836817194897402372818093621155518796219936858710641671150739467490624503557779128344461427145237710452508595113933660250302321630621437703598172970077432724225820368958326351676157425133598078114238449620938839549388295371891354627646292993040119776564155971432154034135132552544672510766629418445277054341253606133018020406492775671547255952244834054131652326746046060947412860319492746727720380933990855593528027799947237586539334024358042598736160351529199015851869610892740995000991335446437239117172508450093431613636247678761259175504262268666478056588113683018481299517768531892534546494595944606240515587561599546991708056799342685106198556062712534267521626871021496526362596937301471590801882622422692298862653956509324169112905133675468348514142041551514252403289929323303916954466005665067648530982505407012458468574028933065899257490867232358172297893439844109322864705766208277397059770563520894764783076584577526506084874472424668396908830959506564517874294612038022858050955013035190185230484684332245657158308966904486982539654130656803789300401937342768509283748799057815436389455694175447274896272797280370229230140850830904078238877208803996820907941800901896439966505638438901455604177434907600149658315691554132670798362624760133836319569868693779297660518367742033576752612362284032033167095186478913309865152226130614670543294525076858049063012804429819377026051016319726520592569531992744000301995322129641693263349450462452535318836411310468954291645382652458478928453137637315992450314753377704810135076815814853555810707421095463990365655963201348821384491281760111675593431847713290008158948716903365559904008646629603948956561397103172645443154558688935132462217857507703502583034774257465410266480916290436585107408958211593533019732130615450305574968655821849544698791066442172545176290477486817480367972682664321770008124370954599379211012540251404261377731557514649282859399132304344649727593946494754328943943286484119519899033556667429935904269585250741833397747970277061005615229067291685478976550958832658962549543043698281270518447663106785047080853897056681986118972062814588894057304977232472723590596183285966673490186461365243107657909910815829855298616115497505294443450998584173974818927086415995160172045907018467111704580477074477592868033251064092164745613440470888905206191456170669341978255276460184006030460676159482349058479371149289244120260037569499443914538316912572899754539591823001479208682729662482491574302679111411814198731732398181727503144972934921188059797785015737821886040347827147912370414718418094674816807830376696998656151416724076310153131103144695159638867962293492429787169067587508407615445539045923120883762374129531995121513645987371529863031893273042131440625829358670135134840860937194480852012952234821626550806985757455871813322119238414818821749769993627795105895587915620677160853556379202076617322864991765934596279674043795928824827392418628565148769076025815729563180325111912832908084070509146902782017580653387884098482557616160573803168476735336928299414804358869464006703180804320762252081773658249631769522602668687380895360077304033454066213479280585854836784721565666727046487988367049805067429472392385555413231250786317935608972669761440003982071368822601392341390056641335843170071653157082393696776456053002369340084099837223527378136594153077027296817211931923072671842881686367641577057776217768996954748046874636601302488903625703174238030981841539424029184366237772509256781982876588772847251331216069484600275110899612727374451771840285589127019344720427583809767738518329762719419162698358160605897681311124158415204462394924845871768813701492981898078111669978208412614158340267691277397795792553972712005735927531432328722191467813058220606508186023708263293816724408478720275868081117687964564132405410675607882166990569355264249326157375181214315285934930783538746803036541771733812029361136300279918446264149008160658598189231442457117422253399831910835750358696971962214069660172231921937385403573445110009017811245432198853800202472287433328732743367609033639054052714664533616467458413552123511026297258428046098404386093469099908723410417914027096833514608304716082172429714252666980413140130333620029836529015170550134683469590236930820476518974983284043194450633400183860274040375669486401943381996159780074650533994419448476152808755401180461603603874631331203488724232262446798939521709709271755069037767335043539129094921871809450353031590774953763569203945673445676717662833910574545942925803400709899573003919487632931388595950466153423458735919252895974754451462265007324359341517246332741711165739049767277065995194610213945522764968649932013466632482603275928676166284101324217696417622506781860026034004340031695156425145797399232349869932646602702413007183160052554137390442380150363166858223212143814975102061415028717424717787800465168747942945221966425739098945979903869810479634601126332281125858366464951803758550959734508891794543147020630547413819151514431161403297379365330138287496913402896603657298831001737629857802864144206461448603966776931075860815617970593125643066479887329601870308666524027825144271022260557436266577528801025705014738078194241274031113327505437596205819435633589287083694070364714291916916581746086061552143325145653650031266507749409184447189197024958084159412407645755915769975705497127522404505336182186405321008279108796372343683250143419447253074976119119876802276888929996706039912810655473203212680720527693406536262486569298984316018833478945560143384723841382924107301541508494006367901275150314714080941429779567521887643844089190981544229073528377389489151082677033658207012084766579000754439585612500573979187399280014726280611889347469272875043624387065309252237291649013201844136109572723008536257292169447546036719207519967249928071118754893522099408583816561134049533064807202256201843601503389449413153344236152115425907776515199367649126880768003429240789044238486282742002528933862276541334901881541844941431842085528495060896030736096221602849866243294562312059457290230877415996229434683374548487853399562770867563616236469093289655129729829459199262634335514557763485316839789083513694424301927219594417054261161390546989133963625981448975462866610305091227464262793170898169770138407603345554412160653196075297447533345607119436417585147658683723215514536093561660044236564405237421381431769750985956400755339432357391478274003399204203489221073641692634615704146523378483815769586587604561837566733149340897229833068887649490427870381003464550773919140757084224680062008503768256018131155913983845896521989572972131846420230268898201036900691804615739561691188800998185482299675374962814674294373036114279874391780435906289371777677412619398199899792496680073462709666785427585681680969925495082790129998011754927025662093649420311629962950112622093785081385398838868984655088889321820321646372831359229040858893167633733843692565219558444203988556490571010727272014088828798080185773758079369073188242918057814211994970357762814985807313571817403308064525581323162535552629279486340725492522026440571898962991770773905031036118933605330827482973725129688829072958735471387125809550907426264921941350742827921878445349412721521882276380632322112767551638695918979685513083861652097429451303141063100714947465046072886495062454522275484788394351626204636556619783686255543458261374842622475833054705509892017663168804548644380690348170317238953834322678102760430437775911597619258400651442570714483868377683931186020991760084780222044744406201165971684486490134955913074510024675017435492893306943970044388679623762879883523458751841380203939545719962002306900875188617455267043410597993384291607869452729044534922829871871751232365980879442638970162436429013985862815877534767880638947866882374011358865996290866576898203435792562216042717328544507995031098384231402202899486502913815949205479363383813198890672403735797936070417445642074187310494316955855734807273584017838810790449298214601910383532050919478247890133790434061738869369620830268922670585804769565423286904236128148115066762581138171335370834022915071927026496725448750875590963622727730115061980523514809264868884288446757760005241762681985582213397363302356236713477252739161269995475957341747719403856619495697623278891373629061916678077728742676580326912515168144539744329427200324075779668365363857523141292636539509698889965019789636915631030134756196487027883498949994669814582725271542065074165208498593880279805083697732182222372457859252627495788586948793354477910437535633155423898685308387182186160813254259219038859999679367030136894305763607470118055548121259669920186681054546901143974294613745696867452328822665894691872076282887395569162486806823763605165843685475676029203152127661844231671385685992131411795286506523654730862972471435672527714847069993431302602582866770332381067287534292565799918765822404029939489982496287985142363416912263711254690900478218119893604000914200968917378903442004481206540530645077163963616232937976851485202032309842041038383863321741368177200534701170023979103767660456265962177914284952047386814383882003348955345853530660086835899616108469535122678812698027780240128893644608722444054312774221614819105399219719227365931506131683381589075415831539647864144795115531975727643508649373636235135890429342999127184649226002797720432208619925538638430966119118125240346296305519823110687212259475347995732150621542904630221471727460692281342909895127775883201832732868761470637234878006762891342384449563265200836945674494172422253079325142883341041808567065612270953652086203156855761209305850441746740393270920725577015006741482153686209017661184920530406629108700409263876539722780782848449948714428126779944269173140138010294114525800584420413960729131631175289849573047076466534000552456768629683601349986477474534336331243919256901812289279606347892406300133995664873680634324106375001312504474498047024028114536068598306169507300430563890061862680989637958085356364327385889033805491723675707541830071601855471668660878013255350817463309716426591661235510477410971924821248107512000101347914944348783639912338647745271017151404887623496572330443265427326051134247258740855789830031731576383932338612675809023360494869009013226466799904922990668054773069474853484928889756792538596969752063928159345555450157012466336042842049323920766139622794011754714432352594745061921535304704535238226939143156076317695786003735928937564040757460432139735779088317710732410468005105191581693323968920920235532097152409457392645127988398578428909230675883748175331908666901501800456829238827206832576665672555558795599907491576767558386527555453867543253330534061854608936776148063491888852937041471704804868163182208791135861653300796786539596173993092006786884839592202867025613612141007083314215702985301134968034441167864476554175787499956424275212527135682396647310368592905427655972397791892071042778619078114964267106514071958406173566770205361070365725906034425068119463310985577521605967170371641689060258661744283189294556570303052118708081701117749137288282084035657410099381852819714162210974061643970358503682574084033928718667646486532916858182993392071742337646319410254595709018418507544641240337928003354946773504615902944503561648370596283284352666507712021926551731518632058300249856801367901728299191730207953973781244201882875440430544157413664308587625429336143841974549643633729158706682251476049782405751232384487735253223600551993811852803890516933612321837628684957488402332208774626896468980664876067216114142183199401521474529162754821967115788059437252780477746149497172770788598118749193396632808999186775800751888355535668997248784262188364710684946276249349489511995960547765677934828145442519149062925501752869280854874468621619925638265628304750653516362827958612611026050327836698802455561780877242858664732725339075398906402858509438275337664933304747509081109138864473249876060203425205933556967950081638663852700877458967378718195802363784415370902956572926667642562594805005123455775967533211205904319107716921605086467649101334418653432003877024497168668743996961375870533624416182523166882251911688788624453301356037014302615195282351176451992299711173080194838516631699334263420513862314064632489003893064468101787450568582296513299970569709648638589676290642214237964138918985598187222059157905900860434826484398767501320009107252759989699141613503487297658339308222553185657515724476871426499911227253500345908516090015476930315762647826622119390664468450551685461355453512098696930549491439076488728881679802797637580955674709932125051925931556775159840043501684917144821285811803000343314458046017249497534420573877091234269892641144505703262429870593295392564121617566703928552608684517338282670332041382330660785618713199469331302427607943747297148833214306378014402698010879497604499659625663672949077742824769739413257375569816790871182575227825584497340935016367461810354714180525799042037076465109355624252234528073581267036294984799712566981774896500165862595949859089173591510828060848957753362285058161345900613981947904150334958478389151968406308484153648612774605878828917256413437993076578785967976592764488286097281731465430569574747055378806363618610057921485523386375107043933905353241023047174040275573699769109355885321615783601943361212582851332530982006847351902475967751361034976738018266292027435379165091767606921079266162522303501980311597722727182821592014294899315089596666689544845259536806152085560586767363262522363221340264577221003772970093999299037692365398641335038916229337301162355998020755069435140357551819392830209014034359951254947712998716307162562801617204338179009460114829626267374365574969190312500990933383726919062932032101992595655307664346578145921645958764144815022673855247183516777681856278625366524586080151575893873072608807861442962556558149524431753133492398683839799836023045446051737511896767296260628269496780101672771807280447558643453306795384771349155318039951297584550581640438366414046047160618772278737327423504486921506672323973942346951723977714857575314219283637668774946245004215640959223350713505637112908533943612061453266147060224301509038728586508994547583788947079942054887425274477403745061466774273602658994326352294161038207222575396539767361665294458936961491821133464749795816707362059037683502813361330237682983358853485752906229406759330221500014957900530102382184264957447838245391376982041996750828167153106480770508066119910180651066125719011906234264486924117149852927454225165221084789409417616712578092077530017826380232485770001152414432321253222839042397193857858032193100200307407663685210666444342145083505933569726153226947782312435603775474831510191900251369209654667235657840125785682353358687536422459667477526532816173403988429503682658143344128145886446936265800541535774207601939218288615917512382548415175962560323586237639642952822276234548242113801407067780457429983078390785390385463651634933708942768458244606392825123054417355401259343002075581968615262435743347561528621710957772962404549477151207916813817815258779619653678469281302353953467798430420733143032521085039658183652007073936465088110458519598520414128173472777516991414222468168574096639429125586401554657086326857386036912552591246455196045053054765017726621721298315638676045672413448220356882241812330775797361987685455268594685300999950561943398348122739045286139572557553137375659729652617966974343103453375588423499739551650944209040932254377412903971186673889835010562199111754311428748948892344065608082592889377444584160090179551026845328364502747486285211420880967905842073472965354719407432437798706788308437165707723786105218486013129903973427871884486652400539139650367934066079675922327353162866774292881062285385558330253859486329050836749971676334357994005149751536346714968084012347264212671368457023905118590684668340866168066518403158725205366073885209852633558982602859908185713443506143664438827028686201352660050076223710795277991194456257374362663282632831651373760833971126087344822397654045463619602310718866834040945665983709385078662685321251229478387646509081250885672049263745900576739305361156633490772461820425550915141737933063684113378670447423820111028072332291343451384299612168020662073380296408977450055781041737645480280096751214549747959466631175751350978707897555867793563125445655148017144082781830491999482378225119190286175364174816737168029448165517289516862283485344509277504785967570611263353453424092826880659839072528389094842321476785359821381882153107483596727460671173275047039941395753607422094408158355419560113965829297805391466217567679920041101393630970710796890810245642189075139009354556248897595103742267737811694753850964988982083596541650886019104599308838386278893454630342550253799477387945581054616161763325003242007400822856003721532728954078773594319999163849715084631837861157881861124303656934080710971714786937954794546586302633802598454725449951706136380231987072834240845099828612768933558147982444453025586674178630189629390981630709074616617293957207469629538835532108770814036911111704320613190281119635481190773561770259548534385687684765727376518316017331757847625896654757667305383774565073467137957027699299651621337011718668302166336796369196182321323013363847724744325916410293696176307417458385743322132225443248878375957956539525671677040680287170295889670249608493501867352975919596905262117199713292810957539185725306309429111294992399482804710630821667682624700135483697229792937116490124048198374762567268676407596944897718958582306893208155518747243221918101572060123413950741954590862201116685284535471685975035217685521429252518242306989333081012989133923648248527574556098042302216585330072915412148503890390582714636657290404913501044935561735893037687232575121035728940242742546808333320937433508554808708103137325514305559080427213206699913909975932871415204655454954002919647367932193019143026226325054559925452694011803089308048251006164702255762440531598126827057089026884513325425489324405375228781829438846990518374590811198597642458057249963691837147187074964232743265783056528381900465219413420977195093177069327074397177873366069786626069333114437890939486393569113831280145912240083862294321234028982700124024464066776064600622783044141062756773881863497192064366635035731109220914928866529166737581534122512423675014652901119011221999393459826123700235521414517954784591220737589447951809560469413724943653110722299032335471369811019067605075210834486760443920563705792537456341293329090709139804825434182661162170406365083807868115907203829449975234244375529570419015747058608787936399943358272597991585279625606269692656770713574118906918220311131021607757827246591887747234823234443972489324212136360733173620897633359767285848554271692427253475370110773774957071187023515184177047297989921759460719927598858027182985475567894067079323610205938720539597279403040367506556042748411673458205303261110133592963615982593972543700145205728687270367660496632051144914705010318081514001314713509999619442210660723704238760350351572793084051431675667345071910313278061953176719458269777984293324891867351674493556001678955631555444356109670465309287564128408642300214056721233365954942041877451540563262849589638342803856477357117694728695340799073951389391150751259195754372121657413536385667692624605882743356881267761394407635924965321750817462853548190866895161443215932266120910949537554655008925697583811029788058570581553508697347976451459960151205710540056881602599431331507553802712371524660340725278120815063118287406388818114036366129974522381960970749902097949840643804049604706271095977974852316008628038887488076380786812700542770983712398132698511317457003811024042563257930330159131999205244149238288381839790343000338551040488428154508512268270210491762067550654203488087284661580767157200877175230320504047811930955584882396606500929440886241509285362233109151119566852360944213053138883208643842228588192025082008342812274130094526499595871061335421400083263279699188400132694548743352674267297896105675565726380895265035355600650625814461131946655395612463943500753356394465929961628953840911051921259580083361634435880209032731364252150235126662062666582174269379850756118741234919890767201454315669882106891294648462376510154634995318141692801664337721842753076347115181054802234459036055857290473193352200914463851091877093721811138742848790506781659999172418944844676320357514344986516216490409839308550694255527365207539177583197990992928943201757264891500511307003950421718671501334518203846558515000175126423006365852969501112720794667681863608964703759215359062360618664398705015249841664522998833190204473780912141947926656817417532104854357328003754699790569911708224052829729924954201178302295430616483862673107951840750442903959766883239924527103593695431863231874549316274646799268742296152311518173644059473268173126508069938098588163007394094684047091847103831702513065414021598716835462549046686102641098361004934514964434808231316379228444982513099860432338255305022203861274388095958395711203541955121087472056421874425999084540580019933655260835408815630619332770117355785169942835966553985283024855016161647956809548023181987129909683164312616969963872723134046480376250203423890599906452558315852192008582085686068455288776724734420713768957560649204433233934161418962963756925242515295628142514918900211200103217540344762447686265876150134266048227746535267959942185793520034380144335572996007642431411231616178415051654581927398771294570049398608652093456211039362806011641744280819358973552237231360932330722301717869857204189754743441257306602061777119975036845898861984897492520723361650762666221874336242095412693630317028759207496988531871422189665309080967650709049677637029103269175023757983661192653221017640336914922799279168664759179647405018823292231650709027114256724937689652941727650061211215602174394301529473212450042198695767436234579310605255871906481804763925326124560184417559650285598198589539523805800689020798053056428907984355603221155898682678303976039635904660424327203904336814137669789537569387315620937300354154337786778097584572866556219329196726442409247159488178689000013807247256683697629407050207979366550870070045497620193907321013473281116227021905866438906168396451184927022376853199031170564333466558732177619296088410160655304350454985917275390296354463360037746283954883671641377369793994987633765110074915090004574743739393700986982002624088184664080727361174587571077506938758371705208500346807893834323089248387914679270007907419709228404387567178660423940511137943631216183288689847639812626820912188299399302564416515377259215254506192667967067666614472043045751185649204725573787011601077439624877642866884300186978742394547102154065456667892095689492366914306921287237245452302330918884766025068359606040909721900069276406842924400594030331229256689289118925583003090164464926362320199609284133444160918859122699056997075616250292257887576764942075061901785274685669863373571228994738556931100324347364947300995932391425815905623361153286880839683290913729248745263008948276473730845639094525120170498771019028457096343856647113622141624728486427706646643731284697909067198276748560249293209444214428749717628065121346028488978528102566844279266594151655237639253529659733076149546432481991856853149802349663430048361111521525188831020170033663466060658717091557992465107400047215472567543536263876814838924636125730556656590711098740165213838046523830678363378768672136106995194229531949295040949843702331229406179164508859541542853726403340258472464792050618105785127092175929078735122233387322811340400912708922176831086686475015884542716311366773729945946887917806619243307254730809123239339288893377078680996697547784842710785927454407036318124974139171824681365280959999095443219900278647835679620646382353673430713908808578356302940602245649458626141762733853292741159994787823353694727060476230441313410232282425091161817149465238299952138130184722108459424553333262741524817493852493475343367444020969974871170831417404370425753360430307218199163777459294470282715482741659195537695200414654098877776946014482780803185494086164532924672297589542563465285478946521874575456073800178531142613397331610870239573432079924456764117958727185578537279543944102427663420285106785154566466242171684529486115759053410781577573485506668067043543874271232611047436487173539382744642186048233326479654429940700994775462732997925986752056080448429297922489831834320378907188944421363010427113108690665092718510164414568055260429661912466665745234681779783984190473245903362493354066407741089856008774894343795155272648307869643889074910604333615042410086991781679024527720817765215954022962303255839812662654771482187879079061259329709906859306737555799954124883146209478711218106969044214078574584109152300999339764574414292519782421505582307223360129840621240168170050312321685568291266417706577867272831976943171110687863818978153812575669777610481573016357602878627714570403160452283551278590879207518059061695115893365872603611112416923507163156016879873604225783324957581924934816805972225643630963469140373393002930864782215734812987316306843488980655842222670785204739565349880168318789910440540928949328496791830865200473699404319162510383514055732798963994336506500304038424437529472266251154105326255349780154063766558230635753315412315747714802623908720941393563897827291028082585906296130368301038387624360290311975993956587241612992230216954951243750197097786641693130254930752248653831396733602469557022640995634140987269788072331614369756342067764564229212589680378888725179517356561528867977064577558647941503651452368138810910106688799031401482142844829610125774935519291102019855215497838922495903127203909911517825901570597061795141791145302909064396847874385703306613151629066782546580365098185828954617851556510826038195839642520055946310156287620777793969127162430895589532446710092560312983180410929702427199835046151431944104903455538325696981087197958453143374582241747353030233432621245943648888117800849143492813044944258787453317595758219900572759947548180656821838626921088434507430576011633429921353780591093866940838638199095148169987932213969943463559070668982764172255603243590045916691403553020084294572059224428931883725268767303622821270174497203078550625082562733466599238777045204719663449176800447494877254784121246180722100526702551485915914670777577478017662087656378417634727072251136249264729762037765906007010139979649498870855522513453319277117664795353813367544705884663822021467647159225460691366432043702670579845895838110072751727780234016273776964141600257326661769567263243957501714486814427821003333351804398451340793397688295233972854546606043893312384452707307283986299590295531818960339841553507298414342598691080703322406890940758618706369423683607479262333597485166528574527851173442848826953325001049370348742941782071631846785640851466510150267730594205567041428753078173128082894782168040188660538405507160637421919395525566122767839211034759862019595573989969238151759694850006424075239219610465003642802380674301046663782132593533001006102868543344233387620965531324564022635019093854522738523169692779878204797783759910591512371028699565440470041771860489372412631164440724256855916077289186198090682245076076155628824293734806459481030513907537423687741576572716508367380634233470541834764493075703116829003552486764814468167194191999518376823877454976276805557066456631676893720924456925864574977239780742088908291965274606731628944093801737210896385468490568351568933627917480046221906813235730946177556058997916352248912987813471309266450266241062897324975921044550940372118900955614215710827024545886799188516342247945585640368128500510940865913143567938309059246555981271125226428189511034609485329417754278416909926007406232605785490762660892581927140711053300604849125963643754604106863243502241498747566231166277263497358887613483441582652168408325881271815764452994686942165798553959823822990914412478868238581174568201892324019496449232624261099004583576446970706693378098638513583606470104571260886669928647808198078863747130373572558484723405460791290094088264424360334158205088432523781813591383749947567020570936921544234993305478548184369503303095936597644853569000344353713298933116780354166142065070663377984242961021286906012901746213032743114320545729660616073832062563880937285324070973975779922954382398954910304587583269806511265385429163392022620997660509379254218495569660643741408238262662687318431652412137735726059783749158842103075588555076956917604076956609914234822849741790176450278230059003961082878316838476557690905761083494555506018042251211583230896343229007824306347707349875346533270902067154093824672526596378827584150556567182701955608471691670402448511609204185212512870543620826487504501308308278646991920375725309973217543358545867459129618843053190139761575619355148706674180817028292330409658243308922335508539373897663913591329394035986123388140298209755257870109513687945635116390822118571290662394897331065288093442676681416476155586859956885231595720892141938442384389126911279934969293494413473087866381136554366390604718577451444923170966000440470768179207885430075752246742861766709814717466704099918211116485153892991366787784559498168177472322012903851864742667183447217006103507210757584615123848383565248785833828031248931021414956400067946425821461485735659541094130028996259819465137912131856998618128135256254950849396098280379502953567566195274953489015987625847628201807547531278205905206783615571075945658816699956071263493493970342799397028134022721050700988042138892095211588680108417678633244156446447749951616697147700085904567021485113448598270648959530579053924200669239686093489273875309960538144068129914006026035385636249485179321884061171310374776459535997543192022324728009713395279561398142017579177473560653862335608632852242967562559995793361908146558353380355532269110474947830478163263290010732157174573565043507150111670027763283785519027586959276540776706523171787538940814182280111078116456399791345630534541248144939507306549271564993557735177825197521082355546382335430380405598910619307110517111232742612939561824380362936028387533215780832534950657725242341406183754257814596224501342598620827110176906090072531890745082955314766330739618035132724467925679852119246364324547847121331075627237126187832158668894901205895453014149504633821708301343861137785856503979712102743577261189918866213011316680294831897267565954021507489246615138514495532773656026899152550280718838225570945388717336419706331728356287137010707888473174644381734362487228441207317930973065501930112079477801617775580659869641736583784781577299658089603518704321964583053760137882311154493426778780901262562921501332415284147887184935433721021821875032428082447986331602293743028589639092916016572176640447140789322826174935984027078008134576412527400366153252794472809479563359886372523410177701420062831967914241110161594250487013621620209854478911304001096511372243661120720020766932505092325800750419603788797468437984365201571539674986339459514745283861944644754623227395714863571759576428133227007221683093389974579169974009561755935646349958527616976112852084381789593202663968981510804520474504403094268380889891028879857048348147356789763322773586613255630755811663780401481791469416786551299614624743545603806512934515560082564219000366457349725328830076069836019731593305600678516084409000024198330289917770443555133397853845211466095106739388007426305031747185132095121203040824893687417417089067878317803076123439852323828814013035357576776064515998608999092585604434934802245410896122418105096543996811702422074083743945021428276275661467379557779918750253973147343206687818696041893112943320558837100787928773812836106014925584995346271098508404896018111760897347344173888018333250774067727342044229784363592754377198208750661814400819068597149423335893611760468345657311114753291650828507435955142284597205049761831181314943955783467206218635187171461547144488351454393630411480658268474731298250273953903580281120226925130298254194260731856382298794382999960677121604899623669915153436145019957579665412781246417632491631223732372216516698709022676118242287494303457441447912575149490586417574585172261935213181255451378230046522682258709088698143917058847309728355316991291332728121266346662486842050452818900120945858839695375296477949372181738425565519433426933493395886260834588151911341561567996928226963453705849104078919011163863297746760358874177806827239503954185348446509491774125903177028108662818691383087608016745680408291932375490329912858869766962476020796906661028636140694687148725989539531186352752102735750983372946015619813373386160246829677458998777752761711360749910308258755710587608350591778602462394841986778506113938344904276851686451496249139156384539701957674226912226391108618527572435913308484205537184682199658404027256361326273431602686080143587773690604027086745456694866573810156021419239176968688974193979836277725344222627044481916164531896843631693587562103687565919631730616908373403536170943213605949060417967245957324578635994059347246117821944274725233457916526015427900727332441394397983500987538090078691974556495380780329499420674056063751704628552878792821857891428789663542568680583700795855630150864776751661425283370452482739695167594422518174202417025147594995234804922473281786290881650689402221733398591866268927079722940399654888672425318104903079333813803395277576702562398184981077361127803343573906314664786947745924621402832617969924139332494850117930133903707848820230776320454797010650405429843070045403483143367520554854768267930517091277715529990512831094336965187785537142786860715924129656808195650134482085979251917548042313666155316305195717957216701589529380818604926510726455455608325377808067643612184736006855317630575917984705732557400865304645207651818106304699753212771479759850869496645236418515937218661482795044080201944147958847424338095706535686633010498735980458067979308955445106491628375968181009419326003205433060957126644532542521102484827593085415022512459256674380049889678174365147654697521867342970959017146503485869447369376911855322392274189059524265142903058276828979870853023609936214114556479741664273664679505158748121786355985053552613248098234662488253166746011625949252283130255294149062510131363366577457656299943795765736411671443775837677441934558650722673022360326802551985664223156367508973480099897860237036672977396732914558858815234442536389122963048910067188134624015048822091270529293982402953087717468854928401888332886292047420439160472625942261440283951831084884573669347787982956268224912000292251600107207625889327429887814375894111515759633654197091236154482280705000760374921336899187859490925570580090367419282750721491307420296826951307775543372453054969888118461668821045092855333412895384248196561627101630544677716373890298983534118254353535616767042098195067361076833750781299244736438878977132188276207250861089462091417716300884017615143138086874556812339582758780759369593033891116601720108029687631519011297111017786554205256682356459930298023407804500013989918560929838966405875677475194276411838033452970181491633035285381306759064428265343425156192816732481482335341064813012891236751425335058314723604869616957718522647964061374690200712567360123253561579516990057174136786609574004824364646810913620995988788478952418241907326662855503202589434911030933353670530160309371022066337202156534921513127848061266882858939566308443011060636008167864117276836844037348811105665966692537757982545253748309447451202600811113086327120126454695055995538988536985158193818296870416820409595543609334697780125518204213266476222025648651963094426707326606269019950714355952414392325814694553086791758423429730782447227856478351499808232091898262658664044648462353648341609479072389891605767184227272608586984764918287485034411624889813614143066572029503744914471845111813247207002449983483844494711570951397441208675583586083498194462060463008544935323567744567045038279054290636434092739542873933113638104855654402406465354113074091977573287945903601225636365703969765069566231400188926122775923840019977053146946009466071828242149979330202809217117022728891393735942886419378290393035087662705923693674150948080654348310051591272947123694618702331862404476082320299751350040990480268104912885298269528864793315570967912062744723774756825626698630982764454431132211524353863967022226979317406744467773548853056423512700584009543129039863487769309794430493039603712417645470407422580651742851967043418437805341388760433264049090234175566832891782993071243772418326217207257408601521554287999273629261848665754345156692663903827262717592811482982287906124621362374457222299425240994200346835472074002214585468177703424641069340282207120420182256232406804892460171641172695009325437992597162685262154651366000905008343636122378638473497050187750559332844843713586497493282878899313401512845656635984774013504919904640189631362202572862211466239963090107274759985107499231205930685666112385551892708109866044501110151836401991571322897426440136851496793580723741437954423103285628852614933944039236027394026313057697652585505681515252218112850403758711959736457323743365287209780397186095559728214698571069703781756752571260571659881789759238831190849315992733948393200224413272759239261051701267976221801396157733558093066634027166284969645140316726938890927743595200798031489543048638513263649973318470202272784310026797874695189599102754226630446954959466376139049371205969947991490037720417186361098224566994646687281773403167792380987823202143804766421085964263882350173076198808199228170876547218689454125994371973622109438427793431574302288675357879864099951349399226453235843911315599048156250880547922662790719744693689679022435628739350068198888229372698542367902086157577801363027415519865747882773354587274159736183642591392196004820452848967535844702143693479107506541244014668402701215889223006343388233892406140331774429293735783826457340794947121958554638359410103780342880058601438530334493418976139891917085077147830187990857231161765424205494506665164219781854512510840656915263374466109731445229033514771143320301267846537085984602696193593371756875796751293226217845437710436560001535103682931230263402528175466635261217353711903032820249882856052447329186212892388226183165530693646725110397528793654888606424514570700881508677954614519726702357481442221429677344320871489674395738339631273131935184154784191942609630885976286025329647742866241382478766427440160353845084622836780712755310098371872883819967196379990357719830186375341606516080145518106277518499363601700529833649354009460379853115054175815160919713956273949309334316925541642408194755316700160320388077520115026761097447201650863782932705521994050399091509253785646349481004483544987023153284223033930333614611230898952188513452810216080788548351954198754750147974465996711640308321046221449775019856767037168949135603177875010184784560578691188441778261917809049513684795381555289336457969703359686211711390311930021902406886730973346934794012156407684512660234708528825942768183323245834944580123745790515897467575518613827263966306306634237140516076773416702968180691700581559137271999489351771901936781731223899525810944774721304069722611743475641758414518012559320657535131885825704854013491875698957175660816517058488993533270223113379069995362608759103179881386967871892694410145443745611209564222360320964859505535996775606792029521309274491414491404873016759622626610276146203112067821820010317296804266500939404673317600788322538402556076461579649495200614603298051617646999040466144510819676866672846606678997371494584888616877675543835544174466783851193976390653257322152645268130136057958040727195313015951307089546470889063898955605486553473688175986423325029696808342616634501636833473608462163533757883976233377079230987016674066758544681360746163438415655229123121395779797598273640656955831754815880524946614496014322186440645128352570817800753401204361920130301855824566661879315037736299928139933676950754016298310427243818913232254241309008157064440437404702821909336907742546604524451859010459008719792100250018600450385109872667280642979761624241528994784680220517846003204849019022983255801280709794701026558595222596383937379834050642388097445749085894816543635020298054195404192117796255190000854127527604252266857934043492225235416373995959208441844743512225491720478087293170781511729711007795726137734702407558325665726139099566947578530309458508235028680341704298413008685217267601370901824856395111836318715453044512476139408586173027091630120490841137650390022600152929306091653822313565131522138338515096584418210210777638877859201712787624017532718079035404829073484290343290013707321246336981384479753174324904074744300962068850280706667139057544842465169047190683762733982760247533847728552857508587077099790800564169272669970687404834249604024951527628950168412214691737744028462885484028262089702175906904077333777037614357812454000381672050294637332377990940416292789485002532127513273513671873873197635104890750298144180575427199678830904624406781333321528067852791131516139410398924638276041776281787765182877094083098320274120410325690684447296832235311849814837405133009203948461814005615265774045055790156803800993249086956382477754701291039738718284832142489819125853287833826363447255353513777018536658066518009659420824382666386036663549424168048195102037734713117777709508944502447321755490406199168159972071459008579691437151787653418618853467183560898928993732491710790151508007183794137602119561579579927809807879419143835391458904298184327311438076906295855072433075813690626190903231707711546753993234669307857879177053087910295449337370202942259293971032132444508756186865595518057106139744603594994660585245189328347746328366501303835290253320133007582852133359380823070240913855192637201426210658221011530271560153406985162021656013001642345041299157684041477118206530756402931489694947667612903295339738514470738725962651516382886467773989607987089377726505585058522592296039348220990107957846113397520226886774840123542906435229629633127900115201651221515287513430725344683958776279480455448211213264327387723691065419385885450045280290025388914105562223849447670675705035704346904307107862057539919805455818198268871302436307599715847815932624039720767627247557694528298081506239562406455180442809237917883607939629435999058223503607144267748777546131802907393601767117864719308524376004155357520558656912479734765369312477321827592192343619498049528044578068084719625212093398343881680150474374619840852577383223620133233496389675638617205926653386999071531866701403401383570379635849260129984960431279952072301973079980371425847456255555877312239731007544967796102875907040157166416834064922912941494542081355112220481513901387976637102897664540158161716852071290262476038227496480896249443698258195399391545832893428142300281068953734811427425718935849840996852212253265804720999423981510712493721512138582990117525977167058010801115715633341400974819919359303051747684899794552381078345744918181776541269114599166674920503810518415236837315661817626527471122729334844021872827794147490251973318794641066757238577646879709500167474391052182335560295403895680382813708663575778514001015934026458337140497021136770754439328096344020177712901751579989437457900362759989879190940157197574531351932522800531763064001767113338660547375403045628644314143020660774920759417379480393269377102603083132968514967402606221470612714657042774854477486328468693076730279167149222839006284042821984790533919065696467727663859426424081382822543303131445783939374933881972921193482988574452327261859635581789154674511995689147201823724424215717383255246578033855535397292413905319555416348375338349019478534677608519001081205119103784404345672485683977867692198423903306138098427591754575639317321145828224015456453498596726160141816722386296899284562384465346402896222178682148540236709426956828682416524878123228777127885723259048136114987055544225053351652953823622596515103419592771359517663725019778007847211277372381741545298555902525096845772725329800455703011570693167984120320199284980130610122901338286459586354530271258220827124804783708700357050782841708114182674410500254892691038757854642548253881538052578514245755923206007208095103032189871145686278989008383371955183586269486430161804575269985741659562335855507167414657723816905451824078312424665759208120145388337340355635490603206779230639707004579651858348375949551313701893142242566875941594536609101187349070373352231910583383032841593440357969326166772740397021308510239018852477014335440919215776648959149870691839404004883910614851413425514068013300657487717439159395654212603833577644755058771273639952647961805251529094717501162446565005654458397670969014791280497119675683214829225833705787170344828822057656600542912052160260466802028372052125001813036355265059879770874426595096564881133213803591602859567198621368156328900441939716735792881237470442841463848638665352046251089742466082982496596027870526351608116597826930008644671149118421391620202654779797873887041669478378204575982860146976986837123428922519216273765604844249653926986230193558947638236430280782134788745635818090822761469611514333991025385342892945563867187562950865466991246264400138226252071218879749993150263422744664159395106350199270781779842986042370738467100132078371686486135006429189507597942258407422249625241712020830171796667716944859737235361467678262869447442574226405485110755162253215091278964262249118902346481088300859303967659422963277162356945582268726684481316626362042498056332958848427135281062172478372919359236711648554437243064575454162658049859181520384301326927780675716327882736672203850457953838415255164534924308105635963762944822240531455689600110302642194878384883138124057351574160748253115406327885375067389361811898741452980769300191296393700535485049791586629634724600573669969607994512617835500531220544964789407574014436413577281499980283015515888809577176994333263663115961864502926345307467289721812751230227852809758775613798187382439334352742211869394491982520281735427904026292495001372754070398284478295242595533909900005962132102389936787059218597241673354757595513107348331070063812890129991795629148457534834507755180422638278226174438698424213567705708296486770166701151433054753341967827644326381178562957910286183965047857122808227233141726150199537514771076006153232367526394678633550309135365284300761238747465245986188406792983109452640119711012246097424394098370799495169104417649374223827508354908271207167508674173308776333563988901326358914188273464950560080560371380988913131677476333037874581926361537821330186145265871363653532795827846810337005876808477700802955634902658676148228855631090533038387968236920574362939222399899242891109630826974050450559458071994640156740930037489829741964754192128316002210580237952754350461636991980077152890901199834078293941801986593494269413592055491946724442293716960571696281496949547663870290269803780036256099182726218234324189870653812784587008162351228530714942534823249441097430847219439216025571410877579096428477118514965574593725379874845163258241443290293307151772188007148381026190646136815944336376226376891842237580174943941938926195663545822158089062638663561443937900037441186048279747074458669048505319141722900542311690794383777287063310249765147145791155516333696399249451610765006331861952559979944576738670750147991418644761319510880710968753114835368622063774637199125093829937191275967443352935421426659218462433502701806577103301006157625692544717800243051564606792874698375656752888369257147204682980074074000149818714081615595040975679304165070199745157423111201968405057463651173481108146127026832379684057807832043644313776707726668947012113580069228361501032694762565474548222071492305310308949581666628433085248705398084700973142431343099722152116985581326632885018459087707933275635603331774417706966131129057639135622537888014007358455394216215853820823699893520107229410030818148133910824157056560373438471572500529059715231253520118494100087970320425487342494624493168537409587047745453898311979461851451641356045799069577100565777274185600029710315521783083149288795160720528870196439816710389515096494319906031728526837208221117374295232872502596113282007590560813754259961627557923665140025452577805459929197153686528391604205604389383324121587736786042452476151303047291347559731499405099342927968240107315064347513849303943740947634522185872749380797161794759469606452191752049552013135321792115740125145293220350751259390610360851699669890552355593349354274803982261866888316178945770457615604343320237816495224083691517581576574332594519475235317588087120438576043853507907944280080867245881752092282885939552523383397872384161965111952798874825389395714723859948811381828370322510609999994838581437719353867177636012245787209282602764479501561154485864569715081183906550017718540847911158878431350917855557387804129737811736442558410244960595689455932153106129187468824177909436320998657229741074443358174284502032890336805987991615764441778596038267237258136223981348552676402907745749047855226347973222543885998626508215867387295714549828463447045897887507003749860038862526519040040758092238227977689488250826632436616571652140207624857126897156388228543825218062754793853773863289527895285210198077454462530947413505543550908454542621571090680379903666845778825425026823077854827506151685712335696266008637278521997467922598384621076410900289908482007478249148447449437725887675800185788520443024607490060164398632280360447863596083690560356401629153155206882446924304232887405252454224601405917639732908035554594389224122799209806511555624320146913369606887423794834744780329987751682936255732652237790702273029683834881041286797033357276761888491516191369825467104631837683629949862400302927628307297535680430438737082294937706797204053338318270744344054628452777343149859290673924568258657320272244991972890876661162917046652983002450091383095499413133079474334893456015630983331417334718343577430705147998196575272122686964684581437103982129656709238045618018511697966919207296140260665748330798121665865378323014937463358785159291451855359422205018676929935271819063543560530980902358866755835116427864970725819012671278164481482038403437133013890340456854245338627613906514273535754671223103913377652440367456331898537313812865909982169620128094241905922342897822964449796809344709838081969820965105173508714618995402429178915233515860003835229970194079361307169255354596074283831297369283742553163083217402275999205263307905902687798275857100455389334295211503129299083569107807708426149706633156788773200052659066408099965312974961798292900581377523627406871808342019909588437632943483525910418458359475192507189264160820727388315378370561221582108059541931735366492993860380544627577007789122924168151846986461128085707166841849518302348147677435965068621924430714908265744246459259659101674056524758414726115021681291104334643416302571633828353144879662970622370797070006403225920895151615027461731301770865275874530685850637803556154466935981513678767805126743913640052245975168439808960556197349409210271360245453137973620743693431296258024061065523638306149161959635924478220977082558528272274535735584891830504141564684898157265927473294598118336589696574955017245086522454623641254834712028614656491881111489915308483646997290881611267795365661238632440794836360097940969271758472807848324642902460963986452832772850362879012611129134791152592058876731413553170036529909595919854542746456829769583508714961231707291200213254174816048539080358595617195597760481501450864139993881703039904373571119504150991073738114351442542348023345881219073987865093879962794728133386829396801040688475054922522421981102222704294081010580759817220837046928222115970669871594288826683663808290748741229340488900525748713845232529688032927051807625448890041355714442058612811852991257821318777661324237063083842942846538153386809268568693774284774906542764998938050501110446037942743220364891036765680742146054912635461453490576699052131644578673950973192132026188801299377034349818664667176954658589330417690765469752978250574830224661060308521594453422230957913376747532360452286794505583295594052419697812491358000890967415602384386067499338672067580260110576686954492249973987471119981330446380990718438341311955726966358766965855359863058099220120186251835726075942971954525065054738011558088844345529681901070586208780764873049816820836838376066960763843236983519825513538834870104358551750754508145091545652618918977391237429769756109677764322726102086760502273795119473955448759296952387863623759089146637957335172918539303488389053053388399759896526357800983260914570456340237552025002373988420054060344812198882906467349617798180054297710923612631693299821676918664770220040754559445120295243272052688964818929022442119715067032351190127119863461200474599178985068353728956803976510394359542713932231069918828505963933503131946715837824288055583629135561021167238343628768027235619884892421782930927875844334629136538873464400629388305922555199375245933919511868968972073601895588908539596548672946259656547944820504049028905276331833388390721289682807639898344911350530489736382076732848583273766435280708693109955181122895419318243640786761293382911418594313068287683204897902319997526313015664564390981618481957042721071798664282818660308227749338241977730012310209495951213490860022617101193901295266061382477520432111180143650151222061492124448183636956103642014477242764323153907787727388382387894204868067977875421905087206668272723495552434956025694139483313188635917034699100026498588250459153831978485563713149401509302561371291366723801970036871907907669610274342210591971423805495865678944515722611186716284918146102457413676056527090975627347201628271908958211411494841459703029873639111703374358659413922429091491935738849772180305205211255352090606287724968858086059329496844244799995246058681123121873563092292107390015240237397112798391197861715733612860107165352252862915520005886410925397929894848305985986711796559467562856991609075139656802881312800094598587136532358971458971510708698197625507151475971254583409287028221493166260512398261106609377729024146918689504672967366842099420088961013499977278977264198782376770252807363748155323905679105701062862789962117510895886503786123326970152916155960955747737293837978948999872653084240113165623202513601530414524330661140228856073178574419874811315432635573982185756056420971376798257107953931803345013094476528043810593659852176029389582185160420754745384148895087190559242898969887693848012823276110843656038662640114487909923089065322701785324859522799489531627905214590918810199522012183127578934726741802998454158580415050670547345187626593238004294147338888531299637358970464011967691319708275881611206414396037520205273929786160196053237772390253434070460185010046522764358567807825850988164255603556445060588965317977688377631468616405490663967284854602722062250061179258883116385498957627860458259970126340247706674157474967402879908434238823869786606252101868823368358363216354481579354927687854330959836689687430706629345653440426373686789020161563912091924909347627821752384362231640343046502050953946000073826520249798737706873795548034544260307385173799911138730221170483958247527479652040280415335241868008899988513144077669150687164700168746977089742250894336240370512380244275587161301536193400423783247807925521560831832526256279458138639561296972086173359495516109221616197709708840139845757092555526096640057809537783989181535784903991316091380993665249037063888596429162072284101129952672601067251292469616960825353818616852223201362340849722563691531888029176451590172678705834466379854683996042326853389007414191289177483875770195733140725578237888185409910369333463501942273581793525992833770321589665624996079557679229286232592112875350034024528263578712426433669748876448206395713095912417984538372170956083368351590473892904713938392984515091878673580485197448534468316287635393488703881036589575623124398890491333523091049784124642423568684310227781408746093071896357774043306753366946481396653847029552877790623889531687326583407186706421458068876916374230856071582320942496149919229510217714117883579589049545417195812829173067558570455908929913437527300609696830050453494623110546603654110942770836289152908720664119569959588691669909962117513556346677915027600745072359631939196251573928879755407153153650000512174368667373902874747475295423745244892873993091064126228701378154568984183639684356395932088460290382911595180206259922653378239850691497185989033047647555565141414797336449198757439724882683171918918893537415107405661361571224902521821524623641876900691404507797127595618388068958927919044162261723670106297240738767867988668884775710385640257942633405561351570361459391265435374582974426801217232491551673387716830432134235983279016325374478338016023466050903445456816743748852045388832926231180724703716308063048809051966191584882835967872617302015091998836903324385933856821486127477464653448338667331876175725406562426448354467698739986503115067265234484489659436451641104293869039640608746331125940582730635562596440414205134798593887140449441305715931956514934349092143331725628712717823325584102686351425945226787379437042270982685783026064278340071777560578550145740648414572218933536427681034882283181712490556132620853314155449614124873433757897814113494624478176968330308919422233538440204026938314408153724908953651716617255550278582914492009451452681871514754652416564473281967938654536495176486809234484585034748610962420525808618851206437561619808470730928724465754108706765327512744684662019191003347304983030065918465049005622636411485102338150499863659801181348856701884054791592371443539951244417399775550397057464685248298592615052699317603880849123338975450351257893702755695334361867619659383712480238842595634021435471101903248604435813612172024756034998137202976008379171185924297362411375203166562403095901053098832135160594153394646297794773801558794009026450277304095036849381592549316365774696320083313569109918578357810107734853336904838986022751461265442741841676123264040279600312489560491348270606685275425152503472766752802268222539404964354884109489912185970292552729301319185188048911006853444313279905915346508892757467634215187094249695080031875015956033028022766692655807772444881235059970591442127718067720394012945202431563487143654257456138340650399821888478329775430190134123153989332767774186219059826806616344631961278857972303385144804544445629999496637847178559650713915645659540400288839737858370886444615796047787480320366804440710445728195378546730197446412593308317345410799320180152323630486649996713792668049657084908824823975867111629992437468154931712767108984466517560347675159377079008226113852863983129996390869637623867386055477046994531298435318870480297692918669811513175193556784513776727642219059754300036098737244142357612341212967997950892442026505076152418716132884314579221208250285126023094332071438348820053821052380591596823410429100875057413201219205239877927118335489024598205304789794959141984861665446929718786929112472970983097779525946313264868613630770108434128397257944573234496598939236795726066110341085224477011668369170757626843192227173496899778364061034453404996253674310822837070553122882061217726714213513963896868058580216207830925728112849852809375497781015270692357379131172060461876280237456727576032052335209800032941206922073136960085505004541471907999273887888953152029061211869140202508581671109289280753511674012443570210443494274674146307681828948728247704506454271787458895211544787573919741410428112184204455508051812282145575784172124678883553012683850510758312263651412673972913476519092719823034730293134460214744527927120675438683153261367502323548295900469186427022660631542640005600380318787252865423504815247106540258043612179824332617001644480641134372114826984527542622186360483229966381787279139572440322692169408436790631797256425334359158451142355407596792294405317144960140839422226015345079026277918536846332568414325308659598299730340289312728323675426468576150816288518877182993729717575182833865891974574697211822247804967833060563952774950877100787746672899276674623241572757616819660421484609322025171087472214589055959254104532746304611520957766164055893735909600842546856921608071222374286397806008927783180823035626487112276278871726936295414378174745527774807141846452194323651445687864316757201616673280828687285711754143993070213114335413052644200658861609417386293059894843744919074562250759175198185902804537069654459448419539268385598523991224602707804657933374182683774054105388942979296902819096755256093610498610650511142404123387000956100611233503954389686798766916115257332823167396358552323910375940398359099794890790055981280240238202821277703846542991906188694976269104713602608688868748695066854385183828197019216432655129760114275387547870019129066386340862463900463588738584662727515945241024233969697118390011891466244299823312851627129944505897238029220297267467689313481392343300748928303589482977980572220603118256817592550842254958832202287489280120992496457619140060180096012146054310383167130890543591994258579109125773972651362408945450133722200670796466686478737051427505263929705427731963208948456036814110660909384064210755840404228081360482435648820339181505708668043688205270970754307522367092040167696797212082264193457535648261332609691885930891479376956786630564228269566595702468641597213293856950076421624189154224335921023278281801913536584530996608286037021925771071138012725853629579715432277485453683087297330134262340951073182708303419598785570946661274458999137986906355065661748323286268827833830065220076847171766839752627260451277310580777002736267311306953394850513503641326609103433859249968724758584312145065127547395885669980173528678800838678137257423227946004329960041689390946224692366722883898990213158454483600516503011407573993434070883005481346395204618257569031331202476364615139810763202361050419868450886673981007689195672222608220020067099966640391081004296905953755018624161896899592118499526959940910414599675824510434414724221860021261270044806291760124200822414377443710855063037175388759801790295279792971773448982651642772304870949009644260087921290669787465644861321731145807127165578100017982214131771618760543202203223767483868102138613787083865186315636446380178631104387542892757419140483320989055720070053968721559082846747656272518284004513743083045303694838706313058726885942255886947415341538828423085434195789271102682555539496655417829369037884339456033235642920982303847611471796865532980662236882588121487022947384399834259110343020239624565485616760636486029076557012691249025230151065434547378424981668709253024635932760280505821723598205501128060969380190928610266895968890339472141688253902708946975475032067351346711567210748954428958196893177758138163526776972546492816402033462946402514708663037664195581565401861592114352256898914339386979299402850471708410983995971224098585014704473841282065442139762835315193167407802706028979817962240553804595156855394815991880920166135384140009043639153951100560208991660849464769317826113990187934089328383629103292071608220654757469377730562243938571194638603255578092408564789936778348612667517401803473209692675157631090609532897250627899356512715589723371627911902116086100649590156276459931770599932145856606985387499525579713386374963611265511603060729359543894453429741814554679217850061231769925041860382295401058737647645595507538293433683917415444465139202123731061550043308547299146870069920180561621566181784904672749130613648265941957764353508370271097390043851732002134836013924154324043221348602012000271107480788123359748247777427828108244914548507678440124239879674825248735324568581724723669979881071747459872036908202007260541330669235973321986531782440738755947583110331587980439036216124571081042810869493803362028546268148037976594983091036730775447947338273659299404882941942204490206025800625615590001960225482890332635132720330267456243039399985345162308038487623298805845407998996006716149887663591557730930859294573962635677409929513844708476849120899641285254439584916179874706675050251430734735827753081849544088096246315304724511431127398905021392341619389629619784478718478641246943487758421560813278681680136701998748204746912388107923443211822656682001563763835854930492940754493684764778663053752687916653645016540680547928746823470294746928703352158685675213210100564720206762172497961935952506035411911473527601292189690193734582290845388078150875343636369357774353304405236987136966891169400562753498047164199051454414326182307256804630393665537029054737122159858782742554052467304742843794971595177259698049550474990246302692264326975423288884147709931851593915293137864600945017564245260962356702626959997024144825184139871131478937630544198736084807645684463488110550194454352070274952448183467740327527719325964108961290902897216197812423052577719262304827201974178222534502535019141566954977578428869471672715823496321373895811182219358553606191602299134411495751226053568374951309584894280333984742140427320746133852452162262247500990084058707706083149458402100031321560553395176856978256856158301105574119910736355444401734149350579708228474427438941871104979538308769628107816944716238155564654024672792450569031708727377318859094247804186841121864999806269312849373559834353271302473853060199214964321667839606237867748357916710598808102415208297825272263491852804002315080212392402806094216955677851286219072252481625460150057507666463810685960577131342961581065662668692363901169027971743935544241408058334610006814207750031112741401951876668680602632071316043994369108049720783627794591942084421463326877741727003475383195714241154546393094740687197726212485876868307063036649534567904973416654268892319116140669855094632689233413129534728970026914481717281893380035992470977938387597196370175810526498157763069009977731007680765458602340336456297671230190669069349586368998599646316321588531045017853541485041737580595850520636322666397040510375960859340194229125302556971586166041266740858704397767955310919124065794586106265035234556807123380450981678058652081000319844683585514546823890506393088705425100188465258155319849862975732364062046105941305307173561172631256855112906893389856560606592970792015007815334985400841788668991322423761142470267179903728778780599758057669032383487369382280794415176737456475005523564653007239586764119480812052615343445908055082990652298605878850416626071199795563415239112170135749772169022920111440200918964769866408973517062110871434608019300544700437823027989440282992790087569713103034462810427880224526704313996385554801210733335814773048988170854313757052662871008487584872340582747058810373805865520132504339898342468768421661242054008035624402860149882628666944919897992241932286970879196087026592487176900812512303952113908224619547211889386364276877590130758291808170276568999710965270840977346982858203464162559948920732805360826454868054460174261162230421589309864634362432271544262887498843604051180056636662939262110351303654283203701663864714174387191651502785918968691692446001191166983722104041523140588931575947176380300800581135554355126925507018892988004422398072099629800103082817152176238168306045327835970423038355593961041278970741619663433744480009671134977422018032674117164870882319120264789628490426744147518647563663320497545911254208199761788448027827036460552265589939489213586461843777645904119767713273320003235884290346643207668607880926525861624830959613433538167451598694975333210656114184357515128676388467646288147886716715322597508823694644913998815070821867963984911523054346831113876844743358291555177929077287745922914009802045200626346126629681232262176072373912709612052801920921341950293161770214158852425220915443995929687486804094990499392223171023173307347984716488614604438745438692042706528785490734546111661085128431845623777018410355956902041194030507764807230823201546926198559574210062399345082776842929472014298978550853244431503942708843772952263451173144197186905721815029419117294760370262861551537303473600164444192465380438614259531159051687068420757621823588370058449320442828433934685614128465373484938507791618107160588149392761125061269822548845802158036242135563988270755003283662454912199287587039856761584203941667760046992356126773009859577966634115280907536490280057605450216323420242375595858700727251238720322924008938985961883715754876102044972373602521681940825003795626841083475570039102101631533776748032205955660614001538236014540353855146640319288782668810597804664457082319162870055907137646853104459810455049653026144632212417136582424858911590192971554130754185434323528454989291553802267058683178150115612494012485419849754589003643632774304441225794048856374141680639061826662139506129056190549763046975895306425731023295019512138137244254939120524100406682714870496693432067229996214245778353835646494256724706796810322542580801078806690582512578552690113313582016849840799732073280934521783152689693536510676526779610541486735240946145078196980359904587873855008441065563903003878085715680507496452290717827818126294248145432477355990904238008260420828914235268221743100177952332590571069042032890297692872412856243207636203771052627747629304535026180670721628657993967199284047486890261962141187698543025028208397846444236477565336946935596084585728928686702418734905559756556477290529732680225396814722323835353040269313308844501073945447099687676713858122549346064663115162728355379910425562269407285659478069624333185267472758551257432965891846175482921787419626154675841074393269182327946004752327014830666019175696217648170660779744944208419094279684566328257576657815361703113525666277649378544995108794296706187842535703533423195880810289746861033623460502817487922170520637078723351185649442568299552099733202450132335924006412858067501061583723972886264341286152159440988375739696402928321466701615334088344002875052944625316506423748380749733094908735500637289693911221728551576834723012320022941770479285670597329500122591519485618364916816349905780202984310908655629409428133799081835377414845241351912831903664192305314420093597765916719125106958953487064980208524565104133639499435151725840317959181305657437673294678762536980435858799259416731054285382644664767849625699746834580172335001828565432439625063005868796942290866922437056234820294108772983870399969380787412583958295079045391604821245747456749398881959524533975455166266938539526179530568248351905895712434146831672235197673979634653730154143150778086026306874857104705029495391706862054151788788455938227553427777194263243462499003114694902559327877435517252199323913667480070016093754401525733102727795287200476784584458901374856067682710855133564797956923369561546384370917874465845796244919032519251781766512898344017056979283270738892845357836215058410460933744768560313866739423037900862573930240698349038652605599404377999922670808178219719149270242421071040969893700881937871820675706558337156585355159174883503311035731875898047506057099284454074274948682922167629343549368191065115755471538877335324975823817451216716394207447293852337675399159257421651548989309264953940150264780086576370785226999599248123010628736826501659427290832132465658182424519702860503037330668324605498675957525793732922236401425712163744970744125365258733192289163047289738581826387636788277273461511069325934247808484319713265779201763703548085010232666805010993487081293610457535056145961005185995584137634478205089534323934393927726497606709620557767528528039005187104450684184434514580666489312090790497741922999765435907229646089269326986247657934583641850802095897541212195152334900134327124331895329602869623135438473528179818083570426066182115399769106158876306651981570921383193503781012562991727874443312464152318610925436694082831710890753313298884155582124185412050056366461427976062762111127778018014888369435361592993060309058610705844334577964043526279654562348739397707934782341302130697103992128626252747817389865742236332768560127759309260010342610635457683755444279843665354516403057672786658241467899649712521581828476648753568141350147181449732570138920062271299947924639925105870564195694011288625695007117628837529209031786841094571650121284506587395416332964853982998637779870234561196699059272177208458774527104285620369370901129980501950315547979644165247753801270121146248529347050497853970820550016408583308427880134391378640531878146810111924827103205673930036562946250701507944214602758473873215233994934295421505200601358151556093594915111478111792731888014206533865891208366787075278961300285142415262201099783447777575095466843385872927151470072739977685277325235963737851828290622002136361560843253007536560573771228667412416468701392137224289214839780082548143827286272623761689303817353167912750695898506513076683865329914029358339635175899343728415226477575289926036187566506157499189779818248391727563106091365624137027613811779515524134037216437160040030335321066122978054636752587716308685008925372551108245688123346655619771792899738153629769042070817328027922885505961026721634166472400310996537722339545282411773309726820501862726518649470413569488599352381911066045735530626096415314178481846602870309225858316552265595769573297081885634236025041657474677294906868576949938873035323591629030509430951272502463469124490194627692371741500767541819823451321214370100826234032899256378984132887121881279091647859712642272793204343320244210396448772377537158115670181092172876727365054664813809541141685671965378277155370444520905434873834772629792055159556021496247678954865489852171354029584093504975691736323801630817837494091720659533022772811465026452192240354845999184287681467330970953842529380577594592933988528736834782640429787358666864534507654174831583369335253241793204608153100741682744606758619029917031169519264212823222363118725602105794990587397305401502860860087275767287501894056827205346976166124374393053743083912613463068837708040689225726403635495927324384151965167360827445930713451726650948505655929538671339932659908118203501495911692329272351138747510530910395960304711958145803121198653002542681516079527096614028997364135722138598798943449258998867987183049502263066619202085575044077545693925329026668237890354828386524409963010060915698152387957014213878868263439466144644157256966656522405347967381696556013369395211250469570350265620907347289956035233375816983536836564912697354938055612649708035842663630048853620343654554909503234534518625056951394599904906495913837435430757523769408797734497100572634424115598595262643964457793007162205469450863534283504715154060584032443062860261641222406209130496036758317750005315746819342497108769838425079373066856149942206471694993579948284190853188373172692805483858898812886983167179759633869081882724432589714026386463355361692806552567493968452346584280620079798793034543260890350224182917945204741546040720064690432315282671522037977913914149905013042822426223050794817862424529681086370234622952320538828931800221603480661309269498399100016571524318710782302374052873706597635332530282228674192429974063011713342231491840417997979562489845461037115647196733457401530493565316831051125107287271069311377110753396978846796848600770544929980078607290672053533478482133807738447328911585768809449248263160030672116073526586766823084164744154019709323449264499622525253501072806671370804085070416740191748616284397254857499538247497099115897513201587585860232656426020814810266573869209103102270640456309206080166200407623545036843700253052196617042927888348516327834244294676898651457264521973102817870455227728100712551400480189081744715533681622938141984615750779350790751980722879379686871619786201525120461444501054699018754260147429426397341616612225638210976667850881821485515540169194800949085255636292935750549863390536104141149286997541636710965576605250302355050572533705547910231680950253239871576105542188352831198249119496278986864686750153060294000904706828564302797376478137315940925397845940508631567179597063180325061318835688405360141742912206140095195464798929752099504791383601009876526981492704829447406533320545306635603910039911585815799985049885537177454460285723186326189181507221548236626793548534000983610551494580052950984394972702881942716394587226878829465138150013535255997978931625010019098416257214087540824081676695337940819081598901775611086672348093099003377540254059609635336818972908069777671948762953591910423956801903951347521029224733962642739223844593672123398343187835843222958614747175018298722861610999028322659566504905452595024897524026082615383087282957222939093056500952873452017263617279371428672770215581256873963876513943804711099197232558734527877996170980178681118315021756700547417664443637594062680180196420534508030775497342277363177557006058956097024016838440051849848534676287926066655650057479382578384734369496232394411000499407594372859634969241416504459434294008098895727296977280456172262328194209269659642998793765059039564920124450704461813115346043200600819462916071689551318796405922895676878640243537595260956536091857799029113857156637459641954769240240915817228451956127174847839794494664919527689403979645983696777822648589720228370213607677445719044269091585483328479823861570495525300947088851279306555168990533854350379474560331102116192719724401940099017735133800731848854990287098942339658600495904680815940533336795334495944847504024891463708618927020134087180736761751561373637423059036530120770343010715260002697543164992232294249905859905167892487225423979721627874110353744495509818651573740585038631183667415993889563146050985237326138843803707073143865840262830152596465265152777241055948084430944120626099873971986950824169437355093948076604503873039589596233852963982801612480948959487017548595280096642518136342453126050557704209661841036260756782815668316781316891370367802586602969736910170309224448490087355177418364769365577921649224259190859397420398124845003089123784699852163527914317674585621818590349657320467514579766031229940334718460487526254348111054186082154317818958251805958006237962294201952278240341572067460715571324007046591753262142601811083792914039148705326760528329537494590272850442684542322272526299359665946077014325034450420565650807253099094156711661955360467934862857198414528567923125996373193617939370584767440908331707991079048820991740453388905172649967009036214067826262660702899061822453998439117537738943171586076797147933462201579975410615452334815157674245549355904579246726013349463836597660621924721793350403296983044668555261273491300276099939555861144375227361645852711546815329176153004615963127771140236104389684520947233717166140298153869566622655210804216031033029231839636350227831862757975812949067707892217209677393075710675397178273165343355726881279977210004130157678212771381670875211026733570746082273247052100626368789665626928280642726380950492892537346550904796089858062378814095966627751725380849542590381643812387450899253152713735279749771392114002780790816570835336085631307681258916398839214690308818776270471688415816731951510361923067216517905065358314208879545394773247798230630914068264073488052191127900568700295527370065725664642107329961343067865082526058977341863922462034914148424165892376886782572752591809169214719053325726934867317003347967945799037143031185167867357790951391449427030428295812783753152015902414997563836962721588013447274303801093884290577907682414187594785744561937606331869977208932512605520865592816073104125037713897877513303994533369625768812763966774186543438183257892428242101930436271187918832213055993689458060008947075254248332048073512113752725618355388143433210868005167602081952298651504957168127850499491401421464061957028272694718289621993913695485436876492376849264311325334082721750850573543106340787964346260515142092899730247249404327107241076816007678332365079909143232988007064329580208421967916606267847454062914432149821603912758089883174204391367275583045765607714259361849975722893191558067690713349789620323891998052799470109134864627587680036262605073229790814335162683522451351182534846951459696362799141070807240659609646538635399460924243302932642126417028562440882915694384933440893405961579743334926420056248129235334056776444054163927386577914228269569999009199974950644482885235640802456978604941199813349801997522965536298960010718087728283000282300214069545499619331445106522083303455813808382861081872828536341215338293555478740910234953114784402215581639103242997868946519151646636933589565745065033681195735178724855488476230312116491865195805442979161272880772687752261603337685218720069847344157248234617603992962564188966706832022741707651582607585896267109146450682222629954971225139127132862086066394126567973136621500945306853702566466055003904781211897162121584571571691404046722243355897672045263540706504713782959056955802602793734921266424145957453657304917558543606495557966873216235539140164872403871694452759244783669663073458194558241365502936865636710198347720142801264730709295105614967358846525026423658921987411807457444001121964682232093705310760753426336339991455288042214523934890593935801451746243572931819643017554201472358866107342769223431455773592580155881505620693832289833465702490473781859217296683825115521253646063380910966553161999264726716230649908185253589755654108328565186186233085245202276061746227112702768351712135218268811146289338376718926235461322590031479700213799458869470001669917802165591129227472155351976868556019939456175522111458113464838492592462079910269605015383594404026661392324670729217513544817039120149108912795040532370787815934189001751988729894040356402727513023730199397551192832724303026457398118860455422450812554217727434523462459687029968726494062203482626052238657662019104255960299000411331528619415903714165053608027269972938020711574493442079868564388336966092310519378039786616670406293371134564183667886765827064723716369474998534553278963368589087506712509795509784418366058242267699579444957299946947464356861361345440746161369820130121198926127814854172583378305193925216442619704132034707973726120230129807942887208242436628426825997830006942337142069001636588789079530728476062011323964986999188974091278135334928186189851897309111644668414701510317623381663464824268298457663080395616617025046321657629613781539438478095237679241588769352209001731185491270135314141940633938928166432906393313151952043375156316341637745977654739593080472355885802785721426703081527933296403541750119929009890108538469536993009288840810450967324353791350582813148379589334246019302639910130321339718735534976812914857311064645271652032510757218936307986848516711773756847080696491058095253092974739766704468488311615080747408073671322505770942366705999405233650285516756940512154020554872421131242214831664601842216185214028192331776762387492082182014156496052912230668208190750494295355396282251284157199350317110014041899485886344623657125898881925706082172159069925011745939441926562493590521339112328577095684975955469592845554515000787192817001053026697602189839863315951648363704400776888236026460066850166715075321826722616017500947802764322079604408281631836497535122122132603889006827321927094568535749974200312873726015476500755917053561417581688250115045582369474501622161065763245406341120255100584532922396774910060608175641639613856437264273448911777303647918670706586967335915247018466556219826679705933590422640674279099051346802301659740977467796846564250363173177291685424418060583919991082641194627076949733919458340452930193699654432430794444264193612468101322087508521280396157306218351605705707441892789223326546139640804052943530294074845504918794183822722387978068728546741173773030275053341895238034783412405595032919018082134435314274407099646094479178104740963759474002074190544152280184894556848532197017534828807553253118847331288317345108002681014931560123317134517027390254123678102389294568101412810842178899409304845118849231312537779627574427194633258065798068543756409274164887760677457827006418031854888214946112181347719015039393990572415575313105923035504256647515387133306384680151310022261411969639317627239058949055609699577466826383918583573351051382112339906521063700358508844830046961472454685521457505026740399269291765169889657587597417381298339517660356261624029709822706503586153089541406911864975807909342212557486787114616381836097863035143277719174937903196377096787581567771604327596624380352417045685312954900145229856572284286199762479890961973732528460656441201314383775318406598184455225012652730185755751950304608254702705326233112041942806087771457649924382013935588270913173716523029969196325862170357889059142941564107250922586002033022727871791902726551398944443884318516881548170900512810477947317538208434223383848539208284524673660323448862921154304112284759587718204705006019676042661856011918659781623277364131546279781334667386970510592931814646462745042556367144773586020558931195067595646439108271943994995672395600542182430143791999978263543519103837190604738613654645521171197671826384986360058313181957743823009126298377103700314069598676439056892755647300555504112839515516408557860751180396408205098378865881155577202391210140241204271405716242680593632893366790421734942903810484483638149429014336693796091677443832858155206200231014373975000603627922987203545639156497067434749014782928340544116688282822895825699594972447778919524294618368840442840120478749665624099878405841563791410516736407028852507270710713014854159013337581201176260688801368921579056951423554367601116065063736647046314238199608575839349617573597488963109513848418564147030703618173638630220348844842850473399492863712746328254977408027412573917888828835303550044674098253583614788783031064909623189953630836097902073738934977835612204710006323518426521093230408700832783076807868638607456024029203550121465764230566753699233591760715633244709139480565090200680691293650292339848802065622267003197943373503185310261023359458613624610476932483345287692399232490887155446993420953907009577735512162952266798821065476755939481305606090145031575789226077327814908040536520034955356494034218086409067898763978127452454142115422408949130833275061406097485144715053252900546621199384038084108984940981349688873523272173956965931884097723738057670520624795668019558259173955517799801733052762399932105779196912468958641410421987700994070014766856978856598576184667167540940773031268789053010340333502935683929627586917066492623004440674744220538055678987103536483727680563009473919508519356528682924901791558261347069175240304433003710301598581212308763762304788100354969176813292753395425879196150620613351286454971628632268693658900115585551302995588034382615042399210767356103381650205645378754585926465428071068190674633579878657720726757569092829048246180615258021385940955750490101220692620153116554086367993038922816014924572728019436250053183855267161542826040651071061385015459605090430620574759608327380527395452680619797923911196643796426933134696736368208761173159590963794172047486472326235337817413688944527773327708181434541365868813592771743104645728736782206283232852082623667582801730790807027244430450490930054245390943827765203321869098469323319939070978467191132757638081889310339962845949562784452722155126515645568396342934921994404584439355551299565277097274753842849436580846930446328986913281034031805526074553562625869959123611868247523588554859391588125075476536961271797416799184254934298870382239688119481770498155575866714794383055074029180289392444502741398390082285795895434782873369153273008520810505904905876456896191061286940693619979795663672888876667243697370175290027763693918362177416952867082588388563835962528934638822455613341292544140679841791496488527980738991810142855678182035919079394710532426826432560898147993052763244345706714846935114484051943395988201366041702370929675723223963589599510688823502855014403733145043941308088791214715233100122479810502336668869470751688300861232402946074749795498422460157306049854086618926363858254637701377240973072996624370081909504100364951763885257727065211387966859313914225107537255856866689262671273280930610923756040663243502924596170972034389660970296336867848290504518891649411163073202680008662417735661445732590791512506274545210806325596719863971946814872727782704142909773014939962460660573806297774292206680262735314971303508551706952146900553347683181302967651830866702006678722435522099237756396016601770507952218843779636201153602303363199144737153185600097211654362112924566282635292856836749891777925316061872443079329967964182732242595836582761758879130038207418664890531581132838618270343152929715041410277816354208551521338731812034887865516165198320222510490756597633877405489787602653737573615115542425180811066933996924434755036015767676716334322054202223777755680216432576025746598593175521075078826066485518747590074547721765772096406337737406377437148178178545266672719253787357148929519296440076149316946813021701979267644111473008157253895552655537625845938500479624707969518144617869063183717403085305813061248996700011520665940591165246120418859375575143057899740238482193135218216782395231311645011440356299131106894848755958670785794017922956140437258357297593416080635559634678456081599976655250779249517227685212636224688184111294467311059062109787529157085018893426165254059930537651288584454970418177008872708162179165864517703020977105583133373930482591011566786451555729908448251902392169287267283938011148629332795755779482347747176714122370920861096021510528715252651674438605760582908189564235088851912319302034134360128522015440982369953008643241893577479122682869707250792329470390948867000594728253482108685117337434929187456578734727584900351199421213044512731253958828871398483966495298226812532905860430815138828429657098540453766915214192183502595069098681921097448387784422021949381354119141375202738783806198107605149888252130287172851144270773059839473486182452516199640884138762465015193665371647568483066700491234399781074300237090083732709694891891675147777918335994689093002169398226765207201735480769635044372740224553424044970198110310985064273946140301647150652959342572889362235635345455643495910956328657483451260643646329857936061435138559895190444070549593360069838535078204799101209338366738821705851775388176453499180560024267851380329305094746770209567481200934755567613011841528727236485883025674241546782206144756410555560632674326270329325569927528496850560951814379802359306172753845986679646381835504542232982934405815276930176795122986181150108912152050635020698297197397387472003452157042086006574656744931574973670875348645845617355088486610603498961917600953312216626572826067576441453317558421081166836675264539712393687093451710905290848216923219656717980423360678211259000542905898130206193616302176378629804193205192826994069210122313579996693593995551733832818383789749228786726658173367731706526068028452032113790388573110249057305237617371785844743571866455431289911667259713364129669015009654254051767037136196948143523235417010202821384509390652844440567138965803099512909697315824331560266809334331107325697982754718459819561264715959313386839791347678813376688836064050919981131245203775579917321307037103776978311923176418884919731747087357434718589638789580010096710583003742185427455667641591232307590652773647573417437623517755106955687444378184861269413494028434557433811644529565752138211660439197614513033888172623077003113079194911247470627114276568246119590352471555807553772801201142204888191449908186637160768849449080469318126946902296530154358737124135590785095805441942883771601722085863074129847626197057153314578099742565431337769124821531882153206110136859046475864859663833330620756624649474404112805825416589397436361757804183824489041961096527956029279173911107964541243727981261887757358771927420666678622138464044606692452268526355527285310745546741855240091572022895930433313627084490844253219992083485441620917103295854624503258812681944764965445611486493937995054310752602381483341731978840460183036934509189161182491965883935794872318774411984830670841217349244155265479684266759781818407908202746664482040529732280243919457066482154091119930112167234773343544335819928505625675024994925965031812751338772803908968965235932699920377305651346645601827497162406079680398320423765929850700785721116609458395624439928279511515637154656902016818171240533160029798297997386066829274978618377294358579277397786782270109229763523343968732575247955596279991996615685955437751297183377807243388333235930003880369247720417940743276278340869234899765685548740939600298857665563595953482289967834932707137396822053264798307436767884761144933501867150246669662381169877075932276953491612295748926822912862807159859945047156819452826177637983731774002050755910873123786098755415448601367610574391034119311188367619773183210351716927162888371390541408804405121645322173681553080468737969462630012121608782715396790866717821845716456083674268763253094029076405401924407697867222533719804733961380193435765096626363639560558540850164293647936428930540166922426554683237429399082322395173472559888355412672799684043813869814235512907231551742880117635518650610525688196271562623850697128686867888193693483545393077088733430345735984561949969476485583354246968377967542245331676690741013203595054942302357726963604908655204024470052557612111224910365491290714372369070359874921758423712070518403395948308993829483334871248992219152651145812916324171476920125944098802672821964711017294638254384146778452994714099808737595806870546606984490020316143226095613055540239972246638360474550434149477404566200983362821655282360388537878877148047484927884268020259088201763763191360015318121106646295934415520722445566777734599334197324100562564884100509361680617078314093685999082648009124327591480890069381677493480516860552401983430639714041889236458578411127696181137378265938036288701340320509180393729506857899363002667974158678345448197139275375422724861331431073445231814864852064485157619333086026983320715211107483849413951170512821886866331359297991118168401321965190890735122337874314364686294359108047996130097873424397086770749458335628672565736384990480880672079798179733813645587207464135980248599040614410169001693857852693213205797760925365497562184242544092905894882912689407285854910001567037863378802025394921008617857874484551826624958700422183943552222832826005638183033394088385560748344208803865394340236960109612422070776333711901216165772670830833550285227398647007943240179744220028565072532657966681067143006542378439008341663139397335182210258540032332573525020072169942929247557780976398615973734291283532553013265379386878339673123659078073900586326976116922338674723563333139297020069551871761271389627520297260969301195896972996238753992608053468405788758181762996323390351346002102421727635519281213611396024127005267204785842531065473402000123241687817510283801815338429817217210938330803131033377644053499955720310572392802017826197639699228711932776884072237904275079047369903614999116835250184051969948579506900951061425168942760378256268734906860114617593654401280656797119455617290813396891414887628762089368771154197113255228316662982467355053746411825434597103884487198254096835009560113181912244393385632594436410738157890680305817115822535994759260087536976934729175685579693234298780333441143198385374231016732247819672672493246294232414731717488743779919199220761769518281240260432867972330909697696047894566658519834584780139537968706965106630913947680267791031785625520019478328712286699281040514152906193166029462965972190990658349597371309192178329863092634113531390389559741688120909550855553700397152577035017673558876568947202568651732386794736140777455764826742026582795642677434822850109437324580900910049466984411515912137432374754583419530753643552685143272955185585710436661310005307480669802900698985734522473128287988611212063363008946788453863664971849559728383038225252828853620112003464434155956170373296920715250262319022197074419574278120238994523956140257223293727222360185073267992465938509758488007706248510023564061521046123326301293698746919656725890336063778052975552446129934782881464011668495919565000770358777622477570466032886632755434866414598133786022335242605610011178428829256980881347315437111312540450984873098720331463758634650811414203661157440184425530328444729480340232232397904444770302146105467918316390505848589021626027825144166814193104533626150529957130637937728540695788249165870632317231825110217107119402724396483537302127184943529580486095142669230792495808812945175377441044929993371525473551684194181811611217599797526536796269991283468924173699979317303778493171732616792237922694853806326970110788093046353708727722496645859521416782402138774887562656280727880515722862108427222373360706617963980250014507301590478327088115962876753518882578755569305400077453385872801788536440053921495496810177442005766981640818080904569920609079880359902844430971423810483769937737728450378325337311345423156700360787750011288520564331758916262408754903396020043872210537186521133717072763907784778262438835954445804208172123834175376574084010323724982944246246888936421895788391957448545758641093556779667460955875267725139270394444538298089755742961376062441759382219017523665924277991263234167341931050495096050290730280387256522949444662566954798524250457673859975724048958633381845004277258682870126704543359464818457815420515443041448333423983691507721957150876614926727248570394430823200629702427116733297616541958018782522246054867810400635933392956610371334784324980234959979863203717850791977866139113561963274668835479189603467617636785839192381386612808009125612155275055455240296245928191627531481854251565660640076745018754295642533647564306041648673910876175220151931212602040137134739048547433474219453620257286326939037569877222729868165837134146765732392826090219786660341632701914219510630015451150182513828754163848598661166799707596900092985111335040671277431966827663636658747229010510727635401957307611562953372664647120027796760800542229634955388543049863373523538005067444025441976829835472848486689239952883796548918798484476989891259797884562660433348206618752512478670433636290165450098383727323915637760811135338326352542181891246079662148389644620454190177305592233114572271690593303329701933316756367924057664602440023858899391797394699517713187865278352554699431547258134363785871223104640561259525996472141688995891608083623870288772558289093038403843910411277575904516407847352551354970361662834291659098174628250448966214911440391290969308466318830140328550102233155587301492831666139266542257872733609573079400994950779226442427531641035302340860242099694240290311968370317176731214950248746332359994802044130609781824380792415075519395947412547693145920606470378533988548432016070462407840977700854169461710039249662444825898749442911251553848529812860067397245588218279923593256913597655168192997972457490811385937619430597306179200192448000138622562371986604975951257537642516739329855998936676282801475595922525977894332283690171126377346653654621173809023078136571050096780693561441500781011906457130173116138813604222611249607417965262378334870198985371211848724188689166710858601202829478509130304381282635197178283250291188899432969035099193667646834960845991047134747539691840559328941646613012954764658531606401785891098951090756906537300702332714777909662517625137398308004039222892023025106769271515360875073763133284363136709022257969056660379979501442894726365314597108808290663498653678258699070111425940965241177286472893719858952301023058106891204910155056232534393679393474840886223055195351814717615717867901047397117348852528568350008199225512408452293989375533372755247661598355844004420682757625228856660687035628577870566699532563237913994658710278040248079760229351949253827750102791945386572319632454953045493616283374627731456139874002013540811509301919869747634077297697201295648513932639387763776277807366215380003214769533773855475796815219932229546935058124547004651873760756148504240753799735476869279150078229196478057711031790033682295751994683889000936633200368855164676507126168611073759708082339622619776258840733912426353668689805344079898154258826537938690467384464661480708587867898554742728037806012099284749875027899809883872142447616116666147448739331122370318929712799141762837020981965766152617708901138428938831835813278116655672475692668208882943252216729891665017362263387008051864503162368006089839556233719344800162940632255811889745353413367681413023564955148598191128686311582963542030304338381638366731117902613131979696005678086194786406955843937688877710654235256247880112011502960228927702172088187381592754672259708525162411442005473091945141065436154311030636493445154670221191204711593268195438894987791899573511581431508128305097003397210020307811057264299846059864578416655778435767310330753290925730408035036582729496792667949673341936590523992310564177930551275308548835097692409978578500697544807164812025909526635956864403852759865407452870426364407799032800011482171625798678802564528477894254717471046942183075934272386742579118491039694360825123178685424173354485759306409381321605749736340500971170629432460163100304110326241792477429743725679666423747760533289250749676763953052657711717738016200486695586980011668299516823170267923906011767504117552562881853514313144148347944973303550862323163547715262314091061330096224893289077054210743256263280236428367216564362366724375020124008035605498307571343052952803612707234156468613106129402933742902931904819717379756536982137665792047192542882131497815599244760683759448832373114056621066754544930644154878004548014397862389329252010292680914724328992048530691016408335140424797574872115151711756436379926698612259197892501984546386483133485483012527248297390903473680506294713223460677756296635510357002922794652615875152502664200590091671598594006466119156775640166935271436415130114294671762808909458246794048044061231727514032708984175179248149622329956916200824820452986297556030886507666530698686705709749397683463316852263126151845210636374334704866367131868655800236866945470829494771372348471962348354146454698694651180755342795761596495075393118512379516456348561926392500268770342499694812168406816104852532862540993234425372968797916784247781483124273341535904647201555550518445905567270023438445579430212430786384079095919609909362588448726093014832178101933574196530001351631446749602472679699165428787294481562109036090219136644884494176082902502882103150034109352633899817604717956723400664325874104002309427887350421019065820971545057947884328131123729473975882146425895572751625656200233287669742049641187270960062798650459344363433241172930408013405600287449187825714265907164699939740694768547024551201455799565145259295298025062160453772948294648161253212321084008567301854334679733033226852748789395791020448722713832843906803210010075125223989316393066300290118951084278979810585038989449708168286804515859861018554545771163481147361090719163917161363595317300490226231057619900505594393457323702096784048572533313148244706819062622814888588380574663742555219451008730082088707438234596622174143834830874635925163117346552593887693574083472985052699599099045696322338780100616563784506556426471879258440524592382670924124750787564974994726920229212919787691545496694780625786335903795436344774066306143266733712601773049380494542460309518404279246598774618828814662600725541718307876581089416130811062994074549685459642944089469503084621839995699691829499777041526426422444593931088497078703915159842933288193738984122329305578871422872500520012844088293357745206546231456666976387472448802345564300953378781910401334624653018753884495600441560108291051946107289377094711346818630066635899944061040826946032048625366523257926037584363374176492072708916261605902550659648157552080203671151374624009116820234416722414520771801124655903202552665406322830294304659168536545888088481357891444434260029792320081507113724443431865549269801249046509377520481499492983670193219413140581689257080701266598252995549190009439085298620583722073370753807634464651811515109213398247393098546744023378886954155778673596568466166680333132837363948556121619267952029165740757115679501416280026181349129962281136702874394849763249898800328400208003289453647998240561686350343171273976922205017640588473777591898936894233744543064722269064665837188460262671665785173639846893409404071623017445151328649837997774894443884885297834885184091181420460373522863116829226232700908379734587429135167214377338176267943093956351912689542403524582895654747943698355380070052758937921679097388512902268529352821422285584031830162520182078900246744824799978014066477841449712335222740111613256976317283230058806237536481838464694605908430313055589773252268946332283612885225012471947413255715750534778818091687171273255825665144681782244122686132096163848453632865402165656770103031984840700563070731198221999481381626421256358388308688391221331774363436994311815497380938829281109759351020887382569554047249343719664008561171819904973040220245762958465878842085173082867053628954184921615586031045696974427276286934897090406033442127339494650161712835576864182582596430660660329379512013295370292380852275115070117680954355627451153298606794842477997254516507524839540993546818710247984406000233559999909002129569953548112739409768855230964104728802651360606611815780530779632224783386190028960338836087838094350839831733750118394666191751202865139556094137912563892313923770958839999315264128241826430434481713690169848499274822828317420810880524489010129295133059454354303158187771571491847129306044833219630759630974417241703815472208741647769228403826229010613005495648143616422779061585028864711212670033086047076312950650319071075314045343434425667805786793557380166023625273735820456858638114185099991311228324964776745319834843767705109327920094515456664786382905428647162215213377598267028565803537777719007524416643224249076051126291213383734393276494805686292183714205360716681896830770648658418465723867066327715978135854322898586798945475091857425063617991275993913430407018376098457834566940985529279512139906955995004475052412992680249171793575630921357032062921436382213436490340783166975593789545560079028024162377683770815380625001585276857923886734233374031661244631849740733918936558994267690171475815441908787335447592398375163452246506465814794411633148398939079539050288715461592980625247994587664494756643070125195175890446435630399460875603702521768506869508457178297803542601039257229265123777012315554111917306985065622148422210888861220215832204646545128692839591545824277768467966163694712562459670874055487099840518625536710120306422932904382181697880750723104386279168277584277515580481188180974851515328859512851392142420188380985784430349801894726219550726462056500628218614013731459657983853619056933504808257599896910647647249914874800329921005251057474081432635340051256118877294478918129533499572011671539013357565372276541523988630593365376936360866639918913299512918014751960686727034372636560895723539459424157347412991022713755804419564043677222629635318364458416099369283941182645417242590811524488163881707320749446457647736707634365604565800142004303231791355855919148304610141234022901825986138458344368120134353084080221624614987596470227178870387485462185614273273682582553030516018644457199957766271695812272300864410204740446917537560276669957130217930230168543925744946331959635354061968757258302464112969413121965871257741797229189998836906809568042203048194503594970797059426987416467897719343190482675270152373507162845142678385083424819991182342683935900506894885479219006946770268459330863646579821366255737183688073404743033062211827953778845890246246575755947998023938803450424802422973058919987533473518865628597054179015253714262884085991773265882846582769187139040163234771681804822563063536075330485485146183537008723605276616683465445371829206938527254128583096191794903742080191012555061353479723962256012332175043733418480560001307665183660561928028994835944035878071297733567461814221972036156993847366640596297757747182163790564551068602869851076396925504291314731128500738658351939892964820380227043189557716474087202234804141096743513466779209854126506553182593458688205200808442020301311100350444913602206257035611093919640156283965816117127337037827140313762399669788815350325055106080069644215415583617686900255302669946258383867882818916275459042053792274364976963148047305565850343930704645376400253840725789808323389444354925470332640523489436449244456625631531167333444989817207082289793815249752216020716297537606591351394679800502782895226946032431646134652725358574577100360355406732194968498048920672057322392001078279251174354379834067100059696856640535537582323941064631564726110264063712378516731762832953219133825431824897871045133206151423754797952577648348512878071476097061660186347383209633980448367145421922581493732789863777221904631254363550135739669404795147149509252958294215217755230642184209161513543146525464209621197337625612684931040838594983002476337268609099427578643728538616145634348134858101714817988085070280018166151154260378337950381832239717345800621494535925829344035938978106846653745306625203890991352969792923661805680647166965955430229323603294845669789638448361538403864489502350585511163595304133317663610068651418210151283592605822335993179674524158835938214982706597663311772271898596360558169730223337822720040933263845659584825014926780836352831560032792020894573280550930354149999073278592603083707509130685879716881925188827114172375046690172771672801275816255559109658935103504174201869878320552342707879364223564738721808049988925869987768690791121073211027338091172807590713784750731394565905071615788696384998936682589147806112732104695730622979870975043796936240328674290358566650611233793397003607396288367223306034758557407262460619647956009269402466874099016965337050141013228517507735227067805150169835681845036399781889505266729860369028206484766984588913029106565426306229855681438014625082421565473865190095179826001022099271862546181053910379720611692428258580265390891045667871041334103114712007436135853414606098270533276346955684828280812479529265781562983688626176629465239786409636130976127585230264628849361635854372496033129983204384792526513810854063772803645256854867556172814457623005049892043091962440417892897243306899746625923078477399613264303712798854557910830924036810873729828933859098318187038699393836055794463512585127221601408376436804706069615604101948342126305725111232131285380438115119011344557317306381540160674541146644219477160126581915500974534324462004756211307536063224849167786186608220125706871791868501400465095558160161015428193036944849247585408530976187205825545866806970419651081817745387957021350761721783343544088749336443619018841966464542691689067126207355763656597253910167094995987312463899907538170634691861320422186176057013447327257099503409680311840295717906344314389376850903207426738999139002091956915359405404621542685451054645692423487739383071741056491267547161465661462787419302042598486581628879735290384374140554649489355640678338906421214338938059201318740107042450443386498535648591957430917998213361295519555110828912076840502157718319177949340952422042295670157243535070076370010835318906010431338360217764186965197877901362608586222086514518675507135971431483289879293585307947694946061171716892875259584631961255694376396407880879902424130046641405064843208312466239602044628154071600422792514267083420146072770403108054110062510900941843701839890895439927041980628761737303960729492841268276223646886350308411042263854656818835867912830827276502944260422039224540408404109603623867298563391837075627483964802555212900974324449689118652638962341296262475505336634344995394468990737308475629144066089120400471783758985598773677917776940306743852565110442952569919836326024138376815702874638399735144396422963872428847205181236556407515096316933065615291978448246687234163998705295360690982831976293324331303244367015488175660288555875533359137360545529382599734182657744397458011689272847803983367397286491980382397227531861930535425712809641056387362725554426816816392752334612937994060718216785701381806385736577949674248079250384782022877432776573116296406106115056188926751972507339914874723060343628859229010039648166611235457998750652423631052453030664431059016304389060303524891982737773370836192328937739460692504867942604217367506790020071878340248815593989041632926102225607097222941783600428076289288264073303550641703305588004334558923231122824978836628884849045830406569301924533355864524226052659849948589664312560440996836103670512775006028469927745900863426273752979102385460107022134516454867977738002004823037024568488387336649040098909181463182344139878933643441906381639554425022535814550207363064500774084234290854461284439621866793961565832536914167001394077293127807681662873937071015662926019810585359252240856437051257996088506765784510409348849551853954379390068896321044822043838317529054235240391495234812865752965729474152148538007648590032505904333058883450934891572971227319663556598073360736768544528439102934264622540043563432744980985374801458773710063220460138040657543087626255962560684794211345756637005874577980131710532560190791832131002831182805136292360196584211682978674838111034485746362855849283784307097091546522267831132198612840097156001988195054657111435277938418094560331107453887267539890125240544932852269826108151685910738746140115365953283923670714959463913330732510837336771324927328204576375063845152163508052948238056753621924631363658841632162783500947577766996345206943714757946489575959792683584236890507840182588712607277827075724216767454943731053985639648739170558817069486817757627312838824736074012023673586247894334929015360274785866529844101015397568984399195026965295413461292866239281484211770124519844444556621727737541913985066730594225801072708316052906328080821723759425979658453005680826356109596356127163935282255351556622055576181331316293836179140654614067307303023870489875364835509931136013205288028665780178286107845325145194685535772982335881088407536363328641912963288671714825889800346175797222740579916593068703833826714766083642762166282840121474247350801918898383714864238577236778477749421213246931648364161479905799145338758813480796888317477239029378510637922515473244142682203035354969289497557026716827002625429224917785119605205954172261500788526443849270859075061586011781628170842009758961490258066522856216658802329213933689558524002010662479122792135229667541865388115440531945588774637155617854270778148981707714067977024261095316123536257370512197215813767796653903231042944026880006860159379507071198500281126577095066217512022041423519126610391491974538006147800021819357998017508045817124189059769124827069311415193026764493091327142614840970349147215339691439819494840170197787320616708231667224403475659831959641472110149577086694450291689839024154614776215369855945158547599936817699654836758943727295757814590204382021581496528704075888648837535403628878044634515031724448465410840844905891572606344382707817475459315589033296299543360231066606456331306213823904792962542268726933737767171686722261717383752640011630860639373505053572335923921298794684723076045783410256153326084533205200742559152208490740728450098456853877092705085214236360694637698997518632488035559928729883149343087647230388070569322541990970156861871240800237573488303944551147021559084721110711888362452315826486746905435809516805562971458977844673263815544998994554688545433925283726523755745175647045646390622131982876576807877906887445976891511973497508544717525292919577158225093386502781742403142425012708350232158562685830490408677513742954275095658179680244723738710144283611713626816311499840896972599274280864891291031056972164019453012016677092453192916356337364213489515778053836315609993607971043608942378733829628183163401151302070703326476187109672236871792886828113469588431959465777103091277215291243027458837185837040888013039037681730148458070000560424634498664258542449501126766372250837312657236237076176658310281054976862023904487446580324855892496259357808644043924700822309163115807396684967794987135794246181678341733112324779142071718191457065795182174985055814984348846280100492761678430960686780708280393278991432802041015691749177018975580835937639242177469095728102530982879922789341159253835580956488608562182235229016081977997391927530602676234992831709298369947218697964935368451455556969600022605081048898759459136060844958245782515530321834612123511784371308870038217416809031285948316066865808995441495280928349952788549610073961079398388074214890015969746152760412651612747825916769914736023046912946812078939717628208951348138641127265727097552113159868377990779665369716456414954597224697033228454709040504139096300044167764749629906738344355838958007191436213748108000138413637864022634604874313172503750813039663495342051469223856866580440500080416173132262798657514335318134732425718297259327407641881769734275970110219115660782884754755884348988544397300504444343578186649899975924190471017249721762628025507725477185501370291369655322306787333519916273170488916413869270320580116104969551584131424888384524904533781236478062285360518341571688722339130193645343339632423333017996971775682514875687274309347321123178808216673829414530801339593584068264182256914052863315076910427012151891985933462066848170670412047920052997528371572029699088066928043794805528972155870050880374638067459396410265516825740731806153832121416892062015488838404887253438577133350402675719676891803559929715777991689078461707857385927777482720434396500289863545385691718122475923661337484019499602252540098244133489485153773626600803191259760800539668506650373669827889480842703847155710943377533501317945302433768596230420523484311472501567445375365145542963731935015708191217995664614929846731550325191819192466630822458825362066350108497109691795584438162553422616019402154255982268564671680165822282795029865477623590738208627072229997619376369426054559005212211683180690845610822260480421542216836743188956290192993175467215755004337562023196207465241059712998686097554939293707973546137141892148309518200317311645065752313366029524867893195753898361238621659182213258998698511104142472933914470672315748494201993370136506303549698076979751762191566075605495894855383910772441000353388910828883057723349640319632225360453348971290922124860531082684171191356268293510563755440213837226400764730624612202533852259173857368707649068754512071929381422395267474249207165282393424990824348318439037847554781647629556948524142486692569818821262036751776477750233211755466539367231460071935731620625846236954849893247902717091230132394057535013099861633540295910059141664244428758082848647285435234846459583466733745296403410029826485499292815149816415206452462031153411261402027030347995413256236528257291691837599422343910970857793804149132399062761658544316817311758700380526229586077499964922902786062447154898820238270040586325478241749891493095264441223381547703743358182250086245484001777819390078122303497178077574908524373462412799718298218003523405243753820859178238804067601994566189694213636914069699702376859782847837288264585950187854670441226976905874532322107058712278883340366281910493247322208310411210175663880743272874280032630720374848357912977452496263036001236371912468921056246315977894173088988281185529500263887635910767146110151837003003712678976229986049008147930448420179999855834264499304579238335788919728005881312334891986324303307620107075817115342358086992065332319423351690344979836337016337711266280908387050413064027611990889653582163709906017038496239379896101243333167698706661858659329961666248421374110935847297813415607069601487000280889468480080715791185546998938395511861566632519942514520877757097971622769683893774287075391180554360940180968589609640258627239346705260626662541517351885835232432462265338899859414688720094121456161599539237996345365602157621383997623858641800593702187459853736168504419908206338772696388901439319622244739214128038431986305481464533112586871707218614378716831846588940551921143946268135080644801540959416078162301031697082995095661651128658211884435484944027842232753141222277937252142408303781668875601165275236244310351465534223760417736484908402871767706170357388230324893526379421445368290288277618464412934343012165415126249302685192171639641761251074960955795935134645319353194954693718250989367954870845416346164804462620004102012028350317035920309034354398333376474305051097839815160547572309999303052999480295190658017841897478900732864825449457131762542730280364535901150283370577877376495933819587144143098678131425640096587336486242607527928390044164539851216327293531951843262812483314748618135767959447676548156568739401888278816461965199644322912655930495031068653822610638819192760501982539770438867804432952849950473832083521398206400552552215659065050222248686091045113074029069177805588532535906278451311913536687835700420061979886002738778285006674308513494476697979493122623903539770427912609506899165145595402413903455745517575819740612987829238658708292043284589954954002388686267383154791117992912237912330821561325707058691787173746490500946412335382171818384361501422960702846831741548812373143648333261914487098557624448437073736440096365857197233532627057582471732548581816854768444206580273343835700439668205382413086432898543063546609662206428844538256409169825420839871089509941209003345101370070204544957952282721877280073119277495021461238648462356473672650144381949506707266632618186713777378879766136936809480988461084378495623486304391647216388716029754586973871187518611942120452158445398359476247192941322817302527862499082772912332868276280321417891617724628291194231110009863593555867062150761213224461288861154316315596288432080731363206283533060531941815711537401239542988258642630366370455724305852978155335239360661521086368646081971880772176397912547153071571615013291737385844391834025186154068848707792815620319017071851461526119775453799728259973388891451524622712665975306781763185446693284798517169240887651235255208004937306920746215549078521399282990766783263342056601572637571289822276714475693840531343459684778578019372114021584191409947849744436798555304141373479871917305743102696892048354286282856790142478972323398644334466106407502079875552154582246739005673332609043287937907934592013397386349797178686083124840064176225209314997507994209024202411272543171988407123609494012991895769558452953310435900688694193964830795259968235971227189639405888173749937993819404234968066123019933019713291015742698154745183187093606007494679609063033828948630602599189660880779629859826855362184097611080896117284333182838100878175208857042490393457839575363818552458592025343310058927231912128624033263103284059201884217919829288361401550103520181993182866186125934125361698251795567904018076385254875872974856942840806333229036318984786571382183381597154413011044215532765237032991982008043999819877002039334602133594716956881109676988747650785276320060004462727325375255366746887325888023701202724763248180234656304994448008938380797020024880721169863370736086132465173327704041113662147761937839752868399799270624853575310576211306880513740913435731586171365304494112093933869282796502479809948409641294527760522823787858635912203752994108806324168380160911250390484265820251410451457227382744246715536067874865591101847283344261393859128750435522649218636306278963275423425256747989219340282931441965984066315365403504714720502995168242936115719617054664797201952304087129092998721758145339828408769807383448844000325884304919695268270280115824837659231469840902210998466827623253467792540283095279839344498412629966394580849968828214629546400732077628454806285216706562947994671242501428626612615018310890387841109160114807457557133377249105347706087751032566662971587297277528595533532902009019763441908212351872801443461572381303097649754516320658538881834155149268184181236720345302558461117504838323883964483284851455948655551160918887228669383857234409692699916117043676830693644976116905705115253126383340729609509544399228686800704709558370202723338854000453927161341303041181318678811246876438085162062341898275408635967797952475032147898165109052725109214815233027907011858525300129057576444327019960565236385490819719481476558780679356910446579463728352805289816222702302563255164799012649202375647094822042712811884695309999549941909468000876616762317857044090396952331346248478603167440382668565145141396944718800454729467152801346209897866038698487982004054839238547424934297096215183789703377281243826953942655598561212580124171058939143469981163565092789439833120916164903611429368736069030027603504297354643449648921356702488867760798629662969104851236787373103221129950427493928913938285902703170633302060260897433464750141189387195972436577055547633968016990739927780209614845244338313075430837682394602168750216422422798206430992378548430050140481492543086535196236382065919711401902758173206484442157894356947168754905360804965204737975525343232184720192675511304720628253872509673407595168940823553026158417302427216885893717125764693609498239075454094281450228492204438483807545627969711296573547517182028776988502691725827483820837480899760935418235999456100021856128145016756281051845977493150175184530098076874613062469067737302523055281502812624165519038483247645762514536919543879530769161536043398453578272044642969842913576989563797719136803162897731071289891519236173577767974554483721218733118740623369992038000467620132023433422185130664618035621785491134323479250806706323698878192106353885712145554019653188083515410260746055837107443174068489344223978376859754510195310059481113219362119707769998264764857657058010525539717886559036044491109527508198862391768934799898123088461407140386759815878929305061355156066135176425118929010042402957388319101352143841514642401453899947843698042754855631525820393389517242768699042811568764631904950051196821196011966194845829602904192119630095491954977589006209733083884634235343919789845375556135735011464372474027677823519865407993272083639242653380000705072893489375405693860183034483561522529308997773261516881118018903630463297622954141408740706808593330458781739414436212386757334379035829711449848930624123549826643843013848636213794119786091566477113923451631003450662177018995045688956726460468120869552489478961258659457590657093735087640877720554550442398922998462822511427430364030537375185493555738978210903987548961288792653866110846986057420713436431376418684419143747535038936614608170171262932633699248318295070180139282063588178405306266463792381229985741047049569046359831628707547625021086505739175336411019407427926978172147163729594436048244370064796559809901043392938836533616915110168200003954136563291869125415274184010800348006219526763579454301444569478245059577534305279682575682438434068291424277246617248274297043517650739818579336066530342626235005036289461381773018757450089483836398193398539518852822836848392773843211758724569569898815702333902040451151700824484953120056710381302927764114802112150567955769829095140420468467941637749844928519689561581758133189879240598556268189621432260484743585483562833913927181613630537968479194410272052684105646207271026197463175143675244375356837497689135720810495205363678160276422061857133313332570387792491127727781340260920607509151926153076864485143091301802022416330852371067213948535426275377993824801828644852950293615947626841732034511360018563295336299212187500223576160012158437422858993793560596606942496387966452276799783863326170950635233727499214110004904989895608355473124361428827324338213249217678862401443276200944109527214728499305262838832029321671233972282247852757013365600141113622399600550285257828957092976414289426516827152564322808097257108823005129861027645532788117734352169716323457315659979468776205889617504668272601832478098960723233865216846760858666332812200499733751574771194296078602612696792187692951302052244702425880722559012842191379883959928686854309192178134918126843178145778860703852642476807466156257404699748958796657336464253450531116250269956593698423482841456615247640735534192825570575110295074196542860197637579946357647443654399935702141192038983269379502324894680148549958284893688541017512480252450833894911956088882168089010359723184895718892165607187136427391450218989974225556434683727916323583414937074146104376623029597984414613475402028488456392625977015400688063391866373064995863951018771969815180255703743310240460844020376702676788306811663456510588543262508043881499706229573942355119584491315777739192919600280375972949638841493388806150003407553911853459573445218081138586314498311705087547983652014732020762484769512575811741432574874108303685070258717966881599714683375113052739167123555206915801910924841825623030589185514163083126680540001372240021903081262128264929584460159139464819513167280331275808308941780777422405463658749517217438320813604442772201716951942551368032546662564805478884116183115668826751796289324528117447496622409602065273942909714824292399259320038242403141079300987076505142586829875782957488699294307343784907825313724424472385027557118428785127588931831667409929707682832882382444914393299802061874409810560019971656983042567203854577964125025219634990154426192043369212128447199421557742071707169449545436845593335865407799249958979826442302392191789310552461432939199904585930784010225383050304953553309392039033114546218206831941204038971637473148631673400554186100147714453786199802476146020334047934616778973227851461989229629086368647482670640878546649437602678436237140299228717667385559066106597544677565723659442040220809084922683493595624343862635559721213436337601102802722013177600532615227264909900885010744723723918354944421339560304939076033780247601372818701263794997873942567107129665407823589322439403167709724881051930717734065940252990091178130950338454009304658820678522667335939772405502288645949871754972948661892140093132189078465183569465007820297443309376031245540945796855447226416447692446118145363831088335893744549575865913116126693046230033283923213560902145016812514610845913816009667217140828423268105196881738622087837406436734794361391135137692484773520498092908730796520730680434893173892250479210634127895127357852588438775615340042042461195574209673622238939144938204281215795206577523600026941824068789135906590421941460041567476668587624597729550213047788698282536498630373353040727344412891135917855480719296271962412044998695500469235000542692210950357795587750049225100079520720219984916484088994371879376425092632421038971911159607149159045229607183952449508737314981198516261292654231409245129549301052610985537924000120691939059240965381744313560665444756046834409906254725829767385857663789433362874273952852739958834340722712899791442630205420393081017365846728815919456389361590934218316407182133786179227120466164472808151850573250896358906448215891142176776259660073213732912637456678991202236011779937224122765140820561133888207260715625724566571413979909878045245470740287536275795456552042087772230708040123667772321838855599151773582326139312218169047031656869212875345126728960819301569395863359411458862822749996651989284268434409069831395064683163226208472093355063706475174179807815696355797013429746952842156089714882467699421298528170620750252852016432398364440726640288153225454532563994248548057925264311724482517997789580244409561717904727405598970825378870251131701042152478019753112372533387896009927228253468036743791981882620028012819011363270851016150458536991880113696987611199942845445777996053407261626635104084047558106082714208267515604330129448382147523842625745947462338576945516762181907840466834664741674738205434857578229565187165244390579107506207026267977582422888796832787737061833285202324165471266119743311772505634490000938162613249024667902563134653729690338448284723278011931363337498970046714570687466087185979804442000213322484661916762323728657514051250275280427635682043668340206369701694444909086110073852883305673748978062438920333366647086442759239612526696427142610349987917676917595659936497078370032016529138925180796042900522521030776072495666029686800403700956795523336242790990465875821489230369391901544304690863542277576269159056239244382026758151504738991356617896904127233229936591258069778320815334279836379327929132271129322688417881323228218751271006438733015628348051802831642293445746352239963222169878735336713202913326185807176260368422222459434952262574190651817520703994013006778215412486395045463408848969282170887810915297906748090163082191438342422050096650001458163744015515098955728836703519402043919117869851251951262353830232110810175491014998056236838361697802794382611325857027777003277931184803444362781209559562419233806660102144869096063611279085953544945474183347015821570963135319785257583256332807685876935935464865905606753279805475392057539435968996925691444309690802812027342724057894350221913015417007728755797755767227083063057132785562205820244944948521200252740268712883756005682170672431493983560454478460748861083365157738814760893541180334167750780639040504848990725563890973169781955634814037182092390181941132150976056615648205242862094531813992595511983901180648646465877961487698407077090978461190020351931918182181760102620265968804604701599249489861148700911851417870184859274506246954382592930014893666563472033593856781393925798488882815725305248459112438079532329653464622855331678519407200855856334478376709836326151445374249793180154785999044108383452120124964840020239603051113064091952349806418033053213369378899506901894867608407387618985546562722854364885191712802555338210927985975128423911590385574408793716045410036783084797958548391884271869239526073881106518213651292333553717979519563502541786078135871219267398284448537267947532508743404712641957330050950110274749279716833931367185267645444056354826376869140558400557939816237116362314591681225555708573963737725353556260234283026982794749388156757487714871087790930844538801559999893732073110943088633080387717455132680057519195275167726052552984040900304725524115598206941322565095386840887442119972817333401565993321068247502544108808100244006673045501601405972673535435200262947243500125793213673865375678784596100274325482727780178488189381275497279166636397877181387087625922977319676364683228124148257170218354947611645304613432117991120810589763776711023835730459830229501514742535378298586932567841933085490267988179340886591814014939138945744769348635631679996607752208799721907426400518401680200644676676143159340016216471518374119864080675924702207557580937376364584462109359622274928504507647177564964338334116389480958007025808873667295627228837346409458648597033300297171706955452880063256421378674201218856218456460842508503276865964843188955617159707993676111961783413626030932403612777168990938905953645909079415038750281876358785804993433490446899348125617607035716709646131426847092199736382547416295800466614021995515509129731786791272580462680520173957299778933729125938280691114095858581123463836446483089537591733748860606379426726688526274829206719491134918195261881709029998542116670048339642235119445068031778174450625627708456401560746398007082398668607568393476016363438197976823345223781187505739785969764761991464690806673776211670100934967922151738696269554439441067247619664331601761449237042618290353302265767254346718836375768373951283557300071762169710841863743419946866367863486887014165687227995952557051143512748261156979249971224984732981842235612411259066449070216432237138871464744609459648060920372613421325743216991234141687543119212052875058005016046358934363120729681150954918670654365422027281757484059623366587365705416511392445199965659273142501203870606471993436517476891039883495598714494085257713264119578648766852859084682542759569709151914932287301645876659003908944412759798830650003943771833209878257250299636807910669349717097279166037071891044254190672399313571439353263022049250145334071798054164754334405877176749459175481951103551331537934949037113481853969347829291798259982214744895771798107327453170120543365559337136202547610972149700647711551561200888540248555452326301376315350224708953658447742838269340227919149676074217225238145502094591000983778986983669338190911020842215833105812750555849316606535161746783836416726853934222293740664374346735631747692880318242769096913229516002465755964761375372178974513498153547981071116450492751686670519462449802673793819992438537822873505299527892327444636082745197594518267672461286905338606271668960265701345275634840822808923829017071961018182500782430265046327888447809603908733810751821644991198272162619296353282840911933010664321342029427027384971608764793469878690460838094069958590059593164903680429224132960727493796989556750091192202013024894822848299325850571653023700079838950193557794195385852385864402909249588360508829891799653782888916302478860605298611227722563412857654566182304992119436474468504272165423748468665037629949675093752469459602269579218746000374199119914133475364892602477560805504858477516966861475022605739845086371827256654937212545095858231135011245202058264671513735282251747773610500074983238228498561419627846387100108607502396457658408287241845998478852712151917037083925490303364860402621198286970905778994768756224587577916280533487187900678250247955177522992294098351808932766049132595360641069995693214713148204800504154283528385890320072886761242110403148367166477235054808135799027264537286098575322356366937468479493902165401924185742378913374478622346474536129221091855841195210354424080148666039358705906127879360577223284173498363952128947074313490100943920869634886073162338410182121175154171676172523481388417092872317607192365715939370048073023536552653128929367293079323940141170835663797389448247295070760699798412611331679944168948555951370985032237584405755853564247527199521343255394816346956341575207794014855938717590488067009212868226463234582167713362356377063155777214849750900403724391495835818797649209352773074083907739225709384875139176731336126991606316131108036475176977007356595326708236378221842491303413925253689948118499458317604975398655260464724741764362192984927756427607851433224908193635549788904877989161698707038095080924248431662416100731636061975173214604972584630044935333353388253499800423665701151635551522367625535097663412540965240059188946736020877611797916227899883293129880613661274594677852260149769822663886417108992819939773521444302784633949134008738280189108462678496033594805695943765657974713046182361303735331815998440743998458508388040082573769540887273722850214906879765206669010721815029093434253349527548775632301792673450335596022322837787554995573331603179583622324198235377995996958252204051367737353768482364501613195480299241735406125670123545401991232792884436933071964644096248917662058289650374355266162191468432728943966219132305076598901631542250131973652763723305342240830212693046652226879652665951854345573152587749965627293773819316368977586084546436995229663810817472946315243152749609916417693291260065150850693881405301748121831261428726357767772313386350977271529899096657377869335919954944662164074805857235163654268783424880332788553342959296750743252981452197613497101643744215038271242886623461560202930083781099034534362364302916138190505099939586485123369754202478233404993103943548100471129311745956742671979573588898934557859886288784865676162398735259959139150279266009327561094563474395022377788888793257966304886603727315402723577712734186063537439635655305783380383877404702534950964828687265052431280372774711152842400697791781365535434932992967245643397405981019735068078104219550837892321333641394171994511462022788300217984796055858153918165159130799106757846308048744628409811788015418640927582365559089501932713350002876501600598610001956007453627363239391505871820594051647063026412086641903642169417942614381772627632146783804005854652636250119054606621079153989440888774483784273050084794361397550762790218195108450002489871021911073336945368717661005021832458192543387202521796351787720296217985325463097295968088651409497799230785853243412616995026005108509965794110349042865163475778358565564833223574685063195718513155204719963622776265562684200085010486221709928547973666352471528781371535899915593531584511862090994310266781731534029142654959270393461377310733236554324262963887887827160989092654517958467877171552496790979388267439283478611605986384569032687185788252537319077445520216728594432884084096637123656195570611418621130436908350456909444890650762600308198338104599934135595564788195068410157943994748261923171564337278769020834084244272379038052690355938465538921722178660974690272253294976094368341084727149851986037649152787714683028823675110901256075186214828881703653542439784099420071570674697137059423064101799102683776385397658693029246338428881246744548438842722249280493764408050938027284744262131456887172018562660493995739472637958040558148518488933809653960587813396996165428463268252220196350910881691142371497967113899443324022734332297135478301849635626397190401984626981042987199176210190596553457310136475260445990738037796979407436714419318902908868914375907825022844000395400096731551667462154485491965561130040808062789451264580280903940915690693891365838841089437919764675480833305049230275972472289743610901301318010231204279971155257583581430086932411097742801656016712901655821073834425464035999296812016116907810160574534504476349843103102796864781775048376264498249922044511566719229165572233123033352546012984481220325029222622005928228500452385084602430041072584226881769178620385962398213997657917703738858620236539803291237879886162617553731746598624949699150104915811377341417288567382413910929984159593058712743218688224629938058248417617431092743186193984443799719261586755459590562843686160040885668586676005504180722292973922917966906697906993537280954622360246449864264189817424588830109215538541932386176099161251168209235324793126275086226257987339089768434457375461858802826599025970312803516068472475536439898752018512745920990528675266593482020811916476662106531013642905183837531178354086974907850643043359688019695025272132181898979840872998873776180226221100191748780625789033397939100628638026381256904665691161443957593254142853112299741015555408311983855103745562559123284627650863307780826188681196181610732551743902715357609395816888874942790501109026851162896713709409105001701503315182117425191546348936345297598124897176198867253506203600508216116610969093635583174961557495572113332160380958852189234709536373178840154360153925297973657057880400873113803066791745623809850259989561786511474363868549775863603287195950820239127666439179863287238095107728853430341917739263389871794004241920030451918269437502178768460286681825696029072974915928998879701730591437302080274972470784708671794578601148940979346286911222582934603036270609682754590742813012498800450133182417486916694534188370124250564132840716051353839086302671094591512972880584441581684285782215108766231317515630048804782758036332774308483956673986847982047941984788734131735776972444902925452255070198228584653673129332743996075770083828424341992786829794336277704433690232254959214513548758620262250059801345734649688560884364191954010019710420984660798195406392213703536625047645444518804374110553766100944774933358375262893789267012008832360165060517572932917451269286862167319729937817040047890011790296816846320625738171858039979019113171525469909497665324418339327015246678441701822073031688851747704253869650249636345779111181369054790151273150804354274083196701859035208757769809049173200085709678663983712937442026568626433307411049690593210792954856849388585634844179257411031182228180090098670796869388444435390596762670062668759659602386272787062288047132904661956041513356216603110186664951010710249185113792745780548662507638152325871473619991375462692376345420994551686595940757177480786402625123787381255867878642144906410699106819068508342269565159783515712331316806487066332178018659905527812669299718286591706465788436635564890107101635623736252514974488266186943591725975298648108097814653246901153252148379482494690862642956364602360986724520310515921774872248262506870863440395047730453037013294833070977011958442431539827521864646327718302227073022976013896123622367110238813558887675097573134731783694285489090452663716341079437423937086913309803171284098722226536651289903891404848046165942225662804825292765936790822783797529999015967990218297889896063021636619882161165612584837877512567614488363972454336317769274674966087764640021685621772702104288365308614635099929087151592305074784112765665344662762221799677930723284609361493789120694267997763391992183093493539800495922856029968281541237293047521977708351406759737062881044901094617869795977618113761140688527949775630104928875230308984966305758485685826740856506365413827463459967243711176789625642493505876282559926184736964111102143276957459633960651337947765052928944758308014323474105669977201891470367214529140833856047723277054207371236930667693569977571384760720442782656372553709024407238323316814114589357553837789017746627328772141225284476073260740729007192293877423092681782034140722112020502258545997008024942968832505223860847501212878603607639865528233102975313024419478305290240094051799448699300786556761128748010504410745069901585831393481900823827266808884090870137315092086502665935880142226880969142865126056899519605996941372982951814471337093468847507185199663677793786976771687861025982212686086240590498423439934530503351609905870568981594069230189252366688582357993491143337747159712591188942750297796615265007327839436193717164041336149370857124885309642630919778902967589759420010569380283388563453842950528159582304710738226923250857602623933590115303852030608927681964719687065916996229457806272380473266388377926643923892593395004134105179065453690762589188901180723722807033695372543914826887423203789878530456053177789145982300590582740912793848980219468370788167988675688989569329510946790020385907998133510742583541350750989097154355198850024241571320029944770307606447099044081588119455961688608274950172253272786587286110285797459320097942303383643269308551832586621755608458459081613185866053628294718865821430627209324727122494344210533902933572100430068644889140509089189462496122789758629576039320185160242307923776614208143350534511124081799384333220845318057295796360657467718517789048246631838829446757746477927511460414561709967327596168072380847469459934952898984476452979652516911319916475339717279432092828256161020622419929812983259323228668616661922253584089882212200787717921067763132360064943641042620300514997615631797552686968411858474001740291252606418143032737320947042906746692390691245264977302219246033422467921371212654794505698097697813302656728350384240395398790428433363598821383717231963917517442246193360265266072717538296208910153245992791272499926661959105330042985574333082298313391788018607695277342899033057779050339393744700680466247912667560560181112619311485475419575857887981496037875183633643072966501349315817106458197400541760850442705767300784551346870073667521512205221080838795209983514779805710957593734850594720187686715167319847923781193511114655906360271613887405835589221283687233721882094535014441222049967203856968914515428778016850444728927485704887043397982729806464785914273259860816818190407478728574266667069262133339413035953857945859687221284344755674407603723777699100804202022027921588873173627897919616484798151930925047389031683535715518744110484103913852586475949476334349692150329651557609197719145654785427876537881561005877145899501331875349357475832831643675246265566321196100453814213318393253799139531761479061107789521059894578973300729965370593773488329091704357565155975338117356607878467701558401321220098385973492455431035975813050600245149682958598734233546046628079548632475745752457941548314788979786470017629652013136381499581588555064328059318037273193286358384697244708910194847246406326647598446828547194335778930035801348196389525525992737427438395387490395853686590322233683474224856742816031952296404475145055952791081033840630957239702155386557345857301351531630217140023257727337414735366044080318374112150181220188120522968156768481872922811209745043542518227570489273645203051654015703927991859800678141800347493908427311364765494957721196538584505978395699916987291028418209452524345849168702015548096749782558489530615637737450696323441666073746121927912735297460323040264593518520307272659024448074509675905365481045074331473256773205876887754498282020355285457852822860407234566287934452634716761947258644584362889179789457360733997245949159556119524948781126232950697121310705706661308639646662847742554822370908020101699341228302773212490708798717200353073904300968273483688256422521554840308327014424839203578113284456567133299056427209467881151155767965054215205332072333395878942565842165071702631400292853055415558127088978506280647005024937040927510567005926933653953933785891954674143920198709790140695506602315291440834344602936140383109124346888025613818439545810515794707232307447937500033230956836174927160398533713250492656918032178807025882989097095414627532619797086708307790588496839628970385042635137848331718535960290927801000099916144575758290345131632818150867524487978348323132449998252183540065972026303180558806816627724645432896764185391030607157851932566071490484431684297474586976324418674750117862012266223708245887130587884430118398923528254461008218803794124734769496204383665486415754278218536905473320011763461982607224574103492497528316328497969663691014536365512899208261786404755371695327919298841278289001969162892326543080446593932327556673568370413454300886438158620270457522779055432709390980870543118689404502861269794547116004006720377187022435662453619149744674706578074828123302163901141448435990192884855575080382663182897039748184960879906436663858742905109618519523804055258731409029314771177961103602548255742994933787787244273276677577914658802303332398529194731551174390952780995028566438206861119364263535943105833640807828141140823960233249791303848613800709227272916720920597268945205739550325577739794404685946934188206885921346288338853923853617675509978244998433905056717566890546153151537186893868589499307487663206961217017095386556805431995019488686878077836336548107731895339603089185402344358582871557553413595472721551999648447226242874417004554943135383542337196386499326912063956232283648206358811673226742044677795313854558399021300289917030407161886435802880744018807129433709062900565490604158411370544438906426159933863375644476918144563727914820886478219411734790059652238227403002195460143501613493900467636361459492372496789038957273536655693018378486744093524280166955158906404262493298286821724958563459588767673716368052517339226098720561206897512126130038828005817979597231772628762976554373120379483782311923201583242623976001690687955250936478106701062543932923051453344772796009770388362532863380447461573097101787118168962189701929369040077551369915576796250128898928800342179504186238653269516186412394732003472724640930483594745147027377969426130247961745342321020480732236337299227281398376465217612284504017403488709051499850795642833135382070525772043523888008530627467748501495952480471672798038064941021112209337776804021204540658238607062329058781649726705490602311953124963473113737634416790115956517779494330127800248699385286557442057745004897907207193151636254156424063000275352394528225925493367216233528857886131883531822467367454576143482407506432396191515130284615160846134316840725586936093513500661614505489146161698748411925077447684020200149388185551103138491274044324836848139684334062695992965687117442889767498456114540317598334818625681345723188939114382967003470425834035931027311180704005436514429083130584408582797212500761944073695400121112379039523112559340954443084064829474182633189189527319106418645724371671644573179245051710530432854312651643268518998390667477761291074477133558954928152077564059427568713828467295091152762497699542373334191707407835571701572196227392154767334134828910217595139829524602013007772579301402888621853802725983403691825613749912659007799973561931137605841000900980521799401615170781617494517653708140644979866594469155971593735089330674649489995804123423898199008685012007422257526541676399261554001594857256344287848815332570615755885359783264870793615414330571825149191894018152378655292240796274498873924642091028658926618742740594169318228298291997737252583694322640390756101569579123023453068792316453313579005991742571486944357763086529657110873111068893735381050677392845592072624534879319897086297256292048209060654697091827700237390348616319329528017558161580369611737502220355139785734527432933009615419803048063892967525471715589339379437855637762407058520518715817601331642618891296594826969731215829404963099396627538853636292994605632702692386337264948075773375692555997100510615116670527255293764957284982552468258483949516807251367622750290774335837819333240304620387391418258012181430300463892846165968590613147846353856387276590965976454845156599191709293109701337201480334472382187497694738380607091152282422784733856696733733138345535580165096813475971496817900334474434964961806807166194138246960215818101043460421091625172901743295238671840821520657650057839960415330234592989178470715928702747729949129931777746787860079122564840547478864198219734850197937672925626653820541635897252588920528916423231292057469624641000881106526156725705261033231289718519402547981177048723955364940362391408895247212796484824103065425123153152378080737708160100498635756357932689234988776226909823890439713401650416277256927680882763067098681210841289627774256955158548724614633261293927938528033089949129989397782170452033048564731653339430774857489883977744139996090432278202817999885416967333244807697140795534451143186272820580322847689587955313749292360721382765581224731802924585307613305198501768651586100327355307625559337873625754615942990688108233019829293593881345005216567304040619241554670227009321516315551526804728173813427171410086902925955897720423113610718320643005989052920814957463630779426137307881140099113591991792810376744106687241820161750564185785723020120231001253005490597593527119992037337692189564903354400902465990445094955473278584549034255202330754720222488307134137503011010829861100347704296477045893323526185362047924320491161161003537852653905759797447816282508354259546923426315432551752024336639267376279649932866181286023558913357179997743427238430505782513029397933089045080614805780937470664020098251659385294080833764919801337259697777067917142598010471775340188738775285928287624356171228659936526528068933785472108761968853034344568107243656716730373762156940132016836527954926380092962771498656724743625249506256751271142879124383198161388003555324009375215487000432348336256074404149856992719566912842756602364722501614312715441000592184252780820141577614652068710385136308037379887282782039293966221166681593856139911067686946244191729169586798766546583463674408803635585909509436263876883910685464215932623703028290281185056318504092943347603510971201987456810953283795384328378161018245622319440517229964246036426414185947400713530478642706857798258726456846197471881836010503780888379666616981936069008620464806663560069221315906777394307476989500163500960694464462250430661710531777484755587082160686778287086807994355585741472932701579844897239736462474855986345815309880556221427292103431152677420182142987436830711974267545527908007750441747364098303359863205353195519755590710159513049398914220369392960634375726839232663395437495952075441591779582208863441487101547359616194702520780576196139140235852864378133016651041569149727653536180726086286838677490499708020732390638191127700335121901857317995384663455448918452858943563840797055352695942740755955489574285303342193980502536056586182150933208496804249122849577431981842906659279422367008816966597938701167390126514062551918865888692852196564782081975125726748914520967099474938685572735036955127634873909503784662619576283873829426525376352031786578635006470211566624261647081999876955238892256070548615110613614584808138165204070731933192093786853551241018296472033264399615819119021907274786093888125430317193130389159741001459734883710379779521572242982086525609663891799186358182647280712795929478520700836288002434692633839195103995208368646286383788294152285385540784733361922700279434677748086087091564393524275146164493966030217628227567970852661527647553103486656674961643557907187202155275439276296110099204149716515066947548410816167974020059589652414870881168733178210199010433434758562418199326786031924271606119512965213998932644757796346191757931354975816170624786644422383110624747006378859799076213487954964302723938355564222165518286312184314075032244700402103953943444743403491836195738819017338587633456987836785965833737344670331304737599757854831975105750471412059553728782693952511032951151563711160575646060838876792513724532852674023791804467737761706554457651876157522293901336971593269825284827462338953404151122077595642123449668451387661080730447171125299813530563412787025737005852583039123186052731069183993422417698361273452965068735026447365009289663438087554634114204954827075007423682084905473967230529287200412349950758339962162979497937938947627198261448374398789533872206009092989100378693140831444948830354328889889481228021626012882939726179852565693207605512929902513552580250209995606444250660356792407500016148785908056476342690673179148462195360533984836844511847370050306500344305697114991024576724100222347625276318526294997014141016295867999682040267998680898904359323378790868017313714968106713281110064834335222652758390983500907263471881376610419964081148725089773001968244066654446262670781961947490043452487373507665975371870076376141546460388749269687769834991534935919966490150277409521844281446741315153068317605449299244139243933650845662812760886258192767539662656890243677178399846487478429118353060332327367567145499366547659766533026878257621244876827011533294559738292596654475026709526145897640657272151427822871328891829186502779757264218127377932352559928284961903012495782378861304300700559893350458171508846004251550663484145745430507332423008235643253306524350764511690305102284455974712405738495413138809184689526873936201115419940442094724905102672140106496284621366802989636286067785372351643051378479284801162268334583327845655009512650847524633599977078090090626114518070345585836941362725625334030869667884403445838403065267578151451349749315987707504690539907680204295511944459302629360900198583518055227086814233701749078607722611584529376179091173396769030531647186107102536784568274885931653778384446573317317881592187984345483155630534831449182486720585507476400857016011728537543315587531649172136062316829129408348954223010470282016584437664456440759479422587181764101643003896724565276290316036312344004910647184761442178765355633254088518367875354358714049419716809071907660365448977309551361370343818340805239649536382375429302304334955864989141612391897323834392766808329091873716759212592094069613401797163095601857158563393250803708668248847541805192400257923297250977193028293691819601217210411487135603098684278173613638944999048264947907016938791040170561286459812783297858396870128765830787046460759644127031466547985787466196926208367402042151686605959800770755998411657726830034660028447793363015031832235067775988411947277293051906788874884396632080334796674438931181883464265446208190575208773343276266906343850825828422685584954866765950004235276554271176690954236231756651211106146373627688388156159893952411566720860030867352952021668507061324179924677015855423408511545929045728322239890914883592405162299101685408565451600044044550307878953322765992579272837567197519977690883175475066888452384293350169732601593405419652460206823938842303645879624807093548341034062869240708325954829480058380024231732350331422131127558805456344991814244421069474539795089514865041938251606537255236660602589681244521774927967850215111426617109854588853141124681198143599894644522404964380819947731118560791893702546500406141959455494269749714783757835569602578140029559766220209866076096717773818614258147417726609233670516138358479170060923752878658059709134225436256799823582598694284256329182442472812736244984328616945961808165299597132080672410982821097093101683061605955186331308094564082767059934245280771953167411372273040976417240192617428291303821699830452867617401738087015657516913884589437017989177536028067269354434751494705419261894913496821651400669772852815446784915345439644338922748566178873588990682410626015271920881179955724443630838095917168401979212392345295460545914407937008221432789366689988983671344993256253086213169586422305070925347463498804006290185044511739283582221594014784350568033019678892557386892756594647693916734286886132611049455607615381663594955183449617310150706309955338065411387035369256161826411942707026631623008383211904492186367861922064502225678633081633050002395216872169760190631827845581929137522340651539407747971526587414392808649217955187782816207962779526736057123958537398197406418804944997111639211589079582698370751592556747998065952275628372374069454162594219544724228544125050889979918500527828144674068766903387636634304854876850290216679135815503847047015975335148139324901435968160550747098531122076788647143019186054399723263120245566045022867389913939157209592451852304335888654745806756653191260447229802428034966847867652545471548646535947226179768797944115483800889769777308396340422941870575549086789209396806525647530185824295338559435972752031227263619965488675415811804071879731721541696948518090544146575070055411819721059898703425619679643303453950054866895733916823289857241845395002856088277080970848103136106332422602561837278487105124931331449974563240274988124474851981559404823756867486913960402789119075792527341604682754417389871861828269947427996850532429420710663508122548447536473861078658431903661998443716320045174261461483196125453499119505230795527677126693875073957048986231418570908818717211548233082895290081048170265852934382750273201129374947033783842056790976143141475050967513936568190990075254389853286421937988763251914015367475786497665601263926712378415436250601806893598379370133099727635695345386057984533851027590121680860244051546727166370167697132254999544120286771787804028588730964930495330007655751612831328618749767504841809176692131106975555649817649878981159682991647813057215304110834701647315206359287275647378857928135925685653194634961063519008494554007782383123169202754261978230945296255329807942504493501669125697297115059394284243565585940769221087240019329100904668953275300506412077364098651746992171925624644782843188706110229281300964545536711957122158649283422425772034682994776372210921938736712508643528436719626551551966952988182201735757839307189902070816910344703705841411455179753911101013010124871398760881912110298969960585083711207961701324025931041575877429315499225683851663151574540263243148987969653482077883418083835313673365963633818737922735694806825703127738602237874657535164008324415781770564458002042991457406873321500001815663655917919747181358494687072456679048106660206718083509612161721126711121825097881324699873281046731089102900836736462473426587975161680581350015156049280579406061733564508451366412379808072570616169451702341267503747832130557253943443321922041323344818163210562030482263084736566327254345680922094333623901217164980140432306164760314051928926216164132185107441897973066815620738144228914723229087302649610275175052399023087841175488769720368286352519135407403132176225076773405042491348729018046284970932300558574384349221751062992302257164602991338074432223525638609401270765716959023353919716022568428533861827764743682918321474443414474461038408167778189973682144466141989038057143251714759532939259252812426440498878059475686186687123870687146902549861040099707189342890130735035905512065167262185084779498069268951119535589749806885005103226488898135221903683827529842572779058154523126487295559309033794468168183265622155546700560902844274528832037987656872546762627361406708225895532777032836889193012051985294102706553930260897354328465067904240841761657449358252398312952790153151595928551522959653896351008134035485946790241608480414413646027482783663764724884451717007301887517608698164891556412915519894955869392450199774471973583915479823736711652938231840930350907931596866914722882246052973615917281033289759835304133106834336679012324656195768795017725845137991436120475634043356951731856636165568840434021618499047308334691119501909282951646510400043476258294145241637372841830223246092434582602397651612079254152664500633174947074271056649309610340452090669776919008964068627286606347199357444360721413743562363374054764180751632801983909391807777882051779946882625309603301061276743065212218187299247739643683603064631374964805213387350256181980293058647230068971443009460221259245452206566336324678471509211498895712749627998910271188422253375516756276626604818922050160635084773732673628967654931340362685027857892835316193490468194898127683248641130474960268905508915197936967357414772357763235545131308467778843983229801892151081684249205675709859563814996624842849082140309722430666510478514841978219926987104018690730011341564029928911820893264055619349403531677228665666431725194417263858890156144587606557580020476058724612960359006128503698110226845350083722847174918239925283409713308638806043043113716787046616488141388160244549377889323913598815854312775781339338845156894589128783605335774510593403622539400036954822495684327826674057697460425159152402774483923609701512302822905836763224266038083678117166320741135589480218647263148485728870896087558792005287550883094492985945398897648254630410879498978359433543879085507074095816504151253272823530846803984760181350712539199130865928196701166044310050058159619803777434817953915694291218116113879926871441975489106920456239757016857168040517927618920910868977245464821627712593383392609860799197171301848471185915103453922940929747223790238611799785545939020463274556595767240181973331593464948609049262237117861846365919910866380375889465233389099850395378116451692304356197155220836809018593207436868322332229068819632752341930430050922082521619088516641932534167890852956308835083369995221545064499417731111408122746460297017241650296486957614052346358571753251670040631821126988697466791556210184724762232771968422245162842545522932921045346522611001118083816572240326773964652671199184422209626400767138028406491308023862661400323276669215140774275610085547650603390032275732700179082077114870414795506934835109472298984582822648825807479823780358000272000695251021194450722454027148596297509457306072733718097147088323595404464255070140635517184390913946781421188372374445319226636246945190747145061977638192962588540873892280944862685564377666338486860187093511475600144151547476574633786160665875874580451335026085471291981604071086411127667117621582273846290229523940984736172240619574612932834629313702964750708601378912849306307781185290311373873703367835899058056366030902957785527542709574633111470577653564804598081668238425839760033032042098190168752094968128014692304797021338626811508095436615231668519027906001625140905358003083254394329383159489878909178405070692705985595042979351529021612458377536407629839106822929728653190300983423721764991401149517964811643502310814644253794816825884815706198064301118876363299321343248637263790695125125938664522135276882104343571721481540918751441109876441677120355204529217648950164894894410286493739049818778888052915974061661101847012578126657287031871278863807522891981991900319016508301546713639250619176188810868704611542499921732583097846121879542890996424063389072428834613724899989794883433413743445558998216019348153157871242049911895285332777189128367478376572316352294835888252138701319789708292283109486711638192365996876021183353364633445897605098464786943002441244082545727520933199091644942064045424784118016610590395225169677526693572851104287377902219261470128570795962813022759351833982540915224307026829961584186303945613573545485705270083226107868893201294830851701636975448763214132473368230317330654499616502395350877164597995874752103736852048513540338180089517243758741287737405062391785198353017970395915855750390340164695772984113911985448325956022272422502845988539435919155791155580999777973335521050567763187731471824619215591869471896036837113506782207751249645592807392288165840247888839315255701972010036435660654363242393647709546528652217614919191739548918763147699714411878325444057792717289647298833680616860742955362844290676720015103665026134311253309553797874314295260577868469611421099370018425250677692977081216028107472252768914342288118634308012435286206146923484618236696655748009186697828663096586336595569829031717766303719050358550982896107479126766613253360123900906837910806190361438769328656456755138383758820780504861688040092682673461488976098073455828536053265039989285807410365727191013556078943326021942298784502360859457494068031921297313917880586437662371353830087160040009985922051940984526336589500949603783216184603675552313762928627306376794545040334607756318381020716943628480474001356965422286464296541437700323767281751195993204577045967340641315801280080131690801398456000118382291032892737305616257648284430226519823904857490559702057346915067583101208785908425259471785533704416828880223836878677512061857916683841390658824113896983194888412531676349954040411720678219284087569657529251016540432503497346150735517082895026113012024189126334789002151073408332913900636796362009858574125955423869109024577679368013490664720349826109288072825532015258962950672177298148091436344030218948940748046885024323833639526764182612519846467471541243792514114700794907901280728358618383113305331305446618480384628542977392866305046176401262096275405564554815292600263311872915530071973846892619157982411448988731437035796607560157644371154063834453926755754801176126158190429591000051947442499540194034123878671725208587090494757552866402861214901550499860007301064163898175511310862695866234132495552539852438148210129822091788510887007458935001006957617263261757196513998300611793466171382041461876098250828442670351924591123476665202359472032638633315371786442540894235488979301272474032897234533856490165697043631739840390447723583324342808223039959021728051283835654835572624672210361948461488260327822811081505022734526008030596849126647834451752673957042251502980455543594667898136523454114039053894898728665243971268254578085735546789655052335508636103624187980711588298639975146233258986843122215654967059072623017362113330536736259379114212037488320524018968159423764178985118350447124777754243250502381956538735735004993152961365442003076899407667522103084900896205581237619119677482008827230557407343405941084748685053641420811955413193431414311515923796819517589209697082212506717090914452085574352210943630535183375207840929975919088825645546294366889069151441643134585031081958251308799104290789554257221497930553399948915657191366264960264703517220173793729117905563298961729505113041152398163585932175817522726630529256985766064656965052617961784848616459925242013086945497621308085273482743370487265148124845680642797823044061063354568492025705571733690946375158286218830015407946149670328708003200628555054695360626240272680720349520738717052688338902971553629965297480973684432990534858537147918926486116652411065770126795657753402767816167988779434431053362540514745731113948168830173375598255593918705849271240225185661830397353023364078142152991077441789047284278677010712822062237137081843659073657424751651367466012442086161721706859530335351463087767624261774623322693914490940560717514186076797344476148640370766764514279443190759772303433581483490624160654686565391396773814148149551115292683974218275189928923354868397701780948410131496360469910254885885024220238599896281672405332860123273435993511347158504614566398777196154811981887242222576703786696662344863059716922681102449308294180857210823478981734240782559616544171882628750374699380408330488647054481538878008567972873257095562337324585518331393834790643715748307178745134747158938663094829561637522035283859812686958003198158520348537405016060345817004210796134102919156008514251721353799524280725545348857274795581735912960105210063958533446766608653131993803385126798388247253041430634625178491449325716883303928828843295066540470721606327933928238258462723221271144824456686741514529630782660502513540313438178658096220139031006054927537226135437211640265903112222375890341248383672002390308292225802144228846546334011894849734639372041659694316448760579139069764031155433164485113077981328088041999266829962134311848424307365629218701147785221014334927094907469371034199751276165398316327596208693958812746263537178385733343826571589131128183215262782269435857221013890898295823593547202786453316183140340700788456969083637717529208587669153133358168505033229387541009992615046113432409748159929109232020140333365721249437139033697356259956503201809822999994344790098052048382990919505978601494672179501614375772227905531310527061277063187802583508338042586565695905924493356302202393288651990236258784174373920682415232112095924079081589462758939799896069301478544336881578071872198065500420522598265410120964385705660194856899902288328719498818439196977764175121615936038300949273943526860868164007457176880564490344832785468560116755735672184490060716869315288921985446893232229566659356878210505526850283415455106948860319332107873406271593991975929122709576375493593351780807033132480431382827141989036046558036433284698724201303240572666182118945092246771097328680423323994357481767361580966703620539908579016636061729980527139658282003568445036756133180301131475328022310195934064534430301388914617786631150582075491117998810971979050830370302177952021630159136903202074324295310269338742054653502715010097326704307841255765032532734606536696961847618875117119421578190278215784150211348020197087272015625682398258580388384090817057481729207525775977580931005066859911097282421472161337187070779033086845962031579554470350065944724278592944421836399984940177085841868124349414250881370071215930620069774526947961286290895597373373797011603948500283776798811675932335346119066925212799344138722812102075836502290658825834211372841049666593631245052280875853059641683758879171463436768350764049360906310558526120868717114518548146748050506018949223056261694179666883905514945986425507307921483482396615432985487304191060415528239192976921574737098821777472114606968532178482535109995104640809920984222310327609463996765943646435906412293841131443505925717658960356681032433273302043896639963083166532960808476940857646890831972384172143515017618100158421154882823678304426035434991809993326229924523960033867806475956110545466584866318947657447155924451002036971659238901769896057320033344851243194511637771401248439007899164597989154062961056771872788304390346903606954139424765285801992121565255632402312820611769906834635749180665749899681368090535778256808331035308061299653666365976941648531388587630049768328783715050618680574496324857573590960489829539810906330348411750924556910626616598616178275806761181768553503760799397069881109750003004290842351807614597606686739470258925929662175040643997654644123833833597385319824583437568503413036451096777833202523950986743329944839278048110877423051781870088586379059119010613046829379668502167899808416130008948860513468451548958284783426741638455125525328502176435050669829304493117165748346910699366801989143718536521295041290954878439803090618004167199026471743138222081954394141286985880956977448370382584884706781046317148928857199638064350629244482957096776642614753756899798394849220079589052948250664235648742013456520196386755462929470227300675110233053324972751728646283930223644266677764745797707257924456723502516993145492349309856841853449407156905845172575217213785536537916169575771950252617340763869265169559545735536355221283221357149329443307547901908104878557368541797326893609952379738192928397468485953191238678290906164192585651663271450070036994553434836298234816804538277408482168932925557835368278805725897630255688083277179988383136280131371224120100005056126892771768038365612106606420752732142097066808683280045371665209364752761005610180006512016473708976121648908489791280352677912163367408490271087558727249033390028707171037048408461973782679288306242646664496387721658482110227991321057799277758318777101925707053936120111662728276877575383523498223516371049827838084750807955306546237641181746262522072108782631673421858936701197500815151199369020263862368019998505309274158270237640311284366457208099643439959709254746205651217136285489668998036662979542056473550034442428945121175231675599347722885980163864130584725347681524808773417682338838403910549608110331471594315344526183934468867427967866933162773725875914433305058273065871951758280986321463513004019284363953907073281620643646750595609711668089911180509760372382682762601988634368603481973078957292806195198043174265846484011130607259630558035283542809296931938141488564588678947883031858355510000200273321819179928240541204652386838040879749813021258377117624388221403299986586035099405673367381202311729781569524991671472425315726244206822303420502093806511626950075714946344724135179089767520636786537891656697467602455149707373336930843466144257480586869532036823171668470723709845369942236320466858679086977896693962767312130775851043642136328976808683407921846637891331709251477077465422925001029115122055753598893449573089392608519298835363341978661456602321346031352609426449972195369076655015962764570387992737677903418977774939593473064015617248234223111990644893032825483867421407664040337940359365071930855925638174714990840352813726938332890191070227316244359717679348685199692286812174772677122992996836704455363490780741474404371267184161669565181915657131136554681056521543843751752950884797032357976053748011260582550649566096376558821734688681424683176748623811151091650460965969022450955276900134476039147756722192505628887096147124422076436881367954854775901098339120801882517706840623680124600119848233680380778716560663094719794030891787999511706284736365567091111025399403561784678679636880229856834656735545695542764695348661289553423104033170768987876088756695432555041161616156853552914848188077655395886057942468707620422695913676523672963826773654431873764484873860173389107540973583418761553772425087943670134657006426627911957967548798667878601885474242562846650483053962338020475840990247810012928438269267549836789784481164789751277473529241683941070936217976529431602606358116942518781423578268946873984527710288904113930167537645510269747037828178277923302897106803390956909908522204863407094693157879977658226302645366284175474493746058739842053495419323026499974720253873719253074202406364826897096562578856225885765092273419316768123916953560038393233189699345112919100481808765084008613671247598262453884536327212549779690979792629660016184308644527101172314131548422206205280601252322247193306771072970072040731432201273562791165502137682941397448743687328767414620413451344097179480250678835127303723113574714778279525021399089018134842002430524859841937718905792831775674093841921461585133392829510833749382750890223988885763613926275117410319149951859813038144072000669907281713047519246873145273382021818218390338305946423955184657182290138935619351561835151871461753398858322049503680301045097438353482376028422823073625997150872485315736494131526523908633639827328066024168737879874371191065935590097954245374708394836785186148028096502334995771708944422648797079684505376871698155707129932983714234445559332625457609146537088171594353923098506994464630886008724574278360477350971433412477167992456327446705735871608867691045234789721072305498031422413223059430795632520646632846227779305955502944010897264355624806578111005769563676611704289162875050962614188653659086955358831243679692635854044048513410038784967704278875081461970642769581139190000720569949268918675918467943378320132516396805557953906750700639674404761741494276599360440270898335160721419593936070996013056309670094463277742702613442468367180916028478150029214184271980848626443211424699186259900632594125668781281914174031388862054101205897001411516302861452572849156487928522339109925228908968718660655902139663818434876202150071881471562854383759547172906524194593780062218698988840008971327510662512999284451219728121476522881861030115949524853703801567031361312814303022755366686783076883757033463334694275400590829942090614478872326019699947026155736814175303487553370138598129982483102783970458228877215162296175578219094258336598757652213677663374158118578952941901280275885047304559919546180675657689371787224249951800542325053336067343347866333313297282568833652931642742367778537500638466561941418361728455017834215898442760278566832781156594058688333372117435592634191093801987932313303310676476423360008367919753077566729739416265504410806063993347688174054672219656586483210105975895888739529842812043663935022931527714169318863857180251944555228151204184376304422369423310388475508789752409102746505924814111640608050689640494005547574463607867062432073943469712274025461964385932007235917646566667163048592666374323676716155143854174451178433949203456327746997319692659155509169887304020037152514665674471263133497335522520126827047851225350375505736619002716360500135171985883130339418225161620009716577596237359864951268191726580042843541933380144053561718556564680460878539978370939584850976100721065072636425834952619157226743916122525341728514349095153498323173134258441301773615674594417807733714440727704580154878082676221284965997992500161220242561272489677708878212451226086731856170707087851901525635535026984148883416126749523804832852039115464336874699632043898451841545892218049732050071801290773801284286131168985150948190408834794224830558749486951646396123992546983679488508555544272743378218923903990238288364141413469954507566304266297174293927307756747043254472559688400062803319515957361357742141550813520070114597385341871694070888096531309385252199509768439515985329848869924842065944399211049783883796928718245749178383255851303767870008845617882605950406791381535405482755994359879016924050173002821240728706331076841166252319838834178391910541285012418923836121595548903932042724754567502992693126722947422506418800562653997472087378751745395278262495839428532163923903198266892200880239519182904174426884010913694867079757016701522786327016291629309178307280192469392873731973840332997629274664203826938857461520910553602288228221587175703520343651673052583035206186622197612524029400786971837753109585197661364798514859870242907020293481908733211042876514023654068527544575625921133130419848848358365652111646210948183575571852391707315320169774012966501868069367368221589936977834572650660808227286526870730750112816829213418855549529146719803506614910091203783619984363137187305319035039739135258180624915633431638626702636351005125572613352093947735623812271579955644409573886016054294256376160064870069092034973088961766116775470701767619935537368637050029755626356451618359147773902426533144968039041371940399514019386279424881814674029512919929412563180385551114061900153004701724118031562017197490669573605112694721341485696005978422648043953010899180511270098729968088273676969077282837217909515735062446890905312266671163973535552819133733640949827042710819936301387913007852706465060110975715935832281024953840176141245773654110356563892114757916114541817425676680668378376387276754675431754903316347980181326527100940155582439604805989482325671502574177014078693503265166071429970403116084229342734460440410432084164828804205930373577124852957866033279513692562642019057240033148055048307358902746001762364467922682040739535485342190523796520875645673346157027321112214858812803705500112083500239105701051687444572936737684810410557845732913268454417646744953503463688942699156623155195530138029233173875904472439976160213200993735020464306585841622142918227968447943493683571750974838993373616715295144202301886065314112694130643640667565690899733220608874624505811400562551612235612839832854420007436881907377273981332879848307111956104363849133540566246287666262734544611595012327126665360647309126110826993309290291282080523373562967149049923830385075704680668931671958513541928204501685480952711687446508946390751785012868084946837120551569851094383391506529938969464342484153608503554053019478284027838366863517186342132952607160803835137765621465293887003858900246747250658864515958756425559853409793217832826372081015275501901849737116418978153566669938325675491508105357220165233160989262817176421435632006578710496392084447080557249674952924399038805243595837945516862820720627655094349268709179830575672387094402722113539163933612122506076333601055569659086347328976053353961759162464625213578563564178337176070240652684071749518851421441445434701626147335932926193791913998823654399793397880203291135254819394719322627011655359699730351342660944402249625270027250086737984784817666503124545789229614741263880741970428872759554951692179545430708599659387708305295973819921759081711173094498748699582374798055287861471716187636038675626616951837812545973720300906600256459538290702258268292768971997242428031104003564969805972139412195041834563233433494064373555347580740821875476496757668290885246802265780163426540711043361451261231611575020664958784350827975181477636289783601778728555924811435605174164288951031149720595418669620111911069640116362677096278754285298489807308219685748271646281940595976720058711727328703990045221109878605329365114469167211951305373492457589626406554842951503068429104697333303128906754380272696019936422504988004808055592345499013251158990443286395963192260599196427271711935413802264181589100159068003841332262275484847073118145115861179329917395658204575284650664283840287768762301680226419025349505284536807837247928363121324540350164232232586910552190902421144743062855037095209750412992853489522331930844736927260617169950463562576034218887074153248090932136395519202858540378806578682889763132086754906229361327893374522330740593587779342920628632414735061029505913048838757606617228552968513633523859540498491756426219646919732384874556191081425001224999563778342182268043803817022296248934562337867664595791874615134571165488838945028006728409009098302643093423591300877156863354757116444707413390493426080633744886723626471905365543909160133187863828646131496121299502967592343173933305161268437833149401295090593271399513338481921777710901462628600857629605017085580530268388920176566834690228297972410334273801859598798062784077900417273019657994882047411769763319161996128024530113460241901782277966131979103610773809775092830223666787235954714452874841397351551082751781756630972851100736667239093908972667513400050286493961116563348631872842240463849303726294034736182500659426450452826284990175029399682947808588795677519997510843753874676398434226465250523889183373307514015526815231168164731502457689912667226884919498270256542679302409865327436060274926028769341575470228795141786042839113170536096237631516537564588271404463297863579358164557951601369184837277476113423216293256083960239430630250630842205411966360793448207801822054018118545449912093916445424842553632988282384591375366953299420962906348682865166103740049658606231869451040671889710938516861167354012630774777305159306274625448020683443230958472670334478385495011539836824579690443718559148836021454359232489687211502972556087368446852614572962207149726068200885754723338055570366550236169438368833017386081988548541798364219729039313645101655333734377219337598146652421888695136667197290225372940701394026892341576099369782121022397994056369213139358233183775542589557692451806347852500619185433541568948562951529196765414890491137617015994177888888506894998548024366471912637316161947740685364874711021094569318960296403849948737635922325314290394411163551109186182761172471850931896939653114912339887061936356142199249595957188167027835799204236089185598136038510804360067192650489216664955030808698996511352935932570161687338451119171677036473688963984472005579877541513782318916994605201485857666348590090565551663945727381760824279210122273819984984413315055261913235801054491205701254768177204367403459899071762838332721933591065681354391490665848168227598372906794176045375725425885465592230680893373148791654468279523376747017855302990914118697674793717296673057627256999099403021368512531202946350712773053663499807665332798135084497406378377614144599927760808713487920999308533648165350824428568688129009685271275500521597280035172830189918106435430397286834003740531313558180417661800126450120337874046893628247637029512900518241723533702423674528583772844621329683695901387585259385249574522098845430943016185695175309411617612745455143885611321696441074333837242230160562050877383980984214184861196421069017492756898958270676459230323071316207634219242313543550951401770872855598007674374196291450871074864747273801183046038902411082706388920600716428970840332258867933774663388745327909964690013745418152967202322554249300330788051346148526384187094044221308810672564485370155657937456101564375633499849653846109145592986363425363812882448143453740335188889025153556570415480867989024176707097920094689548433137407834747056624030783696738292529868526282811317503042928503075078546819956143473577182515896106864402222552537129392142837443386789679969244459971058867181946467088899403128793452253817473928153213997198476776209162749760036210158152768859841344073971837578743623676620034017477343406020804971842167390293574045854937429791381822031949559357250744205695574930885593971596745555266750449173070797013174056459542551612887881961361590563741269788021912196957754766282984717297492312894646071163275413797229777703800746815207142847268145615064626882351065820725497379645616334738523927024020642445699249256125240025226640773507955502196962540632616541943457324668631918320446223863600555509668365156619490194463254944391060060173322088429317225912288896609364392707009792115281282909349823725450874089913039270737007080162569599447057684326565048203397335525638677949734882502141723352261631297089173696246549282570300058517819001148195105133540099763969965807152043081316544476221380313357609829592051803356260998875831830707604934719122458830709317881358520315096264237712723301010979819982262813283626328971798907276039846902644915264932592159563065061642277238111457326803950580312581202479530328541137825571100270634654959936769104743535369675620726884879431003466511597173991166910196364341275598163745398713990079246715622643095198960957740104433162416904080094191208082691429923862197955091476307769978064752803390637431000034010567221458490245774283791914591747674528763672155887278173149795683495559431089919728338717833923376745605115832645876308258657082801360876475727562700970419161347203589470980928038723650941208459318717611973764351704788595356441016034439483590395267175455496940299525902223362712816261255530271960648493914198298815954990385203996475734755612614698343158415110795376874415215289491309685546524514780693921508829724109650320600929715340548061828481697834807425529424339178350547016726019991840902102905173030840180948124298038992916158223176858524308577161592694363168072534146616248193770244758110617218432868386310352324419376985104042103540188384634239599085697897698870999348550047915217505139449334244344721469300754421082563305857298288346936458589092469529784426520230343141146140930033677140792259367421221773559981310737517738315649644969463726614204115900839102068904531240080821872516417317701943487015757734392943599151289618310375851841297155380520124898317250597228551277535922784691369825662849676016997931731506451328878203482073385026452002950458460323037593450587500458334926810527375821220980915182466249507892768733364899965566996698388589554700873240776607148777103189030249481488115659327849225194029222729632528667372585304058669593755388879569909849596878471435723940808262354325211075182809821246737662738618011549701059527794622681957715181040318896291893764710626627847005789716700732607558726599136252230390997653442073128184445134625550407004155450229421202474124717608453695665005570326891998903881362509370576715191037270826937227017116489506179083632107067912973400941910199970800600008510790901854950838261028950731105191784544555471532174738041567921990120420424513588137127587846178721003298367417326494479220806891476393179618156730661521103350826999045850639735854061130757672171062943239743967772759721139527038778820403488675536394325513156810745364623505242667351437455794406703994043778392111165865927089523102998761342983983655346744493090805360722016531601597682853851907631066233542837629968243395711740843442650839320443868558728346817087868686381769741783808248299565005365070054482518464977823185110445205846369164196492195412146812656681333009978276349151464988754732730300094280429767328846712071365405878566005752217028368630334547268026197907190270192601251964845712480189602807012116988627466266759671524092936594543774715721881181429824447106545542280421875420579518116923101873001881846035629548917191734074036295937254082375225612584531708924379893529714936018065161772296993932799805966973811886140877569488552786438669038500042607134314471854963907395516189836699634705635542166274590675604036076855519146801935662301473199727526096798851267792866761046888115668374854101664884917514709002973569563918680093281226930850299686095774112419981000968875165585514784441648023188736827672325115408736934398787073541512561697136023372609877266703303239569504178056365938075048085240041784393035094857776261130177009815240374223572441819583396740579111981411844848446641839783733037030653360999049175806508790258591699033058057802724294381016124039494006106372001487510186663401075579528768887451182568379994161429893582383302922345389550732541640057095185748586827961246350535566882939816003657424482272515667795749820534709028742235906218028929042451244313325740856964947270589582804983728312280465206413366868694220131022842244856267444873418887269927069243121695934609629022387485614839197610733599320046094586339951477446050569649365320692585213396981930714912577826960524028761239874553832591435009114133455009202358479763481983989993805409148245060116482982133974824570217655397801390704005805252080135567885336791323096314322545247334657164599306105257877256752073754023394928980838027751109407563611792532066002583152568078645532108793772010865788404847924253351134400929566562366386810734213502723526933356914036785057377917008061697976410640773018664139495444881098288825018566146926802406083341576758125339044810407140010344140257005309208361979364370044088239976150893980595206759067185988959960489140343359358561012162266505857863540657107940796914824720371966883486826736342603277673177856183809541879588376119483601652505701933998839319712227121508425921861239168064798993136471467474075433909162948797708909381656952937198063409132305704600694400339869407921231774817902364160276028725051259697644670935254781928656615406529537558634966219013248340776804344134110126590465409383269717836976361602742609174875572991134843281057725477001601332182127597036123000242246228872079089395307909298714278734937408890683294219494390507294454716204332551719972541261917003192058038986318322300124763181946374628976708491594333069056716988263769548805209082492770003053599820287532135517989315201791405437694123841976305680330929442923769769129475592466311444786447206191227668241208521145741306038802291366795269340003933876178442193559722823578360656743130507241871323187294047369109337876220454003056163836625674772033013187564276753225081563653579905298600562038787276911850006930854723792367483170103711832782667780255489574812376709274280486553416313787906507626603691911257528959180424573319217278422664041448809765108367957683391139492201710777611585368568944383486498521312407578346457747164390616016555442654334444052894535170071235988928800644661272829030352359343283162687915858441634348060257015472832139659052568061174266426465866714349644516352024932184164033873431149247176910471724683602046312001622670578105387336564287353402867154193600874918678118747991805728413668855702160707589945462331240998319503337968905017920097475116397206038148635706794322016419799813442952460904610027199867492598048604499022737915699001408509290672564724672939803989112701438756110235778638640392717240884629958894873700736578165884930942991044912142341684188361677049325152318956655798965658546398989410332611987036004461991217863129150483078568879564703083589857165809202424366979455577474597642093667851738213581119287791531163366515218719380744250128811467387939246848692790886508280493140868198070090849913440054830419367010043746708631558280444474662903255618531197136388966314376260613965147666150663275978349480004970020971831870467666416031649532315031656416302446832109633754992984988018821688142227875601434401273030309177338619526341271918694043479135124819645934714800165713495106617030341692238267937852323277704652164411583667216482558355877654818885158851575412426912102129633348542815982086415246551165003303085832131092520196288896056565191132632647736946227981025325714218001737895916959599161107107270892643039202265003408285480697096176333748331538537657196270897540514703144386747196197162840502988281804810361720572759437772803013425220595394635489165000757412622779884535494012889865730028048193863589310304518935611682615170497617655527090707697213433014289450304363795658632951555147473395149348564445490932984240844511354098228950890609789564565471888203679116420207254644155020057480680987928564608517363838121353550874101528009694597422269173212084723510999018046875390986487572933123511323261270401523811066784918287327974305976889172949438487810969024740178408608837174194879878762184023709718540548530808308831121386472534325822667997060888839442293749828472698369390814939399743411739610271152931561601514103005555449710320894730401340412141428900437563291829525144506457709140343031129470650091658530529092973871256297909028184151149635163442497464278315367732774552747710173853833085937062769208644597635579966985688013084128243866466967098456361557917527060859874370083030112167922640201720767750812808470790107771909567071754760175070071526438551058274721741124547073798045274156416370394831981808560876535859733935876092754508958113080838601610210329809409080181591003750866300089942420882297730665134037424583343727131407653804846934743008312471256633670086819648859372316901682834997138329859190095601542640769491117110760862787929111569164188014948895814802028940815026809063706068042195625525957701489065043850493469870333540288426637230271063807343176605428257042586662553369772404872981185490204345819167488035335931229291257846273852335097712173906388394968875351154000607219970659416822739408451864062023164140289716729251562498370467982315953071676103045943470224448238642916822042831557125011524784575979019380582236195913315932172625165979156574497890922046704214878446630932114659179777940702694399362223457271354402894487271023854296965223932650695600496382614835338563308450382518979263027141285544333831928043294433490792736838075240105443437403442469456969365644722001921625437170069905074999201201404311979309229228034946066773308979949501988392541053587502308529180809638068285746024236672007399229025986498288818034391156241197106570771756477473814341333362261770651432080330509921184785946974265116333968298851727692763750436583567177509400546396330706524107685353403127601946207570727764701694563011797392696415547509744705802105534977463088909006014203204545926164192899555304696536071002054855476821120877223680027318877747728749285557801851161400786602138797959204561078954371856349170736009029296428887491520037379078389106478179855429603508803918811144682112089181401778434578655114778395653766008822759124871365060348735995985039120386254449546647624710070556607115866314995920094395273733910063990390194495791438217024143389766295843204512447242700116195696251550557260272163938272701160990262500185194214686968156733639740659865444593081259019978588456102431590228193676316307184251420839215278472187244866342291980869378618301662237664996432017554171859620350458168630511198422968421326608755896419505348554784597004378592419416636904579194599765692204163463688132098987343108178884199322921799535299657126129086605227771421523221990906203772406255574452629067640338153033974411349461638321931367578793513598171516096651256364914083424745471076742074888001958843160033218384765302374521415641308594280746646627364115132601454589951644710515834465042234956167691462410961975365068589172241368021683706537973431698144065391638716875080768485295401201195324163952378351682707113767162552964376671414916071764385512436664271011462943592924901231936094845073628779016338205640722444932884618861588689716141037741272790671826188878306882666281183944940415444698223436088889204072572651640369983406191683084679486251207703787052612884161793603555121694985780800213805164216244431188383650520142858125422030200580842190591023034785841890550665490253253870675779980946439079954862179149090034721685868685815968849138471597521773113236011040209377924339611166327678286056270693562245699758818430598517645467854917253130335252123571786689398162276980782756083211432149616938184405130703249069724892464980224933354111286529315554529813359939776240703241482318419018651372844905986590797036930029803255821904082902066333965868394114958765456784296725977353477868258119169369535588492825362990196269053580355667520902519164270019149903112324032173931108729271654052362571701068432944737337501077117732790061760219033451734389852990042091612434556338563811434497367210727687723216716970555765357236603182183051137901995636614273357861728706346036746638057152990546114178041241411953725515079630450845252881921103784270941758756045579039343435158169111143268945730302499715882738934488367792197795095662843473814894841148704215085101960650023940851038764320135381014749021473944567058362318265052326906983966153508244005167660965509474219873951032439822215413043278117050553104432546053301527800687647506918392966920787935603591460940773475947369479165471317609680074037155119575422143869662630394921652468405129076516974724353283482394438330493631317194626357244372312737663461285119245188966208239428349972757833078705718063331190761933129160618910735336114991510463474667235647613724608645233517368381479578034392825089387650129595682772317632860697283022387372747738116471855229047200237842468178913803918878733011280616613678480613262394408888088231342228864337717082718039804539480441008000547596537524969664315393697063707620514233867588481699902930409186249226121150601001918228662506832018672938954946647585375094067341163722022175017897929653860703372459151275770078365411419921832923259786702118504499091183193255194676564729925053203895901679679090318127125981841016301407531323515962380621589042912938636014511000630591479268172286466084900555806818036401422498925979332438845464086393073297529276889506775475043134322618058766993913341343746869866624631339167940712729728187263262242237210684402268584779211053516514173986103582144822363219561235144243524567258243337923362508714030524610062774179230624560220299315142977237854014080567782408200388729216081116929867983706990230218062696872648954637321704084847033647216713177797643371718223816341684890624119760114513299500638932208713917005362286366102545117802716594315783537432193393389788372317871468366149103555151743796931969649429597137852371594278635517454793885675153540885068864705348984924631842195899655382354151616472541166718908778326885717457954416314441683658315786151872875885962034511727988773889858709820149417650164031213054433058647225767303083158181018073875599362720547913222256796506471408498108872147339711929899583225073652128570494964786164775818543896833280708808496607443682717866065693922567713947493065031418021184756822277691233100428825560557623733523000513341004724942078969984639083559808004682797492883427284662358015100053668367279841987058607586821725817710528557842173877696051993337532507673987330614223205576707126444453145992582423082884388164054155520797853209889875150389779492989898957510343823133096825679013106626294014926900315845212385951556558502484533840315114797706958403834253653592586300642491091335267372603097044950353472867180008769237728410355543399894648227216525582177656189280405243617629903344966666994591030658733162328375368224154817320371945224634196551853605983722937294686247412545274346594620844438038847938537683610774527339650506573169025106236666791094747277682793805906438225878219213985139961168253812213956021503936384903300481618392770180404859542810213625672456741040288994619464252014214841618702575304819187749390103329127087765599159753437957977241808595476367188895581170154880513849369776127320362156825107093865817548616983279713657086267482293712773149619840263419356822626164356864034079245472488755067988561508330412061832272109540451034644118581033720863140359341687887472098761957003193743551187030326148090014020578280707071832560919778663848798781966592652106473203377714180646653276402001293694389845561860046503344317140925848922143760500542386650216304555187495015402353064574626198741856255537802855466706417372652924217332828300258118649281618496603383253436355239247509466459386170174529378244615718488854519574881457588007213500886573828084785854074837728960177415097700324110772216748757479042616207988829336683336464153745384094440533710855389367070669553706584187008703184100213953229679280499298874082035922302656623207500154366156316333476779638693805568929786032463248628601786174791396340533621319009508367015279329503952836081235894667385744797173966189225065157961661833225483640842531655670030820637217056489710325795473939119744954960692938006790318671764761504304057555337908342341460284993467052114754500428439807044693631602441266043858921507025596836322758351573849693892777382707753700055774955453125422253677751450488597100077751882886720287849317450718751928290589532388406700873192377159106888590053563682836771487440553994151599522579398747797016739436407281685454624372955525357221585772404291842377150244820194713058665855423522033224827116380523167631062382012689625576875383608808349245267783882024226533112143407782267967565168271871384470651302070810679178015200793552026033802858329178908128971305966498145815627576956987338202857865647782497101088445165034409102445292317789424058065647112938468170187000984437146954526288846700101770278093588851733771572968953878054367064181482560474000267055140220064991284104375872845846550302047742507323088761194797879648199100830274211092578017368155498216415761695279192790015783272921264165630801470138874790708193579339364852088185277943900078273739694944565649861310595882637680881726549449185435469861691278817274386747077927137878809828651918972689275961011523503627536375298399142206938891989162536835684861864185638469243774487065742203954380592797911601131905742620471299872042257975895047559261668892747954891472113178682497562933266115036272415209534804477726203219844122271097884102518657925003887603795756405680254218284683001494392718569570794714045977155068810776861907097126123020266559489756066820550811034767327905145918010246105744505388443197344709397457206892944404842129026539231226293096270503931146590598073120140637014389915818223996674632389873907723421042584680055921415905664277104262958036383898732726600785609206284465163330805144960028590091168887672168767764254922138678308212380467643044243820571943941289743125168798787729407640667698902560521207773147313398875097401615341242141209475066296214522031754777767021374584406058273752888013472355451472931067962787942893142168507284825420399957887977467036482623926007577145439704353986207158314782744375566934528961078612835966275092048312924415838701088315126355742063922985650910216588677619633359199279645313289847217066099273867551884752021291109748203059211730306044609469217201420977310780176513482482020916933610426711542832271953356736719819722621729727170707061724729706684696664843979437619548957903937119839425331237063260590934478479278606794738773592231625495607812890868130001224557972692397417878104687619401204609620567766384637377758064884409944932970904025720527414350989307610724653202908134105559430007975195135457601234400932769780920389669990879963197920752691084084244957395512359195122378523119972397119388252245711305724885572967330165173300473337189237944157656824425205165711991902328041570438104154887883157865460607215333797356634191628635839660321316328582201456702186984857426317067576895596526359303333882040333994973851603682077440283498719823735029068358433667706007818144515602221870615421031729218589242373543679942853458231956518864349477090155804270992201500997794479108828297185094054482400874086906322534078580107963329715021216433722796817627481119858991012713020167919698818246438973729495651555252982182736681426584416562381043451478806518970432503568206152230736878408820548291168876804460312520801793487047255382226744218587115167846413771168526194968700995312275186035189106905701223684917201367599831556650568790624352751461037585438902776152089287926409052206189772223380871333444388368566785482214176157271726206782773210283221472567909692377736929334264518373652529817593757220741176556609553809132512085804299784681359344484357979516276053787479473744796218703008847357524525549918374479294687625515904358372278082242962707521379993808622151434595641947525582433059604710637734297270731584067650080009633348475188496440995631894263379856017025354870758323044326288509704950858640909779777271855603385826921449402389295213679038632689752727460906390525285856360568667486943063901579195982315020047047533160759672459722552356309436750708014260576318829383494531402447392592830943220229691225263658611779270110854366146661582928221925866296176814956054292222404438276765307422369215627770546825414424266310638213071793379255146402555318806659926460419458853322947863114919313241738522773639693111486056039218920198810658525982602491369824581442598252322847107231367748674921216450652553672911024360720875646513342895756963882226874860362033061695719369524512288324332686692188207625122317952528939084638566960950730185299692586382248455951261067384189729280498237148762602778711383565345626097079585697493764306661381368405561527777123494147412119969050094390215308605151562125083291351665718123366797218600368831255891113930258198700934022777395307354229030338980668564595613822568591871826341555129232896241547497653211351651940799276222229677593188497258571196125435883206427162181810257727439493201554530057138754986979488084101039155351364314758907030774513521006223932642594263604377261150571220924064501825196377307482858552387631947062201736634397433022695610970933906040401745381193097011358051664103662923737651605483473315729558984455358018138555229325742486100351762461472504132249242648459957915227034447512345659062359401543898537105207582296631525246299243059494476551417345832143951925497582308713987240274415690127776262665329409276122621935044454675741887122888133303330719631754411678058709042916542996383955122759368433115545117527799193219273208193549782242595902801214370358966726391363980548091852499650324399712485392984758275925051750010202404051179916835542540409204823017756257990181209469749907816904461660386265918334504567982719548318584688360206495604315032430675252356139874013926077545661809421139832394814234054903586551482062890512590013276489146227661185557751011332846257344289309898577318788062902730160465039499283173206082372309394009820964139368635883815264538933657709605798272163982475491213370919242686419551749031127394625108476050047815113387720582305169080222826806159282419597541435277268515129139361141220732050840616588526893515690953423212139158993985346945308930548298783315360235971245364596941677256349547169033426202682391407468463336236623160659270237508420038243407554406554320879234278936382180530340137606342477845455529214490306766958079424684319279847685470642520082364345650569259156604106621815786780964808345535662232181317265152863164728555522667900843043054082851400754814490709155082481190740516013779233145995763412030254943032421894409165433790853169670830820974429600268631815174317426477766287212085387999812681044414555486591968464230322280941321024219225605229154429678793036153464160051894307819214540447346544801438294337930379991405039592144794386026167867878477242804274317012596089886167567200146075546644745640347692718717045856465621467007956177433852874478142197162315420358483766249715428057725173055297254992693058139218852488325606589065996874315846074035064453297599077908030497744610971991989091845711298096703693334174516915337912585530203662334974143474147852365242254005829370252784027325140387579328565852835154339021633678182812520185845757729936717268035361968915513782763386237628943296690622959740693083587327884214745926267043876058490843382059872775798964191611031386677919096764671035352482374636500789706503501326411667636533857878552557550299408181575631454757979897620272648524714796094305760972415993748119553648319324722027292502244507859277813167012564026176971284178816046744805659155774208024109318811660257260035890433809352070303093536097321664188203615373737713482774264679491493072937050252049506791591085538444859588072032353030686784354429047291924311502085439814853897080903306335051897540506273761211292441311393823084433853939424255070951167285438358971735955478089620621811243449556490071513708209000668946512705734876090310614557911808146096912305292103411277976428059620870816563394981422106174454127260072796322849907704482118434380295020313658373192297406902440841662870306036238101081053138366300719920708094117360502037715491113967617446272027969233413468459674973209563793227328427645690940685802711145573414224401760301840654557125171099087580945003619391311415836449647177705889403309256880783557500866038478603239192135845510122998462712507565548741775873607050697249575293631036834709666627510811910156549487810244732903336682618596030238244584180559194578965588918400422418745638079297629193075142321695088823171306411980284072737047843019682184577034022140367912292955923948401520927055642947236974675923497086844598942144096794636379900764825363732673182386377808042848489251415812423283194611471127949803549495123697805574566157034761284831307422736328267153122717655654901682347259825856727849420107804040729779923074822379260520148875994825194824720344316332828138442250697489085517141653742578163802245641222346141788911427278048350922368120316379574793223574036168091764574137916215885266430603847283696753555518654497165803198795312314456997194595772308721644332565541252137150688006462353629188154044320561519638138627720729357619841082244168336939931348961849438434913569849989721738101752432387102239942114759060113271560358591984967412606401082585009275870947270967288272139632614355813342839243084593451338383610285546400711482084679590652676869049833366506479086402598025387613041677800328343556138748570719335058301893621167270427544568980013011421698190591677454262736445652739391965360566564932015777795460000412994024087295396167954263459939634277744593044111122787688044304418485647796039320326517580179572053816488977605272563852770126103356567983707501457637167442513177860845284620075197695673727585895373863358267017512363676619176002892174917869176053134954272841044919619101293168639452416604903386727802543672524566009800164956060430647867284813518977084439255245115769645172349911166200809785506496953025418722495135485857559403135477781088399995319075028830702640331221930496484081948584173876980056573278783962579499747147764755346894937496860467612368768275542259880680052604006213212479756131904756685429041492498220293218535086412299845629933076405805169573633567750363134284689486507584338986265637069712328601907054650789215220603015368505813895278269821083386381783430187204363780268562680697236465689137544056005865879885157560399508928750602176476668348872517128387848490820840174883148449495964033755846261536334982033422449842522012546586358391747213336775412975180318780197139369594961728652502102543291238955675061951226779022577752660325680234296158620383279247285489567362311659164014207405550738855201621015678811706252382331651885079120777024999593140455521468401584863480842921864919287933644397876914344294353959463621351659306675527225448455837284575353534786635389678967328681075008581337025802539657843877703876023977009666034503692986454809411960666883073644548050893167039862326764558635145302782333098524332321928890552183858389232956470507069142054668294788077844876558062213637032763417208936436602346840569130203047733771096864807116685742799872252144875233637170875532770968062881928653625014720130069066309204190052538181813600127535913120532602248660938075954611845436544891694187079224729615856046835989414939588598348171208417342753158438855351194220496468465609385300162041413936708996071992531045571164196448087046834305799964106396036815172326035543285443704504107194540752347950212539643042827234870476084815579748531934039523667615473040752163715423416423269316073278277589978684837726489035428095412482339472682670895338729661455753350094926049876803764832458535362804403538250093339015584580428093158396589336352261083073975558289730660877777212614213565191219402876937150439013442311868126261382240580894151571720848730296177556908688842164579600914937088827929553374728029392017345326111535214373317028020316574156706995369851418370016517706228371785518672879231157670591107532120290318454142606119246222082338059159248478653163668346047156439372630939165288937661999844751138301729887496553051909938103634610120466707445559010360340823231496761478787119370173785391488244169151535666638203037595379665004284440478549685454722703294826264294320191166255149525510095036447903911742559478730685846976110533906562459643342480943375850626321905450575285102984141293208301424961330657801181520920117925121517879067870021331875093621389599020605228336608522630014874476269394402345831266033952602389605639560016596609452455815200247922080126102325985692875663074016375423811174258970888885061546984800860377880472749155491671496888852456513856251956408407128194003720297532747467066150239927833213594970195879987015338433223631246720587901894418066165977819891197967566456159734619927611573346087296662011314023677471809019623626876979367082064526147962261856978762488711049264410458424326294614455169701230583267195125726277812027907043742773456327057398687028107249499202261692241168909180214436379111365170002358022949814242983191043208251210065777216241895355462741598698588153101602963150003720705218373742963650870894724976356430829747393510462379621361124947793894954453161245471614254177875683557502998858693604657463960348535432789796592561028350335624658911529140904743395254895544841031557243698101322875275659129939304984235673100136456519197365299895700794602350067993510743773852670207300461352291945458969828707816309008458919842155364219357682539871810305701556580939739644472055395620211574272293559634344604765508786353803516327646478616848568457716243482250457628949954828224299426384477868653001883012245577602725824122309650856868055253388413192341573246290923252750642482749929365058256183985400456063275379484981676204808787142303380539656584544638762265322338164316122354313448283576606652293557322377533078101187832351418249238329570237646553745454949237982013067416218500477957996414849141966961755848956737594332540480166742892399276790661678310912026447994945762279814553799594879434834462428073526193522981948596530213485208831548525354609465587325953864277440069891453634781875972707825820835368938259383765521431232242637830214959443848559134860481824188437401492896030173233857697528027727081066584940141294283533448212647219240386185543140162435272009902984056792109612877404300356638138887326688992342851101951761543599205646410796878061940104311146375549737158132308185306367125719406326109678302022825809554206963026691609500244125275322478699589140266471954271584184230109706099076669895648151633516288678309815825422497000139793052474370363969780621518215334838323063509121307040156707056942635738663641478446882673489215653552461300426960539790211791547470542902030687430323962794269447300447301389581771051262284044209594554923695121107085484005410842280203974847257204702218862103232654664539976552096262981967233468826124911317142547415187323616862823273091261799194577870103868419948125583108878837591366602781839929367574226158022519461401935212940649440534850181013739364194794487266035127708885054223041144090947416477845875467275696724056892298382448287058566773059987120583085948898540936070574233165221692570920395087740595841128013570418503718326059531452605459800718372790545294144814713016827176182848229501882034440913183013948702243331022444260475716834774591014507451153974153135368477321610402048173761849553858815005296933833266189040614714743634258215626431759745443201588472559517104941926758622134884869672330571486716830162837216407951982975783292238081945929882123306612952427474550926818040819045928760785897524217270229733010263882098341944981382351989490289366336254107703073505737791588734793720323192821121682567216094362842314562001430664355553508025601069141178836671535523353087523318779341561501089557948781770205332597728878446504298228504669445046624902232467420162800403714650350854908124110649394996213185531458113959202413657768588980889736644247354001044924288332107206243771016711423489747484657507681571374534063093685750971641108129668665318374964348258800386906889238217884748603230992992509347867873168508625793439477378753707397851011753196847718198870080547039700225689711290734034215164014825050743614903691886982063477999305022428816613713577306616065466591736537265166993313288444150563673150314802169523234676719039896430968971924590416307540271406167993257332023091819264439705272245941146723184029465274408535596339805764231944030358724286278957836912313096474352287838530897427343719524853057969649892957620699763547105886030657679695754155335608304756370860358434703003412342912581040632170187793430163862630401386626285671086941983158327221203220990038136681473304740818207897647251987398307546743982846561064644409600410836757909716385388941551865375677408893494819509455556943208849954545386773286097087136335387889616228283602105052130186607073788201686866703756155378657949821046460094929495873123682952757419260333801360705282304163775982409287613414349827378164075489049223395545734204015453892032145845542490803242584347787245956934180726824597323616897110367654599632899020381692208871916228950655331448519798295313122471614989939409703301883960906708965217079917665105948034497137607768337977758896042731398204112310798304220558008675718529010336612294497080585989405540157840529432513890672128355746998593740245784452510245187297033719175924830898010377988732923133282171785048665185227603295710743584855638609256161386408712183701670928164529338188355215356736866754880830186257166373088654304925558408460796401106715429363408417977387013066969750904847976088628110397849864377963284626709708984125291592135589288085395389537842194231345936384486048438491756717523198755497271179652648990023797004021442428966755691884162544106878438390320237029062753394527423181518807339975570380416624743389230472963876584258386960756662446160616810300442909760704545947257105254078568213632530537094333116721851378015370572602973301240966863659134249860326783952304953762246200318312425449437924380499524733128589990852546222173722748002463342672827831963862513270612067423320886805405848630723313469126167001076799614000595209401281715211866177331594085494494130834231990026396290063586677019622777058845476682867445328288311850768487033446474670779301559830472947800246362811189340453934050470332549555878965986097315462654112577624745615419639286342006764300660477940060326060298215466461446247205116267672685673757527222027640708783759192253599375467785157280865934012834562328595985717948411106819236891812654969885372292613537874741320178120248075351546690217253599347034893279924521342037059502270562603904047545393022168063007498775528250603974027909300871928269321023642514552977750751524360209005819823712225161233067313126131000929722798978768117961486723030590281207290122793312681683025638886405859648802893981618608146867600831317920749755534503631282812870329728616524487593377399082320347007577852188730087384221666784966528659986184517327772765694855896801127177433784874955359564904011352881056277093564255666541788368152093699563021114646051036886083569457363019224251574897746397347452066518599235559797351716693995404124786972912900193426133354329558968646557661647537612079643239208330655947654021102673517571682551219379622254709515461889088404012223809164674610115119632543248822870612332318653325805613937249425610729317506610229525624442185355575110687562385768938715662464020641691048908536266963710173028629996350120664994382562979737721911543095838894615305744817507773644831853409075279135950027877766136864627002065692631414921914186101249490371769778696386050017541405234515550302723801516433908699245146543453967469277058579205962310611049778234206595040796349748116778306703265746440355280366637498726803249073265552367002312550168701348508767892121540072679622510387354221740880338415602587799108395587823803769373688142117139981419170507384104783511107147930802129583652763793651395688659030788330989509379331321710365687911440128145257946376879096743294032930581554841246633193877703644948721298954975029510760308305288386956443229565994554408117932164215269676234347447457825916523570539449457902297723471349700973111518791266665733225462623815942119776042114411284127447761043164798865603344131717390035608794426876603717130209920753774622660902411495049490150039317731463218539765200502842932246116654285960958014728835959057727578102467816917078390553655671894520787488087088118816172850670160139172417174733943269891929841977100029796370329881750977074143392595915058017744030675333716742907528162654767597288724043316417086278147201543495308696311184606825117755160125257456602745251876675710217547180555123561460385374313229837713194807266192947788640482155849911527854908427759942364303271025331357160980742078908850733341526011958558973544683987077341770440113128061504210374248112174740776384004817162897654900908721250199121078374049481518033118224304382620853785500734190409691259525945411796720950118664073529981749791758449743939762268906865937765593001006361421725686258442436655122366888586815137402761227006859937110223528833827144013460740715280086480312361427836516604349296191874586328331099944098444484730959552771988682365830944855755512665854455778849132489160548744496605707703502382939679400737096093613985151448750344564706269278239635550432549297967817733730918200985295833629908443944985497366399496243892827073340734595654410983416756292503928971505297080260546099547426701167122332100582499265188848358002316186470329139494214416082673252706279335386631981930939140786638720556043805488788383441296124367412172122913367281214707435403754023730683784435207658409959464208270193539379971304226178796474874188913997276993965450972046858020061897729079351897575665500814871132288821462780778547767165703247930639604591999706028838322670635976904499856697427065991387131465035957559742688523108245105901980261715670387695261015831555469913720977941441995985407088730576380780733566193767396235536852589814218524724030870884612965765509397009195705275434275408086899749937069696655924571410973061949317593221354087837324752260558392878594009821733466342590873070937588060147675625842966951506717010916207139351572095535155295164383638727043611248839260600810333960049368635353032638694825863559468904034613520564094019585711128554991178149438209100598696089898761418534771759561576446911735546872546037526330687203696444199743716421135389234971696432712794034508748933573753900062239520023033962887632226597763283214363722158428415510457574618747837550867602780632126446425930258615504631785305539796597887775145261173622615002615682061562661931042828291417762868151593765661162485850161289879088759230649428261102729787538716825000690059076281732783761632373997826774562468639299699295785288778913472781797719180276596539762203576848787742315497003217727216206372867228609178109182338032463606637249220396997260725807657764984118717283280133438200411384889768617901810493613275730581982480594565059933681853001705895149617694170081380932757715625613285941054553324895242112391617549647409701748062069293313497011220649009214464266292163765219482196806706403178879322586085421485973347704609127180328129005173116949181792582173811654474347289809356145170653293270733036538711774932679966792586391703697264582245336783968155093244535888115068276706020937729397674459422605186790669124620039462218515901924780503344609825820770102434910818044496945926711452029545427659075783964166496524273724165770453592398193272934612709749275627640265705038021299129881049099142099331691900728870017848741907794845629280538495239965007428174885178797182274625046666898109489672602588243309563480263888120478062626290114851906334174708802151195380507070095528714056035195692092372205128718439255199866983750908315977707270052154013522720656472475441075115605489702287472199421895225140904195868295475541288404443498761029089363009109779812433684867949085287585165712545357437980108619288283018913429196865094986732468785438925825282421716156528834907681062086876770493526564547766179051526135805209176185292648714913984036434001014781308453893052078909280445893668529266778583954611617620534361519613069094308099170003440949003257670009615483048869741362704584747051251295187819395589884781373594048550689340533759272024747911386591876694891794710328034334416945881626330030972644008400139433165816992440772932094354200448904357596061171705554611800233619934717211821955326815115049110464207256271503763110819821837255984710595025154877163405034611370066733235924171084837758051627974222061808119637476068422816750817704473657952155187202060458290074536550771035180556460662676089609928329126472362159069600770610741505615740609855062471500631974004680995163394846674207028752095827602978792820540638960326616961166084373615814861716696534758219826926036643453171242097915627894371479654358014319345182357063824520748838263963216067797335867249519965821232355457937758353159691384947730855056161811801490517180154166259082695846147712000766353937924870810329390716490837266810250050361783852640667752935334999240703930474472079415209728504622525990598244174846300741075682728897609768933163286467783742837941290544909021390876817594980080462148938143422500931462127674742775205323038456703813140658969805370831170698674239978391205620503013937603354850923011645170961860779290329466233239625369752576393577613026599748023401037668017342748560423733815036601960154897575394354116176382198516467298272718084669512670378226438358200036944800621946362943736419467297251998076419878180064980556500578504478621989625752378458062643641502341474717914602571689860971744862361441168243623586644663745969578684317132830952029919196637450298108959415781264974461151867181777762444713399386659459878774591880508769549073601579507975797544951131949797137021468134633113548744047073857895831897992274538448523473011761267737529472110920213075805215673117310236101188868458337633957193227566173029262186311190224141069598038921451107723108971469776570339068987379835206923336164430445491054130662342049571014402615658146495890132626945820872983562046352208397645453825209950701392155703938876343633519807893563702014275479442891855201461363359176847946690477160221152813829603958808697935887207242879782232122269389421866346151212009909563825996848713663995380040062276650860421524343897923801237556580053722363460015497675109850427881868843009401940529383010523281352664021299607654634891450720831590104738998974526809743574362492281056769200158079968690758695679621168583798139175805507666904938111319176794420814376294775118634885791990534612365142839959265907850878543682823292340924752000586847983613012189397049701277083482328041553963857252064128206912116855612234834100285700249490127825047862011044972739629398611482013135765906490081450235103663142475936662227111244322235111937092806868555908917362049635206988151812871416280998966115312864293026963579673658587950316969966865095023086432029665699184387594850782354552022769195956161044845361961035017036012039305506436191465117364791462173436783170922494841225281991229446433655482054800912795942784080063601098484152222630273239335651849864765166329379202306164557905499637775337884642335278513084997019697826290216820057363178782479199472851339528938465391082163531116555416749362337535422090593655323087666225510722984100778727111871165610957417608608979763113578074355777800759775604502210710589711843683711708898232476257010416310062567150994198082339212958528922321179484748861655322197670417027842710063070101795051653996816523194968430017191310080940808320828173141778738828306099335851398666158192072790219107701749277584318744735895509127820509239708471472456745275231471892709039147126730387438803110219611082541394827468531703032449028722394797439347753513177245515053616525777133566109133053776405236060600325299843879006783092269906596025380074557072569978161861327226982172135535463204157413831770667401043491170422816802054456021292475019567769312880984969717802269889186417677508055470689233112791415090296680205901557803033028859419908851150275269124835951239148571288083612037312218026687067003753095128495842257041129677417103515451160709929294828440558203945676764399399601211852307931389853679386145897785919853627927507624829538404076972562010953386885761037460429734812726219881535972298521095243439425041131028583242324960074816859400703680840551243952131408477012024890824737125958493846729630898695043205387758327612951835293110880829946718440404975689579037721180243621772324319180801317248701650534958623977025166233993583556065431050353407689918960483847895290841049899009618786829600644340634228050125563587118617976474751487404108461673065294310766910304054750895280198771202218104148922948544057792395865579673987308422843054403340402321362587979163061111806630184663634644978006208299950108101851428976860372666757479910751881246500876474808508450807663514002754079477141811979677098315870831652616766383561435823098819902617576636540597761662596144408540938043271269837886142349882859297327933415558698017064119384611018818532158604052054147125660703182388136486838866807646685898591994179038170787432692267135291301541027564045714519576662739652278450899964421083151581145356643242425912823782013264496957742997085566616027586128313804597465927832818361636446533214590530217616955391977363805569463454543367820838431903204008105777895334266367620507193059457960420468548739416118714376924095307950443925737321505639874010768823718244659695286424900622897113318215533666593079852081485661086784336531507100799951276035470129754668196526211945734890721387638690030090127342043027115621745507152018370319095825845734185671591664553303920708130905707861340069867754219804450820352394282238963077657890104261601121234930254086285035169657294575789802834393548867250909794914928090425680389471954067559606765649402997096355675998078222557380819874000788414570225257549436682934588239923640793490464801493994357041985588811375555081461938139009767226956799054897938249366693628010645276452135293110498640601493423127637309407918952370545724398704450079002034252521257128492331687372015838185433186564067753662660367259163981726717127400398876443735281537196436806780227946811896711077741528966335204348040508641002844831680888972349290646125874531035943169888330606977829218443233249412735721361175494801184642739897161564852685079614792693939125543895223131458435146817911063419016928009635010738088804406136000643109069748402179398104784759228743029654171991932867730130867079124684147426438627406104662114270267834190351982953419653308005710219614615597773672329713140877387366709775761901328416333794012614482983714496489999906243397589463401051558640920950111444105842424736639826446090775701530605743755402951619617584260424201088594744176988635774533237055547147775825161825465637766265197524952606221741061657137112478558659262313043179555349555987154044784258609467797537272764817340208475092111942185334783460728464954068938500510697136909204124164322977706125005653043050457855164524772142143650460169036365051613080086510646032309222835937708198399242487950235209747354809040017604806990218355767305125073902046461293406004851705344328232551309900643095235764658830330721536117748675500884122984010656498549132507364564654207206531709823371439926723651779483374693192120901788092276633703166536788892301943452021912821378933710933381518772588021697912917509259031984707838799133548748362099852595599020434304935594519676863228035324355381030241779267228725078431544309867188113576861790043911501568018384145054026489503934579092139797702617260394253583982272749734377117408449515341392089893384991870430265687542643959848215796224504280882554558100423969880920513723069865410482622692763427356301363837218096028811625446151701672598865210692115910547625812259486264136806287538340901072942956125678456726272983998089919639062371769858467333239329324294716860374240100049294604184518162386982610047403702593163930802119171346224087475119655957550226800124864731985660967058471588292473249962084299207596522368003157306653218947676612026379614114196553397096483227566139714703278487985081006141773804925328468214004524042703521329945194102521103678787618798864801120055571040957616829875717025230077550830143904658770173557806936244833998884903187003533237190066225569050902910197688231889915175680730247828771599592300121841002482890265309424292943291796246229755697160433829936639721706705642322487474461153002237952223589911421490921232511133116495467403543363701103340393473731826211671411468852083928411307578022857923008023625366813384482703943382040751815374896780556557467402226300643184466933544185847910642532956593924109204863918301829604928263689944232018875846900725697626337192790154989117642141865461571357504762524672412113533400854250637020887834491626745951947982947340875882482343639582040257345829645737144867387302252432728767888558610555129071385006430640597081733805118598025013852189828257374219381672150725396694465864122207925373029161189995525408103502220414812866012205867690585463979235002758517012711315716501259922575574450408037035971868871198433705059141948452715320831528916229557397382250475456407991444963812490501179343974281450947387628664314939284590644337929111179710218599111034096562187740841274285088879462129782960918119974566212475933660008461614819921396088368795743244849482503498581027487067399737511451346265922249546443781033919672467069342734505343477264839622709064279412443300897468618397498015726176666147859664156174778153297841922446058723707572976408232648362449917005350613231828712913404969013357795756979911150517630196320314080747089047123395390833829308835378323458972516522758646608939693490476497084016531861325313505225658725118681423881840879645024841789343829935045614370337840674020108299296384448576312022235972553928316469949220852423056752733340564019666999436726290653431802525030841638826228874355221048440299762891947666604197182251196086249902610292958544557483546039896527022754613550100036605401496906256124400569431558106125501744794325260497745000918049690963473296214500988832927463828562240123606104561327080513807061876347999922869344615385786788417885790880369585301540982068764785134560486083655452136202083809235454064033151866461311834300317749385783044206410139561328895595742480703996915196988824046656080118316764184037531801879634983500457446027207385184622682839370902315278463430967857857083180385955033428565768415478907099512821537372102027232618025288929035552686802257279543840050818845494402404089409762215527942313844745885806929147082717098303448168403165149917189275034750003522470919394945160859945305702081868201290038841260848749135879798442580308933808223264157145469109741702026168973795743789791838356761288534778558294757873706855309678345551143416576599809401580579919885824876018457775476889124912317014314129466167847322254855625163501186158968424434933400916486177739873861664730333661107013925798633162155191297678443482185396625593878609140935476656735645536382534856196742427174719365392539530811159225227414442935759008311676465306599897051109366751074998685702157849436052101436428508586363391822267334386746953118560473537645398349819373052574155716382901003704133987331853752678156486369389993899839133233224766074777112132311927959786153780394221803888283198469512002251038705621884436565674686679045331864765882872304843223019552677663390189619739536130858461062222517968484385969123145941905471225929166136570804233061529942364146751893982609286583776082337202545068089431739563193354447783894788995929756737528750302752626670436766892942766702790019307376613370179421094798654693697288136259246648691988961524869751092447698730233229425907378908724098843357643317952210207601854283417129901933890713107224652476473108944007167644615267133377153497572889485286832375076403153072795630291939326013700647630219625965369870531914949803590193900800449637708114376427613175891625992125041170080572278793237311575408836245239109255521522908368410912373132857242266476637195501860393426836399416965803981089503221572233447807420126304707665871298055609968289384459786630756519051356511364269425323899645822802674819774783581184256214362905603955751376605882069667640715368626300522581516050527049189921602397862585826538118210166703545048313714256350272194756872505308355593108517765067064207506815672393934844530275781967611362993649858778850912182084061754928748658090432725191433255018873493055096226696540967918107101779537318893205641286775940611736092812827999470403554736279221092259654554861346816384437181502628445290506496434972829882036925289488056981572523653305497733219549640071288854920103150288447030272253205823901478448162404829869179767007570233005930247933016033917761232765074270113262630283079758858031917909676799709478478809976215915372144034567155125161998691253515449259564925058406453380416049699594911765888464302147639108689940640054191214422222312992089961351031703805297130042919719630897391369511250433766209469188283133153765571863709004003414823481337780736637149130970704598818526726460400686080361098153865268117735212564688763063363671049461058462806488137579953971146034923737942687842316030800807199348111854634134965373889435902779528768858884530627939250858833653811482180104706818375219767466534771982344448454603699301332949165784041903240307909647180100846915179534917221852647368143401357436460648834576604928189087036439942436555676459549572051563597507435336219373486436228526479227581567685311591112080998120098466126661804183378627768317330588196919977680266712188500425037094230364435682633422057164860417398390436856176607290648170569024904604935500540825048238375309277881980053099986219380602088289455852502276327913411654611870032072003225239573319219714104627063372945466179284309061895217578253305680955888774015702562996004154409866140593363725977237899872713332004836569365072330196781320376584934888655887173033224303190632400458329054917260727745247765270781916994611270063316399735703546860084907613580385997847362308187197897591960222609666198255957581480202032779068198297714131665565358067548175479067360573153337725831162599307420773425773757058404069694969613316554378303784592612182598889201250794426626135127877286381809117227979736919986872975266085661983411335704804011756784327838886841643513684736357214848669863597487515392693451159179233787999703651122276859848151324229744295793908736469481023309577551347965142388382370641993037587235711956156775499855252082652501887064576444441688355092211072667787289717264952453516851949316485707812572743454621513509626283773522773016513626604439910741933340333267303816437872970643862250154347079435106129780177485030351712721970451079939093303815517191738658982534718662946462779789250595423999206490758545986328068831002442272539009767947557089006272161285251274913564128153825290620154154720990731338699245941134085532907350437290624198974238174637657695617837641138947266807136544710224991593836854410342118295027798036029197764828516382717643689129315987093393017739568606714294709663141400264933215056491391394199657080600409350734348946194263602915188850343953132795919425420026672325603191391980359084726121004022531451976567304141575529263198204260209860974510666229865390311731288427351077883018024566819580379433999896091436475750484000024477765088371395711382725376046745658602747155126706248183598806637248390125872232687617190315346794198081518371663576069661926539956655163767049984698712820709719923713693959366600257554608460268636198452087276444262665313982319003360961149893295834717661984486351127758559410746523967644833153706877258885484286168463706593438212702554007445885929074774630727455193771585931156774406715458262830551391366648484156990450622103355418835611543386073337003038448240869382010661535121255758108642189628021072078255015822484730246646538949894896471872982175852293949083754564003352860041680969413083217716941028244786139959548980174158524536513982984803089050751585106679072889691749175739161045352409620851224922426186664405426421049847818749550517739241166633172175941256610620245046351395171859936232472744357845807023172461756500594563296865946034566014201003403842384858729424271769425543777290224917109949784725659454182707519013020112925358806839249118735350844340257876267355165987018239798952176452302432823396183768318697721477343869337587193271341273083033197627633280183163647030761186445795526556268758311532050978844203843592383119098609404858014889547479903942960587057895918222453563524767439932171520171761483428923133585891219579961775142466205152160634107745825821906032539130072054317333940244592598636501605105788270112978303828019083641438169262109268525321323228492632705273521978831457688746339222187399425278256638950577142002943423936605565994090942513329279432501956092534778617452710326771861815074548972607859608746217101076523619985153120966151890945078269498516112495763051186089234576088464855332248332403213633606866386848953802758496473879814675201957789303921410358869716137161876876799146818949805288047657467778577568002633735320378228526945265789303790161009206297675282374926398510470222705566096505821921024238416759588370267806066325318301252790855213771867995471840012243942378503462311185532312662679320207656343329139852950988064649260879422344552244344603589092941494182160421784101918659786612174612518386226932676191278426072985558000627229550611615792302413031944515544686716043075917313018039538176265943392507834517986277141635875930167999030940645307591958082726443437976745668328469205414274270635956813752593306182125905746996677941825541627805522206276713866128344642873635102849439970817472833594359153245167728146210456625383679247481067165416093743722792642102698644242930244588712268699469132573980034703234458486596418093355952181399075919129924609921957691792676946608779873753119222072858004032637739627399253691374448046079521944657264370319474862701541353068552637104506888042587100173962130395161900527748158871471260438415594631772784472416492430304132135298686530412326534340775553660419860483661069730587544357460676875173300013599143276083795139045047719761021254915459519283041671308488270402999366172501693294094579941315677948863376610404603124123821595462156339928616930183892900800126034707453354877071459060314795245077365172686797572318707875854974002379264188559425418600033482296863315234517977743092258179591280247504962982783370135900505789431867924846742438711870740579219090138292689990896288253107618418472119722289987756483669334348219774317142838796834369908648224413664860248343135030231611128021563613479054217059572626261461798432273791289926675852226165525803588716832602603579553116724371109972197749342288760056544259235232745536559633424153714075969117941543381713714340957174281798419896897491628932232777868069855307494359499591598969545703501707898783488831035112016275229449380058924101505486931992682334780654195759514217982942009337772109897436125954678418804633451933231332949085379178185698434254040475356654264167314043469221940858983710839039919474089378551099836099656528908956312594009769300408599409470250445295384769303273890925728073127337688824743658591258139557597508753040441933003358781816875356450776404592268540148679247975964622978970189580756293676030924235794516086165820721953223453887698996904826341616827579864389631229578892083511401048519250837056446958873989073078861799749582942206340360156411440632123492990656702059923815387306940139458697253918696092851498390340677541060056798579898464210097631846191118245742032076125872015294607263859712400231616587447919300012178782156322452176589884192932072323368782830966771985837196306920010957774477201036652365446960514605401193339626719313864266893030919069126155047225927850836082180617790483157597750543923722582241212755067245833410120304675671703518904758471785018198901184058746157403413673252214236156444958426949105939045124072312062529765221560103459785642248188768231874505771222061649441884974441187444430343506279349338303665552396152868462845050263652399177705972548997683588169413760506408972963360585646476052753908040786550468583799655430105621429708689376022864426103389775932967402625535823394746271655403302677332258638866759596184488674283491277634629294934397503939353444286937210958160299865809175958304704265783117725877857737627047100590358691166035093036752794006856683350445609564528286416618487900548327966171576144030961689951335172767778866461944317281454793170496623089589512294568471472841855183703048507303708667659186322755233380212824165872931805955233489853200956068268871843674102102148908222939517338229119859733456022316482135553661175272441074002931374121570912714520419457713523509701302148554062350466081099311288478327981732360020298138504600109453369602366737306872122925221884080842876517486569415123953344344932335058549360021371072867580088759567904915196637244637062522095286754117734124677268142782156957176650763554462839837666663516581260123608223861828913129828408858426672205689715860066229390467184985566951776746202613453490711068736539029305044304060684784190892280005167370216687661571297776062035876427415512936419718945777798088126845078482176496262711377552812022060019666072706464889673679260601463732150161493150093692145867311847669530509818456639627115690344606606495060521058505046610467451515253196294603588703198838407874031093733281650141407423341208857789863696743672422586453862210608269495057834468906353479969710731892893600834760109030434579592883201181880462660083208678314172195632930575291880820308426417896291866232506215496608699905589493957380322583790749023192287819504947395951175394395814138803886250627704984364405822718090531492326156706561432570643019743250588727513122738680130295335110366674287549980031086689584820844421086667559632758853281760457073403958731626280121543736794206273356698162756380239580074451957001127018166907461456701927509778242052849034654217471364970794738578425509691339844888111299771974784780902505665855925613787436241334746643172817446252240976929839071432707476338439758154779580178653476698062536444633887403428754040236174732126098568417454766146169745121018866785251488605271030712634793930291732544177016051987126839559777225287697377207218877568622224557370657520946164397340345184376154625231946283731330307271487241575464063309600517994481960208309999611909585803903407880702445393469351550046570506341425788611834144885926501850766304722476163496480646147740739706194784387192476218041298269894885873328432669813626378693277529909704454878639031161018408888580448554445208308674322713733805433086299657402447093153597189049724636706478563865043471748313506622984145541504565169295521069905832563952560938750079909956118620287392755480706108675236902689877198556988094217119349661338171087207218214480804966774694745882653179966868476423569828191573617530554498695174340252096971738626781698422282413061215954636212601991154608480361068756842497758225373639994167631824604659562128200611552015901912393474951925105747227914631187223979755205933881559801589247461161069324524890697311404660635510430391890601161225334675510834660390283737583753056207104053070492294781038758474656870803243259316907990710308432563030031592175887062045135975281848592296468971148285185875263157629837237523705564183460178536015741157825910012354511475932866633837332824884889416652609127308479564646770468666103141745930967560897387326901903681379397183809411306924346901112944572953663031933761656407657265962182273310753364137079098119524498207618221432717402842655809930297026525492909330501559689869487129930455693065166817702610890773853645595623492877407946216453880996502438377915291081608960043302361550098509153172471389992216666161403916955963984556187555863296945302435738728289846017043877972136524970398425693440201452384233446262812894964711043114670611941017939766601020846964178538909251639962858309987101429849674701828849918691750637045977704445939014172892389667209670027958747214007128866229241281578780050801158796108800359275932665919894453874155258451083331966514369748159052047889124603226681380034106188292318838418259173067182785286479192959578199275462498787490173544306221069925204673443055570514951781611030023749982437081757578569485335603534207473673051198645001401361158769972160057368972493322893838907678606335379672798399235365339916062744146742785700702501592007463884285824672208007282066726329097612905981707007480315445646583493248319858140620149316246360558274363481029691382847554959013888221568344446003344665902411378142345917891644303489895773095659066566664197428535223977277117650367782696868625544328416826693879350169471649601403423941635521617161725649895905435838688997087360774373895181290699641185284831091944453733116594115963693819300677640819622416794362942933585598413747327430253957497239082129858075896010287791691810011334016408984479882949959129113501989279038442624301138714150634612283279054293585506469081725141143536389254344043570642380608408768636909620133382084570426284492119625567438017632532487518864436126710897578056695427268937236620629627522889845829823198713222746504658301315370906969583468336586910099377122241882921965591635505113231484339486351265680450252264403753771177511571428810593972859863780265077071033822610850831935691929722594515819587158959462658168070197902515881665272125089759077863436171661932362124649206664135887932693646989906015960248350512985737953538250499488161771040321592348842948186743671454000551167777635626391580824194282062153835372462807451027444479783201355927422550029047798396179559387142862617130742127693499847121516421202076460484731571963501590159874606213227871791281833156765983096353518757440341224545206924259232532371531799924848918223251043544910354273430761839494689310683974645337547412338089284698980660913167891397608582296302258726517524928617134745954872841784542855099512838128961305512617336393496934146021170066279661176903618508712857310655496551877384331996907990136023329856586626771391467965830952556219911492081455825943576953362619556648485751575587890157943552883339904872566877167347983340631396362067563755084204116608469082177298541728857577464462160949589793027029016343367243019276465104809988262716091579877470656781618164253911737972157080759450054076618726027100956685204376605217559460899804538552156709211625645946073278387857968934061534034184543046676820430042032362654256660679630369816819418515490445234386061323521556938327799117743949447682174845892386045932206052858585181912551184057969945174061325283090157938541815066333410571710813232025345999061899158611783347802153542417105377388977280347138358934529618348906806247398700329729124264524967191308321713876166543757489949251375445869741858289676475373963189494655266404128915063339704470679157991649093007442879850550590464356935473194146231499530266520839907878180533310857945201524007970104078222578753851782986673784616798075017314058185005753491699038762705397539681491733645409257857664244512226439780871881415630037572903395806357342305425471394918248860582503510082630733238803369372090781695998710251856596965968957439943595862057338778925207358784431702044997808575068714964931916134403798931355669096852726053221107211853563021990618879360138326321633875105846892063595211841228525571798007173626992034240327598531837378527959089776064402350935823645375209421877187318335483474765709689494532581831739501065854610421861432174969544991803644913847212220203244555058948645747373085997316610272360184400465054836494219482665654508887599777323340508525906189555653127397839542812452976296787162335645746634570618004592393289822664827338725321162750111131225570514140527091812000644348576492020248954683895335427382247591055353014521377413270303459169615919084729405384358345334716982855783999312196879863553393562888557213839106715859938620256212517314440272500566346193433492949538098693812042912117215041585917728345529963486274995274794577057867939858716018527311260205870732325782683371888107789666355580250305112471887816269701553461240245901863789323522296652711946828616389073510716623900548465683694069644831905243238881190388395395928745367472304967211150849340628602789170224312622082534225457364329939755160039233295710393892166428585262011941265634723234642841135182057011195781316902050441199312320541090127063389238697067061584998933847525403951910532644693755920766941104700627862446857865457227835633375520110392838649351662229433810055792070710395743631270311878629669742296051607902481352313077568080877025023754649165062444665042476874330762073505966367875169319320661304572390773231842512544827493003217735878659127581101890066432223862895247618994693546133886825880254516470607629196035721206544298367118608538160160824463038818991308386599321974574838338145497846661953898730537532779173408704649522639044994304935861527579545447152371564612600608631295203415216062259846967464355057518985064570724452226851126724419524527532007491682327313128407072293909470533146835954866214769720918331245845330130797141217069779160336695539510831772559275405179376465444937725345553354064871138517715996539686765559680441930563371628375523004537047729493029666399479327101544190300390887907215172737588914852904723644611429830103572311642373086344173558089390137835509438965095521055756866479318402153874717545262764969777606203028666842046585528065837976909881189363333385862992368773364481031007302969885192958790267575985195050237007393487282811957246304654780654045105002401789330067493514906069343310444589723369351550374836934358554397654220633854842396835135169008295760907747343143976930601641161186134497159612671242906888274341427668567167454627692827647080525563369433234040837202523302186437907770445651060641743234544898137592578752958614971326361299873496443741894921633937705670552294617998643917572184773790319315270499744091763108254158227240135289270879097371621934189674767266916904588343318092324113155775146667642508090177766007713439270823950978776699844572295732710315800939161289202042243537907360550390049527100915495927742780262551961910354214509892050158439454036564123381939380217820188651113344816257857338607485314851415733334261929300872899103750840463963749808841061640076143081169824686299120087774588872368567194283106871319054458727223573502781435472707064663025301007286493292169287822064063224708964117227770913190881992410066025714704570670263115083674975068250527616570892747920415552839606538849895366491653292705873797016841493094991336340920790983183303082786244353752519588468060774186785227452758230757118329026880747392379375361000412629215271652003208145789312189663906313336327594461739825829315087478390170801099054129766411456124104512727388710846561488709368051837529238060640497996723298952702074011115179424677644709027683825878429137649649579792731478752188658556641716819019279244188590240412417925042907288750977623951554588490511003628621487004878191042739511305675017634756849059893151301271533458223676647135949434016289637663127732522504704089624127511065433701668849177458982699620706962813256092272449862328650053696374826428065817118463162882026291500095071341639558022914578118654465587888544240860118515801588154498839341790561864671551659163999354215275314139647220304240272959894809177301926181202706249741654487939992780854533808764551136915831133901271915906522020291383856719580870923563086731089540647857023944117894130214448704239835564516440807145249289398109909634205406301617697263919472372977949505660064458370669303833957658087160549381428909915343380708962801044642173109472078011452102854973685700872497784871855664391913285693318525593951289389564507587167965047327560020937306718161720221034564374961038475818305024160008560259973492231332349371858594283508827262745025648429344813045448674550647992412345694070659184939755896170435248498080122173213304367299188541097634165736342432779861567740388029632364960638546970060187926236910872024168406902547240910023840416215968320232633782765549321596465522728433626181602756635067394251246107138519128219102941189870477897343818991446757406971276036420465373589454896818609388377018735329166706474548288266997359552322258847389310914309682166495784250023680545795076380917388698824700954970450348708303683837991420610004031942183458528731733470964721275801347397971701297596915092065797139668754697641499223984868533613661586247544492554003158057050321794570496401009166523309283594351238139956674664967936550833995029046563167979111041190136517747198548133522078019539592027290324440004972133869609600113926714746780234330413274601533477136461583482896402443600996057358044636085545757401262823747550321936418882838314689441462065707334205383657690503314310359944668167728237442708897246368267420612663719612631298403353239147403733050630766096949733210302850624863843334079865186920902954632758020852576939347299269291295566360431649616239444709501446360343714221345210720915572978106592359791636370965002798326041815662555610269318952555334911226322206444853416219382027067243894028636810694165171298033336889686883057860679411831506303816458117086564314664948525459290555343553407116122409931286349928756444744703545749409811781632262813352367535428144728348075853069339890286430575134331132037370505315799515020446749217281212158205490214748618988112585761498108866156431168949226674139973767387622879989647086986266136938985500466245533067476035081213344430339190164287727060193522519462084015472376907708802045205722278873352696512666767910087450148212494595395681227973344945831634029392421256214219062483090491114590826873669374672115247842959331962964404714529441747565765118322854618652277384006765155681113746202115114467748077961199232531470229787395390470497283291147772848679147420077823479104095430599431216937257470907431000342900554415732487501134499025661396616091960032898216882547383218891974690159751587349169328364034547134678297228883858469907690250313829364708044593914116288059050962806719394607639053205955984554789986734219093013114261877192627709838989034924980272748984091000830218004628189692870674337478786609977121524438699602325972996700914009307323283802413084680568499421042211075388826257585721053865889434966667259358108912842075030102668687785829888633765957648787704163434738913022837667364616164399365903449519543138056895263944705793701176993216817457778496135176797385097683400360606213844063647432403118465230591506925176953067775209553307390889526576896039025356311093604594225952944249191680279635050761684169736808515137537344245261501153658984164933278697808202786633857604917269049133526717847158749470283090383077033537653972092864701633892471214354741431729376948352530416595173951170369458315760823383720172711960851018001199775614502306073364513576677611829329614274185611508757850687881550791307109237009943815126118425020951555394016662450759447408472619261407453431788079041716524828613911320861040570622115325883642684031916623734987121979011044815288474856481935576664398615342649299867449021772677411944322258772599004294987548545823389046012978780887911711794981758753778209302094757770954882931708713888274875369009883674881371264027612292409392759467199723478837587134552798088444133499013139471462014200757185232758810774949019906699885536115715744869222141514794446577133337014113989460150236787102813594670700517773994393141675193667667118572798317135858420720362734067010267630978548226259919338529965176365968835746292753440317759635973143823430706110962810057148168305162356997042770263864301179062236453657383742774884980805553158101255779256300724492187691644886662287374664986072761586586011350042120590544663912728992468289302873394151484169559418289137372858187546904327868628768842805641919885165871111380695126506577487457684997550329635029251406754573707796431524737186765804163355969663054553806816474546845856762691054443200717876496820915469275017183401268388853483960967220711725373098794444818674146617917067488242902040105408121357900821432327005481335878680796956039390850762426381754834766722414677530623611829381943191700866990667346472758053353924985774558997707460432650814099617415234322465882205538697187768854984455745482275403689195727266849193229685594912954291218442813372430162913957989810858705452080202281389888472048016873348935056859108939156019003481924236662209281089185382264927428245034075091335516868142739614507430212241996689306083365668109450744423435372329143819491147229467448409520576436865457167128253284070882609568610695270005401949678889938044414413296181361627198042169691237510065529984993972867709225737269902374429249664234578609643584952727176680487912762637437143878539728513887671333909666690204390196153686327956960771027260751773253814002872528417396298513177387867849630590038727630222015039057102341088277998962613828088468708848014127828588269963807553673398071065937424624398881934357396620850108289663359255443788241651104079560361944632377886471221175892968787431319377051885348101218965818549345085194263666030818761191986231909864726630136568103833177209886294779307178885344257646631662009725333939013420934250291412225675531559002657357873236963747754311583816632766513314435661435159239285867420548441777024781618654848224022207138292727803489871467319223249385587979923652152065301730415183661757041378882060451345750607400380912437938935261268930406852452260026504742346863984790458335647889420374879652714933751806142087335325061073047716514781746901417743040500788166387864883715528468026705800550050150904806987884329755915241672330180761901850139792308957837119022939393327073333372864257938957987753354836854338123095664210289000100727863073177670325942161407890256602109083891786772707154237538197617775545053487690157484435537924074104039442249418225407284142916864210009677723529297285897838127105843207231337191371768262006833318194207219979644457975659676960825354448329262140444941778775425292946352140397591680453101843812357403778527390929741990090358238929482805416086356675463116867043022671580694126783226874884676370353975557286653149359398705222206186760646812757474196470682325632181001898507069409060016001328492994372161723271828572347271735414677535203800193797772514791202146296432325497837632288089383414208797670307402126982420577650521165461119432466203698063245473787621049327854589597804063109524868516222020196669270067023226138417661999202209308774469801333790369554362195255653784107766880338256905490462556722708155440071520345941226252343069266285862005757327017548924351589103837213568829861233118898368641717741589179282272507869368419659093016407310867437406982115900324249090138884068781921095751474131474949882313872247654366233191258572599260101158283066261126987947761050001389846543953761225159477612946800572969604338020366359232835697453137469285409841156986347880574910700212215289118350749411055083210960202869751123275062122843290338495289415019261004577715573014796478493439349418610623358944050588973253500767636632133466706173340893309146875983037634702403750893745643910587172873846178660363121125915732810566738451341734647223322065378288446056747070993954247428722011128183379306605882465710422301790100196385895045595865907782408045842489645333274151879366689789148052642599434469525614861445372486647795454874551801734623865321613697345081991590036364031621158462041426655477684623615732064664203964272429004213352986283194255201962947869039704316792710053282658913773790244573370769895544143526130331223979234756919819356905960379360774439001758055401646604428848377305643200313105303285080400024598376765529854442904870394688617865724013579345369286159637906864810951403825202277795059593953591650825872216945137520647817621768560582818594723108251363501107729309903001000195540486561713464828351318609536489856898713947996589136900732974396679515296536199640462924858407819749982924384130512176926764944563137054248363084675514466306925705369152994129855242916832786664863972368312130861149821363563226603032718859241471217798189251998261612309668660671862097119163706009551593317401444174125765297017028410423884613193740126115897237720218811915183851807392846424476275082347786479222078165054927607678610643240772698047534463825997067944705669418381554335491133812488734662459352499922507935709290753615864523430955973804056130321557515852892945586972206778634385597989914793342178337479709637878042759137545535142128007666453352310097681509675234465017035062989381603355638059486052285031944958480664854768633715963762794226523168825787445823770766660689419818032844182878101422458095885658605881497660828811706404649879320217647497861537024448378225985687448104993306121440106576340383586639229469735078289886048839806621624117110427449704675004660866334915585832836071694572285579949414336859415491252807639831674207609782390352620792046537148888132937587610465263292779318018370291562927883657090423776331800536309303771438639446864520625847148075804289914017051990429875320531258366795838173968728037877552682935480793125873327795281833393309947251168797560814058707731444562615102709540984984857144152468569830412372626015313409230278386449089734814825562654756483156555359364030332802371100679349572976794196261777855047149059699860789413068718656563039203826150632172135252519445979173111150901525889012861471356007325297298568929027218349164672805377013111746749379763879519424768656185972429748360302477797380805047979226378955802375864712834533433849723916571474241294116139606054361854883530506552408720222538879696968285021899468168253168784221375957950718764705943451057443179368533075164228858439527564195708095153156857689259625689421120721279538993236036668338031991939758566599250771228753464917967821717311832149124435494362364629265013985230333782192297151972601894327240733926130193348036268863978043834195166197883241989933258632487017290362452587373069521794654413601406168914301515516940433777209258673380232907326598796620071112463452096561147258660415534168304103738593803542905495127533501551724912284693684540612841022094608795427783872605996047776899816168249625136782211996134073087365051481928303077042121331794943817996869190661447541887353786884032626618268038842693260508114733211066559167231747186488387865085654064389359414182068162119380169757958329926928486728455707914245695874015378743100941633839321467282851338375684865417865815993229920347963110284718699149954233863218085427422361906272239761832108373355039290248173198038766593715718661166629245217825023439322553854364074027885270652332536218533114836789465212802659673779437302491098466402362917924109161983791972162129259197755269351501311731888277641725040192338281903693805502634886660035668627235682454048800729564437978311645847065485521777240075184206751352246291705178551692651898076335344161252666598791887610545254957012711606636797931699331676790895253401526301552461440343337774352392672579009080313916679997202026603568026425417465879639135631586521153691850953055741303738755315153083419629503724066688554858800331257413531460513133992982413104613223798874167177042768437050262050988081949177873922345586349865903298113242585011692169304251591853467712565170254541699494686304436844832783390950905303113291970434998797092157405073685467895605315274158262094925742269172866452214012987756290821694161663799670591738287970275574112806378251101750917613449241161395981923687309147119641482232322076336627498845963924184527770522467671017719287616134085056077233008803779566172928488060513769650195980168724482200198648786913129939089708467792050956081442292174556122800186551487907637052566409068658508533891582593727634148825599952074117387952807860881985708819483353134113784110574865095651957537260939487014797134072229469171911275335334846763103238375666919059363493690975492154701762584758741044701662910733140690465421714587868235176491915868196579535774928631336022268537348073738729090694520276646610057278359226983806498864121238893070464430441541911702100250695650709986823029055077965533001869204157718675839374062921257931009666567942093627080333805377193006973716742485217741736446943221236245823792504465809548858229465837433441567387774555628120567532943973283282122151304365721407299730209210194527744087626674227935609389908746127113330841223482772067973850324942917789512131505434021074949345876690520130768310704745673990455093111885996473394966429683919900014768745215317814303043652680670302100735568104977680051759074016494105044392122216793698392734407679682678319935644736582361822098113905897884739695877374020989643091563436858166410667021526832004072593197179871621994852863281263685157242920613468736477548556141302177345014194445880764125736372777420044146587422244843793406201627341989750789038137333048666897743475239052446324718160235752355297339096604622527738779085127546594704175599808137830399260927889677312793839718748533047303956195188232911563272441482985262211992729223845647098446736536103962090515395316834658303886680855008144021766511543026403871901057460676858475998864098648540469836228977206820395027586590949599047259698615795989874715131333427526093726742262147617501356529393252298219347688566056737806618652773376524132309743639813150879692624039241084068172394560649252270689083641727383164836403157049538320807453558907544901540278432221100591545466872185758845784008422876665029710786338606089562580604823852733450191732979242687759881906446757126645021742586527286097388485780113099382657993860935989783203332465178388593634649246056754226958084567805146496117068009007864000580644044485829094980363861599853194660445197909192383286921080555725115759689118399752948753470726651490043814620485209667917685750664319525041534643523595038733788640031875902290792169506183212575595995907231802544026810777311450708159357041660935585295590286917769669728036159103377905423426006656099285873783807321033598297111142687301306777864163697191753385573848005995762705341742170681897755064919959633068376164159258051414466259338090695115461062116474499208363062524518776804978591624045920147167479148567059536161420613205683758267441162712667370974017687479419567550875535685719115541112264999456588425689919535673554066593463483634983389522304375475057063707640140987047925661132194913023728822647028642007757276989977874411048722753015316185555179448354316001378808721748507699704413320748310289662782687971119161212647036023686994635935297754053025127127498758414955267934776074893209743487091879402284501198846644305541224809873914104346342679075775629986865293296566224000400130893109828981463766995559303840634067196335745460593664116370423986179488659167005642672925345643402951086270725705724512908224142157876157343763008899788578207622668565158967938658290290092992265746606261293448635275412054417209894581273267552708019636250870324707807988418328626118436112762358941053228917803117875247248306082945717707040072915965437243654374302180847160275270074966349489196584869837292288461001253018279591235650348687665475160294275653317004230591556371256936500860079722342225341397037151738929641323243853551189697187979302888907140423795766443753691220280611238578025258246884132099163093120803185970517437084172044824085056240725299824946069455210570260752799054069081149812637734075412932080365198420038292354645977510318522966002582648360786785395961442540237503928780998694272937351559156224174321905798699183330376456999412681532261261034345547966779635230817041722787018858047260724112554754470375376405365455669144592698049606418258917454417697184951798925151047891294897994168659167524758497436109114742584282249864724051098804018109000207927334039227617599612236296507701363675291253591697916244551209496092450427130473074383225757909923876247608972362556131422908047214928676829828098594363065413049484511877015006364967815104630461846673282455972256565534855608498043974595927625594619425194653157912227253595288930602535057841244767140498466016558021116482343490362044066988672967268903470491221380923671397973838992646958343735439316661914147767971679090592010072505915603756991222817325596389861187050929157465533124568543344347517534173528297126862241252275970488044816245498776908951617808723743610290336891532234509443859172113632484893675612236256445023962230944435718732030937442961375335600624501004622270712385480494797045168520737509395916386228667501364490400748858253098223317927178950294515763104372904465699924515733552774353263812857776766778778540436500011261376902599169972550036651228528611709591202813932671993171252014734986585161728540338982790795323758736764109229947173750187687355221403766366950985659255689173246659890198728069531558905638983805258871026639922398706123988252385681106488927040365939927065309377303211231956702748462205295571270772173945587692602981523442473082275916051148903557911643816118095969312761064593688268062522783682735544065281448959455948178932411660723897656342872944558066803516076319947989883597472415031222467476422835177568307837920528752656721381185691809544228095684129873121388687224823972264325634461542245643850127903148554108216647974034420814158536914923788863616262184281625306857873993543244307998377681108206629091812049837899581567855629026822134534228992917488925261497457157813057854184842868519126126832405421261598544044514170893046403694971547081606311093746956686375340887134287319245112251655919068837689763464874016352486034635066657658514557383610833400301373915477723424960544958346916003066686072036090063845639943901137055254543045567413939028463091740871810427755279324045915242477500177011767592323540957648633885154241825610190923110674796643621511809325982343225610358011864759081426531615222703142683377950292562301893279049765697135155037790943151423722463620372375373806618703874790800571064573420580526952862095675326404535657960857234506231208783709950382426507531197105492901769781039119909519126463287078140757063701231225548904148623446607617318586928437595935118437651810806431845504075974561517318725581677666233458271309745852741851006177178965315615988697816822594538568430111760301191524494673609262463054624327132843116285789485004338449099713320304318377702337194780414905144093009386471712584134256938741075213054462334797862785778312233659586405597970359643189212172960079766686748600499194774866339678163814241968629487034778387504866520946924301594653608068205889775861291898282942207604419153761433536820832081828399988442318216511066667147440996587080168922841103531704823987203694314757695407767901500117902618246942310791818549139492823591274070816589666946369508954664778408012562040465657925717109395690915231799718557237876876587947411311736621761163673574050291791316637300616423228073405171034712802554051214411452008743015891484564675925789396439543014165021526815581260345289253665149741933033447336429900626622098973181560484948244851424858883374561108319034355261599198830860559831767822572373251795583764229440927154852683885247230662921588940717265149223633617240139622879454112270340253909268577169002670067768531005217258970267220022902910686443468775913221155046785688363700101682452815096997959190009363069790143023238647168998526184550646924022888008406540731863489436198425018265964378408584155810987656054817975900170890836935669053380731559268408388789861235228705152196255865891045260166564904854861522670789009277862638181761335251930029692326911050829368758992066703323602803377242570486442093799775912422639764614233544630444144669636398699359813147286111184045124929881820042033702362278566273476702601620816145885398683039332400481990094063863408827901908591262340704421116740712672225994210427624504787898186429680944813909397051259037819479648298471298099910872151342042822864610614338282413304708231952799035480237720006600908029180593239877078585988793764449576843228340872324789073124605758639118763616668411675803258107753704966201069604727282706053859839965602212478997443763282534971513301321973148262168294502253581059303106618678912250605319383574589557849792097931919388129369030046933626614937103711213169200224637928504778516223769388732083978639986021301276917840686741953642904741951693749410273571803486269213267861406289602240456743896028309983465367005771495525450776709183985797483233403156035579964559378801054097851972955163655174050019180931400482571640642416930940395938649800230859119063075142576382119239874738699460515541542505494937199248867372981950699346689296402578618672342909228409527093408385738708581857576691150526234109451164088336000025888277434775974805743655721917043689749530869522480494887506297768393366995287275786891315917074799649684743732157486092503536546413010904749261203675085347085854984782895672775953823927738244074731258822942453655032179235892087821394207956108694314528688445520857178027954768452344469697319837202769785836809866580106279670158270604763298700123873104934850888290039847083641836856044456729902175832012310994392364625058143317485702021337784378175147213091304972579267680955351173692525457064844250989833109804255254818942512088002508776511630356929249073749191514477098123754974355687239467125996725455512238933134723885640040810791147630020872367761665863351926737679283628182077619762268423412461820825285306039275323954596202219441254004737508849131494429973065407246794887022593957441638083350965234801387644889002870604159328635921886671288631605598056798291861338967643185200184945848453892953672574856399529602845505856534625475685986223575073239229279764267298845732155603207170300937077566236348653016169274605368862679560007666003913650637785352861112618826024500554675306174574576551473354113670020232447199921976634864533827162696172999389901767004850453352510943848027853269356147482978692697096853962565414894792820355499737304263589139516152683870615967816552286804611310160296463054010579487115088243358816129875165841840330856534030487630258611011479592707131176007017195352687086890257512152938220169204203150926096152569805331537299590458025604346363944857157550977887096946866866657276073582518709486361551983050163598108343345479913754232257131744519228808863563968238727759704696872827204584937111229978081322709556262723406885355785051351179883952434826686483170523046062223598583332661161352322567911956219230455840796584342582249536387208234756636392220925537523393090442470766636507321546821256666027248445094102677492560631259325816974610104255031916313698885985889407964590853389638972964050305954936998598976984305353747946626661073730837200433860892830953924302119723119975432552547344412247206916620651650186457506026942005776836870258757731618777521319067895113567846166427640453583377508853516017114202427143412226309625833807725493086881577737035104112066150544376584067858601450341931341141142067988985876589972757156562793582213832685292504749046025029187536476271513774305278061045847388302727082161308461947914831144875160087832655549457555877375019724855912109856276850699730410638865934509296841841851333331955295722347333327989971631411746935385870861605476122724539917876806822578265523775105947763599670276229506537552945293193019919149478750267999657064576737953922579213618585621095666690470901273609601808177240641249370578399643659522469784898746892874753746576148571671550057469955689456405872523371312069477621866579581615292467671363923656052221194218274459357190054598779271585204665176984529064692069513613264541359074479283332230239545673870538020181364151628244414920930367182770137612533812358360630895868736694479425217096502838955575611975604886536472054829932855078659203002662208582938637473076650563323812212221813366095835510524097779249254522195702609683995430355882916888298302348419548186582626744295395934463611759205303836975984272438104460298622856582253302840652048816554654647228544565498707986806972734806775094823892999684419379645233739668283438013526632339672107044190648881372676319119983079473538796991723723560181916204547430985357460997530290566652581610316255066055589629074361066782995054388606560115772313962834344372963915802208628597780327440821328888963249343980521452797072703365158009434097738517331337710479034309015483948627882106418674004649312522002829032302228727945207942329841772062718741180260083033249354288749458747633052380999978739521076925260529019619478399264169200043975882627324124393065459770304293687667447872820011811738222836685358747607151449388619897126741508878228563015881345476711490273646650547623420598431603822071080836017024492207465779534432483610363171141604262559543310889714139116255724401386530854061042264988237268694285343255950784820372037494842282378382720279145290670999979920506840891671258766464457171405108728820245048194117782467769056845356862343359535768719046346527502127782724464570864564031525380666196807939670668427573035853404433246051600703145374465225782222130311022417435881275684155531840590179541043535706301346804366491926854668606559365625149249590325198617894337235681881498430352977133587794727145297087650841758998634654992885031211618432023920204277107194719635596572037434325767062296559764702016881960981268264123371573527166614148878670270345777000489010053645134465873366238035309821093153987621319195221226006882480673861842988103796707818875589610106768055572572504029149913477877022628105027575929715308458300433599763851085380650407577956195161172527318575585311853176690334495381674350761321631314998182057345269547864638689855801410852068029205423410884900899299642315567869718758068315585806559041307414694166280975468055273101347530166881809444566628253869186895138654696510379242444990055684505448371407578940665712949988737023124976770321571468216350015142136643483013836804333912721610656827124320710852994810203801540594775408465166410004219320177651210161375523730576392534018586329687233979705605331372123659375475524077320107983155026839002313631361328200915569387834286411466974238777214415966903106106802134104740103247907655932098107461913849939408683988088551535798358485507752024052323936791944791431663436838623133052667118752689297883112025282493061160277205678793738647095265168787706972274695082442643915592297760443892674603654737017979009094464536067968613453078772593231332771049918025861009979909148706332492627555131177605721683548789157241027526849886289893266678271992054366366150561378172634078467626825334021844781386044858256130771095861214688979237866227462217414468676967207614355023104257855177815892904334279141087036122570437417518914852085371809440810754204491197591922281571494196408176213737415467570072821880277614856721460114948398940287393655159042765631693382735283728810990657945898914381319681643434491372543432698630074435169637194390048408462635427215735063097038313390195444022403907494330159416394163416741546602555504319029756894007573660725963785024650568169591335669815960387735236195463425456355814138029090912458012014800910930136948409141523294351417000492566873972935285665657739321705908870178168256288913680703114817175456582354443214734228267776565790813068031917518911172488628928804960476703746485097935688984831357723717744401848941081749996631009450724036399999446060479768289052996837971520620969710136543825730974621430884604644858161848982311020635854551751191110628667544252113369805082711851263588947016472754622061284511051580493524975858815370568587930941094759415804950590421849656343783663311170041635096435253907284413697071142942513231129205594918500826530568168987761904546210370409318579000413762260803850382339708630837636594054029887923673828606315981259448903674620873300842455341693189816090002109433635543669277689202780008063988072198724255358222182935608650246412839780840438431853788861296421163055583164617930147990913794357645433120134871739113942359243984763495934959650132270301624402182457614754100134731808723659401138379312226459861487274054841292973669894227728832185508578965308761272550418332812230117101507839157511407730650738188767937897848982432856125884104647776947366747370868077059177380866147626052857809309312695412723501884688569587015947881769199887830256968136968795723591185083608723594743404296514862760500538010196045182789456922514664538681938943629484644346468185534933384320792574346204265859155180996045268809357816591719191793175479064239066988487251860968443395497624335079219211430289227898896215360574621157944202382868274886304194820493506514796964224134963943846835122087646442818411457203388776895378833314243532619080807223922969477702167542428179995700038200766187304960413106398023067345547184058578916923868337418115211247307967672078651029822531372224613562043657346216836076649052075810748005652247983532424615535450191910703578492757973324497911737316502742099812826892053311063856010695243599128918210431347158009724491297264610023901352553197919589728430173823960091368840446765661328971109775220721255547895774266580049111835754807931238493119416415111089666384705287468725051881540898926889618914910564349040475396680487084507836252451907126063574811097868075073789154900028343138033868007038024781845179229843393695522179204011620489521506125989500542257311299978822926622313448496982913077454622738201003236920524122433286175705678030728477924978019210739701338057459304827418759026787430126030498487457285078962104367943899350336684881700090450743343682565672409324143288645204706209202135254815158997061129299246263476036733370077639114496505954374376684296848390452373564086859144806938591698817639558673199045660255820715847636326580817860098462384695331770125618400880079137907523369601922456008908101625285897473261172339519313957340069038251602872727732657261716130775412622144391566312956122310168497120780675648927485880795657687709883566723490712250118837093570196879892691561953282804840464485606105318875233233664926240685659764917881281753454417960932065193601592039239201109704711142551889899904567629045855991694164005960944609930617850937955719291643572481370982751260856221608316201625487414876953449403874495494607051881059604669576457324835336994347143633407574982352511058948822741586114834101965682193063110961644319618958079354437079687446661976590694079961749910325315966169482930042492141854672515003278753126497432900435202399778268824139061842328886793354379414211133630042899086116550477157652245405643494368203813854835848918652886491570439154892454522540310728427669994722284665269631661698632848598406275476259447536528734834900941903769233149797251141078496291985160899300794991043459336114457524876878622253809970670277974978115829082572169546752149986565378465177746930486042470417283798345783193026674997098362529596332552974962653716290736456047260845489994564648706922080216291174003178257026400495904263027274216530376537430138023665600584315701458885318875548664169457099224245024676049745592236943752105301501198981804629695005130396834815864297689343371807931561675381646472675877416152144225668096727423204347852536109879976202831672650898985100911979104241597229961722880267340338517001028699540203393724202983661583039793356719663845853897817293199322625474112497938869198014426925769387636366584755240381480000331649592498272642362179378271168568864561494754059917432219144560614871590187446617670723274641332885333282056167250732599930298348988273208770945765992957903446671734333852420398073097613994090982515548031704080939092336004260413962082974229086152227519936606459641984154285341799338435774867139923751024742097615954454667309415189776136645423460004141388503102895541835275538223681601522166801826154759719217978071938172705794692383052212453374464097142605376137768228752053011480656831519387389789208050435826064847514481267036655882587411543914201865805538543347648540022742037367781795048913699358353324643948624057496129663426983104489120960528500229319268778346155004532813539393543705473580264928234340062657136864124110136151958803518731061533450644342373692530897671119988035646197534758420271289513899539677851413089440635720613325866197330035305384476866133810744574008519339458304012074598267336949531967961593563921078753569099933254376129421569695530072958898626637110107054088686653744432719919433989845093717718059568333992600921847094112155749189697379640076698385201271701356559885299751151847709418351578600498940627287177324252271768830580303933700805573805508077206953733175563839075740644273504772299916030916849035238897550942950078567325293921478419635603293093219969107958210124511869820656688023659563957643398919854531783858352116523729375306678493315880637334194916675263819257060177734289852395119692342024285729429702453165262049456130004200227675287641374491181042554402953929311526681667013630410989351603750382037083352416152520475842113725748167993992507087359089373096852685438175706381380749578583178269132359875242384485408961981246445338575220358068959208179518131666302931688985736759561717556773472995220282685029406801478499526547697688015946662816332506665142884344481349097438588393996808498870864953127844485957808299547582639877070622039453361213122433665597735078122003644019550029819038140771927616281006467897488676472109358817667444408234155609676254886885118953184221131980894282823794044290343088827553645869678675414774903247637565680390249264329289570950909918555494699496142652358734917915016014541323142885040498901536339683708542685727611299844241591411478688629102857176636973172632416207382074497510014495702752567537781913660231252962457222495460266646023988498399169733459127972546730759027786749347609038047608944120696359492527103797000466225554668948521169844934532056965526055085861632274123892991819307028614164458261697361751848813504001563916151131521662027471608221171202229470854597064203167849243594655766877960682047545375870443129953889156283089854214768389963531314240305477675137494843102218081672747590072390295382606765727733894094590650927146156280097205498780179010573331423670913265955779869270167622685319637591105986796330560594715915052724038318660328279827889339731225589915893856792896704084702804912571235246846812039695529543030184688134047756418897089519315220507781414855099602191018157676526342658434182671846119723515025168832247689230375646786270413259073321254306968961217546461214070572169473891920473046702236799513535302716336420762098140738827785257379068011880646144803406264854753264272221511675995845769500326925065567946415619768731066685724423150572143373959236134295982262597780115077081776936501850394197755078838538670942269133848181451537685801478708172892711478697768225465028831302249266680949000009994472824978763566045904483320828129916352524627285435245298353551589060788045342149755226063531332946137191966536727016275637009257603926550834007048458143838902870578413116407246248841497514857976856989116549010312905523128087953505441010319698682382931269463616686941167229791360654170529573480375848812082395029581728399912480728416869300250165636991309064516671670877584837156917580273272470221562154142328733898335031888016825265416981320183456866993479902828025299785249396547405377959095269886810163851993328180299151909916275280310762079022970010322462778441481243971295924031853813048540782812381417582977752830251744762977743137531224971441369093347224653546950294898012066330735613157640246352939766362642227059641262463219197709749847413198278637881469344106050193528154034890011669426727770453425161516801370428828312046723310567583646353522140469374559787917540878365742005637954655320470885157520507985941745444636190801678776034290700412380959916823185541050817569620127632944847976883899664379015225786821375670981296963585841839112481807201387101886024425510499459262483785006206807935263172547380599650281122415979624405761770591747116376212100702183417809609560446229473952146136933881589405255686204986831535169181892126740881915167248928246511211601820175447558969244335845142325119448768940480219006795713215555005800022748206014127416290559623866080643618105442840726898580252425699744758319372017018118586692509215378678862285242973113059924046811668505516959396450782551614732444713189337210998311471047541068595857600434275716761860016005203024668513162919667383660268237018785398744974896200817300878855971263672107654537031867462854732558863330754855087603526713144749503503065132346472126686097130010355092913989624463032806431454630591770590745019880952759722626868874595410650040319713586511450334506607515437063192160398316996834649357981960247887498562486762919488226714417948841655056142116217263346245012204711459566325605574929650107578333125013611705182980043181023929210838818124564236324613676115269588736766918182377768764757953506654696788646631398541033007408096053819260111655257434293342978674536677352207406684871009251300953168555429421672428192807821433470997049026392178646888040324159799891876224392060942447141639147064658476626977713246811379423635842191132474596720989013023981759463514510149241876549404184539521629470803850500522514407873104387554218020150853201515687574945868210075426611762250813843177022168603470021606862568078144400274996029286969331282337274409746474126764527060619714922447650144524319919784342197408061299569185377622186906847723530463956022960591559805703166992003692323655021405285841514445631813214750071069527196558683500358065982715143611334263853725878874156688426030482179944385161546016801399104751899536647509081410977671788729110040133461663463081680366288428152984228885954549741442260408794259789725263068663407876488812873501454609294798339167956209376679141220980457947340049164672867051403199356733962341725273704812419580039395582597745670509273290480806928363337712079146949134821498199438454440259046823998747976451292667371514490933625105668770047216096017523201898681636859376161120996394799674653189935162356229440536150300374207550191207276020697037936218616279621777425484273682160805091983477770029965827325805052742357065111815421277932405890705416204499670930643477492961905675795626073065953275291847538779043155036538195037036085523051277489878287677072725643847369935643519591212319908530293586573753939502838829901541423908873931220131040933281825812814739673828828075409859777942581366775212447508831911963355123432465646823716273120812238346904109097966768152195712774128484749684830742910204289371473521731005937689700602780176537203531651099622508589416814490580255966683288404679086136392954519305943033522621718070350632938764192573154607130156719249905262448112159922173585921366651674687928240613167069698217100201319223351612836856374276634623499936547425481966281870558587727715321598680066434706763329137667998529276855655276275817179809983226276397085503700063031763936928074265865976576576642016503704905786374866560372871919046424119099749407423415709915164333059892907131021217052252711547001719818529322933009258240527493758886982349818574288011942317072053123860648321373319234091991008225198908693508059994627150616584454915778972619886111837571649665007715749462821587137443586935271971867747077706655682931234753999509751430118540420210049179382002210193604713349879626393378936374619106047852742244402132832313767622940534840453221714574084362719616884022782111487268137547083037094820781815729593168375931736066117723933576220190361160114535583258714607644735083797220573975431528228955308663976182717522607895589113138221179342144910631684760705205714888656159954784826479825554275796448068318797611803335903400743853799507825196657014745484690610360210395259143069534571153466788951897855016626248775235258938495269698932505269555201245188347708814554331888039109036177944243669778354626133040626667163946169880634940590647807931237156684730050567261330944449106324307906054201819761865537322331575163743837335261010752795389037080527529157026933456505092266447497170734822023788396159780731516720249644848275460119797557193663818451813904559268167943418682802364766217291732588908122331243914581027683746764719049532381420621172469689390319927208735845700801586970946552938222855414548217108320012078341432359195876578915833035686439469312320440536808368463932152610259066348142053359023205841847646146564313233840140599878266968810886577089250732730867092616407101537886790310496924450783479151674328520203573925369112937547108835068382471460660208821448709513725783369787260655707218280650288057092574764205523779594063411115220241439380999910054857716244938868113669346439690950938744505552213806773651956550037621055092905914431807969200396179015889817730656903118824651670508505594484947904578294078060737590891189698414077391875829073244855873523207842444186773999828470803648453884104236664022537245147689784294865323730851964253069865394301317210590165454966057724105840479083464976927457100966150310208468067084513491750647571670697627294439634377063890580491103280964862679905743566471275098786667655250785176181807457997705004468099066587999200764249929962613537541871350121858269709534384358505261527356174893549470772095623394600104017542946910482213251488525879846024526330539703991113519688413875067093675926681595816752519319326550371382248010318708100174713058889240067189956190344794976046527382148496309134988470923207454414941385271846864311800715768087422747305034945820623540462869835564863468023268742962631482918589846088047037998967706375642275005854618205657338480907973594754638964279284171501165356182088798394736857684809273339753723241119787415032185261831228243622108810579568105259954885107060038969534836491207596961232908760984377012547165870747024492370619688253479908374827759330045373690965850603783777997060763869857283446970635129224508756245704335122514384195974995025959263422166807509525849112955876134385402665683852078000250168538894562280090630553815798722379208295452078062992548394609872893232307899585234528270505203505828695181979433985597737614861014822143963267700804407458234509929078517435293219323965952262624958887463420484389235088813018274286778680503394970739464384868011639136221962373856271168913614656639366568601545286113515429569200568522806290912241449610973766681361391852734122572843312819372840946767168547655884034011522066361476032025940618445649902260993005581244963327644921910797250329049019145993149669682648917333924151747313445342461231048763037174248566928874028582666298874961344914659389055153277803646138715694424191836671132567558312805738653678161509751770256021185224018406335078298880098701283121895484695114876830332717633909655097552495901284481138424686817776148623461152274617523913614988420013512899256600714759756369932689234484038835237227327054823272613719526700984805481307729691074628256427877707801049243352595611025751266386067829378636642250576366699037963859676837871827829648813566530157012815014587065977601924572189721802102349861835495096718038330987090332431088315960849430294621634439118204809872508398834102756910599196523391475124681209788312617649231820735145595953156768142401204614514251254309817979589271037155231728629951183859682985611794475483323735382846199811417639475726586740407400091147883008145201378076809611920984569339906717592725458317507329328014123464494960437505834830236697308463612819673099553807942533476390469719907999222282587147873406087790931519422484707255660915936236028783404502267425640564594022821802802470747039781868226010186719155482065676406970250465964274978872894644625640402274081233148543516855118254129248139007573719945490905108133707739296976899355195621774101544935866807858631208183538128360820825659801957566002097156737320390029029352199063068862686419286730452721990547529782703162107737881925646989245963613009547588404214814965047525965121536646736426913512158314712768957019800311146536478894126505158803983065635512943756716914472309352425471121613815804013209217748988959283009480413364639760989889710627842597115677855048199223768663494531034784843039491840582893116655436836504262522911368705276078748280204646228560774090139056008475388742963795973999112650598365927212215340907684097060050926013330912025116907423693328274427415633406495732172544355705164366191634029853152265367464467374675351823210874863827657359474983010057730736596614784514731881301218686562952452635650169560083727235286965318491712095332996950400296338846221168439943130004530686469244301069866396721522793440294384429305678259304028369457327866094239502535132606406068336021691935104646187473326833445501556598042085115832631231473976421699879948316012886186515342877891606274395423119242886173993877620672836561012533696049898060459327223279954314809196890277075032595681500675955888527329200481953563371293450861268467534335468277283547986363607316162358009228527998748470621816071102459658327633261207534134879052596724852923019016471207375290938564948821607568025665992659391501702812240770018735033941453677763290635052671252098562011510653000514489399480231729307309943314241714033453102922196947117092884171878539122798665061085037812997561408075581936877196684097625911326762849727635397647954000434678605899875219006131938676139443778356898381776136607490296683288065042235054048220522844860731409491120439539343580027699540455748796249326076813683957146522302003619028110626478089560383262669704171170170741795752148572265704403359634883844292661950065567206895630512799688931159696669624855061208984806268022185285005312227561493166421034241681382224705628415915596048002638352400162414024837699079026090130619441422600062118432479589012382493119665658157617186952896790212081519170453683733873136043347899935090591147231854518152294458168343243975552813927570199667988356653815514924546299983625621803050213993012095345170826549920925185003444883638761005389553320232795825290594855842724460196262806866648376083509851966163601218883444669788734525917411475894282602493523456704673341354859573707549211185243398942626066513004872117034669125137924703946190273171302568564653102843543222534315926267377828452245134413624983394929752531440064286824669219522219004827480199255987556236282331056370883383605591914251686234129025253915164157300723241090181655898398660997302439882000417067311876054477443547579014852178821422690601865865688094526461503067333413895662564698898935290289204593818462051489293076832339364173990610511128679613792896472017564464046632228114531221764321015937611275453790096289842863760640680039308167411509990524681130536688295215336413378277664934320449602979037813644672563659168284362913762588272313317174208099919223472574407694729393107858810745498808562950943940621716850795570424148266032382274165620437311703581985173633036091057310247142508231581141842412968183682382910644602378144112926299691919822401634904088585115780355879033026573641662323694055687068984649234398594788937739259973884768481332423897400052309597759245303288608092005240003283039304594767310619731164232742625294840950599611475464652640826430596605727436799385927942848220850864182350350534718383406448092491153205999151221006766074172804393991266244562915575142221963169306266874031369253758761687095344016973876964587281833671773284035501370667824857663834667663332632991026882465575110349216065925956046459573243230013429056811590926937732408438373565568921661583547543946702923570071837133998109717822437174139227851291999427889723090837188272604863978155889370095559276308705691140328686156338551695274709743535618146888540376946602809646246389809134361916648186045637085998222868882455995686154475332079233584601207990208039573749760338714706243765695858496676898575546651992445529003967078300706308601968708450265188334704417945315361315065717007556324174976832487997575605016977307455450690278218260205251683292248353065977298303600607327059838033684390754614786928219522241907437997101081749600501136022719616332739730060305720235978768274558836560061550489781202793192034062350138428956374086343120296490546628905546761791557891463965556513536086819624969084459750811031940454359575273553966669822360089413773434574345721117273417707883371760207860935077822791886739174411133537987678779728121445801410950944142018863480557092236307390031050979583563606206273937497663740211277513807760030683468661697521960644625967369592117485775021124847604847457348791476389839120313719461967921396383425743964921078944141360447604537279398475426694043677841090949599413565550234677427176947014501338723018048917856718463081976927645971703615923545633864338857533029941781492180556808427036588481107006293960110088872970226348054480237658519310865891416764236908501661659033324046188273526974931103990682986251478768932926980216860653174465406432909631963616273438464202043800666108437704787893498856000845167744538073571038790030912973394752406442447344678433372003165086802044067647097462675349611702806842143546000140096893137334827564439606717140677503528284528681600689050954538282704364828127147788442061047377879943591791817223451000306212648051380543547324340365519178526304059069434470072045276689298382555157672669095909272994923354628529160759508473603993380025612362650209971209205436284808663729156666190594566440470588149679479180194799681698370440718272636913964935058157559065409259454866340587091931971907348640203459587002208504052341168697714866527775346574280425662227500880612064764932695848710911009646265267356646152219692478640161238153858804679947547022447108710905904243622038258825332310538104483820480599713621826257863355719326243902634668330520815187177168986833659062132933233777162899243031713843948577268117907930601973441671573562814562573399501697246925887809466997402529012268822342847463025863295251279260153333409954757375109939565680055573098240085871593105057354573497036114607788102452135268656487181140042345860730658428994034747038080372166640168632699699120300447598261941924639617183238559066960030348112030453496267719482771072389332687343408952067615564580273893548878639826984743755239205537132517566982517842698794467922273204352444303073685127622840771775616709270420813482088547684074886357743200125274136094506169471893796362664281412042278948434416215336106702166639796587289092482473290707317057685645945742711932970632894379336304282182610448220448358425395145572237591418268732986135167518097563547744412763675390996823162679859599294539166055099120433902243471114949922275863978130172574841269708243144343990235859177694889108894402923175743347387561720395855666415248482025308039171170949939859447658899307202352864228783103184799672967483495057825081120228113533274939204636790113597083068719873272974756086532680454420312526205919976484774349327820500705284268891908592742204100779162196572656180064314414741154080910954674190600568002167361098008553172988082070382095747127193211941730045298516123003124110863997626272596424605608855034695464987144792823242104242483699903936117203747140547008240808522923735611560750831672180142439720984570907090992843860191283146948888328338778565840598734022222506116884233018312068436013694209963739391403048076738260795196865945883262442287696036493615588868209347538411663048511031707458674256975007505241135781872553312253753622965723161917496226486700992759975098667871465077197512139179001113646646449784745478595333590204484974386208119807568430650576918303213158011018028393126863309252001205168809478796443394789373034361583337629807780531653342733217556833320017121018613863624362586281128310278410410463935067197515846864071738613739397077907009790789044904538264415260816224933940851446405912770149293843556068948304056786595789296119386183186760655132076250896161420298154766232729778668209455855717283083542738695091125462502064158562666561073348413890181864500123772955994649634051682514594590282450582210973180719517735879020840524517667437915511495246588381335159173503153194607579342128832771229813194073681370823428925943577898746551427807932249150725436546260609864445314745322650911023110112827289436594346373704748621084347444156397898357490389973563967826599959807743174445586381474679238950335873276364028439817424580585338493070897748206613813162467997592220404550127582637890139486448698962894743489637703701344044125361528019874772884632940771875384877969657446025308852598115331764251097815050031813328124775740218802178906996622906595772201857138599824588599807431316044091312657446208724020743590406309932997322924648999456566016827285978008234946701694423444311986539786693305050165777721627396672666495142800150871582699118045830511086500349830511698924225714298373124641249040294035650881088162166916455561035671762798361446431787945224723414728357718482726885954104689973602890620482931280600973016665284303881251072138617116824418090228203052777210859319193563659289695434298963129205233112181902379424690622717773317652468022311150563722712135975997300042893977930780477511057358380753620038387622484409223893849270511792918314082188712504178373635324757885808714124112967459683281140740057739624833649575461660979062374121810746361432837860746266439105649077909899142848129344585427503195394948922664630339632379213184753034384264869444746595636405449081144640189385929176777964972244339291459564955315170973886525323360248738524490465260713215067001850715222411482664119186031876001015194483607594504124460901755528363651825399226081556933286652057282964445725870441215965419021566550065413339365183019823622316069924347363446254193135706273028280324046320513129122843132647106790727110891224153314915438727794575649546248028106894981435782076937757601889144283450472074964425772303627548463520460772944746691576615098293215341271853997869841172198150386197338334997198959961777106723626216537360053642586870828834618846235840008033955483988564141365343052002225899167376857058843088937421814911356239476487621363753761855503955581791754429958655673430460437772606936874849166787640307130502333201108086149516972838006770348160427733015692295226563110140007678449874916696865787494539581464422681183667525593140891323051980314135085201588328251245895509245863370979416958766705513701254939647031560580644937313891871971164259986576432703523861206400870940783801783169035929684342319179002673380980559162977162961678804454929199680028055603986589366946318500853906493144008710621197081538241613112267829322333285008035899622276801700195959118504065102293224103278743873618375567927743207901731436992174776423429362834242117854513766140236032747751333318938389219950038943354328574568297821019452944860576826233613138842401340713073892403596256330926373933543281691719513348229825384244890960948205948346956973556629290196827647166071401131144176687101707972308163674718024014780345392678356495738525250241111621944096208720773035031454792953488843477778255580684301254309191277878109122796932809334990822172998443030115836401990015087603713295056972796603883109915656125927590511420779487187413836804499587721489102620428777563604628097061446065689132182362364954529927144338382170559047371332784205527438062495472004830599466759236986175751394682999018859400474839605025837105528666299406696974942243641477256414106846440348547274780333742006837766734881709004751122841614124028136604269040958370592631344304890967533743191425068614217856319299288351842292448045565384498022864907613924688037219561555568173291259921593658677321961788503205465302085411510296379151143004358329525246266774166850426770873357698862698314188234709811195144426463777704436085445200622005593546649494698650550190688162777875820371758916338627043185835747433953463026533449894393960692483224307804259308366582299535277441157415591078452404367856552348690155027045346634055025285693903398146125003654423947505549450901919601159640869692949638364212607073538420170406942897276620505366317893406644166604226053780646186255355004388791878942623068559813302816895756373403787870301001660864538617882855367119545888379669498259741001642576898454627247526916948248216596512255756760639954431373277028635306045842181237014764585898390092339947342876850217796031843965674939582141190533763479800361463313943511997733823541641271203102315499870495838626594368365979937753972683274978208255095611541234221851536836591134389341467518213404790679463366626958136799464293288621505415279481604259754110021263317150707569712347630361565880352135742458888231108981880400344620540604974890313395066877102705576039550596626836082682549804772021351685686821160636548867450692041661222710002973810226475344145500647194926175220981358854674378104053348940317039871968259547634009308998823336880471574953053421513821103311182256094682202007265875749942581778994962357899685118473487145001181618033472121423793292523952006357543641253850348869935165609152399250269027494078069570110338583330587660011309769185803361334545070330274489345765614368042207854687187681497968360371144659422742483015110031953920752658134279554926133676197578770947518832015901972711547002164875121097406076450718031851780511627874379843724707161501806036407495765367351336983167613551412581510270744640181295417840479005660137706990816734129272211918037915364203344450906204676009606077935627036539290967324109427559143492629091916153350072300984514164039146736555459070219683589060401165865146504900680955349915873984110180238362194558610915456723885594987525814822329695517413442183208965842571565182603603888229238992113900996385439804381762595070098468833103221484850719129789060221521232243451045849167466705451532450780883194416532764789530599161176002686924008262136545662701278640948583340599845510073737678017911112622558669548842526375244336337499644591441101490769447388291497790107138842901398500687274915835537572456638361997420507497905190906974803754157191820526284101204214651256899493383728485783081039156785262936546034650715218234966385637581564532725894952414927572682982753304662002148086670742010315132676399737443630896543700592816415620083774676364430996993284128399670978459053609229517129052293181276162051817338352706967907029410875595411229220750011125486944632485843598802511019011062038339834703791663896768327786464392511164760326745511282687645340645894664724149381610078398842521983855675227325742495568624974732678153735946327069712012668849916760749879587510966587663083353630944220381928868101452128682716821953399341061985327395897597852431550576439482859724069425353406232473535796659715961502886635583677117030075912459535770680903637427701761065156268889166892791870570526160175626209179437405616920976256778099704009955643770570085898741547207506722250124133402192309027665849053102754560519891658793953184834954674398122141328386586029019119838844251101471990596119183147354841160462215862996764832873947751107248605520645682698100573221793595975049850470687015166252330569964769693499708008661708855142254663956527001259343829868248311654157684386423903618567308588595841814280948726479332353353405558882048141910864790794711399521460328126565675246372081203066557863684848659817087272789892636644752865576511234220631377617004041576270723820127692382920100115514951401121437267272729827291368812012130993302383278714831707876890641283299990010203627611038080704576341440934699797797702350168241635700306215246615132355908752231818426079369676118280557455129253959543819702772972359502968334392273488973786717737976676826108587069724101280024794422688770357287627046891660049924363708619152517414861516910582697598457975882054689320043724526522483748167025865435506546012833745189495858513022530545706825466667858831237751417418763560404461436938796562750440371988347808663005764024724591010320415585119155710429527465356583605991530081107735236919093386342192800457188831181810742598528715433175501985620470447338658816532347613198699701074454112238224498679115232190044386516565562461508187880039484780097136328648719643084696208238998929438711037368989975481395565105586606235468776649963883292355898043167766970852390291984701596310027011524049319198548268894967133157173433597923545111017816219474460668971540351106422400293662854393494512867694135439749367511426062303965296954760994561924424454433468327419189978682683649413404054275017500241909605215847919780923889889069766741258552653020010852776144452067316790393781212372461026779166361989793716856951890817532224837565148256336012941394242534573394440321183516980164367612227079032514889601062698196382300775682556202058042639509753756576076667433195410961746089514130680481799782454312780797727575694009059804699416797333343290056244622079505449059651869099588974669012653774076258469920097050940152152911617823246013751881351689051794964299079042803016078657812125160570873342422010220422916319618973041657376867019586452959200771019278828500102135350270465285042263630524209800656896911033436052707244691656784043560608799495054385323267953672462724365193738684395081364119023044453901358308538523628550428249071845837420925834228853506811272527859836307446647160119139954854589600621800314998013533033113437912603144454852993695108801466253612739830703882913792698705588899265140254079737821997909491963925208468633477476031949294330236250604374205543538322807737223836409316812175566961139503116994950258108849442431799554557980294682588614203167722936921617335769552624895947031063183721637360153003564281856932204109861391382860061932307181109063608926935539933494854211233570578164226875502090985095864148462119347583176044878630990313483755014008788199759140046746638490166950113286243107968114489466117144420359726657398689954750069549973264749468412320803749061900736636178884714188112644154307346761581651622207987305417550813610756758663644952523165628401593566642771964489311791780927552862099492392499304785215041225028346257904481180665599148292802130336557968273784152889939956721966437005255441793024748350635042969906849400796261263148618876979171764450363229053086338111204700991222904178041121579212440037493250261275359718041075136450745309024490804743192030359373143039887832763820271895736667886103843389019547431209593696470003567611820562920890895198448294699947163731630333417413346283287129667094764302850354358219112574678828586577465787344888769117385193470460360205739054872591314599007261117147143254050864808254968609318259961677628632970110475756718365046697003445232293380862519350615267189521006408242312536352027392673770283086584942607622938240825982284998896916373539732798496362931382534395228112192687329357396917194892020572704908948481373101226774492366230349619404566111258230192853375762783325305902085124460054846086268127133571831812745307095989021716601775982012461215475376238051175326525731954679893798255812746545466222786752156142687553318034055187345636226565724101035586344351284560244565970386949749056698844964314847434316010372835330595412588544742310745458367327337870538234321724062826078885799588641972697322620013305565346459155417231141682365232554543562908853197110884886629881825653187723527279053293935640048595853144192343407939503363586421615542664920775013060385672886228909309782410469953703290298708124436337811366980704322979588939431038853838539529077878450710571716229721865485258446164952568809536048973595014116475448053795156894610707327858403903708084882435836946648613181922891069396243451431394654334854596016215411832823823263563666973564152416531434667657121296210517776376217207511489388656523129468469187389024786325185121398091205217167031512659392517396480454930111434313224639408840731295659069650560308876688344479569212946228662739601331550153303856332137081704751803363214040486876132169255279642922097973220875018920872823768258529290071001537077149594316531611371982267698090134317134998787895713399654917865875907943071032422680576624713086169409336302673258002728824362252678873503018536584913450438647625876397537777578399946103612950536169820766210806737381516996597319211630299453813714221113111433542824616809296776519280355159105102285097713796256976008979285761212839413111904416150257968862596910225187235908141565246856842784298611146475111042008695110732719782242978541438143665536595257119529030501312347004292621156064679127766624005925857912005428236899187940241772720038352931012301302010191501912673797605758265654930247274508812123384985711314857791781088248754425759434796907582934606272506608978441874120343085019213751027174058271616732220458656531947557457150465056937274973838210286561314465359719828080572887046960289275929934557092803306313647350727239467096917236104100091301835259372012506580397899309372301510439488144730228451592394648561633245558925585473602863474292764739776758734098091280552368002729748514882884642866855302092317422462620186712042728215431017576372309417376920462274210495206765683448360621418820912473332041316462745661948522629548649349707259455820287245131329183416477864452213070017493362812704113695873802697145208773929909868074567759015287635222542664161996482603383387557734451488515842990536917402137774886607625062312589263766757716244281774689046762808011497281062707809460238300317447570449958033555684863904948970093932552428883069560149583211144116669957593695766446672532047109823212327919645187179558910172590151297197864664344420379584920550019446673105200109196038706112360064070190818352111105947344411359252622094088790341255444574620728866429892150770693547953152221818183945710628059139015661990396386814998743953220879984559768217584558121097120888813961836635001293749374065964362879604874058457223263671239743835901929156993815100611310823930478492464922595546648725550079732164328672130036043431309624190646785250625989037385440298055742902389365766723601221471852902926321367282424297655617453491410182679267451493513279034619214824812950415868421766206916682939456166969761485636258984802863436173106988106450501874319105766448299270503411030904599833285978391333109968623545807534537077240795631846160278433129957895280613946293079300189023082330135408034686873316802381197156483412078330879499128401478010342716026034581000046106819163855528438819654239353983222339511637753087149942183258509036179378731669407367770647568595636746634578811887104624479300294275623277523715158207100461323928616334736836222624193816834044343234461537805733582062963984979188186257178758087839513927296324092617722472958302582760368651942204379404041682655672775661324450978915396312185095971520005490669226438225699105518352136158962802139750824721848755977214924322666835067301919656163692778758160366042517080447209639641375657581573927473772893266155308488165361955386951326143220490693269913401027686184526407765903328788803154167933396291763166100497402814513038729871681440353810175096942037881734466539520294140937531808109864050506870788835839497720350699365596682054813010189211373627681824411887631146039866704034285851262830833325977369188585141652283246569905490188389043052240991719135567811863916764580577154470570586523196523405851610934687629558686496476710520272631495535315714927361957948777425506624749316054370260034818526877676530111300969164227706634495163660737575587682948550354116075244019324188758401993189319533233972501740255755698668882043592798239852861109712351393511673987014270929296548908397120782800199237178313768008459128857532549019160412418290254262731362837151337058354580601690477049599675181571664453709851906033729058185225769942875507476396234356487243514529056425972248842018296526121203529505824630164250249705880540897594211476064130319366797259353108683160805831099143265140505897169685722554875223048287096541682283315682174585887096466450135087784712826569625288477818310135338312073119519224338069467314480386111866769724411869045291918671639126827455785386459858294916931657771227783244008629574840899695397938783655668454920683830118558353101415084710749841275984911777603646006521592010354335181783006132574263326370242482113311324118984267290727721192771951467148555574963988787665190735212327905464237266095065430948676407167838457585492805951109854109357485023700390297660184656791331419893632523338155770085212615474167095750246432260301933453902287768813846035538953598569927168631257784926328623659919804304755092909061738105737218961512045300671756137003189639784057667186610978210378897903044013307384906496700873110531414412296333334998555433781410304693523711956904799864669862069270499394673229481281075158463455383011960882435579362585145137880693379002363114908807113584394432546829060124588841347911450811392117207113950114476287595417762947929169003819727974938647591580628572958302169364650162402339043521023624915047764895660837991931176332190559927716690397558525357694837807630733391364387177991139527545153868253597306799786908678527311816804427483712293771911763816149117662382905319533952789445128794223706484085519045594421005479815681653038963545818398003791549392751812222912399316746126714207430659933967390591609816727325839896804031676365090988546374560304395576910566290907188908387725347105313246858956700856526896512805268241558347245947220677733132936773900624716632442451293092674056722982692800026442413176390085309937932537115784420242716990839116315332406073507737675677692332809926684532588693542288515704430981666446526149820815287277379204778628584056443354249922862349783147456671286643346481754790301792697719479629498261797156666447811393242450645070827467634586526424845623245946876765621804879489026946907624959235111730765288840119089579282071874236846035471353042740586884539220619310178301961633730839751930533243219432398807924972628315951923913284362670386311698847440159320939985650028344540000105015018789310527331007476571512646426082635974063880673394908941255258396213424555643112121276757684043406355135557768753162765133876149191610416147125312502734811799701987159251906987231429630139479953268890462217903953386427606788893233885333388547509225129058662260199660671591620304154614455714770797823732160211118195437749966402470680785575918739155043471487403898384963763295472034443359505095900754737673103274185573417806528847794159150154056988456981597331297412971104363461405510906322437081186846714139580964871368276229027167770667656883943762128921679580040277910015696340721586044625279410924257331836029225595440923019070914509896129643789438946282575509282014081530278581898253414638040667172466529679244721348129910960152398444722776580991008502325506026620034863108365215860981898731562914049605838625374934601682652794523172180527581957165908176145513759492241135202714041386818482153561160159091838241628935196455770251288601588635228603236909273859996768948708616165519813335760929864607366617882777468451838638016997257287834396366143315161615229330941078572053961128512246663837221842851146328893024723036032878004768135143845820867022499145333058366731908192264954416590688117426114929752899539648454924895343284744641623732595492253624040784223868534834319479374490752195284242594242872101622563537217791478431459172237088464128353974278894775918408232311966621396497798933182699284720929999573382296631604549983719225756594564127371352383915751605382782357825330028266551896740219378390255949753105079038238644533730470524838426627200462908320755453905676227448978061953599234440192873000719861247771559891153153768405022760126904396784014681645736986930075871202394428167452350659121995973324644286785118298638472815581376851787439676298448087024849262386342577549316780609054167250755158840416780829903759819863087541858072452568413102860087751171677518626923354078774362684483217024367009125331648696877761418666592388714579764477505979661129550758513656518132276190513418522343164467308672630310675721771705535872192775703675302112152725383824365774663347048546914419888985313876838740468384723333843312443792571754063084279477455515898727469112552131580713014151318988515187739698935188387786249431521075327780251863073559823316695871085554324486777074868494892606040399703017351696651504557741946966938255474235119659073279176111587137625441087683558888145138105067697681130606193519390843482503136656030683614936174884551511472799891785372085768316810541696342191529314976263484095792103349563793936197483517723400483455584335091464037275302361561365442054451367090491781112443052857701792789766121955806645286484047917515777470095303756136915301812387272614592841647700906528796759243441466087036280457871221018906436465196808965566232444239402834877672978422426022391052784955486377609658400564578611421902870647773372488489001089566139866647644901432336539937651838086682218987633215799205186107168608682425308516926129864056325692440528162210220638948003618326988489325325113128425696744420732546978196144788445994844788572754125349714085253851744654876851318944699750243917467170547210155610942788304226211179704483312090506285775520238957905282508589018606708825189144197452166941037403827798291444189738280256516807595980608581877032168155320828305112547149749086437109583236053259767632256327462217275069268120719441172010645417567823834474648424744548506448811994474954590277883376594242702033124800754865420072467059736365515908743832094488515590554022640343972688052500836196874934963905733249573122721683883953201048014383352208937585190286669027755994150976196129877534544002155702056488669804499177314148325664569581751052887441766945717180136263468155401238851980258296031666035202438458882990105041253453425820843132284327152914692780603610508210363286686874532863496464321822296290553103166469196792989325797445222991547234333245230234778997804379336488239610288487208969130632610101758518121742157249110417966199589487293909126859324812922309959238601769796156792570890222825913297368113660310018684330472186492696853203459965585732714753119803469371456303086797563560333364679843791322742706295160099865756867058307999500810685408036899009083626468017320974623182304849528129640106123437309841996292455841781833067919320849911421761756812110405914262966666155014188115922537612773886280307242857662832826669738009274616492272894983442473439486495958267650815679231878076183685371430198483451496895030035260513565811058902214311282038302475721441523154506056640407769030024468589614006192356095103309753074755099784778068658212978386933511916653163648240752392134110594429174764564918437852116376285571785318716754819015799631573557646446695735117547101714602681098861076090017325178524438198176737913774600129357410606199165288934740610167873143033426577392672981910749497545556102312656672281889180950958499055466415016301401488463965065026631218611969439356437708869257946224763974474620401321774726601193501920139669745237903306187882370326120292793829947493298330078009049489850095828726845544536209195838941615605914252898708396058616310882201432865453867373940850519768980668126022152829066356287893002162907820857492575001719442590824909297135366970360050423908109931642167409634473309106829458931815820516216192256757597915232858366745189538220196185736443387917034486980546689574515141889569689409867024242247015648779638652688053795895356087826335530699484681179177634328130930280280598875211357536784253487830412262763914497060505154381898822019994594275025154321142268789233447544448984957242480345966201014323704097851070042316630043283176602654455009752765078003801318127825039076029935318275851011126738162229757461911347376306884227824702901403008586967457381209974536355026480304741424071887023309526583808286479695637511834089879192341681637542843387771157027570909519226984370584988307198278245033463556061443105493724041269425229583261011740345150390535209101853526703023538298211151540011468678672931067564177335303282721160848744309650175771774108269139128604946319935156293633630480130351384223932893738165177315281414847150600351907741332548526650957373782539628491837651209602978528897819643309767770222279127182835270848466449625656753456659287388666675083157810183861981267195764520475795948677814612483489229243900717350641429115644848022762835634632954977603136874386363936210913782358367278193467202884681744943946576179772657064664246728954265308606966606861093341109730888305684124841399558241878816468220924579104834846028894634611539113713217842069320040625473774048537041399066556021591305472768281471042557287000336395415510237856810392198062369537982282290438190307270648604512727529598084456196167119875542312433972373570224389014841714501956823500402627151136204571301948051219961765958960073339597691091535032621221574477865394082153403656138471069142078263713441088486120473818490060612188433792106505964429910564256199321395053408191805480571313340880009643312484290761197913196307751996384687353047943952344992270941190846243588975310251596618191030704636515482523948974722133838663608764997964485081704313595213714938818711526440469019720939270190715676777317364037846080774093514485950039837596841464418204871690293439403959629650004965810958511320258331365425151649960067538405774456697328939912189251923746371545167210234212677453670542059962925251989831416632290485044963713088475804939609360540860925367454617108475300626736487643389528678478927758679453344556223412482383158079160636688562546879430025226677420555412574271346363940914506552832609433544061461770946136656611225076360721217272503441469119649875765699936297323045665022162366862283780326249627017253284778788888284816951642178230817558415666214965267693193044308666700429615048866854936125127811429520867765079668563353561472649646984623885334855833972424666451395041877287710936934388632220015997615823838047896700682128358557418677350794640306502736357488050068204332897466674096777865280711277705541299968618821755051144872550185031140079041621449731008780142799186819736487657505532838868764191001692307396114695471866620278984460492344214464307073906093274493991994875282402986062664995471651235465431434544076035617433115384571216954566560004215067402102064959543008625769985787514075243119340079954176276692951994008311471133735777568656138729855640354921929539792251099742588465761525016454652340821656339741578344951144923241928692313475024794151604348709185762288073247983695091572304818923564261507602769033971978185829825651030835374994540991673552598635836699640196485514215270661898790915909149931408811407759242634754374291579719626384430591941512744527791290318119057981980764642508331311944105147585545674254973259067549014880338033683296845611510002605304595488807255326386906985263136396220920046903176655901394255880870961859553025194653478643001466377904860467828795335935811712511291536381119202751593513711106581890608919498264097471123727425784888536702234415407396453243750356974637063370305380107298701338842405578856340408538242703903589454194643074249407758167367646681897489635144329094889525753628827413521331306509692835744052769295563864242140727362886322743571213158424600800191335815241290845445194101487393126076540840400372902171896479346843854207594186528868060066071370547514949980594181827520425196126060955428397804498473788933061034029083100648157895096893942012779953330385486463274624471476765126254047966978038249500797817002150445584643811614206840263743701988204804206541173267381166754156872359050725547032491399652008022754281376586324706762778577613656378275439222590015566653437487362664163198438267070251934149837454361572152083562284672952038908695441824972702411145998008488617055642506183963461685719513852859704896504729987281344949716491077437138231631454912638709179343003264768484384883780843789978821937590019243276085385195650966346029284181458340139729338712827139176789485375805000887054567749768435309616492584439041143561883643564189171884791847224631635400788817118456900985079360414288985331240516873183694268992756126516423960194438125346293503011429994965084575805127438969592813623630852524704490522082413593059158061019433614640133156286898876219240903962958932986939478838401491764353491934126872274185661017263536729999696840172212825111449312161528197139274373843055908350028267580173245109790290018228942165178820383026126053909033360807903582986693924889864194811380397176947518037345039363714405614258202696745530727591189614102540091961518946848877084689659833396414470211081111138882446785061936834418634603347030729129229360006505658709607221904099172200215632444093076455616305820292551460605157385769504152254553321742607409028812773807772221867016647456521877040891290225139683241181521716917577347000993417473178537984690430790298551214854235182250602220702341683068946844089712192557704843732595275734362087620289722029340539026598806134917008986120325042071224490337463118114158566086129763322534297232528115101463970644672337443297128562306400430666764592823194041213874468298675465833066295399491400276454834774891857412720856830404162475963655521807695819546562889195140737925605544013903709954370659372160855735444532110097720953292759380029834814124286171051431515649818213443981731019919968587539672974627713434769493275392042666181799544819591252338294409828778321540284998672698928515771009658241260237162518360511185267027194202437642066206687638773727999134616115527170807516574446852257347798020619023836395907085358874940538788726509103910535595492597668005103142586146292607608272850706266512044967894379199809609167936492522876632748632925046447416383581632969531680733354037522888916650986433887054753816770030649464550083686049148983161418099305739895805763955644954295327128427687443698122523907752426601908864146572923633674439247286054293110222618401071139107620569615755044097378207140936217662507691482998422738161695167280674131223678193176698473919795942399122781466703968497237672529023849491557514330376550123607086305753273283649168615249984481760241249288227375805605053447767466512227741426872820572793104397502567907771667989147854486857968454978548478716244217756099995061415413550661119639118313141604467888758223113846559012658804521325447117762014207477796493219871917494963416319476351836758063425551426915737542108197120747051578762131596844640370693756265058974083956796062063815513297232260671752729826324803053377269830282969726866885731758450152872472234958361926143130223035535765740289398156934993452663347608957555500285395086368792182157678736253347730565470792696206706397353268876234038567537456487824147685534355722144683079293079230563294901539496542880760098038828248449276872103353473617515338257919287734503128757624730029506124797673526092036379661599129040490124591414564393702644943983940085921084057866759330091089185829712120934431935810999761915951502492477413745113987458190194176331115727617136750450430632460016729504338997373218420062615374700017306256544491979443119658338782778901606030209464948459984603525385139257328345076709274027049402798386536229369059508398808437377407731753253847910420923210964828786010394862230826260938166930573562177017033232022055097248619445256273634258178192221874825259586965874841002342365793782225435148802774385270938653611907315575728027711158213814819522732344308584299086239023818337502995573375286676074720263765722847257029637121454243737207592712236838010749870673777355656888598817436179819986825886345860074559554154731070043104274641646016557479143646309123646040455053868571693586691727539411986196875398486115554608343305848460700831413483206129546498904647367175583887884966194652978108934300495612555752361463440374906770705658189025722322256345360945110844384703643661924125041417942278537710458031110821930025343004667436293170539508865254757758027597155991922958056938019829579861633031572520190773772696172681705079040669117964274098687427495599546196578406263145527157034454309637632146825588488692146979511633631003513726838554870578588135578394540684246443134136799437136854014982114921757572207002221366135086080882714836541010285825990826478632544508814116838365767812204114946856735603295502952000664494377755430523018156748444859708165226697535568767974227674871243526253246657796094033500568508945276042209680479631204749899025536422484097880384841778253023353497636810069928525239004963612175529755757166123705309867828905742775068922126329023768796625743463869055147043177519683805234123025086446744713842607899465899649710146617139951016206893694236840465862326681184434219509954893948005950000871109224688830118543677298219859085770153820766914164112402825980107982955236002025790358580584489784601829542252221814462738500515336430244925030916168174424633027294164243665158074558210623478079988888132597603252597288825826229069640675193083317502823611604084236362704693013640603884972155957144525466409058560641985489468409001602115941102721739727659139191224054419272831216588097212556012205764300223820555163561808086250410733303367450654900423806836360969344606453030079063428437122534224189933968794250865607988844998065982252891352291291559360259809189960454673688157950137733629560799919504858301522412144651879988505285209396965138070688491920577622115300236024610214455161104730104923062219784176652223361469704955008645127283054991012021599811687149554930190109110164882431734141520186207580230533655650166640214781079030553394390931942177720486163034356538866608262625067420007658626944092910299573007096805659239047775331374968848703603426556669354327725723489106060740674985018328196921567301424754189279843020157652247896762678144831589852512650615297113488404119584556061699949453212781391150071208544520407681213328039841565364549967615746075858323019141635545591427305567690531112990836110599539642810896115293544182047221429479530970704123587299080715324526159015648252128165182079526955457814654355376099277289370327922196224097450761703605213291596298599372865527686194669393655797759948969193185852991918750245700477997088580017509248848173396407203225059046243813226144973307035948135030008551285410497792940637570434869978018517958502123050433761654012618576087093303796561721036561046864287577031941233351083995669129969959985387941518818351073544680452997110506389959751388191269102276501349561201771139907115001064843846011374144292155171806282044683809435329835810106559232864610885421062449167738585574258383632185344690984718009082966990065835960064445955246426470848395345313409050487093640501753130854930893009437661792487660184903588991828154493963371218094550522000323489221739062642007842890413462281034492018468165860414430214443388779319200847988232864523637126487815823716185017902920115771246134956726493186822644594356131629531649348103391850868098703162611976724764515131787604209702528789120688689766143520474062840405523969376549459252194227865231166396982814773706816685443701017804419141635489538387384975066008705876558651865256153140566218602576940569622291338977023517616004350222318864435249085674981375032517528274434243826093268352001168614673326757687375456423941035487490738201271452976898440540021011180904732626064412079635689203913442295302263431055222691834388476823353174913807716693445607388453478444528961700483628651458192347897931939613667848160005948111731448486430451902641092956662553163012420932630230134828983523485787653583153772143960818957545106951304442200435572072698254325911140104413226827375543348427045165205676883509363875334934086660903463518214015146849502581567632382302399580293128813573884691687794238226102562122154674076332469273180850467447205736241293045951366211436893971096110657453642001368208686021325712855390403131451399992797069631541925460314327305986595845833046567881835852744454634902676232725709231576797584099796633470235514103927836676524926604268104542321847714188776664445482851251316434751648233988152334220082970093049437660252769731581351540178553251362843727353485612024520913102714922780882892612132849766591553926405121963933552868937353173659860672777464563623792619726900962323660576372713553895521665787114639154819336058136820614659179662535024294205881559297964465010123619119781044856199892330995594881064438443496605248217897808213509307212732117790367244252979698129950375496323015592875636166827558845196045244592558878779309160000370700751371728402453940126516699277010993836851564262468729288262519970034642348057798777527036112936386372555038789082132594485624273518170321696982818545328848157895268510621999072696923459755306943635669316298315819383671003681862622601562171134780368312662880851889568965095009121249627267387788269187491829190260252945295716117365582058930158844122943091164716718545327656101096931895529514210177925737452803320176975637966715092132841729503540142619289912278063054687666954967101541084965870967319630296334302188710236184340434455098204375857038777728550610710504347499030976555553295300795207743271935123221316538989405032272065712958412063700237456534819067839727747895621273628847958017147407699565707400320736376847662310941295537911946037666659426302314838760031459783024707177101580478084434988896228977853635708400406325557387078055192637743789554581893189995343403940211206693521529093892683667886265985200027100968616688213575958134178472724963115048696589449178353375350167137776918737072715520689543798605404225285641233758540421510080372539059215319921808281564589177867620817441516989528115234939412045224758570313645855961107745376781343530161160412988793328034472998584919106634226939043101672099401399944137449776343364458199915986946926724503974527390303225721457841637250340280296416016346075183372287310868739997655921313634737594261134240726253831026251578620628615779857006437802665515180134598280823908141832142260082010283646931491070988642306049128716998774964240055871788729149965944943660308853723581603322201366732961793916664568778225116080325390398336368286308262015010266047440892055988844482605503257586605878217691637573400794454803192888198622734059767655679985442882177626238988004511491324476174730608437606854233542741103456328247342226219518199425991475593191192900623430567467763966557455251747215348643254739962991244760942454372189432822557455997481844084711354560560688576764383295919538898337232341190986217413142010009513770966379473384955522026602984666052160473157101477274964983959299928235474599315030737312994324872243089166148898057051761251368788630323133730193569756605305599760315138899073455068882311736375151476166851593892994822292497855627586400232242441170679577840014252417065907496911398141999750354254531133503555039521446994242319408009185866910559826561634719061095376355793727469500290652219234753938197766406486701080502539185505008623053382657019301994490359482909393475573196843623266552620754096090829138331317432444638609922874040495595276334119407375860588951023782868730447142418134967717790296514608622775455312070509833532223032743503411445694759511612281015502445398557226424727259388452195116116733324691403911404886669240491996847860555910233168135242276512004186307021481431329646572230811691194553987486511199730059732179583702734759375021425203164506547986102057183326018665727809885298563800648395306754901102921866838902856702402766229269082008983057695813408245323799509867027982310276603983137044312274184982483435491650285183621987856370815793922269998129623750867754694576880026233933142547623473611429778601089252970367902479958209597173172139620433696355697768321949712498756121411806302999566804449256219630170438520446623263857329823308812646604241309926724869073766039391367113868808778594286773797523057268634429245334105016513858977530121866963267837298214153466693594116417718500724117726898570190496171371048661380029278524498884773750463409410211207829934858687401013307156197694514945154257591636269015772044987545742167997419308591415883936076112250072840656697233207473375272031214658617600385542144188948688590779149263907219662723004135940687035755735782519353508053138175806271289211251502625511989430315141789880178956317472961681825497296652848013108796214399845786803314390522362410341279028130151261148522447899274019315009754504774197348668528127500258689981103180736055379426247073498532847789670245186465231878260573086634431912920662216677297611575069653196971425966212282096335480052411596321083414698103809348725622769258154727745188215505655050287534429623593928570807650385908144952381895880958255740021878021333216490698565347062541400941562324783589438105030906255930520702093131793827520338612536513423463478007342006792758521390906725099306216241210910883495200101223132466676132664357618924134231173382265351088668022969143321692893985736240255894089916171821187972327380842642714678053446641541139152047954887897384981783547459352493995676895010317864796705167135277724321388211272865268560823287008637073399362108256189358750556596688727657644307476404719492376366468692976775703991181138749830738466646725870195343999622969991337286521444315462031425989709076361745263193611572715758775177702903747862179860000819576713356510411875820002920848770011976940650518759540956091961748133524758242502989937428296664796794500114434670025732664374199201205298901715270886905118649916974797159753043721039645278229220264793393987567867358297572131300688401883577384769044953579630846611334141405579364805170505884266401137314850168183334056723309008092141112898882748497171825099769090056800769415568730079683914189507869185736643616438793364298312054694278544979779428865703683416780229177856958523389329901514011762840787635789901316120720071179711309084854390469904743707967858768139289560625628511258928693835983683009378253634593347490799364681306296298224273550514937832712251390458846288482917943694973448189755465859758888327979629911211808635927833964359687803761700662195917522450749968566992443485130774172602002925733229250930766781040529795084245191635343421413021036739573406264571443953635782106873006056740039665732268785708464322003673614901917666034578322004001311213292665242232594893533525332645198726605139018748836638992396352955341996931752886537738567324231495353498382542655436303180448145865873971363372423441365999580447662830978723416411828499150824699239145398868557792383105921255917939146248098382235552669236365231078142539045429807218400935322337863984580309841326112223807921566631419279266840630459203843147745220418428997784379837413447099160166320849938921922867655708212398986500911118196319893970509758227470795634088452217207079087721201583160123322421445075483988417128472670227818017504580105745064295430992683686986484055774364711920974013904525183996433527141658309166607481273972833440788242062578414590301445119217577764606554557982528315388191198568978569474985179133967944085808063527863928584194775668690156260595069316187541208833076994524922422132850858872629976263126365185808753857530421338141517074463382958387873100647706391135546883462930025639964831008588454066191337484057600494313403327000061092341392925914920012858530824485163399735268592897442904296024700251067188093805825725159179643073315447941478407434971874191047122192994338682865211219454238523786762160834019838329659624000102681028447337581980898916496291722193455011992819739008589190103632910695219374782300705813684097180675294648345291446382086816645773021836077517461743109134873720707061880826175240512448569119201753196086475812823942013062364871005859221659278166504006604015477263572692152548473831925618926443162797090320700841062004418074527216388724233543347569606659871433722775374452120437681971517610572945408158236967128837598903255215796546874930990510039940938293546393279572159974721375684529677572059733889178854153003083373471592460087941270959677869249569724974340749075219089403825095341431978561691726236016068637243134930401330539106074085007355517089415965671473536013817988876913613387282000135135552636854432778485652440414461127250631985257342675514789220534165155950597609802324786293317090405817134056200696733752480012803345033350267819009259218375451340516174628320790189899660342005367413487526447959317378889184960584052053821001143252499997393632141813337267016170245211257968514528587633639851937671115207092083509305568330112302419824598767855615691268521007502136884395625098585124723361059417173009390854748788095560506805446736180163081243296529079516199706510559549882727529647232833202106525840160090752597506569917617688860713041937881541485864840352028829645665668733955040222892257111258254741484683628753115225822265947329708804283824059886800688763613861754127059562803712416731399591577081268988176909639433992430783342817777663942715844170612660306816876166619149651366558797800059303217565681174125118816836082498720636250293288662240244640554474016142549331984232979116125346966147384172395766801634360382472603703359858042807152890264581573449158497895525679853645951047079825391435653141764574310008322512479651718725000890612895037882319418197858044919881595682357747343418333977753951998176665143265764746480034069129418635574929138190185543023132756273691700010380518285496217502984900131588495652254651182837470329399779425869081488502316307862096890065985532892054278524491901459294986469739990647750768256982138603629191433603359787271124700911058964827346915191320356010030775761547972384206449700926631901035713228221387487666536716618467039955396698521945711361556386840505517321097221668023344834058980564303984506146026202186177484537075967621220894109098374292863296788367097180948119495678694870526672399198601885527077252175492064689618079739391740399143025754387570025131204012152884423578854117452629187902773866466171300325142280905686949534152195528090513408912220987923475784421284018901287853889763558416207846421172643275268701244074252163476469243972322955092201051886292581207403527133466904473416167605873168723661425216952929962575466956172073107946979292659155310845970287356089130121497370171085340586481948963418313453883484471281159222845506978799974850785512955999894123850622095562630870829629279113299551823373800999545501763666787230318985141109153846711245180311516085066746944089136158581502340011577173032212792457372613998947193404162599388965332341285337225405810739094774036990636788935033663309871415819957662026786370782280569997013698724645871105337250846184116466636913716355845691686813564960261277173982910652250937637187729878596099565461183454185749798949070507893226926728536567230349641628588206769009307583162643826043774372826603061215726665635871038390570741556422384799672127273267784338630799711612604325513002443392250522156645712609844045458807168839869431171904765524873151753985298244051785905553490968586161468656891270585048042447811146519393623898277992946044916651325482350732139439911909324808786969808255460358621185763219702508083154184129032958635968250477271486457170643377043222176829246793339854595724863699721873616532597394340430757659808739682614032306397236870334516335941917875831961886743563374200184810925373214116212654777923612742274544241671036878175913879531635198228143794539894257013672622185882134390866934617880035920902323003912225422064455990227903822508222588925327030527359990676079866377404692304107962494984180697319081335288940061417980798893226869987086883386478606338481283873241332221671108051295755267452754494520201962400521887333746165000165632421416030283981928848810464705581647678181739252410869409373090402249305776491441121033629501360487088486702491581380713561317763593491255441306300722056477319278657573333734936243473716281441571076585176769728457372064827729702820462493275805958771955244558038594930399080630182153688785845656106399784496926482690972787968188492085495014431531165283053112803159402530638564978074366896874233288946962213418544910167107739717830200631310002827456997502163498774065588577113441543072244711002308307224983600828831000163301780632978385084799901872270653118173356611100450285090502850791159335369799151884910286554393672220525178903609725370682917417078914979460326864054463385796916883308095774554965243078241176520170619266730201721320663945471957328764432694003688076111193578179922710110075829500532215818780161402629759100230818376389647419557196000328638312229449636365935308629606915698477157365289922783604342949214365880092319200193908062505383363606232987256669164531088940944212786183720611666052022347277312460280421574881654174272125206132027054942041189689811559355343173979089710523162317722601524940451615058269049687504595160261365381761960465831503597896801495860567549083205648222994645263940554803290031003458620049415247304473841041527857562976827469971772991293806513717515821180804895566580884876431189908198841397714623759737302946712685407656031607034568526481537039989042475710494857297138427864945669367017416827643727270263886817012072974267085721403574325392935654515821590556173622545490781270204974356008802655628179245305931071389660746392647661253716757047163184884980530255649334999086270086768939616584827726651704195732096088006619787877152909491501054860241479994610147236381007962383831701675756643377246621234319573898542306293282490010297189106103677172431785521726349862947387614948854030304404854421688976414985733458812197810036269376920225579142337226583822778506182486821680509211118957832817408197550969814267877826207564416220004394339372546754027361755668045639710424374929548221238188443042282218645579377382054172434738037465753386092770088934847298587460570155855657945674360844246962359022824035103136292081781862094836038842719574616665064221681079107470030737500162281567337334352886438985111473397138171497926944118246117019496015778147896455575532889558562933218193408146729245487194093690095240140659058436637541853542771921363212636918229147162759485635215215256344789065239063286177702613980671233408762473181463961747118651566045804330852272864667051150981064743327095753088167069827499724782003838919907941366917904428407488012725880511756175370616134797134404033125617302178813661208223414093715914634412425305566361067067819860317207549131030291274004420785580622042100209605931068177914137101040193585916373565626069277016564780085289882493179402315427453076841578666416010257733042987797930381792961031520508579354205468227074086358724059447338508428159932793602402254221712671917595511673262607630246440098392458827194194224553568763500638158984198463420781655878998226693851958492428484348695733544628273589609636994337882519210447595230856654234801449809589720600617647548231829824172604559954809206105466216963960418852970869005675394634746122312749881043504197742482571409299049910641680638588837132963644566458576691828194539643632720680882704820942286432036027596699865481304827933834162456441814569613824629923483375400639680366910332779628333446110153236938360503744886473707184760947019450603911437052244141795500711437091729701266815105215439431740968687297901294555113481951007067600023506714629972123194744906177984283408753550658217703315181808206714523355144841963842308042519926707966312079698953093787735224579433335258309707914163700261984368159700069923845329681259523207917136113634193389031563051322781173950715605764581892094063112165558104221993096296724515619661253429310191414032460078093587090420502737847265874172715614798062273243875159535489570422499582423450462200943695740114698180810633424203523032643196902062826613493768645538591944224799553476853025461995804185279593833292979802829732606726299415576983759695885844093062139829226210599901575204427601788984101885302762063984667964485141310087121157090041659524262703368686628801114641083310889365960121953269631537476070565696710053900975791621020689183038544879176675854334307576393492043921200256967901150811552500042913295408874518470782011755512903295602348720367051100097917040746168607661659731086676179896844672626697379239139909909534261904209855145826898050574247838349161561139709950797679784365715583292898465076164664837724245050790362358306128273600919991081595992327281272178934034344265016294929323947712828384465662938913202878889762089615225322980795028330003721055422472038682586012484671314924970584926054179605237165038406697059017756440830270869890096937395898809853791784072321260409514929685409709304042098760203239143721277479130386116086446059710185987859932114142609072532572428359865068996318573388489656767938553943392050317536661640850990964654236840644753741775584722378887782103921239111080176233669881822046262092443647604605446874500652470039736836449852933278613352610250131408841250279838412983843406215725119220928072442490744232497029557318607475952223355135150322605273940727147300186816621634589600422839870631099513037248895641967136248204220052365502781988967657300385192024165739894571744195285888510186234074413394637603821881181648480477214362785677870579075428940412641176339627670759307017859975493619753428553338597974017984165429394459824618011961053128143807088567540733735551657205140257213199744318614181985596675845395822906347671966000849896731852810875462240995869051771755121713643379924463460818284858209251024580461858361680277716712693659283078049854069129315855055404356087053060441709454041735480136878828358959937844817849444420805271722298182593671163778378892133821085304726735301857934220532371090301987244242891061391038201052835032956080087408722721154877068246383941290979406581564477552648944928805327435381864860915170513282463678951139855701868168594255119577326356690047470105098081429167267674671612895307881025057827829502488166634358681178176699149483778239939552883236692810170319625243409737791259233688889212243742706100948506405108053151628498908278949320529975525469924292026317276706195564085763539579232846061760976739019373347038711977388583628466801126267166687119929991826501951212507558753011544521757731855773446745367647802808884670086159051163791803082057529823018131578680213833396471135587138732126661460775280522717428993917634890526951996916758900696375322523646828354819935483569162962412126911473511468545873309919888406899376017679029040524459556317295740208311004453507335247197754004330258489492180660475077699278518637496839717874703049016225805327617833904621368172483454543435496035990186759379221611061398668197556554245085524483873002681959206092590686963086835269827869681342077338398695006525125805097762779268425678461800623488755674396053725019923625953961784747077323304590149457703555300029530045762494335310020965876771391235331072269521768669624187101543520263083908441338349952037179377286100916830334270270058332748616257447963300496641432526317164221834229333159261931242985782859874840456607952845587950697677973742792421233272845165286573575739134198895119257466811217195022788699427593959382473363111097687898248817894406107332892464326714145949332568321190903351806328001612034129751201834693372574261081346358401427174790070792239897959138431784569093822545139347233427804423920027771575445255347133386791369048675565189414683835571238997925413262662792638827876504567268862769986847117071428122164994763373780077495597090331407823360338853554959296451170022056098521723833533123825395087146711985732414130321974959587159569880209170629939858173412050416574258153370320824437174635639823053490251809516595318424946647587652821377281721371323058799580503959453012508534657067462091871170389042951991866526132756504406317813600632870743847029929213543000373845261770558250929568413847089118274976325389988665584925391000335001834224169001552824489893217070016282160564511767540286810845585675098739196362480903273870036421198954731811212950800513516015701942440381957323979047178414570892992769999791298963539413875844859910240507538993357727876743470445452128056085007486788253842006161947705938283333052489146750309314393238096767740464540122707598756861592396090213062459220848972167344021508426048968904273989406693524799400371952418314358588290707031159800643432243463734830536770246630758932352109795137170378846460481060612683792003369216350340356964046078927850761846750476949341725242139433641018725246700090926749165157505898218834456524057544033339386840698927832121507419034457826263874224059415841898156407299375553878794779403630128357352098352228626858412176912612178564809909627986411559054884738347893998584192548241558978937508658553254126631129677550097416294167373526651534576861883069515469968729359540553704764551909502904742000257806645906864782135599585383018103073848797089598176524633535772286805847716567496481163598148741455712000719177294371041710861468895298911389335590949704030636485581097145339601973147392103723352037406313292858754709798012971624091024123224288077280161280583176316889126385089064165691227399903004920017424347773964108955339079048378301246991610460518969259286060439662576439071950058056392687129569739130184215150737133486377327068576452939254532468814925259406383560916497666571211221769654223159828714941050732654368240447620076331792463940910936187861357539665599594061846687099510036258795160568395288256530497306528272962267203821661992759309346381924106094620484411130109644653985541047438113037422927190675888722985474102274491794364329135278845481075611435755399177541730317255887199280825067574575679856261044987818248654275341077781752464270720992684765669320126464264809282753174302102567535269316884112926540832245748854798103796363216539106325379390880739682090552487055538835944048687406941022858536170983090009124627119799604109116076054368126236017573589175941888516359322945619424945439332161426824919864186630410710093271014870813570680973624848947534552835766143035859768097943054245989379879043399209515614505137276340248233326978377742055667358621402767440655279607044460570660823919000892009240260613851843703717305904417502450162992812255851882409622520588179105312042615998912361128985477815396136980542779389155077522598330446595035235214682196554040030549364299981256055421556845731049304422163792960940535959947747343352535239748135256065035379913160459487145146626936056432550808067132737724965705981491752502277998958339152495335586550408960108204454444836299735684561679146636330252778415763859653785952732057428664394420510288474293927691490673793091254078805255986432689768859286545737092162590972253191759620685370055075392478510968560070719902684278163548446528235089264105920165125798472702767617461207097683117371895998523733350119451826589084264515041947157222594772645794432343500078008285542303344149246180683371584921902465679494157455994644489964280862028745209497347734758594892553474391473519219685918232140146645435795903519639978089517054681974255396377392393449690110296523276317696445061944630317870442087919650208795840170702224126826475469264162741981533647459567491175723383331026047588819328466661537101067134652994390689985883004674265561786720024760568645095435034771163174400137319150171308119428828831855201872677521887863507070730801391863409394134208714890312167654407317368465376145616979860299369396349263018851349949888005172027707757013724189634263652857744262368576541003979884438629457339934117908978243419178769523167682476192670338782402245557671831435310619296714665378630150582641557906728656168378674634238493889162599886490129039830603755417334436319236728859037615340403902294526181117530076026395165193651404317048101003302732414000100793770033239336051416168496564130871906168524913836716616896649133660841334066756162237537196800856555329361932048031937549460977357347809961638935927845033816691043289582881228887965091285228768187788645958822334272630248442656542979409325056467247443790022561825488842234094912789701922099218741222791654765268377437280334795809475622748315851905718465417619514608733282374349848646256846019217693857036533327530752893547458003620321152354719249584358718037972214446962320346945368760359711421281776135938650015349803311429407278964123561249293809413670984298538468848676597948080349839702893397000248182335844977309618410607835348997976527911128244087364227840982142408450230085484224591998279901856344248184943923563474508353660597176392156956840914778019019187449655094595344073725394208874058556043460242042676304294393207314730421685822900284095165110225376728212396358921081919783186124818948942758863901645989934949522469702189165912966366598808506316710479043363085534847769388458637719749253056930519210640820708834199486099185751902219585185371007122582401332976251124825460431342528422164525684560679042606163166646734223729450712340536296190922728680903675925357241525884930773902032690659680881788664654148071125241692648584155801105220336622235545849197154129608952717723583471878564003743800719732002939479636948244031005403267029852908216144247482147247463184657475689702150206168112567915434996839358629946294118055542081973249586299202969192039806742979066752577355093395790355040674805635401004417463018825497063887637180853956382949123429974148449054325641181309601404244295466704342725326366719936073604054078661126866948889187603716644444642665929789968314808898852290700584568955642829672387943541562130706250127186757971570451696140519542672251620322022048000740610548480847899928235605169420152413406244276564037719347990149675874940306920461335848140722986252470793515589092369041568833842215079405295766167246367562563362084693473525826027633037930942017989557697495844138988080504464513608833700876986513124057502355828471430319492167108745938110282583522773130553472102837447258768058639979402764547528171872059367686050403980116507046672876321031940653489210639851082241939215579593740311512337367674666312392183046606159367655691301604594621077372734602337729003873332997394561090640177890392224820361332895267279081253429942835211696458673656645942041543461238413100911035715267184141463203373726874334497891363385342777455921742016568143458157753022405674848926612500721207682730177854315509702299883125426101780121760183991174725485868205114089378946124839075443583809144199320782958298783303043667551354829478678667351426274273179811398171037622024982256038879037117135021032432036278493466508163566894664041954798119617319581704818461743596682268314899465849593555443779244575614358802143253469903159718935039749203265996386440947433358646749373412978913552421761668701485996673611452130881439255059916328409848028379271817029216856482465906607326577304892820655185181603987905691727937451388141083249864520523736257894312158209071097589360876575627969904068821029263911023717087441608558743615626751946086130942302461068475199705312354171366744172474024124825171395569515757304981932803089499599041548841126986618375656692373813923694357096264341848547701525981604160991398365107200299057438888190223556849988255141887244294923508004633594102411641561986557806401221221528234685207659747255560075339512747541536634521325130802535785602487878725456670088868929479651315893417116383083124287671602662901062871496502665245469243280829952027470479578455619787359342665576248017874111309498495019142821842981975010039524591315016038957760996479665368796682742741444579607546798914460707645837137751944882226266553407722497068509374675970639917217002180121769110449249955045196227378994656612057643475609527960241563548246044766681681574359745223314178664513703917789586045273950032627567594542095297187318090123570391358314318011559646434668350322189791288808654978276445767006828439784100213094246906983343276306318666401275657361133409721956818723699466430247814924326254636583150570568358226988400649012897202656005993186530046039324963998509791428643379681980058491179953222666220699385092987577061949696890666528688676632568556346934034431701369453723016962370474409784527055022540067914294263909224139211188290598994189608666690214981145191290408795068298941382474775991836083107868628937391065141558183298187345318652223926382829478458359848326507947242560959128461348901004728980647332326613269194544486336758499421694774087105222062607556812677395091853897298162038734493022180565605134035057731919031061346019040967674744174987071500718030124129227087074189727363668261691088882908822937848953444189808459636245014008097947374849684174956299324141808578197390149743358176807490019140736681373108119167239783974868502458087899873939612750771598525642096663515617697704638028010262958061999210293527657480739092297774455699958393091154506180999365293878296308408489881584056944720506966740558637135693074326976695517641576949014575308490536616985525946269360925854378681909523351059033291035136374938652068006461879238741561152449834167798118684613320473635193350461950723005647061055932345490964069109972764823054859387919499226913502541789525414214437379860229296962534974681785214283613356163216517264141196807896978976323798368706520580048178544652081438514208619784530660158489172967246237595512908023092292573770596879211765509008111086179620165632216193162210482337168195116355399737728230556341925674662560806984775822021251486139067994178240193751177935547148250742579779727372587897313054599681426322661955049283473709880936877169597116447054106594987998725143518257430388077871457722432929039786646164009865922042798157720142816078068082653777407070060245475327090655848143352984007551704239283251878791205617045673829936516414451182719800660046974304698228120179292820050884100747941327380612712707945525719780639559786639488564139980906470367052732218864909255990032590437826656223503421992407849850238718670901389061952195502639108205092227036188146092097125651867867579404830992741520031006922861740462310637914383862684458626519010004001739651488947711603983698805847008711228600335471494347417687752895190454385969139235168396347583555528756241084303886592029246224939386257567043708859209679539179690487720395503833941930867441345173941328761041964032769031339730647727067531087502263172786748838320860043113373980154420011043600545766239396867683394723449545620637631835507159769021176944695141451567577789739458821043550957629664690505555421973995687313379355519366639668549647921150468033130125885834343899420787293208600806927220628531459086093094874437310403018657096279468757522730406300668941034884123254456510837673340588106745581037356767661375187799710660093957318280203770808610822503461632969647762376289172127471147573547225408350595995491681024611764196393697361727549593987075962092290716426454033712468342611319159771471670553038159994267444485811073583142387189600909538707650799258707706546450817093275930752604910993859602551559949569776106434628274764478387828581128142261364981585178696544020187466186533561796414968830647492679850377326001270507795864206110653044569972912928721668962288164288733779515341786246751288940500382941734425167257497811376163474196067162887935981778284997960458677483976269265159513416499149450310687910024967350418721894127966276119242939865509865923122232292731778656465424472988301736520896065852360465667679303060932548175366557347913313612030368785620604762403522147956905255344530419873357612512530562755504499739789719045456968618796510738834997706230815507695988759777196474466451625205080132442765174404607683445709331145178396391373273912319038914814600546383141230497070638415283724818794067508933360651936322906855336830480553128712342344259126797351382161031691748330323396024910197095667223270397456687434204275200000483455104936713220765962534074971641290067110000050947151805428313943158685985572844903066691309113919697927945861961536224142079325597663680607717344680595229740561956095702089822541585476600922517866891268471669750095642635227492915003325322354746015495688211142483180314698289634746366565720614258520094317550512066307317977646681286095988420700283126817075546267558754783402329279262565551095976110251278047406817872321279646337431030676387714057015577804075033402169063553251162234351193668819127975658122614684868435131900411301461151435379754078522068422887985321363341881034196275125374160428457405251979594002622563992185077832015614636307443907753384637487773716100191675844971704799651396126533449476013205994037300047608713158818898669973060074801597543876571780149582008415253498300542418950100686785717951242977099661904488610661345753667032752766557134870091260913885435885968197689796120295096628290815252362908482070208622541214110718619086665537256070835916669590874221806996857224496955147137402713230512810430918340843947379176744624883458487515393112249999646239247203828167320782568789652184458549045138816387178622200237155213002387321018801896110351234492535597995763768005872110937043115327257707925155747587249307607166691688275040984895070694234750471768872598801845806413668439021488711489448274238748814247343169410311346915075016025597408589741751118683248370913429720863102577936514916687198893656529953123689353684770790083595124304544046220282087079635587179338402379794486377611568464395281440979003495451237157586357781573015483434514371320408145060168356009152264081051878127539397127895707739106998917947769025519354821267941208204375617265591515230954925165848858067021354770255261848575955549625669531711086831332849023373975790869260023955074220637800771712271066898975725046135737915865972566663196042870729062456471163166116562937920677590400617579603074004327635303638551230104499545451209384586340529848840503578609323111268786220787149441625074376106567776906347964083152611770108849643307759654109092561893539865196479184541767785297701452779444354687128546046456287511780759778938497697036543699077306174301072223501788451007812759289995297214782917080450648540451215049297155800990492455098495838851713324067586806624841062790455325603838088297451838694010251709966562184782108041314064361138575556805880388396492527539494737315311904698723357325918960856539562106314215273686074345599015302756380083142944355948432410383577659690298290434332421567576072738352322413868552009158965806677205111479039546285579538252049370786160523781734795314708545424835259478804931424848690695781011543373771337732604630672635994372925289983440000703622765523816950344432660287814431593862701843025778509935400657260131905941738710026609332920220529579252873862154703713512240636736055227291894529799525935676580901952476959027095184489972002994701256287220124714649466583114018612560183760161486408292747147045039397869242624456315205996275429191558791134185080668973791844023760498821611066810711378502449377135402015567691362299587500798654856574764274903677480209050730513259147112170161259096626411100285274384351919381864877997886162670545875599647434567665038173583391000549605405059405134143379841636024868566538539205206188830683258988917509959387210660490107673197424805802087424819405400977927148734597135462054112743423777421435341625181539263266105281080156611829156840649752445375403090675888741877169074125923756748538768860781490589539362584147930530513543988965572528697336166319155725176544787692255543611704637256050739173277051408137330194919736091322065229446995320175410013609236171451280786070932951460106836746249163030441563334722737762303335617357869025747862832895840416475708152745696618024243748406452587611702462943720496130171387115516693196694385948082011262330108767948876435210405221342450408654747619793641915062002829475588523989886876829367091974741937843606969886809647781033147522814326854311550469903082834802969441587115720388502819545616197765967627838624163519298574212304576353117541480229536826872842989063874275384960988135506084977828981564081222867300650658499378146048134364298489361300438295579416620979385778074587350849171115505924340599214864955336237165755873386038453251753908851157401967128359389223428909679777566300880388627650479880192232274536708293495335430549810829166023542955203768246528778429093047230775838809304548862126450206938601036069592368737454314989625081195669866823340442990168892390338991948774851738998609465185751549371140718547155246358250586120524784674045075097909769323889090808914209339659672726807585647116486775651458021345701769876433015809242642668104127786918907856046143459330542481730987641364709898386935987574226413517255891682331672980847269897809478562989540814277753243531893287493990416465958728993018313760660536278235220258886463795233237547700272367779941965830767420614704446444143968920820677509054722504022985942218289380255751456092642700045820332975978058084339440146524526031953189670225955816089963092049005233011286086198299501623166992003505296395120906927001778607134126081395104102961958046623567880757115760204029290894814212874336283532507711940721994657189122819399801324821787832791869266862733676821359632791021132641078879706015006175172499614654461344747453249257194788151744000426789010024356041057613281188771049608225209824750827215934310363996307092804493090245556521797179829944098620725642546686974394321648216563481169300327513070779023154403821000536779231827172800845516685889596394354703925717110225123703610129145700455070076377749626026036084501932248348991407634320743172743928662555554881222599057914698107581682104076971437074690822085786880058972919275398809739695130522726283096012319970538090338403057214294687909683403974227117471215247537651551755992334519588853201810230387208106975596859766920066177313217334539757881936690892384736215966228716355959595289789054666146486601027600838259100861383264624425267078504171490895391920668495390877894344211064738431558279215114372085180238483128039405308053177687330835666279030257855242072002299096179680856823047189185437580199518701911902032868470321033490311874630333950577229352685460432496778785905458205900899544282771352393958083887558146947527240193348557894854892949820906011262438803980074982028767802800183195751359489101659594943872081175217532717987220686307842374510656374658181828431177734568931709686540218497521796028984013784215139500889012819379754654520772993285182817531792152812666718724323525382853511681389268775188912687632435240662402064736393872232253089486615828094124742782513547746629383226755135569986107594584463017809619383051903703758222865180579778602185788427240339228275715249846299772603581875877235177470464085616418094962660715548540834123745901730435262689197256323758529484352455876912419747984144159505045487841417914156557096919644147647528212804827903464033221430572964859243125904910448802972531749093981380090797961986052737888221854552349700759666522656040114707165879306433894143345147931282848360842849014959893750214911845279116630591074854128809325684739561870830050854352930567739008730926976954140607533499853750549599475719766204908105649753213123340914076643364451883048431994846813725023437764552763434081482962094957754813350878936067690854773201451609374206887516818658381137900958186145183599699186408035694464421573206556815008926344992420939167998047773327470368956112851747588278757058686397560072862670692922722174511779991760256761954963825965138505136924900532558269904112811336260919566249110291941744172397604808971920594585043366125677417175315899752950409816536587359944302013191065519489359535425552341806529930684139967953908937622720407331082063792356250807917223006885396453962330313602456563581572927770841069913484900080355683657392770980442086657814751980170091559006470127220523034226337655636792649503743596889485483443553040977453707850278757656019271282975298385146887051047139481589849489515995097857983143540731879004938842570059682678185757967149184208188550426457616513814429719565021407963207496288463464128296901442131810241179749281066894591340181515520334599013352672166962785016372885741379096423324455652381473191045308800891033779950956241912124832229838743820068294719622465061511133074846548610706203196786254971020556379512796760961842529971811671035644675694760181416163559154769177649478149195551615782832052400997994542127392426068119259633872263250082597064487638589274621463305434396811665858542684141395375140113447320608974151822092590085844891704555797449730630037881589392608705277963633691350064396731344272319428179656505837271122368355667601828578718358901044247790788607925837560694715984928239324638038310905033306164193700720323711019024918639883196911305709108856825174183739147165136078580644515699474115090187003492796489468167638526086408890312046135675422880723821181149542613756031330266924209583226787213903181901741547846694644908301608186122406997129770911227309559399632247275411097605884529496657437221144880114886760004087128829434587606947772587677148807627953565131192124324900675437769651300983278727925942208922600964365202277181812286712418962282426045182586600993315092246883256558253134191459964774170768386418261911718937076499293083087574447173065016687053295792883087929837053158508869070690741688519425789396306769209461359269391768418421838186870616988929999784524943609614677773997086443847255874148939201393283773784267791815302478270832967978239969574043877518333307488420628915939662952173028745452645689863059079051759012708721290966702518887444274367990002405972649742926958665390605413659727359172731406442798557896970111842425202574101017526291382150040309534388882267058261120783818141650908453366964273391581836764569784046194620260135575329903579248867345898478733458400538020038826672292367155708061192636565880864566785702131254828626420474940605552721879733818540948697611161451760639809397746813015621527324858472218695158448247262893270793650532112035654926745582067593027703542589699847823933532578416001153486097041518846122030708203137350312206211980434115469465060965890523179806407375308351378549821170011088650890565572830977769838628467193598588553804951410479889867030234105738207427115790477407393834155246924467422646434766535224228671431955505586891762611933708004414928533374280081326440394767464140706658603075934270412539952795399256812330762810797490332778361764838000138183768151041391205642196671949123556669177914871671277448900983634674139245305900888848700018643395755988685721243967753342621463085374157546487621796666254604258995885607460413020621809098610958950847338930384103580141872406652745889390439090032688009855666766252691681248346075137650784446676169369183106110800060353438367030354952350915001852517294160679788898471691465269656113535219164656619336335261355882035076239862142176098186202711807257539954785301820327076487479865506293634505955323542279955907048403812184822971934105995855248146387585027794290155587862007907254233264541828174909579531972276864061761226855184240559408195759147905089319758012562375552646071528419628113248744420352129872113715657926542062023978842961509639545896596430526851723616365401293672722675544209238556548390341568519377442353534148908269874113740687063608386096543892394819273540339320806107274829356730894274765570991729338270492260190170999980712037140080347603125114681139696204574615495418144513905659727492525037804963496623997099161454433803180388475278247072342854073810905909733410390374893151292993203397408973140512280942644196951598869466034126052505829899344019311389958643157750567823452202125068981143925718264187822578762322754355487773922516138848584682727802237150466036612977501689295790793424022986884100834111435011719047198174198846337828468876013493742399822897661359405076728307750028809116396229796818984714647311329548049477052504536953164405369907334934173607369350327014757683585712516235447070615022285502155527213628049466412087133187194580108107391758354796759897562170969287241808530211138686459332401052847753237326987724480719937876847977136489521453360078267568009216935004372275453314238052579900666529852769144522170197375632834755445127979538866696400675565260399322589528394354764514185486864351677317243956249034310421266387076221405205162526480072868550331970277777485800063681903424265109813755506809929571593812451127548061252491643337037354388408101179152445777950778629099624942933337473497662840632325857847887639898986448300507172940778985681631627181805585272374739335939286563780644481331316652737956914446771047233028355893226085375918231957243363372940565665899915860165733021056344423786141102827797118446324938324249970638880076859074692292307732418882708133239506641920344792796120862954785057746605785048799648916922041943713147072413488740500590915039177050365561567993276738796879268290194166831576674119941745849620032043745332713511093395662942505050599550273511443518160450759294537669848130851917728296729414237920328250777060870370933909725471308815196336499139971353599786751531546771784387371247626524627265642051901957947495053805819210666888453852183784811386328318011527999077276660201660439839416886848667347868862726419729146301818142513835620957420689716925803897171744183543130760188695297478732279657998966986284649536678696650727042045342164162894540331257402491259775858717119962516942554695442014903770754323281975776454732689620812099799685699275691793841117062948729341175295818924392945971061513090294583548656973070031552141182387911834141625694060272198003159627776878452342519020998835356379621551573496154116874196440386251469397607764063562896156083488764328207193083383794460051852141127440488315619177521100995046408035149487015087855270747943793778080219298121132402189841472505983067636310175223382802793354162418322486576178494404009554488808699041914329065308019610482444161217023833001386986364666940101635696034421099957339426135908855826117787353264701724736803320728640593822520100930475694944408329601501343307045383773161201782486669650288985270282227154522301981060988919031746170714049093855680290887318866111208525860870998527335882232721652839742700770633757675282806378957066919032631137724491439136161307136113321890147333676264229667300253826433994093909310765656475093701545453144585129393413405828728363040523375958643622872836541469353871842116000607746532062230151535201323176059085258953533114902614387413364893721361928680362929672892375213303758474638064397157130056482715283942219351933172071914646178127894648519827313115945335935969579437489533096863572689390435322513128757794624603552080785953285690879955756758660115126552451660123734411412495763326348043148971262029281463108563197291283576203770422063166758694038374631648451100125380519502459206192043323802970889142426962946937440729745281926461498912374325450588840806828413933897352011896777600226273749830768728471003134904845817279193096780413059733711260334259215799404891009381778781799066244174131555243036325732867066125322482932429705767726384636239624193938258018510585208151856015752021534112550811755952624037908140432544352047544188929450415546230369321454361801728989097727615686875761661082760011872330292804921297326148144536266583003155314018751910236253236436973276176206588760169992939352914167513056284744765178647064532928148307069833068539057294213798213534374602365552627442821254259015241709484419530565109729616683852922605112910948878761396369878394709289272948793741475565841341586761562540867646723535091631939404355271707074662171199208515527248691359554008425355616339802908360951100794304710964439565678221125023967893472140807667533390152468987566996997831598001731376623696575643674688046258007511876941682273220781583618416432939998101093401776451164207621100591938704703081314650142900336796365845608741019891095973510080077001110428046143257420606825863758549500993415458923437667477133577405902202354307290035390316145997169666250437229281617407208714013032770185951926888752270486004530971816933922794826805488671727044795820664158789313666225732381573500993506417113095789210921965772665150076577042992501583822589962861095518361900513007997806299563984436068659013574252060653550280549241462153929432683368791094574779417427836917807025861423002234732111166993372038193537390102672497487523198943891616543490783367893690659234939910064519413841171076452043900720384858105578501715228271072410023451429576403176202753099309878149334692105560692997582322868956026139518317882734306191664611801598216339460241218542905355659140212821995113754259325285541247763470920151210650140285838132575748109002883517649735919125935405280269014114609520746377712691021881907148716515929884965363773755077216622086269441631099278505594021739408041178115703757284378920019436869689614276286100501119983366199965645898744691863093980217456336079903682701472280053451733544309934112599282936028239011247777534101978291692190967207940032637180364158677739860702735267738142820497790554425483836557648173664609265008457726333897683769139643370628491341894650180007296165981763414406931033072818549199926235805765987976386249363799388182137855214231609199578782255900191024160608745499246903181244585489297183151763582756107269845263636890886446922423852361100584000670928242933929450393822630890471671885392107144818735241143259417469509806751875767506104789120693490362204820863641369665728808247433938116441647797330980318311653086209972621706955732447614548520030916712568690921138250597687795840951546283435330307429405931742608164921658490609765216568996587891054593585082350415155259625446646357158648213407243611205622126659273084933362626114654627839116869251743077207292630518319253482792509543075475643924983661868935335817176564682628590400887819016402167950489120094415093801694203344972161927810858357419203153106473764712856346176949384370635856829906616460753614424272504955265752113362728769133297899487426626170391165135039833516767855233465568827665910273780028221188728891248412601157646989727288187603993514541059471873486227633058579421073493686158805638044327705847814561306610353748990439435683441671942888143216272075547671915843683322745446017785531361339924858249004664187784269376690433974774048506429800772475103307235915067152950308627231473791653149148240883990704508645755982251743011462756393804157133654230592364021983652477851472659556112347184200809365968519206416707340700252190139417264005116302589091430044373592199641614481933847957057022991995676702751690205835124325224760453395102262644854044294713354030591582039046021793715487300960215815393428901926335453717342466858072694339611810093916078577247946647386138497009733479358651259572533060557125920779532742778278813506381183311925548218834339977121963604129308801831157157430323177676895923057368233464705778863189226602877826169272811417821246200174761373455506475769288362740062889089037353505728870234303044999229109412941274321426006091665709153063251530742981030155671626590081503236864463073190947380225975090899674555833615442629583784102429567840042162790364852395191045657487459787264867080292671043188239834822358040109702238035629989320152699295811987035107240501060649315416805882556048960913609941320483480580654698728930010839656823597234939716407052184966528357496296884560059482697277945311010518115728496672978606049994525200813534647681284968645305839080858425587213010821301354482132736766704742602824642091199316934461771392404922486521152411809759817117855899432651818153847120084834626421652986595152030649932060656797299294785665809808863869264317659142882606352858676927261159324458728205614055680335870959407022843594557379264286526989058727874835984827546003486313642997713037420662120603828597735499483283382185024007883359590201726738814070435073870560210602110833627450637730172221842167570566009107421051294652952651238319753526477197830141738308186007279033768352670937646358557986905522307435122329107868078972496729047072340845659741536215403080593542107846819879876860048800855404688029436530864860793923518796437421180627177414229900907448035287644321825767231734674282701319083918370276849236869796606177443696194136428515128772938502097969796305997486874365813936757690689259926606482318886927862267032274168099447116095159659180256337101294109359464510440365345064089507807704339268633981588857065203046764628174461469002827950195909206651585366819385344512646312006833150676569332242754823801787880100590832281587896704864676680383454836699654381792178951121129056030983692579322465733771445595844147304516008381346347952516433747892694877892838786410760778646816531090370694887058981780861120651274480478743285458875378602868651238131683226297911404256161389976171180167012232862497266391071166978526821528172605674421260439776500157365865591324966371026463620043411247280749644504182120764838012401374015974324176172232923696228377840911510176236590105046734398783695499608031060627440448526634385330288197290989048571957069347185956810719676641635715490229712097020379768829801751855200925440458963896286293810963694536643812533605945739773356952453860681143939364486682771527642420954792959554657577848789438726862005082954384196859731616779448377814484632489252829827420574684425858653226026861053175003228880592585727200189195533786534230294759041520718440473125635661967116757930511541095543758338150396298454779558491231109704439167065259396760099023709972035531620164499651882512969516797147960152571044085999455650475400321917183170751995447256851499084054336848900665127875308590856318164334613128508565294686709280543815072414702114004258697233073612880281677298448148860000283299678174063837336545387049498818541095119468843858708435409947573123622224542559169414096340479515967127869508555775260579606722065718282432214116569018868243259279972121024012547748382080659252958939419818224191741155881270606848858569842404054215492650864310897892782793270067140326560836576409893112806687991971080355837795849997702501012645795128834835045871744040802147492187772990861007738871135541896971399208430533691068034148215421455141263016720767966231206250258683759001823745821396765919248970705168587396895584768930420503278341811236318119091420515028794469258406830879553561418787729320246064369191554069782331177220973632361703899394499824233316447318527389591889328263012500132701404545348558850208574800090030988518155119449231896476119777049735618407445673071447345481446376377882037675349713438577422313561238664519479057855997090502672057639314080015224369059458835235142199069643686601127098457187222457630201117847786573296871177040362808269587270773920772029327233713756666513177551246483228680096257538025457904815447221893493289153174034114102007997704455180337372578930199552789054747076415969541622032964800560159056277206331043403842934040616891303752342725218762725214068205433313161936857627051615923282970561011701014958574620474963609813156982707479231904171810352336382200524065777922228965206788709640656979659937192890905068598974872825599810793352867258879972775994190906808485463747813019968424335700923995282636499199402793853519297181939935500757218344637160855068352380059335615332493107525193147643563153311725936467271851164278661187702062829964563452270781550322858780802741663170282808639460058197615280974631044122451992267468096427026123116216452905759350384654083349471028169021752569546179535699546124994703701280210783312930617456782839362289627952662223614987105211869311315583725196178075534823964099246255468416426752465651423395205806864602961664664503737156810135713778694238142740689083008338211789363260313471542217196463636720551489482716835236775015852755777825263913920598977613656322443856424169925037101370767471131027309101170411765359450701813423169673723617207478315796657040732893747969122156155140286884713168530476658675234220833845687498796547530165268085042386109802405040104718410279674967050522081246914457228462033726428032481129720824902662418418270814537930941544619315555943508413810396154731872473058253330711221863685966426593495583755539897254498659224073960422829651051735302086334316843764737283850437539354902285463144737890401538630716932505711452756422676568260699167141539234803444732002171117929151487227533793959652016719987001013428795899898888471193603322348897128037945817369429789256602488214026607951004503922895510923046105512145875351864346685893093842304656758790872330620407463458987869261991886125196187333643430571517131736515863211338705159815851224752453774701723586639342941047891933577853747715951547468237669638555196721322793374525514965246990531056220045466064464764846793374203201555903178232132714756835443589382954744965199221559055732452651958065201735446458832820474200333963399756048451061645544807480204259609223630159570345585171573273969136582607618400173609883384144233511743854641029612798099688177548148461571296442754606524222089277887731194801596810314204372820652222745739800465118587630121671808334430749909873804243895923432181634562195985512644808071240017939024448273786286730209049036901558982437972934478358034320686304259972825565666957401685134053223136634456339571206631889277044095138179366317487860126746374084603501457247217459202016975513609608318042432740347026669850404307477987034755003639973952585190945761535617623664893265894121309299629588020216882527530963534156737081936551751980313833592975435360386325681219731364272714830386480175241877468248189320057932687535743133697408908290775439206317600309645621233148407171478541465247634746787014417879676980174887567774060478280319263474490003867365283421937915377161010108432245083372541846750768277381253148344391465313742701829022561523681248787994377247071426151941168260461086925922311011269575269536478988257346769469206991267045371374157845833907587030421817244677844453169958148837736667559235077335056588156103283548759614105949938149250182961377222671735222070371853885781728210124816345901042588251607776815350517239320662765820204756434885658714747315519356760932234535631014171330007242358157088330665353535979177566054182761030023976645383794694510646249028650708423853589606462732463365664251552985217930501018088567078952133572790082287869287921433041643299205896207065197374299969682566416059200142687603625413943745149149551939910125173177788232658870805753839072195006138905863880464423098711959538543275264122316273782615952867921975393894728236663876955408920187716359909935435803460397910995928454167435617857995905578942528959300580550796039862803484018422392915081653727725526504581371211220780398785825562584763550764710024815023599576047262048871171870562040456367975388262080793145047611758387668199919370803325346190195948131444676357861150128345612756453046039244780907962817176215903728749752672169675271738903153066414101249120706236102704284448304835711951309389118402390578929509388545209776777158322315886917263977606811609822370445405859692672453450890397383529641469243624123629756780292531907053545043206278689086922396231440757344486072953673509087505035417999020712295111215770380810926267121635778436636096928258657900262325637662699876647764305992667522201288346088106702052901413329701286830004072882498287396850199906586549596919515155634898432516505729843686072246367618315155240947000804858174675734993425339730618881587703100763425551769701059740665076139159145986038465322405798555318268358042973537112318797065768048019268279750928187098103134435629446020857755126548201517054447143141594582075380255645555778542951672289481847334755537946843040004998430518498025990818864739857759640496078729635356422959872738759453090871191198771935616750346409142602161163316959547305507265340391675819933309300203913293566254138812148684978957704357662612622347324368194932129823694761482962545135856966048771249047628662454946718574584360081912059115979799120005246835721637830885086412960594524185891099857599928257538313545795889061921224094671775265699944993032603638261493298024488217067870739812950122330810054861226427106771570183406356855392520662772428478742662579018011173808523542056134069612206550006516581346239984381844942869195860615980971839078656175343536841778624589147613830320667160090743676730022846872807616933258404702739916103173104254556698060168211131616169664348939780235296338552019041927869453751226120573460925881185017205378133762351755616839258141175840793919234367553274878982405753215473615915598468391230124614010587403941159462716578096730169584972845162312971164379801371004944930015408205201047074869131492570534251056540878950289709876013509258039873745641224150854014134309042333694755599960420684109196688502459929837816849274198532897925287684861218154122313207105997214242537454002833645421906475847790426917193935167716258051012597498741088391243002022326784680088802151326849732937928521309298855107352477418918010894318386287837375270449398034924657599282395175589913933351298908368734211278719773300077387035898368336051590367445030800233626886989193999565895614737619146339137044377195789080191197082325795911630096381332148245855407704338061236036442671614533735002385830885612521362105796950518230796528482834736901349328691614601074367428821927474595530174695728306277893621690415041745791415783138935938719323553597328213282089733271927859121785972839499623694537716765155530960927136165156005146878001606497141154995938878418296538587030849939337063243948426374552675771225373729016974877944184762576576713739597449221109553455678206523842630880592167244181436017857640168464946683154104477120235213486852342322483823037057944432158745820978705173418131689971503718879905967448005714161416742123269140558930801164607704508579221539940712262146259307576213324779110359179690358599738826488707796352473214769328520224370032076657360230742931469429066381649557992224050431632866651444534676271962027852032950854378934778477209608215970606414516001857740854419897606932156403674134129665476966641940197571995047941477438089567302392436779483291022417592711970396592806993632225164426071080104093101115007617386208494500790631238408675560872220276386927561447251079038119183196718636003517338758526641095365506938855339030827205191116462488930343068114941922320364221189207430285644973602615423996106540177524877311855472623062665439023072245436079872062354111354066426989175078425697911904509703350928165772097224790527546631664075738703398691374784019512426250978901175066367637585556564135535160053324458705122966129300458115733054787140075263018586032683864523116196258275686237077859017381841690528802542808439225333530714057219754769488501133358048370409607329203134423355338908500488860140778950175968380514304792658629451524028385397350002522551158519569342679607294900487669804082044945537126691041649468443608835443981977133223841628876461092146610012419777098728826380523303734085753667971690369179696889690389338933929935472476581996448642199609064351355748580836804154453350318609101296541222350789163515180969623125110894727433747775137060245669049313872343275284742793838990876770715786005348643815200825559521995277677399948956167607450312474269652453951184356536688774961348199237561242393686376104011491090064357867006879867522121768152638048349632179071946482194948430561309084259884652115467552780828672723895640330619267335824542487440279686704886194729000771865524131520609702733727371943185169566216711138668792587593838364659531632269476288838702990054044228762857081713918459301823786740333608111740082216615719872770143163265634580591998231735189292479321989158606513503587338911056031873700229027110389895310409814128352811766673324542543417643909955854320952389195990084946481337709670673976447139904944412101556459442066070403611363281297585165941086395639215269073047340001636808800340698725499391853972416586401341077850286956719802110410502899314573192139624379476033537835968189042904879872463720434802024057008440482254338625121852547537103645378857761038200329204511413210572296323074022340171968820656712354560405866003255849748473230176331482774275843400888755107175477496791118711148825609030630610123136504201809585797314437924637936319143402892553947435784461380473843172355330319804733232021110327946195807663666750631277565103865771794568154083684610035934158185537385518126474715391197615893540045709843344225890473212373333801919429079334832535025084097899734626190829253637928565987394197154801224563921849502859547318716330020051353776396135403934426561617700657147618990014896578034463697831814209157383861053136097942732499915128620587745649480000427442110883747660268649677892313958040559132004383540768975441560613167866242350572738458862756041128753794184128924398879098166411335503169659409528383293318455216366769055394177302731366543702835812370960633940229309098705861964318848854623606852374084868067612549369370040904443707601947943602821813531117042100357919852460983904436921572027288437072613248285217037387062867096745844681965992831003070286705817511969480106861737663054948170781172812776828528958348382584404191661583530393072682077301004957356759789657919447513995927691850692452503126913537058759371636314706862128910251076793754375773223942052540884269780392661635533902157199823459924928140094861720633100025200455353755475171411805676444340172047111505450319286955070856922401781518989815659047316448813599669441379337138182335339278674736006338391663021723364079266486342224451070531330061223450458133429907598658143722710016197548274013468540779422119672202290771488921135902170890376056031447058824505543654673052673613827204973209221230410858053386305291584555381039508550189941026929740835756839156597455418172909639742139446804316511072812921635181590403267727902050044194834135112184140747986101139843911033296421064533421997282413069182019982111609017585293487090401788125460005909189878604206895710908265063711535131807250819128135311031394866500945795691518741305648223984882992860871233667434892242499946876581338691879364554100954170078410486555655790475099427978786175806757581002293059510847822584242979382254384324320484736354233836204674409377669731174079982950734049374286574643654170295506826626001262677758955198285871547181016750768932507773135284091320658715070954209894614999542525532265900977319797737358513477449122363404695157555404638658808926690406463976723080149336534722232261641555390393838910268097434771206632954671747633166240513976149540769895570523233598364820610750385029553570674894282272975210770660328491487991211524175001378282091677315674747719426436512113723998878583253124693325538273985024807237665051370565741670574428361077599846453253121774519303693563013907153898897961256427234246589299305849780817232062905482561517865292583353104125091679496571189306033512052755958857987232546152829721336913288651279818088807249338488902672506072614434579125055918826069272225678082926928232009968003380844564600964734937900325857445851347250984030602507116769937976396239792935632940532224685148497212807116873609283719177562407117168138490854233863088063334640560046414032810155854307935324153491047825877301247988191398479897560431146613439716481809578524952507805960776933399964357349973142314822378561870301754713314889143579099563167602287294176263047526088548080947526453312128670103393105412536332991175822382529531978435394099360473547116174789117875077986242883221303700858888690121601432569715218945799561494694259309785819426381530954892680777532050817423948002090682417904649275170912612551522130915714761984938609655675821046515474514214994117865732196866765361114944744863574105902831171628927054060273611664385659316429166818667938199381371452815347126044245687248248996417364407486344243564968649048912158375021349839327484717701718932692529466310614877461884873796834078629359567545704535761897548555629842082314388834675557404041775834790713165650910181081596680916213342977697009412667903735771083186091370564020269537242895183697908841045091359761727279941156980305156618019685897615252325315406810526088080071917128003503122510414655892803899694510321129477655331655219748281517568433174265519802882514165030985612764287166629245615385192067641789882124979550323074759148084609964447350011845603383328915251856363005987262529317615912692546391356202029242721787215611035346142422168994072214644639217189707587126644154370925883373146040654381677854199403450906043784475566555540771407014144676645474609206121610069826762011279768356408286223427272396095281856492528156155034840095172643388276660634901315316948009812838336273723966792115930158604531106674735689222835606086037129925539996739674394789354520790712897259747021462078848526817101661927728449929114861172879043179309125043805713550966825179875816003668495801113145137791492728056814513183252979336633526961248455184734605653742313708514779547947612938233630455357707258876649011728473370649813167522386907697686203105738167617691002503987517538475090047593880580796467954900192292686138891013368450184302672980237593736901326495461297116743986963933558865013283548915636773043630684663658619461829638875990736364588423583521452659450892127975624134983404632260838301906172673071030776009163077054774202857081837692801908604611241377015772144291890252902962993444491260063342862333291696201321372249620965898900132693195534549584505729540914475330647104576604904974677027467541033319367890029811624510220541665792158243110236780244811882068362880974721815439531137060947695650130250425114093075453054231963433190781837651450056973354927011258156298851122651898941487922597920056614473373901654506537405358659071670566908932725311726829314090168674069490133395175923608889276398058746688314326546219446026201035144720424632728825946080474102046680437716412056455033081169455805893224658108541147065066094764385034743663173525208193233685865364143957322306113050274461303415605442741856061778806997619835945629349311523666550648082798318641051867783887680300733929880392509380486234702321292122243116996405058495302690621992616241531014013889103025061701086484027962183292962613966249667448495449733957432471292969393549224604405887043472533929725469454448217927055508608312375275604087017327645028032071372353766209244992684898183611288614004450175607897324099186882210322475245029867957674165198074068103348415468676987221608084030896433448579017264564439296175217864862164215097585699486014445050964788288882960220460134431601309395855382701668001386698126590899373045013409260033662613408380909022104625667421951700851668392973837811484098174245360006987614053866119307266159684252278425471063420486073903228657126880078894167005039428536097837297642566973203176505781353081555295057830160744781075920764347926011242996329149723869560829782882983963512590651253566773287447322520258172935352080254398220401811251972350355624459191160230228116627378837943019846597220177063825355870968637236746649309579658214143424048894408784078613683238789275074124207101929081200678774232373322920985241773086310298562507491352260349136046856701219865483190258570539628947799549362185456276336635332498560571691445232572139771053091642690727640465341377624889214094335376759994469781383809650737800839450909647722471222773379002293684736240609462848996112215237849414818557871434380572729357044256209703331143205452575658173181247646550575659730231815025856869416239288414014659326301514585132039318726958927706166661816788394145073141543444824366656360877326957755901390355993667428689664033333231857825066996261963067150089393715128003335696727494217040786740582530152264246068444838800907121100253037941334901789397465123854740953845150796510726420361645586966185577160900685488923497286914985867815879444191183951942658791306642242837470178515247348119915457616845481604829700407313248512423186711009630691222069744423254215222520677056869849026782517002678010211111433389209548869558331181172851317082165947236521066670940300030090116440835546993418377789173541780065159240892356855153335606613180596475321632358684162134615112749277980096661170411954984331984372047895177371109276444701828140874082044158957107354143363090843107094389955960128188386925371471471920646232512637912378674012260863469734815580105360577960122102959315057106248283345550402622253247969512430910173589818276088681932203110644475335359893196424225678513561564026248161714663965994156094061318105953383203238060764477684909557869965868151437112466668983655708829370722466223906895494190007405520648838199934873314305053105605197298210484368571267868072660439200773879141959717131544834299701006945199049419931333722700301442335794819619269351681330130251155150252259593825650406869935219042364830903152540293778197862089622080382969517555495080066018557219937208923651475862457047989876006865150446610994492629608423131692073495864341650424772537604828554677613837222200655378312120063000770975244527076773856729740285562712639124506327714665874034038548377173350964101756234681166043031659018887747520612432505824469392118687613881001946888372701866492580274607041636739149398439663453622532882322552856723774768170570201332465035169804736697878010019077162539032358776107710730380401314712451507892074754193457294939481511975307400943724165964543337696250440644770748387758939788594593008220055117608239224549597986568570759928006178412944498520513912510181905814258983817927593499886796324176343324857117152567815321612415511159269806941997428642569979206512110014985953398567460750186890547152523262882691338291071937953891149073216880109214532942620625736265131525967028312373557005680444410418957298564659614990378963171617094293426461517052512829466325309659603897819582100751342186538104517894938517219809364913288852297109908927387749678984522768211124138941357780878934724455301490827746195724468129844162705853133941291987219177913471912125246423854393237451314901136648040905825398749258198147382857737793570923401632050432448916245890187134639977746133028052502146014991439813641988431763728263078397674956740226341792464084430404987056114732953253457143257726674558550784955795475459061718185948227504621214592084038082039866553824865003371897240841237510668097786533673698948648342443378125541799150288735826817107913672988413185509867209745827443063869988592426461484643226229201676475988845125407802790776209117832688549096246219900143059482368641372426550023726273586706587796850502028873194846358564939973839011949043464119331576583856816241490046189990664178024578910088204622824862041921120009783071015318259346325858278954050904869868073752060446356691311850076173756794378047744612417879876695902730008464490148090120908535272886815528679280348610827813843694745259885728374965194411472188042347836330157866480814036119162781710432950292085505437556626710600924068215318819626951041664494734678784276652913843299185079431467428838758831595616195370769931173382235869028149748678833795248529253459390857810912759645612277775287311042660929830075167871560702755112135435890103950508763840756795853263745965320368881156530590335409754726791451110298583960142078654720327176525981220392494773515614383787046237356373284282542216641796357323570582998278595448014708549735449545119757282268932563068799750695449304885012459638481713997838628329462209379965965367661002521310254936368166875145490362256459936081136120910920917511399163994641846659669889541601571453885996832732372201901672251211031142997267123386201351344734686607379096095026117619853590620488765866025739119121400866995726373415652214684473766587034018234207772643924770800937633118344286979819726781465711909048443604576372542642845933800987686705505640020821364523086567941921209680432012217398504231604428212171471893429909684768563978171129586243372542779087397258308215097912000590973741228489451550202026752686466617826869321905980069527338940039204955288945034139747291800892601782806692815287476725237380954293276356195404682305585223832916490113762583709708517306942084194097962058099754995959268901263881239084557114676756447892225286958451715147133967842432230749932540594575036775364892047835536107559357561797172149869275279513143506339665193718218486073561813932763052476009882523792593853445641910711417538027074678958440167354836106224692995166817730933698655380387993071371808650586003812811686735387537944911484174859832237094150364510448918269574674615610977796285416448799259753098304060658806255999397702025322759560156518881511284781207320973916934411953053661957421952267190978483457819873805963140400439953255397358500604345531994017405032627195787307094932903005947489240678940698090092298948070053050153591282150645664321879429008355013333680093605081891595228193242177945510614107170346633955149953155998824028859105297490781283221895530834528927506729080759830349945567885561649536098237037767031950598275718759493220164165571258197459593026857141202549075876907212214819217934705197866341149861091667756728511538710185203026091599051125197079301680801809683622038704192595914337102038847243403382509051880611133060980364410285034698334756682594366297894170615826311365642334733359569653373831529297324486068554529867521264186654934414319529263649772032804287311260854471136793881908048917503645963836517208982218167424137313799573319446092890942571053449899467036391296875084840840986547085491404961846295772926348809210139854282449789641717489117014501474357257429937129928349302163859910499688067440061133889091070976330080355580594853210716830363257703920001142424663307813293849061514412600063880382235686509896771941899943748519418956223830075645183065135738561095129645671419444509638606745868185285114723217864030266278514401291679353340385316996291508736678526914213821483333369129088345529938610355639835711359191798162340450391440489929721447267378677081590062733887415435674692954930751980954741859746275307332926514676887189098849790743380816757226329783708925264167452319359792809902760000310205858566702301181192347495334322959146160040334675134271537690900609137063230926969150694941855421806898390226697088874124067950729128275848272530155754670488858135705174779223285218721005704559630956999181675757364184917722074113993132785031325281595242039575429575883232910823514104968784267172869407345715159352769568288135470081625884051984233573335321577156974361893438864426397764094514779666078511475809606072484639166845020296950771459698771456584367240830143503484977717977174093252187183517368435274877852224012925883083712740599055950964635269312641041175040635113274614555761346212936648756352313203256024997890278878918963221160728810221570114653844418397776697051825526706041672433499829093252922707532604510286988629371448412082052073272437398518843121266224727288656857155127636033430651979020360853524593652169468925643738336807520132336798562921094230486304857713589241846393899990474219646385083927152314580124264957586643253261603315319189067880758762270994236867588065654811494848777947613378845415001115563654372536693284557344830402904282283579648055227181565295828787346491603829100667788438360199944340949047260242632919250882288282077052544394450296191508718305610723883208665271850426469431190878173939978140329562132426803515791267633119196658433274764406607504539069634859037611171112393375737338493391163684586402190378143192831491995840336469531194606304353313513015603231103935043111277202583953595682497068299493217763926416113859044627927233721159085596203437312902845302491875441557342772519207184267472574190939107333147037679543334507544955985296071570593445395460572364004907975033925604962083874261291485669326421005402270205043546070324686036190503406298805699659704353884063737110782124914481770392131895133938931501241424404153309559713644789115110220475884936454314220940334441874482376909390331540431901374522260259032428041170170903576658022881749925642648159218242520709001233410823143853637341406616703147805653843011199153644418650511435287843714346369022853823525152199995403125202326096182572257814999040897374944811320402538118138074200153340654493485030538748579538330788083371034116530057805015203384118256727883234226090371499222091835225730251121284117095119336645080018389730105670896862702486233880562571481726293066102509137563263994450569765135218274161287370671373437233949364807554324124048796071152347895209440345146002909150850865508120391102779285114963023572962746892045278846322380682604864378868351550978914233660219357479178679862513898416010376666120281333458629331938138485315018954197901717822586194676029746558496956965525651684279059985108758338742370145182703007142556345307647628039314717520416506753638195135342152475456023388878912660755633366091509703939835105558301787264238603202300398313959996567994450463246251730802974409412055937732890542521696442447799163135761626607161822150290107481496796750649120092428495038151364408396396568739257288795742780341615618353065370211117051154599922872019371884143650138173484424161325090384691395364388917891582258965822325455557772436943654924033539663114265792009524828903319481584040488731896267557247638461344949371363345813696187184137731590967173980182180694870128607108241127231673738216315391865791267529661109668937080727300650445769795357782965809726036243895806261327230110546346419145767784012091390994224026095410433560922494354654806949075444290943985054437680104947022272372371454010182692366600013159360934936654671859967777413657588825704463547319413359062983214810844641139739445405170164271573512728377935267542792991402320851137957799551136479647125964645418229687733165706000755445318284254192711224602884160039387993629157792888217057494010692919607833111687032855015533397625971525944030181448759254560632553026869534205013120944631795027170102701075585451698978273589937006746041788760217239753560469191213846018182008181210520937236446072977275557547201440696443059230190390485481402602045993505735938509407715412383852083905275673289903263220311896411456263472519250705752633418451165448427025013163810463110140125368580124599877453070082532166477132737309248664952486964402706389818332574315230517766189222915222341272978624314125157894090898621747552547287955376275782731728756950133283952986647394014460099864087135590970173475892089237349013293642526336265522410692616505709578253222972578501132211423717222768649960399114361467213701628468582821117780596257196721386585207137461808262666899066922082824233942036520204594259829192834165711649679520610197765004497711485570381359137829404236274516500896121645808336281052518522117151653762363963558442168356829849335624055015219799075773609584528855604335029781748133542781118544245343055878173152906880707291930635968637841859738313086964019603619205077568674061269461168069552311689651600843305740641447984642660945891600071212115429070840009985682452490141938892684382068643937887328588600470170758615599072976655140379320408149091642292247028413661898883473111437512072373854441377313103779179478414047339322473567423244601167376594332409741325410286656097719257064251721036035252187438727765841593955867076632585973417564033514808849973498540006477402050487987706884086540071849548313357395787531417489217800174458649099474996363514224842990835037832397908120051317120565188809498455046192543546656040202070251815318817547619563066265321520227563494671703701629747732242144047324462270796035653482802148951542066040366666080141060187640813754905071786734053069473776271808826496351748568351626695313003950153069247417721574042139600588188414533947855882636442166406067745251859561211593093822978639300963507649166393338140168998463316526309859829537758173298131718513074173691694237978952701408186516880154730696250774622698051951428508437558776396145865104529927372082407223723785534608266257130942202091739743453529862009835307929712568256851197461836810441620313140207925353054153886275902986528188745520986270221241971951728680772131317996707667658361353464709721152692683832686773515649711239995857455599199711579485375640117730628497421796976126978321398784730403020582812858182838044124482957129405575396005365048083002422602378999905853402015846155654130680536080211970933913030863379133903188867373661498772667239662653461340794703034555936026506802008131859565097992297104354200469833381781538645322131075464286644980928862011622008603147572674194019856695873090543407762360125557475298686366594134899592848828199342874224316697825595646694389533022137511576232697124482462020594397382303293758619484762631926238937921580280032287886673503409776040779069995231111234146502312249570695277246600507878987433838218559624273876079781604639240609895939054637656455019086489928423755211794636121859950402485805657598067957952598065092285344410288154868325098701867356760495426561079533897428903697830018518384748288187353514010557412656244547738041629730035508110997217463182854170074179265585867662675169823163269985451155952738677657606841009165264022411918069377620179887557793691424523181381126344238267753616545987898741553028773821048236165758175560954137301343669605495812521928869676275351594669786047883533886839131842120757708603966124405317556186687326161058237911316101525674342294388475637218191313228275303412845280139919510307272485479096988924168178895911698955126357765129650397687351490696768802689137848362184673876368147157447023914496592333118664597693960373964210395079485359441355958309709987966590968472580288351416323276159076629482436642025319736485640515489375616923973661582648549728533535321249480086252311252579877226277652227308152604711152601799061355592686136203292327358147452614127602058266377736842728846391129318574494471564657357006054588421246413550007696856505644839601284778760325935715764179819839972342906496864021187494545079548914786970100941854883145693514942956113562157585375783752054096401718720859727704831076583278773036295568682041318444411636742009589488546481442176660617344527722847104835216749984335113029024217318271554330977730522312756246719074344238395241298483905407971721627689575423494647840592068738131998577585668535006025777151927248131900406684475588828426943396533619260858596107186131561561268881932279793579331382191035829696362267800419236169848531974917725019544181811242340781502253269419296737225306952419689153940044518638092888035700879083559824143240262799935091919312849735272766861906771460426454192664200115055401066323031999575114442446375547719489436042791588636040617435335259332022356136736679594876816546958748129500558100587959218131862739011106709149716310532780634796383151807502092596540153407783947199586890385101012532388498500708024712212724582430030114856139831540288627222491892636166976287527325102189611719367915203725280820704428844280254466195577888597481008355467384289918887256388191898690915951625306590678727262791618478005093492526914343557088209599279050103644944266976037271223596822065559016395778419642293619505447197788511075516898134944871375930499964153369622085420984475816129066261413695960155492029304641652864795557539918072337518379222029914554028117179723069027872615241496588469776744273968750929180469573028475815783458914787471892446086360324137098582497443963145248800778939215752011638911262655726801150382361386959005064093416525979374935919586508308190476652955285124163173773027162498326235448787862252599597313792453110920088361154396174871040795273938623381901117639880916463088712244614277602660147402895475623716147343689000898631483879112502099897196605391816618457802478967956344851978411134350001279681729342829766716440433772179657070774592978192077461423129587849089511345404543181598670525026076955281818945451071418312805751423856464534828056986310521699728892516579118545310129768532211044860445401061644080852880727096218998944701118310663053538092273579708826840048088968372933539142957398327406767538311535048989411597900848865426309531745572948593741752666249070282074905644103162835556654948617377278034347499700519081335681895080268230003340271887189414828889032346278237618107974716780091837797502038938258883178334893676571062925286247225685260369686965431666168334341638305174011418115793694616815850068397594335425620670612487444958935454132585224247012448590133794283760417976444659513448638243779972698837958533720196429929694191295334868390924612463351376142279575027405354090352145599777543414319824998940708490621626664454237990842543386396375670198942848813220012464779258047462724402058927121553332508147739994043933983487874529431864316110136308981380769402270787872500530808612305392608251848117227331933899822313230495128345205317918102084562952053614016147362105943440631904899997149441469103690000980845113762655705771108550259893459548937166908270696053457083310717980051697032315639970039201276567558879463963251526807707769982775281688041859347755536583377841621452540212059612863135611786916552724082137882380596517490426144584867594474552659241690709814268327067858792964360196981098661502302717723432050939217679623285345609824279448616060500769218738983376650291205930077607828415489526817579903868916741002997488769508011812945835078262452412014164364559252022894871050229751893816514080622288317685582699871424611559804066891878714454624938807341555048788759960169495213046710948092793735131325329380449789016692304943847510587300945286769863756236773580435934578883419355251512598278127103201177978622949443703903766214051798519243743047441453365452878800872998975639179223642977995032158150866275378108167728353369092060327641644946531257822862459365946192870217922774321408865509429804103981921645049776023730664319315870346772536004031065943935576716711222733624122721831185752790480416503652072841911447842910051723019264946863706919910659418325357596605744085460915252006819673689267121886226165479641911899381328773644274470283663426626223853203516799143784059903615379007265897153433014399118174703940203316773584638698784865626327001550734381697201559114651228811319301154171096938063725178982593159242193142044590131273953923394661888884654547909760867004724342599974948402676154476696756135571437243755993209691058890026938364829258805935900618538781870189409371768879267773732140503042969982014281117056140530550426784541985138273554959267649446301386720796591646712169738171807416781751449957568527132931957113369945414242298678927629434825630275594027247223484587451744498262308759581510836017287884137346646258593536455977801087213382625425452945048812979365793401958804167835141393827380264403918989143463254826043723000849740279781866069384061663936477598887920814343863696425443430492385209606233128045974428473762007887527363556720123625468797386213222373172369361212295393155901325273346112011200476655040178258904969363526017172561024223272450607070829866696133542800042230539083840794799136647857152810620892602905951761866282763536512038839530168621204601173518157802592542779621466404925734166881635729008783636154135455457095820517571693419547468882511466684618687008085159886682847073841015607219520655378168858278687488497359623377076202063757476857935035999570824447765663991224708104189361242761391367444282020488310202672211107857424388095932413881356110605947276234982638905250965372047499230662604884302059518551321597707855569630615867915942661529720892718017516079189242813748285804725240166920081090988487943017271872963016846506752850453547413557516599920205605526010333511372170161600768349607278547458624232022901576836531628625408543690476916845200426498741586024675500675465950766016598692133946081556822864588359787640178312257772208164066222903836953366641959836338655910923917207742644569401856923598027526194263671916276516337571614304599287929121162615942230631419646918003152460148753041324474469482988794819592745774650787516539989085329923329713660683239809675056933988664911196135353052734593383200402526036488130653720704051661748091238351487170094742392817453365580005064011388937609532687862964278395895700399068685564643322149699648787828725960447256078734487072226506380102439483264662632635373491057064633207538203476250666360572428839267706507103645826360579064240660040476921639399259362130035257235392916300293739026621260483992322352430784115369640837207474968274288316566896542094664631184309857871541450076662581032482230413104184076563770841770647170031470808137784181080785107167653084018513397951318951513933332030894158917660436369014166173304748380369392800565968083742577528602764540439543137297778328128255999406468937551434387164855501054567509393118107168545925384966075656908975373852752008261562467648272202759919857588183174074390432416543767804681842084891125881778182746916835619828592507268657329498722803239211610808862130963853755197806218635756201433208615763548859571106266323486466830298626940390873177294397368862796182975005690108599269116116844316817334628539476705887688102184612679794795195293629148374499575049113422338368150578277687988055320273258358099137065969640809171399251235038502019362240362505732754316380745543002887804790778349585790293857630827492182834806022156989204689665416236722029632490706096776888379771838640951716106115959549621329139496542688207344660115075731316534030743439346885295474066461831175686549104958530491659652400947537811717996115064386726377000777023108956501522248147386933485993347195624320583834438445834851823570673499526893253212031058600161488320206279708212586989661661397742246493097802569465023869443610599711243812319726900850166152661710373148670892498875325491801926444904760259072171995682676583904402267567755066844361145975863970852544512288976378137184128233570269549278707329670676847622341102268357517204486679908918385639984508408619002929823732122646066036353777880622055706422676096364580553291495999796789166638602838928115558779536166958032009249403323976915378873571670627201466336888605192868338859168508555108676002878314140680558967200556708057127779255604306183397558351528568841185105045524472466137599659413693617388472342767431038662648051528487689111166603368575275571432637034908254230681367300702833591608587335222010798465217315119098717795778897355594346857304344925761162257660612117716237149340002045255023626503916936452830456031755846248281893285216455229380363749399388145693746283793806650092245534034518616411363695852130935237950489289093255931294924723465914128111068876347067100527833597183932411567579918525696551717528561955510027712701858671048042418225291182119020611997715683649680240749576694269370622455449358878309406537527603941122699914392079955870150710566405725116984077739316547023292522605381931016964171765209167728460313287623535547099282190093145995060248129151408098639241254305135149304605908235704080718470493186334478044538305027581385273458512254337074971563356641732642879368806481575095950539018505298497126547531675082301682129565029968202354010946740860700354962948565343711494950578160688949252207186848009968590406614021028432970372894905559050414391999175493294889423980474141153638744489493599649256658189699447694404946123896884636349783477995128536610411643870395610645809632970706044953539328682128922594440190892546416273142445232793103046996424460474852292435629511390929705024216410241913450214429219083471046558129752980400363313455246372031914615007633030585681091448453488305410979373932361465764415860924965783156779224897670794285158586368547528434942928688423657875848034308866698027990715291124614744327814679378696960799883473337893124854855450088962038225242853933807498707804945675764482966673373579266252008405726466768352769256368238450300045956328175577534285688070806305857976333783833560780480200699029823231612761789856704458532597754195045007436433499250949104764125721103470475957682790088381552649091797164375380991553962510972201301020945293828439897749164358845060593145160180861126342598200194292459178839161765452897666902494413550093648368474620501095361900556330852299550332028274682832815078282996335922983471635061245827493730909079656544639849330442251902828149530497434684692309187511718124383357207022257179048406546045881665104893084372893152827273667686940842969970781512088558414034646642453568827208632494800675925635469550473736682720741953385017850206427653834172639403909886632361268677717673633467666411257982812136930501100877578587308306722033879095886810256417339133939511686975916772604886980290958134369368686951417072304774962283917733813692058276137498353622866337632854969139148855564640421437152952743410676963708970539579641702011493402080508332298470662493210413684356208219099948892092233916791085516805841229822690057886525183110496790001343531908786087186161888649908823755932986372244655240211816706360356771409571052438025887472706890679298426351670800208824209773959100730178374811327728334757628380813555611247534409396216697283995450093180407051621297785202688781212747695422742458031023455745900029860131137584817990279249325168590443375520333612849941224985869724277196859477528456455000426042840517057444662448774267925942504829746856954875113439170851936501449709263046706066642581039826162919324638895248855176489374931807888400372577611108707593507584218140059097435899226771739979811652423278366694041935312738919760450258476326242513660053123060263541268651293970197786481810927167749566504273032243554938543535574140265800503106500391219160862936653051675403327096369864125449581058401182905744383102466089415713719801260211423146681089922000147923864904799465262294273228351213544148463290676932251912654372488114769064945779157135384269761688301281347798271373370715920671929032382408559013859222927240372146818153576262665236477224344684500162265688911498535463044277048272132656478982049289391800806662746361064325284733161227603051472476996786257432099682543649962399493797618802626707008748658707853972285015695892177404879511438174331107493605573973050604666726535768443708946947556307892992833074325738844056816075143063578474009903147244268416519183586225809325764910072942475567656159141015182054185746957911198225426640144378397463702257856037433063617512768356286526866254422256158755145098538132598760755743790303493399527081103168822400492352256443638520084992939812002850842118405094697952128349702978769725372336749175050074746602666430267191193977848553681652813699926022969400082396994465674660985543012106567196839596886323339570281717921882119030490675612174011483163451361894965349852380776761956578757616937391029501616552125844484081496542349367912392558586199038308787041686294189029507129659927503370925685380362361063692164118543367603604000540420625977298902097180026343622746057221100523604409483420296072660291286544502109854353484569445738209360140806332148755411660428747200401809077860313100904028856731064304342995053273842078163533638287473596865691704023175027237432102126841625942455398717769573188641706129338082086841600457979140440288499617202218149429832738923618646783215325949856260751075297072739562027975824632354462612390877327329140816979970084441286923747955396606041178172334214429900648639344614571019657203938107575851435623053429915933822347390037320790595056417990917120956068166268075647960371536884109932987416153916864341077892692763768445349519008218490520613616457841188416261670541737649510175448796225885006509219417844611089845316081727658391580951277322811940464767154123750726539303465109743665574921161572226141062265128692569010952822668763894272827345261479087278578651426006046595684131246467823899863730758685635557305769528285248756065130216828510087059677966536562215460447590833690446599541527944647745431371912264843427450906638584897214817687732370140034560600459160731542418856707398893820442734390371904018187818807477502612566704420998016902343282352038490719996879446684668942333066895438233551950307165530820749188213774552637215435910043133736348285761250159661659020024185827844490207413125758639669692005877441221151835838107348186571646470032731962728646902937448224504789662750437127022700431987578087935386218879975000675660458092727918731403214545976004597211559986026050008067328078535866409870824184964684990677676056644456969467579962729229038337379877163635802218051754645966451215823666323198333733647799025196137359340293121201134074758465396018204397615994507424212332087177035229282256003988902467131183665117455939797410020057704674797882857934600919317334770464628074256725477661710316527222710203409774752347611604748313762572276245853378953070989323700034921038598583783477895976168745792419027557071126357123414734067777013657306726812290336809311562779365115916040361741745716748765957305459522193350632160279278476733485954615340581470517164103232617287736849317965976565049784463030168765883949941863491524953700862257692785739141765951745183252502058393330589914923703571551550613096949755877780437668876246750656793350484636057177855502377809695099617555215134153979102875133265156728356966907430032258766193639390207070443062826725457555763479627168866897259736429587599087155598476033325535935509310871232136433619452808479126454356660717785129482962587107980906908315941595071334554068983211302285142540157403085457093052010658149990980712443092412522872856544015356756372258265993657944545846318111339858073427888068112870890257671901614580149270837213598593232079168532443088752703132849900668585252401555699188631483617253499856387431685786413670378545041887913316823450588552753015828161956506304085247045954765255091846207835130976569677859815154667496471806139941129182766409957207580976899342039013049676753919368027376363088923001261207497167500778112734583983413434706856352030401238473371097450497646994023415580719761131496740326488711254012007763489785626391451929048742979107073162710221846597825150767819822463349000609316814970770245064152616973512100454964009207865720896241190877873823818047014996348704458894977273694375526823525245270111870999716485595890691662181264826369711731192296645443073880374516156321703793371295912427908548621888240996258503849755717092613302994493503129656223743950229448811623840276169470601326237651457316668110150276878853654422909872211528962917570756824257222385206474355217368677496285004183719583968311807566562083506034226025643456745376290653632990491236511124924858001859831160774043985660838603549469934134703322727668414233591474564901467658712648531941753625505635568372861009508000646704554883791029322109703321895045433613400535782011649835678128971730701871297020445086395309670510367863383583906555453279018094467899943619913393377620671608754791558844597040591643563268724718816300409592790655871859757464037997811835815776208005701416787013498494579154841662420092980681179016127608069472707649812373816827845094299744658207749689450334470164451511645810207254781898050995274984476342963768078678520859790075768029237476781353316154285028164146574832469231410308872600452510396951755422866767387444678635325948684634286581245395561727018127017792838761394174709563370487293905928251528010663124911339154599461214722927086887093047873482194766376150662856714629933767193406846977987617324202265062555338765991410571484988892845004500785773449763331013841582037291734365834559206227959172984536863019664254655903393407571365064564692127148189033567879185759535488200500212939049550914749184059822192166247591870412837095633004097624298837181413470229755754682814395947030546815826522024257292739776059347144516319444627968751837162950642443842281192171978459026293874844089658789244148989634430453002602121115111556160317830579131049540708627717611454427160241434594810175076369812968385244064199979657952369924023001470944500202212879984163046854290215885563556583108263557119250832802597598680701535841108843630180552278619880953095760853853567678401524687651352208545793468062803756395265170970485339133715250889715822518292901933996366176846000761114953107639280900517610402667634348771787246281424865228248876917514415151999618686250401518057546292692769101469548818829884681295567911831888068711481718339280601829065008123721320964635631110399107461600994003056888165919872626197173178038505150821803931963508075378250558666685035971684115515686990954316615038141145019292472866604652889826057730545436143665573426036031970550889574499012285281314716550813407449154116585258799997330940122178671516634791830291092455311359892197608405709984247727144549660845339959312264829592654939729065453171860348947424529510211401585190593529293110034894932933514919416994354732969750411193800741873364619897997857056490299055323559733789054297283174760813306438315324792757873682661547172326928525735120107780035444862659549772771775455126839525809669151023822045250986511103031031240434979410289633912267059359426993918085458364687140404621753299812674383982234950197627292920075895037306382968313517620007218147277826131422680601369584873576343358701383621156264534718187256854250344673095940967194958278175665668771959370361690578173515524045493528401679026313530892993810589073377857444820253816340628402500594944153060813853883742037567863272706932431008263750612642603912423212498827622779577088394439977113942389903380559789890023352659545315591123871276082863289624610892048365778850000245605252904075650075249321142581745623785439508223789176016804316446642329542732816911732589203016180705916558346903546636558869649241524904060432120559135099639634105631921984406893028899213965164351738544729941744594616038867826236079021858106262922150709533147810928168287670874817036859821825559864040516949692933174797751449353596268526857643700438119091660380036281864470515923264134048718042399629254805264170094748155216058256293369634723613511200868722713937930767365594705211172100852069675114184706008020866338482928659648392497491550257097371879878330234969746527736270422427722988863721184300491040737375542668795252200278868703525750888058771947157210461293038286022483646018924573821390291138027119573611255221664857875250055519558518457264056263222464882394352960679699471459871140348086438132092740390991013012247022409518629102532865104531885976246348018026672050000317909624570261364443923482917480755801394530308021019433468757372727725353077883576464437636064749276633909933219247164823343537040091278734612565111536841009328847576083261470954394249511483819168903508012733852444940773470250926027411591059910000050583865800553742048126667657934091372847517493716290431260879670053672832036316523671156354818094044426380631739730388545626282309952385284096780491226723943778863416950310474504804182024752744725912314136688698795526983087128734978850385281342118224875778433077659224309891253391273409542152488708856231214516066187442799267509392279474832109697274567107106908063936880985528692013773426636689080561540245279951679689899421211802212034302526310637100466836642982439935931413435552361168822758412534017515329695529853757144340429524049364391594516665955307816390420652990401337032037471559066407923777089032698418591128242019663282533223865963115629230494013246657766307946801201928884502005301506172126195019847213754605405245182796644739468655211348616879050542249810663540233380999308677159755322740422767921731563760949191383557326871619507929332811987348009976555693261967799678715139794577421103690855204148126610661339451485270864654915015092869247183327705771180945808685036681815422428185021146359479497932055916699067487100970002246842079998220192234823300070609921590484207148154161737035063633791661874695032514247130563713954950543673084942773314586921643253674054673000361278647055914088791989588851343937709359061132054574836090934923195728622197038309852405554396938063731276099920653518845055526409035652975138223612445496736985976872082625514872680021068502410687809461214727132993393738285176705510776821855740826397053118046824180987145123174653193548480799567482241504101319411298733556288499133746174305674852204564271237497373059706919124620356218924259013486953153103468868597392702559338688806881535763906660179569918962958350514198099399179938414908779971739696211578715495329105465566586156915372810695747091419083041863024017238312481688952422534988451020988959739719721342092085559618494061669107718462622465803850248600916863171352957795969120769246614505257935227932730842002848928786269120189160679156147883529725815348139517780188652012732748592619738698050683848463775431796532793509138123114275320717025730349912794917890891388542411576806561201869949299167110485183305510071631642411216169142523835242483193822231443985322633234389861145995456043934911759339595482116351754544420930802084829968693872791738822062423444607688484578350000168509585542485040953018519747919086062013146389272878505941723475451875625332000075172633360862361756871390577389946684624912570944823342014391064124918052033608663333546304746987259981334903806687294398502480690050310457948177536226862004176499320252869335537835568568819627151675566381066300392912386333802501598465727367584623842420719282956707400390092490403306596424937865502587455723114701808628726388141174664833882191202581066154874144136135647784264958745292044779452043216871569763477210962356051404448666913807336694282518836361876089150410603647514865735343087081565300556207221760347459471398423454867864354508853330903557718776285155677108437160508452370526532345630900470702730217793610049076388590006444014711971869061640826599863588456910899772406143943490994430141171579784196715415762673048892880427937142289881083526038414743896671573902731307568963967731278687693582307828225294103873044078498038839810441919672381773158512849270796962323651284551547759039772545831333013261120358400928003922189107987818683722700751648112886904454219450240475672498368439061299681378768767974425262075116717959878677668041057512887142235805813024530855772414573161245051181491811472961181124566079007076165648358694414579340576643817145966700534776364496307327790720863353538791853825340878631527002565593525597251033192604105051645578210303731723497463013647424157534588778148622171416023083351542157262769979970641409007125343731625158772818225400025072388622761066367422556661140841500045582205172171996764896134949582504593859293654405447400765182215731919591207057130917942100539755622816315668618728397096429631765651833754606329082702866685327529962406943444828759367742885535490161960466831802162898372163726354590010289217017501706299587979058837396054525661845981188326384589927776981367390292263709044914415434342680892893235810561252106984996421027709200202602773605240671029193260190156207485310639415320742112712925850445097486949352475898790436441352040445587357523189721752379695254528220119773059206448267239860139706616193070717790291798844393051644123042192099112906576993487128824822160670592103019881406901366361715631560013401472434282493142639285989255741301467636872702805193083800031545818229587806291458800032206324047329604738207196328958007416543722416963931441265868435944669281741452739355655674929752053803144432984566989825086311965234928721005197119171335441519314644790668347599748397106526712045770081140348063003654160533049317595113649078043056277829408828537661255632070679703352116937346622826671220407203473092985086555307613341891536949609699444556116698864556430659958111966075403608272865974394655047514378975664465879853379419335812591848534167640117399057119604672964530487000379853940265762856758260964249278861915737559188298704034157856648757100409257326339610007938781284703111413208431736889257800725393975709832483520897241002101668075951458243748908456732269128606710745948209812798849570396519735119134034319589635895290402194185458590310989628764197598787397075332038516504572693624632520591355743426397159396568682928171305793867624636432365010906388521354199933127727888729069869916908214186023587513316438878616248668346947324034587502875049152367936822597111987843276551060621029188045019367820613590381622455860142012595704909133232778027898783437290665399603669045493014335929596836428991676526903629129208075238858149426525289672707943298631567652610201709693799664143960324888406027326505565018085030412725678348354747643612218438257131805183286261680764263044074298029040471813173370305437887506415418400676615456935818299407118991129910568444915527592135086854225199118089656237943760695871815745589827753997612420166268160017783272489162904313729409624526851818659250664454290302505976709384995339023254608723904296187337283657442462266948599316395892900466718905644092126847681131116773245267591792565759567406107429764774246493110929852869349617751326271345432006864154186719492221471678914290133767564207678065089387644864989765299689822649634495447554255921336091974857848397793320720771060994967683180680225995986631526743515149763125291584964619506290121208076323501530816779711633456620987950388632058294567077832048756124093074896062565328657788742604001324193074862722646353431097375293476580519888348315598899398760107234617897538595011170671231521391968735065036487478854965186134823321072569440558216169924063796756138283472213269454241131958337655602300460006232897590737210368930512399605015804798928453736429086912704442077284182763834911768392179830490412598221748132043126909167491039313682738488140037425434345347162656165198873040440912455997667361305625482549678587369540052659190877875508230956930052175038113741681098411646960688946276877031541911368846705979804559858413956901271787573902678095486795896639655531690671175269911325562240608485107448350571667310652351721016003562773569887991528276236683968007538658896087791097355047983616816256373957369004198759719942396282892279540569792296356718868637262603082538144352970819786180809863043114072338239205454211570082315439855916984219346157366385710408614447308178354600795540276821477877580355289605424043970342800853815719513223662787014012918063835848494821056787648473179709096126977172974444382370808544918995868127587627163064593652530632947289242505240001071573901256788312719771414727062551471222220679540476090423828099497028221026165007664595077802645645218638385862470648929665000816249082642958566203347051007594161447271652261068755566232247264165991692958152931289803541473663312906828439338246029682912863362300049826637380372783450521884212997692460433367613479985261903566019518821442709527171776512309765674706323141916308141124311042421191604333047128928749134852336871293180530506538004832948430637911877855524005863292137339621836148824084205100755402418581665293371498855822726039060172936033342624876434878363478158412191202257313091015098847542704328142697323407356654658596891348351668113136307917263598657275461645850982013373320604092469732781422549377772825412610010599994859760797465451589273783340492575793347607095150799676703727254381689944653675364255332054432474355835302619627060169819234018628178081965776372988347133098828290926902169352658639083285759771924827298333509096191902450808710057040965854881112659634047746838051957843117664502465815889430848568392914857029361498814227327300864278645635203508166981799772305787221753486011551431963016510537517458758321253655333543443893169733876931129580493378329165277085568966380777355789230553216707541310755547346774603032372304855799913390850227220794285519139646941203362133977836568089581779786332292084175248991068936952959443285386254966562977556253190151452707379618354872326896430420007765371591272290188178489689010582792969207783197449633033260239497967586371421148961021791224673869944060093209228029318221025916463334475223534340878995152898259256340331017036240402239080450303409522610117436954621553118572231161741502727266744403152223278565397166908955898297683640048585063360402735697393133907653990517452907248599590219649361200048751824344128630064270995299077327782629552916867757963713467223619236536697460481194805759687651519096796613527772375748301414077370803489453586606312947591250768790490166724507749168221563758667293207505148200203992704845077181566529423440871333182647954625089112229849953630586755975364454628390247874653751402196924022683892706230803519004291175088752292945198124029691845651105726738744087568375188879606306955137473566011522205640108767465527527672927258306468644341355746687269420432703328000520181792252519493701820393999684607419075147366368533691780297615871352348067888571611883684401095928125048612706893081133483037639264612165232545339425886225145380914866079038209804765251366595884651792169948524957591833995892424468701603955237140208647314807384449843779936413170054883645565626741454138172862181554696219285582914068581955753823804363863743699057966951298029673503456906056548825042682657142941662504505542342610570289490316783229344819312395023607312076856764884087288272671497858156401398991634524203256666050252181509667275616186800053300677069486379269674507762632560941801327620127323628294457136929453700036577039508394114180204909385476108305448261614621098060338017893405904331747015873802021772512109441975164662904365701771147956199700110606934729154208532978938008855367355247085726138130091683243972685872956138452247136533891707208484121787532335567145074472780617352790167978801024318900976633575672760357701323148326663422727616760235869037435230771217528906701172962385719653453699416799018309717039744980246237451291322308521720746337064853489324297846900699855258356558635404534924785429781886458501577284281010447867880747139515239836995612455506496239453053926099883065907982986314276694216028145142811799824927080938242602371376621776467376825659042228505995640593114897950928746752107203883963683899018823049341712404896963332721786283426683878248320053869096900628439620646306497270063422942153415374738641145941778147539591071428959241530534383751490618022838853195708415955424602529293286562576003483376550468778443106981719103721053269106731769570696103107502597299798590623313983246237150502062188033237271305202345169514705095487494902923542343798140468508611762393418435954022613440745421985631949162813579684349852570148171810180259400541792234316468461768787303293746681007411564464099799383537020582916330632976267187176240981195426998648020432634738036430398670081409264929504088524681216646255847940071464528780944338594335687750629899799646077519608313824011600517653209334448729363861056833471581235342490502310610863610468583790581885922060789252864157961058836733796751050178173462075143540840430734184635413471427667860725574161001916393688168945164452090052164263547892378010327494241092389406988480785486172901853038471183973816543447832378018646346701153897454001543145815131388217353236837203621228094583735521637366927802170049700668936223013323723993217790755241989074539167839350016152033536178705174700967564345670562858908236443999377816214104226370245835353528431593848006850950683987036675321843648947757190823259813940537457087715631100402291066526806594396199061562865580954574244948817502191494867780727874147532696127459915752149438113784952263947372808908165050408788531993622055063190849563089049871667454531867431261744283623456182211097223353407015823821971699743040352141366468120141342495443958649294747263885834281176859070155336724372788504932075519589558157562789430263555397306454641765442749468585390122508708212765582092462946590466882077834740778040499214055426789672117306366631535720789742806682883391908257884906247917840143739922291132526240559283820007890226386786082695199830784541833756631145961162921128235752218256607993040902804900281078941545372912736112398457156887981679451382850776710757237948735749183583973582559006071354981226713438953586351449076389991898855426825909667768861828162361165748452698333366045611141921282652506766714155502756871010442128036078656720665764367112101168653872227006819971600080385157378200227243589591963122833282517326964508785064354669783227531791269017582068582597584105511778500998841476836683963189652206438860290116902007252412780153144467873819283676115448352417410414929522773691064035415348076523750207372422111385555651102804885494133443295857435537228193633400037164690714992882381127435038747507488021984507888874542780345345433590197227203740657517461685117585459720047556776267542300021811662806744344638850366364425969125847636126608002790420703995361687092450546005498461431211673423590795043423744385962065077898508007684338724755527796431381949097437599803575574889025197163806867437770866667659978176252796041587666023838886228962317961948899074680800900405615320611304736124515853963268076389317419720346314400120879306088245876021082833994317309241076303444733653810808192742474817718692469124190278748068166221695447852142248548537647060403293665393657856748701615261759134256058316260428700585944335083903380567936589126138883166491376062981347912748145263384594404772795770782707839186546783187145330563286012580096788212724544570450679257060737033530192626594839067804140696299098590206147985371489344558968757857309748651247516569090943148718662938266716994389854147341638220464646893480094338286047251241174934128952379768541500633183304302014120732110970824094140392960270473416310540151948215652897737723556747149625825687477474239791817801146592150690240448183167024853206279897910690212538319280234649756914444755841219240041430876042303375775620765620203217356625499349090508996312861464402960761448959212168342677788072490334531997726197504600945660965746246313017458576331105139291618442267547177743109468381584976527421395211708019652003529821532535960739705886237626243187470511153003549521528039846554548910121580373539650499688877890032109907456668190128062123361296587331489412529644918369623936814122402948685054689474179422828546914391578099014840229618402733335097253194950587205573424733748147951496802187897493358107527181093800079996249167119203114124485016412742779556753489754282312249131353002666100549584512415979695528345293068255328587998029165364303509059567261281557665172011499788508418525931859345630686835242652430999781310711673967907113008222660969158934161494785786091469684586129256351424990008482515487388057357293532321128227038160321759372080041777611515643044101664944583765934537074728497503699557314096887205604710245363686433105901010346109330713750542768410344577244930359882662984837946518995399256634441080077602455609068893461937590837289187793355920485005171516165742505316351994206954866656419057811453384040751902106355312101045441138236294267347013795246519928578433237837628373308377143540465683149217439153674081365684859826366697114025718230506308914485122692615852334165334457124849198305862976226653006137251606666979092283855878356720110607098597305797194603582707798481914725401143582919316575310616374021562416916858124008483575001253372776617362466607493196926903202404285653598177045861957315601510435122578130089621649841245884193166379457638392575707030192110300178549185428636129678072505573630903974580630447982675909000504412695238206718818732011867664537248321824523733516425442518891378799016475765619588298535052842159315207946529263051813505296970401297648266702621313687270577123610026832119615129470844994809869573944574367809520559165562156452813652081698896192727062804289968495304331399344323143547741113296850598638662097460694356622740433314896993804178921292496514907261338694876641506060007678317654199441279097031998429976115662680914463552226690427037494047269026308823658384190549570877881969990675611081079054106265872570048269493636939474632587926007033634815525394272436772040973788184908961100177743141381953843857974315209274577070341832004607711419868976354492093114969599559446897675334481101594283167124843276380695440365944542979771290249141124019935174004588947169530346783978806179718585860982778972602395210815018986332460149078244840972849591812119863123182896272987902840895169650546861645886595571364863003742054448675888424013690204810505341070810566609829825376889720957249930129065386539865004951972677395464919255797325591669514202347963181422068359432335854114404856952762722263346809061189240139167267810678800940631383136109387589360829937397255332601518006812246972055505676330764966271387990929587214739181896683727568642540418905415011446497745972458014232029470263167197097334378032110291988948804633210683170239484619327796371368926047191333408182393811353622509205722636771915981650325787992655169116141687616879947132460410483910985640263239334456538475587053404811997224041515787358327965390873125197373536163989367084644676707961190284951420476410271532125774927606103829114367218460506198324264965304933546358571061099374914194122342066200818348852536407852867338890280946832900106184952353572523097280426013835160825845459924522475675831054712496269417809769659789214045893287736815615832806300570717326624760890720943638258030319424624955864328662977720140155441608069220554870895004308291604861998075319149385841606590348949049747416116731511069595990380296836071887549708877689439916999594164504941654479115921984476465568633644344188189180468803716088051226522757081266289199805920930297309374059181537773485171923538808197945009756348979227202178932119780112600746612814327337810227657214463422106207970594123704862781558962072524681714306225023803583481493833212309144727194889010624473523477531107979291797634538016563042876264273669629686631503298071747831638818946855962682126289971104588728790621377936413086714932787085619994392654807422661478753948499365228800882674031476441090674142577385506056416781567444857950520156973239810921338066468952186159775206224359585602766990088930294373249743105815727483016173774776845280526306919584704692510332628163441051873246839232445723237700839197085363082555266766714283885860657527400969070773720774410900231574785073885450998739100460195639101267009836805881217533844507963015009265445758944198438986193798290504691841598104663957013875834173122463302442938872531148283528972092304177288362645174372843434354403049923802278608812825409531362143676376849471826572117042291471364467387837311160331060789415476517943044725018414210940999092060522856064337456848885581343969641707297031298057542526996091095497370760630852117037435317152170064921144233703552318301349451438153585001208855494070111990887737093746459154848357995413160526137563068765869602860430964176937215423610978979931090163746483919388801636405832199812540944955426412556233730173427812891716075964951375234123497804629429285790508856691491842811352490324183013465787751432595181567935144166644271814993204516151637187229187571295058508903009629131520518388215271772137006809164618752861461026329968121626986626303759328563934908672748266299676702598402386921283073496473495959192451979896023598447099527262354920881861319166820112359350882585460470787967618541545799961904468925183006638365846957171182282211471771588438675029906310556240165744703066649577133986293868961284481805607080830568954968012184110794845851715839613900238907795267609188406163473965331826647801778936883348116811949686936430092855830431773381951313698123772837509971404599227115121697430787513773099661315014410742251623815812419358094156934249275513446248632748274862650404607192593018895239270648056290303412281635466882754185143137153245355553903334263397677491580018537959878559441187409865693854083364842378804377865374658899944574701563897485697240430414225411980508330058454621866005667865923816604976112497361195228195665717293114111617247096593447653807975649935671088110574535116123581936710079432168963282096459383181007707528322027263002214461286432388134791022885311717774132150967885082534219313128197400007088465648296345743255464545186946292652967541836944554974846312579646848590981315021368722186076440898002758732266631479245498816792321686255244675711557317075897958034384925027863116412025384062987118317316416978364593918378476779244452683799559879107399800451992113289457295342146538979756617504348675563137036719190527067743009471612606987167439869940346071534180453018611602772871983796881012513892403615938696323284241017832305631263314467303721789980358395572393476405683754881247443255882840061422670822425340087300060537363413097091519774596100421942740686840805423826392835908545113907365409597590830856905048511658171813489159428326827029474367846491747268394729588200733272105829036279531551025863621534932151659868372856831911534364602534549640801943312862150423946407011712905534515785497539222949595524503182335476163873261740262075937040342569113717126919848168931072466675947133457850600913357454918452400365858846423646509978731028213720235846379540804716809758523162936065044744875083093373468617022047901171283119616402644272662953466378893977795054561716659037509204148524894936045656515074105111144080117315677453075960093685896853155760809275767999028786333984825596596157002009810327745061125064294202409347957032677791893501684649969940615561060978650937241939039129718765824438516557701734327950112273754630829028391633586267172923139556797650536310058099756829196666456578029225166004228263868054903763462648463144407457942371789614834274866315832060021722331612459679251921287136504869338249709561148581692456426483002483572672585495201069945142802502731160656948728908662786215519001755929887334576890464415651909088757063721028797558536894406300378220041512498360663534243583638174648377550176966470026744556627986188128869767448158627020815305832707728929062381130228296337836352783424782495700148526971359100299621400213946474000209032109685145456586670023406359112396033105018090561402451990315346693180685900125248783349598935298996892113780257400220509869461152314503745331292497934524950044723206744423667408252867450734163666117227172205125172963719161258150561128472733104748578970312590039252394780610363025054320520785368940090762266298324889981807626253581981445810803176858027328625539260592587966445076859815088230839218191909220730405582957689999567405267976246915916402411674469674036251889358886732795054978098871207286387582511693097120943498083751875707539173495415111948489642527979152443900777140380563525964179392644500536066033363250840228897479616230753965349622998260517985040603279871379941293367970016665111468322555164047714091441131820664422360858060531015378113988843195364539304871000745671694610922106498829541809442862788510104592626393298734615399614940641500690558465564825581544453330564476557932152508119440788879367194407602154869578877531126471029432769835177816027997996875819601022376926388980065586649835607225656941064413973979008704051904045756767899016801715345586086925342119671632377675670646716134249451986378509178831839603277519962835649808613360902253819578727315957867580802409968464795510246441420794586252084092034352336915257318923278825964905045198604450788673025480106989595563371336764806628056563859292458128873476095999313099305412204893982692496032635437329397983512007349874972332314213538235105299388548807119369127316976781680447698278344494210029651476510029148780118220003692031020914720390624231054633083553446853991653856275914386315408611360264373494502778554040659707190859285034394195153357028375707280349243904898320748254084622861034754645823578600359488180834409300580870164560243192697314993210374760538021738286504888852770270995637353708250636055750020231910310496755497478206405259661762114813450499968816856024648739640326506518284149212028047801429779720321181651149675415507717907755359476195906602377860996859416856544868165165512898130896279630960526381095653266777088308649338879720437440464707889160576450165522448378094743583562725045389226020148001509631528951372100649418165706431326045541702793175203248674444097889956508847534861319961823417993621635946880378768682877794270579952847097163061286213638642203789166790767129517045032351423285446204054719817740781392351592820007986035957211723658851206045395683397812106341115757274590970375350019464763581874810379332523563407690240080701284397450517719202094262806383967627941125911844490338149303791650172880160747085719771571720094132347337222527130039193893622711255723334391324861074683844410447297619401300453729956129213407341019960645818690425338166939795874677362226006825384394587926951062623102448063194737628294359521705744161451740029222442508890560784162611347470521290900876895716681389259092621530411872418586620685960111083526654778891963255731075694518622041911997790577146111295959463667606482373872866260539891751979438529520783669807194883377968607727772157354786719433505575952778474014162264558138033171790276433643902022338763078281862210217114905232211366807818458889547747990556865932275821021798116408584762847811203725678977931869195226251163302934080598093076417959936740282992421728872958278129591307176139602492466449707400442115231932683334959920760945069482886747196265902286680338808202117927881205349338759472972118570123414038955119802314322467438446479978360176202403466415471335102837169923551700119978634811215860197225366479467766175973579788951769675152453038943047357919981887494572405068387764674318519965695513335752190423914723949722513122506082046685558592820364207134696951839909241068250169115965089496657735567478460575668326929204766713229279700779893780329634668552229534174278090825236654751176010752374850611373109502108597707975819612087344374821626441170945815997173627522512914158675234537018643476381778641318723022757877907429608721605689309892079111698925875393058226749236961798626578206226856046011934088707994001010557119017782620245327955461094492212523832997833999220149113939948855777416995332488202950124153987693079850102257564776015618634129214031389735938968934242428856169591633361266011379905059158324595865789155534710169105472074867542857960554747030967729355918021657019543915893943702791775419843730363165368253324401567116095138994702728046713146125630915928536469037598057252879767785282772163339680196622459264463863400078031765771907562173672035123820905858852821007149167668339859415161041996044446172497796714995344934566941104581831559974006799206354245422544685684897010077408374989264682459029008653241124082544170369244197715952140068617290071246359205308533359862014746396392694048480490054211405709277733611228337977144196350388958356451941510023426597500551558212872276004374869345299426947645745030607869720400030101984801636245201349771606056096298389901472472528536684683035140030699445518105401191043646628497118688231204274709574811439863549278947470647395194193020049210882993368338860499422993332128581628979162225118501260322585033885751813715877573740615324329725982418600640012158201563326437504827595657543503682316161672311267470442925701045845069577072673933885600673009143828667872978930663174923921032832946719552084950149691255066811509343391321560783941296352448560031032003710106365502144933269021624187649894651065419374753724915191878488545092517961963313150351998146783790050798523323602262615463155692384252618015510130275433973403994096881601398968671760179085847305729105106105900141268338511597164703350205956338516252614433991995333442001814243858343965406127089955880803832234852469874097116038104764644113568042897609867296017404118571851300461935198862810620035139373530162711687823185247933607444679305381998611960747683116310875562051449345461605778905039180153293575768615642412364995713058075053865488807200763459300596215020662409225326789057614039127617640067064796125193006293941575004042948219890325633957218945821914782014752683208602082666894720910318781392815203555011632954841337183126340688557048703308728672409740477971621111202497436333019877883843543741690305251234887104628590680665411631461236823365861686026622242232729107879817848834822140528659958951455670349461070998892430251605154103002074444059915159230454254923062780678982662240588989216534635247229098435113134897081065107026421601826938945868421890765651372551000587878833806460570222495256927962325752175384981059853274886064175726609986036591310929286497103635279616777394378655917897752339297557537524531244799186690787259247055375833397906805615236878727375134416500184937177337779019738144153950095554880437906163270061384538195880495551418904911742666653844114458546197884193769926236593711675464731170332305397912807522407189572605524094098292429308721070371227861003945354603564746471284076450861310792954705266962660120579106972695520453945964165864947260344221504952587513219511527917111125872061963973355337195070621386946561439550763062883188212197611055653819963364359358536788987613634708144572155063748093256318270239415876151719796173017744893257541100519249484448026398931805748370201431228999505937749564293275067931888897654827354861442660277839686313118391637631248506200232463016776732438404429863089878997327690369064227097201713856216173860918619149392962247741005453878547201310101658698449478758099977625613219242240728522930877393281516060557134072624238889381000211555274999251328515346734525644627914241238914962420935760758966054579932428150983070545392063745399947940916193169840352931503385728180477812891890711183640751834722705931153272649315494508867445955498117154536556884691748673841007761513757270768963048877481848983962182421904274579893513603672944480200814066017376934015066354493751431578584761959845967023973490898412861248072029723187574656583425843758565890910518581207074993894007909709682536516864968162104681754053815313622209692674998456343886338201156606673217929267181950799407331462953202196796142139646013511273238955342698866225771493790935102218817154506689952005689781245012962298535224915205118125795079311341040097870133468081289895961590400242488726512803938898271629482238883925852625797860835805870977766825373633650342326996998518432736517541365502038527774699946768437073174236594816932155632418630307465973500075957991866136794042832244661566157676738570167501924060197279173893958153896617885925570947228830244463949951813904005626958644554659662884738048754910713387282515977863458911874217302480657621725590287734999351475791838850818544656833263106361723296279552690440117399446804476537395998995914723857101738905540406771186506647130395996683907023714997269353448660377658537249823207019174590691840098457791348699493297741257085139216297076072487386773719834641856492000918473999202706266453432289094335985593368911494597266612919573950938092473154433952081702955678420465889502483765092887206889393451735968484787345203156744649617153967139176155391966501822971412228847398697221563166673296495883670239229712963811436298255638629791302540693208197844333710873657601272322621880217766102281176744904561395438697382070455326175982121928672971160230348885163343137938567799015125168679058608373146810515393055310987324230842451193164738159991043678067562537193999045246349625998947100698460744228170876659728160701801502848581363985571599976213495869520617223909962874570447900773020598714349868281542586441398807342378561504648691260733676063295030328495076160005245699932588043588040467855100721921439597538735842159435882160863648981149713036749855454138988290056597964797277356497037160061004607393355925117777536012712511405723904393130877542706909254598790589720874293648804652220083699952805936369907375055652396515486873394523841855308850690146828498370105523570586925608788750711208573381777737131971999424520129704121658651240232083046975551220139112420948884545484628676729170384164505404644705324109707980986145013260287267273489416934805234081934068938175628311031653333522261274928692418139192477490557609156969318391227873473304003188250856727330520934031475585332025387902243981522696240613483997027806424875980877951275042825592197028874382814144198502647265113203874584580851490192038246806350078435264742416698335310082939667524871835857165455597858385361294749593445478667719724056336507731263346239641043098737438081418825207596029902796465966953131593453024530271458183002732638640753967483659878953743874966036419201757969063137672009498972326343967397769759390726688598817922968899646375149130395226594009866825825979728118904977692564759085124935820498826566635472559428013334415042965423801229848626608346330476268368224261507041390988143330426625021756883285001010460881672016904237525391063523629888482282572273732468921600208345311314002126454483213901809515923623322666900346092497334221529078182824294674027678220604797737610823429769716179629281901775724048104985438136992270234860720890180394450058772678266938481360741531989885624420433251230043754605134825015356038027547149056250940459286219827234441312553546617129168203700023393472506931845461041096723532397561754179078617340991874903615797715858205423356347175108759991976607422648097532096095696893029331672430662117323200549524622240392831440152310883198895058638500922977018220134051937880628560046317261248927198288892872698466280269206881297366071500893149862348222106553162264015322680939363490749467129014602907279103932383915379788302387354978666848056588394769971155303951130341427574357660682743732753070905789792509049509467892301753268615023408582546651682193866580968299002877180058343870527450281177063464497436382424203822420553915834212269196230231473369657410646242258396742931889118319220130909014993176884900751518009806943552324622040877441364060613454602202863114654907874762895245875461381026491834850485987979358080549049382912508228191439754751406717921952864400173487593262331208265641430286681500534688985229344673820365200822776478772711082601436021286633191626850025902158071905134373872627528401752395250124650239347602367439606531943348098522335344036446963913690440890741383549874393225837022854681639457152477642332944154238177350596105797388436559707833009803162142124907302173417307647872204042397614982456108271954690911621275462195896909159255646239530034011113816292056095846728348668596404020555251710044016835803031302469435177626783735049418995097092494269473642550157129651162047483308275821592933055871308938984884060950683085112349456331492678847483000294968187317729976041534090073195190343103414023390302153765346275645869086782744685310776939140082400742846296688198546863985443342468659851050122354144566120169233702900035363027827682661795844090673086520504834143857656204997324049620211318825663900809020375460156457031647520873732000938982381940814980974716674827362190656546116910484933150057591315421830207766479447078924992127556204190797314782691449294849387272122908687682291112875372996275565512097802952445205928583755849234120335489411912039533944962870829852818650185156673122151303652623071428699741716339866120998789667931181246997044083285361529567486414516953523569476816598384530596943838137452529754014487138125275245418744795877302571045312886448070762045181076298326247111892655594217533688973234407708046354310396270434075632160671711180538595182524189057397930897114594929508796796958736229788152102804332591008357852926605368031104906077630027345008356925938721161886570052610642069990635016199017037219641358755972544798817701163470532301874385684227924528750163466942096790884969780726919409183073985876940753591189100144948067268009456082134496708295903770959745638349029299118453443646456553945476133766263410565002125876892414585081374861362468311358255175713100590479804439269734818006333597599294187360217898388953227549549940665718491010023562953815572956478236690742332161607380412371694371846967313334311846867738624633442013353496656132871991398766669914867683224622806524683318870723717468638780612417312268984241137170079800596938759928072622706152899606334435115682569671825973148583707423123825809142493743384339043788546926706410697399724931453402517164694333152256891768615452104366797937524820200704986924986798318076835286390585720837795850050181471802583934423478184511156153715491431153492158096937114899383884080196987482323386155609959466878842943771912136810277612002182898446440573599201872338292564940174997829179198218406365389602579245419347864507429532479998583217539323130047594660480571549205530868382623254286348989701255518563574404136218115967830611685834320532316228815622788518480303383270441553672876686512010932054425514259379854528907160086614687617071206711496306303604951497111847209191241156224923191315823830422633963221644092770142222994382617179387507445077151515926805602892156770541293396422656017113761451282504653031954818750768696468922093857364655099123850660685162056412252510543886724516828367338747003779497506765697640533072953058836561551449462677091123603581229098283240528419182383615325317536898971208386627320902807677021881788431502330522096166516913475537516589348888707502267051823461731142740563271388756444805526777421885297340432784953467064811221841441865434624484293038055172915300028332805592797883763157972954436974245340218621581404009072181850172617076255624118935735089612833659620607294907795333695106706357242801170934257189145885765467163557474533564898635330073241203116749016281848796187306698752813785515488829110673220686163839537544747126734329147548082049223714133896662445354268672298916782889252441204008088560020128833926380219456598985916134517083499614366708281650268800962463677165106895868238577164496706095668595145338270816403243336554251931089970562474302971968088865264824916346176133700799119298371448934270165793536194143574603500847353333074512100141934863657359322172401510619643450320258953807710518234051239206641891289883784710730987525067983509140394847705810583249594085293979240858134612276721321711569005760160144410090329867309190270146443474143753595697449286167364405065736850618700248819050468985856263513552168845812998480207557770734513927960526012117958098621805138176447051352258277739025224970963779377041502798718056487386977028948395540477708469477905010353371821642122877722260039330735490137686770072638061341226978086842671453696816982067148649576338876669039758691145713651827746761400526563872196472257884773524436718402769068504157286921970914593803885127508005349034828406642141252361731516097856493273045379885297861708088469761004406986566047391509308016400024850714654392490471341797007067731314568697382289349772338691807680405207117206473898923669252668978218208187707547473653251003763856092058216581129214774388800662893748359011049140168359406236416251173491682261562652871397583765050850188758049541210896624081513665877256095241386753899621812526017687789799501042474595752431336663886370479928132669603687785562112592744005260716256675205019638473941393528558372907516985004281939373689361783975888871251618175335743256052376342938704573989496898993835673853177920832807230193539720886128810389237597159107106312525548398680748598506192578829738746925423812331514411983579146603090861539639569650618905679657345828461535755935663452720447948662080772898275313701512151432941548328276988724314929700246751824421306680664564793653557019567546348818622124727576801641967074814336384404464893691084017034882870290836867281460503427713656142834492598848111708708307258677045988337854928780710399738711841235643390335226302558894343835429862088406428156963104974704842801848398352784113320914885136572746607294320593518600502206835009633757080282995497779528412190520855288620458912291187494218443569320600022589750830633017940898276127443309881758385625374076644136059666105587182433358797588269360442589173873040532341321012043465264216693044914372703673345235173732466275754288997036878065958339523174858038139855584829359544904982764781070006167666888953990483641252715398199941908160934613273753571509806175033995676141052590923465498982738112790553661535929749272120460225056055891772841434091147681679845523255927483678400638429994755875968129773036668195675272195638765731845060136264182070614885122209358536799105585794197337739906399665387251579173843644861112412942582239299601558219625667858069324111936814882192676484060122397707461007668594024483547165429917726898805914546530451006913473417755484329104532554810074110932339271748744651871190207746531196097369132749987692420185217624421963998032700766044404288492669480633365199368438445368480557941264279083975180752056006601808750587060945249789787141601322638166183762966838417133382659904679810773095689490541727706161141590121496527116095503025152036477372891284588060851013344749558619657851477028480325873374502520190581819785647255183366778049284502650098511666666813849332737451074603220385515338371040526517573482031981814609562295900603019004242837004890899976903268563610827093096256491046641769332360853561773847663912217289668492257133532635698411754423435270464094335558083493987425840200765937061303486288808148975671976685732623851115192232043235770772010922410485295633485638426844026162259874814453602367539460890878716303564448720119628243530074184229435482809695513065822252017682654430109532478131812756393139286707145245912636133089819389720839588978180111125691909337029243076327157315257233417738122995239861187442670785738923454124853308182812126981041368248454518169328751163951626289167168851022600811908173199420298276714708133110607776547932803929810679122456500006134733225085665096855203675103515557653963089321395400935859415914023130152800028922588116270776701384895567215718066292411684740541909119211762696360583478385216401881006632339806490428098948964232137518888438889464697872717950515143383583950416012252378918039576915765801014393544976980255398712115297001226306538120517407610253950419281291957588333972719913103228754410919279658874695928020125132775164446673513941586621826708240526874235593988553113598801430591202088310948340788976580175767798774514612728866899865134202117143599043474419267378302140818402032613465039036632723363689651475164188962102540797948002555647902796793604743156298976196981128015085333653074831037580600659511670196413956862302773011953559367109286136350508123335513869274356251244896405712573777098938823621577750123645917780721413182603380401886418531254315425819144381605617374161291918487144609296669985561247628268596945368206155858277636657285851953647633408724109887950799206910527750411259092970718956185175207611953717375921332154581044916976228489005856749208896577240043804680146276833188298387036367008535229651256889100090877342267610941249060755729244601033412842873360120084491805521138752825581066863377156818842980799459723664002451231472111567304758786320923204891330952029572062886550922840578475861439502711434044973193616396118374551623828895998228051522971288510904690198228659559252866696278473971577863943103849435793828708250104112001262069245348182370527625023456757988347641412264298803152739783535191696226638387261160904337494662581289451999703935942814361750852906985775224006080445477538375681069099154787964779444613673653310097920272456744594526331191002459371346969446300111494972337580662420862085910921962060522222235361581212968812449275847151642011324621900492665378226051648043576511673922786934682262402729465072964743450406699488168741300871795485179539548815360994557199950942219055688213945320436329959696456864154303826903091811603872299243767298725333080311909762754606534584661199992060429584452547224716167485835538273043014740085871138991627427986326978316077346186123872376718233044032058221761533699877183170107983860654276307181144086380777911847605656055620994497703543212098583449756124644841819864029002818444556342173297797303284493834090753644668841923806744707170534660473449885584311655835401385105667003392886887598116834650167779879054426612461109974450992619998241965819458153947074901696133221669134002579024112981669221675706481388310949858363375850673382637105891474088366681901466060151341751877778447791539516331424030246665809846184466953838574044188859125335479516412058057918886943123528458352305067789699735250988723366510044705605046758227963916227293395170298166261541255454109083149510208744039974163349909214689597710338798996731117615241949989764484361256544969750572990598785501707811042547099202727570845227528829027919051414120631506194759870857288397690096772664251467019811293996267232984837157089756598051580037460438749652126078647160560297651377752851783040878903914171624088489320743767636123492139184063368409754129625357776662745724571664838632760546678577872970067041276278633902268754459419025876004859725350587777928500179326081872989476778286543742630594764159227736407148175577630496173587295355834387961375713211783909710882889907144997933325995304639834967811343733648342896369029971979068262588978416646186223006158294896589429483045585710670396226824407298444868789912982715834277505743967674676601023762988006135795505594995198908753093172798327999699023117539334577875375655395112759269991315240372071066887924830768507872213847368321147215401320588772047627306620693169124409666852093525451804855262895353038041467518124040769928942802511683505821811610424328281258871425719348342654182458674294460629092709676511321448063900884837789460554188551478311709661204376638691640185969962800077816979817750627546891970932655819806565128684282827235321566656123055683228094714548609799373191515202803474109884898575686386946601355211038805612768627452373420948547261958043265702148870263103738612163112984856206533117531039757016453949129467009821397598410858332496309813114116189071630912347373995417779823241141844230587749327783671835604444365918572736566103416356136537722916368203766821127401507056507495280590962656629497506777059639217691960297312592482391585495019593967762565315492715273562834918777045147413033429894639492093628025175854662014859883634788847444896027438934888140191223053431235385780366734435746977492812492500199874597527494239415414110326652798914986194324574243227157294939390431230909075929363665835820580059482728364064047832671060730237799480720249434661406096137338437112612552440007598282347116561375130832686124878354026327652402841194711581904972871302771823890094268119833388500351534577807505732720366513749826643120500166510394772466813643174425840940852116215531893927702315984982309265751231934370626925034919428068216792974213631081929704858673223550705442200585535251216883387848606020701072310145366463902136214814454744634569466805299812459139937527657593783275426365344073025147410097289939619310441212048189382222107907832295209215809263375383898333592952276520748043800636142650657768756258567390364338181759389536876582496857233823249221531103206571080820334051864357297314521704476443108876350065540456329709414791647076743956949210334293899233614692063340271946469381471907099327564662090420514566296551916361213079086265015194032016030523643941487598442926137745550001218625635054977758118744432010462609881996727487515890924894142852487717245352196298068580051013375833089662413546193750293282634927293809248281357235803471014297582089860994747713534670058938584768285493323191003790721694651851124720247563478401875512342184050990868067667891453769601233743435806056912473056276194928093321718092332040564590713806959232121355571163264648704066567150038528950026283504518133838445728384199691231655602575408976845346839357068868726847380259757038528475196192593629667114891194474720698383605204205893586594339460801456686503299991774774945211784277192734153685590517119761980373378914270449345750467280256268981966266080950356850316499989854735933499752659286540700576687570511082024848412478006601797218345602284591928393823892965689965971882496633563376513257684996788791127799596344282237932993177702358433858881421656428128210220083199910242442416115557216092942519297367864288395294454523491084292769106781673313748460485648426605050097476679103045508203448955702721581203299661425633140319544403284711097292439368889556833343051156528730146444775742007672347361129694222230327857358211497876719637064819952820304967909409136601888411603288489920324447264867990683674929938101736788034037118766690441693121626210721247837893958078370712646819204741011378789333189265941024400303474092584098068283322494709818355059946006499433669709873074011022488755621395456087327359320334260405663763179215713737834108381696662651544362113442412285557991951472380142615111639166512907635492496526152145227884856312269605583501317325103255973500322840505362390700853758052859335238427524499981364309227489328104069703850786506352467502498019791394755854619508912935478892572291915167870297709747638577624635616645403061539915303693553566593227801396305308145759377204891593459535433263754956836221350986335192740823299219435121574478107936134623375576350267988891235299970856123349937442297405666911730980163097794367459679748173044904048393085846438912824889049460972994815063799348261472858354669872077830485958560672683896745557681902224471199215537557481263340038419042236294231853681965309210077996621782585524594950971247790596891468578313975147145267124412628552198263845161969243430600180934644791785987555241489211908691530170165504819791148439701299033890969762576575902218267246322264082771628363668623302992763642054895359408952881234219760436059828525646198630423729459836118681118834642902145190362710260398975148849444283844977444689261331442058985312541807833080228350635020764073487655476069922943849744996511319506597473015353275878068969486709885549661757126705722916366523639338690577857018796331003851349392845350299762835651092360818763479096173961731647501251460415126587893003595608839515751914022626730624510422073621935802167355854816767871226772851224442400694812682866677410598498477296471533690620966295679303089034789240235783497815812859954231334758166445404721999872911853905295153472729444795730266408466699364205109067319115559619345303987222116982421196501135680979876713339429427319743693851469051300529393167838227304451129655360516137511643231438765638130366361080030214128807240632000637980882754894747382741753917064571913539756514063826827434839070624458204060993642943850641455045958388701550870226940921118751519420241055745512452540805675622305593030323232249104126414986086508033584556460971000781508715459947514689827299113597925024812298606909060049554447916966448980838798295460724356278053511327568564615020352293393289777255229121707709193293566296867663897316472080603328927228635633151162669119582093344887129091994197278688708575211198588230767057677834401029364999041862550984074725582217127394770100341432689899388240924600586351828493284516110864589321751131980356449919643700475347210028678282431090959917309527233347603969607655908225168885070675243953467970470435837385981380466996736433578558666078160602436611402689950739431805200202884941121206044267831237226442668284622190001893740959966337195765945022836885484230825769183132729501390807251324143404442126130656805513335821389723679923403808681600041582425060305293841098410837364441368435114308276258827521765764086995170089604125643394714308105902614099407633636338938528495639529866820473656328989378504201466700722239661677331058683962198681178174125795951656301440725152986024868057810766770618599338339000602025417925778082937938622628972087841684817001845202329095208496078075382164973401834660948438465185633728974928681943862744229421683556728235817501053020537606001378989600612540058446655570469880881284556174748308506349926914644372182609998526718647666728184276396038994903973268192777871647107467426667247011613657810500510329654891448069630373450105673773473397885691892494195778787090792441237841267464445506543533671648837931416536896625514186761824836072283721944986762437670483818296093811853447439904949675803492018504129064799741288777430227991353336296079294991933958529745134712998063282655547428215383308897145801227741511688432408586774287385706298858188119068462788884089648042032471647553586059451083872048596582402811995232838064414809765190841939745243992475104587734450047337327453850879664592539630131902570909279676642740954712864638498960064194651625666584986763404799605813458917527390729011832056431650748792567393434889837827043101213096431451455229601726639832097703256954762076548578089402341226177707495934235389861585085680971727848804033086564007319894264912583739380045431663907093497965813432334473901347513199380724717152384257449912071822546529162221651026150525490921084622150077481450328194843315244946998006271415470467271941427241530538090380216013636802562946355444413322246172247276574800583171590770770626779557447842120492434122675429350108297986319289690192152705610326305304610304347426143819286212798045811579315619661665292016040875489014341128616942287255262359939201413367474808219391697716519393966825905544313491969207494948627782039835602322159729770795803504573682535373342389314384976731063048531944873589994199938233870661272728134739651358564946815479498985490314714757533363901288466563664839451700540693948792299673123947927685226179716468733282315717750359286499109168915580498987142851418830816892054373942458874049180693086694273240809914438902558579893227363797765045105792815696842905185809952344430072143951128461745640652308577228284319238437798502049935109975418899452907403863623886825192797756194467538589015842583375517272315119448704997566102271633639642764291200724482079657240536438314600752214675368704105743688618839819063479583281263938646617864431062615918651370573465237927182720448070293137972709169577635607571797955623088971404312139941967653182935464732762185484216113045422499701132189093857780595078197085400105703304023877480737470644280904033174993377044695825250543877985556047504740290650056783085488801326089942425837187845957906697901089100113514750961082397189664482887877937597819733772167426888943326719480395073253198582255837639155501132324684531892213086545213931790859296104282133815895389210806347037211791220182045937803644031161937590064413497845906699811715680263097411576104795159457649336453011012708389684808893095620308951261035238022352861018166835132731444633123904534022458618904053776251249620039058736032440860751241124424224020780230901168088239214704136418228981911996659196404366045896725001149552272624640240010309126702246211717683341635397144752309098161764365726285282004299745951907808030995583734411431322451381070902373889344613484437108696607666669775903971436482948085790180277062635462646501678974446479931495990398975752937583806445939151363055983912823755749491224737791823561608315510430315057583912685988674434801802783437863718680261836547296072579715105080735471650414571092935407096980371998162013111338773639231202880941309972115103514763398021097953393968623696047107893766093109490498337267562229902917262570629808857477000738925747276257555970673144093607671045407560107997114250954557388200197846027376921869447108489572258893217987865610023298446071406470120420705056782742087780228262505454864411483826951170822955858375127573327801533690597206272330928924628704720460096607304055641415459404483857816670452058326710215443362813151404345588456766008598673108285606303393781884686960911503593281490975506823976105988303023543034172743066982488959207185060896438588497614880198366065679356336890571143008172699579228866335139839786332465875708398163637532102921074531372660106563437934430866773360922025713781114896111055589799862733650993223162756209812023955617980165073663500656267671672726384005219566739572159746383865505667468445054790712323325936238724939899511877759627985664167693877027563932085838957350699036743210400502479695087843873819210984341083407368965502548930540528085932426388274306065907624094279339757894760173726809687590352701253769684330211076199325516545712152175963373156690971315732364902721959862978365706676459195037734391059596805025218041236927936509050330507034251372223263578492510198141934971856489309896653116732001552299792635268930361388430596709046953866855915182863155799350408016877490027609585799958270310298096106508530082395201291429128681705074719824778905820105574406986088139808766308228466789572404374012420084041518466509489467479132869910158286212649190914379381656017837037396245292117680911589789994318691788801924067870332437931605910533351869816054054584877809029413616656447402501966903538784093226998853785481877811276249766840159638664177965684416289333222333456051576282650888952963981106724989400179764248316578690249549352034882201667414015820804421641428029724988961691218641489660789522336642096293226999292345333543903549535624825297669065521990575462449352382430747736384986152937950315475548810724155006185653141932052369719943276691923247751368553899360621920371654680499992400946786960467871822857949219882987440362399560731187174001198768491383130238742950389266420879012057935075846832829474047390372192962805981645532208040076901790902176914715637446801318217795262467774597175039848734674932586630995683644031040165744443281524831661970064002405419639288865182149847454061048128534409969930446610505212213344624796057690676527491285576103784563357729040434438999486642703161036334202541205971297250998426222129558312297872121599334047690312994566516487209158244706390700974447699302522950043173158799245857359052139782416888004515985724023658822222991066282558447303293256774984453282949454245444767802641066816713460293475751018065233320560806684142934466678938524935416207361576702610090944762962642537713756480236020655847377668801246685734260980632554569387479839577009947277183972359794163142568761172488747812978345402697579168593924910527710419638003628751444825752957153989626622752843164319957369207750320944188702666615990899018035018208770966843133371840404926348237642072773313108300428711930512051119416256764795413749409545403765223887876144923320932960898142713649100472740836755871612701648776880154041887715326025150177490442247015471440954519726844446014593028027158921062902080787587858267320614148639404411642629704938214889233633371400272594479016355562150720031273537979546075537155119251074121993865894143431359648226193566048765147953573407957744393558959248635140339670087044656317343987180922116513534879107165129811644376112255883129180467112894910977647561490764867698906614951647530210893537520131092204300872604494172826621092681817664084607397433410276729348758668168142404106040971421481011607621978561996125299062681641834455141726721335494246296203912564595411185536351315162560155427680834409909765088190479200211443918834970615359867867720200677317894976241556088061321872664522027113843032379120207581184775129821251964727339420707692547923792810146482286953230255462342392439992777611541089679010667898654315161384692535355022768246679985440450209612575947061841497481827612004529621542980836191422415595151064071789811986051856019091494385164395279663111452328821815780655385979291896523783453105734646297860220585716203985742311061066742057002926254581653508165525229327167579741264892793348811291786858665324583645276737813753138539849417821473646259009217922918799897185832947016355618184009882418934621756700898982382108278447513533567082239452572827997567044616894577950898656173155157039103710271328182363062620224092209595381289323280429113616577206768516386984482226257279460803222629378997873231067329186472767661851509421445271186581108156826816414591076242900875910778161718728835549025149498655595720179852607964719353131100024207655300281034806448721016486812702704991262400732801729273609739373301649669299212538672686657801501701199979745804720361876909650262733701791450583974592963206112801605179982901155110545081101864771804510939882077780274605246554783766639055936039615168142121609298841058760173221376793615361684053121140659315975989330143543742804327262379259754038394192248283622638440435262091762729188304934926653926332338403053694341340264202668535837625963886018293192490291541088143099859626319660827415457099698126938888427989626719461661850778853002297710358694611619034825806071073969252023013499255564153772408706319017392382509925298438170481207704250170249597939588500137715087947704115661298889367391601956286910634481322190414391710794453252468223352311338531176952134891777008856397380604243206028418576394924126314997654483578668672151235317089732843338978127306315324575948216344579058266132700083589834190711658523276809900824286362701211931332536663695571580204857848280699013104949607610227111970928614072252095677972785660130933307258608806401806260608358270004221151839711655147791815872939310912429667505096021979704592297774491889608212702014171636286065113224266617778975370832734577593801924162656290016017671952833266831194155855603039936712658423727747963677263414622663683546895464092147482680523844698928931041826724811586863233676230421100385925113741492171119136706407703446938821919890590076653698456167644559076039466926676641778370510131472229229186325170287944437902978135507345461117840047017482973370574162236161641147904452033101732878738970996290810918656141167355749826522378982496873662332613476301281172744340787315500737661639647532340953773722704265901760384824597070294249128998886960911340340383838060609106802424651548760644626755043431554242833994352402860741252312474213664237953729996101715326258732934985921151412521781527422280478987787899303905238318664159444477092451029120084062307088462928740396387472724225281200641084353785805702099749102595317782135158589962768702946703579834389354445752429413078419196307068144197491973707070420206820185398945091230527429526780094257774987007300760104298418538961718998142523906768175598853469283478022287064865729369776244839024486535124315095928044354882642804477445571304091289241380228238338171134246494458456275544411531294147910011763545101939774392982855142487897692309297060447982182872943285070968468520954706475253648558787467754872558489029917750453646308394000070872653399322197557575453717144118083292872465520088154132822757713630372131713327773144830095124975983453101444654971396578362111428858016622817545402371090400569036524584726425456613440583327296839326936724276529225074181550690046103364963983388426874936129771785484036258930675274917016041579642411853005634677527764292999393255971557308631704365365731930819728166498280865563527276904196552855457401955101009297850528208370126580434919249567716399020681101237693071120167780245256317625355230561077711493358594292977936975366729355955324663477048884601979215178483223600246503047649022242198398646575547486501296002442302612783617494858681366396062148620745564769570117249033193539251779944650006452183850214794369703058584408734817507335983313254994133518873998607718764975404694874644194446541034209451019288543150765378529331563291508422852847975058608204820065072125732985361517885886077212990996737270566220054000902378257880242209015186227697782624192046580315802434767163036303733668992351995876289702218820408606205093908447211737219506576721441249558679359422629840889648462130212227040349472253984597701499756719527471887886897574381533887491476217585320979042597306772755040030797697655775313403326026730296125819917804758519699304434499384184187039262315017209266329780248893958557044672042856065544538555661142974146540345901986759253408599171749130318750368577334077450260332074440773687519397541014356594798705028722101186845964230782186566843977533778394527738745081896043615087602713009185996989584499554921587715336656037645576110659822701093229766507842151935212268742002216748882874683353037752737087444165051211997876618482374778191932521995556162194240463176368097603425145524690860968287768995399587228052658971385596847618191862102813255629620548436591064668420832423757494789840679368906693852376967279352374923765369438691677327764589412913379247788848081238418781161263343854030534495056765621324337190284320493160723337669407519644039198632491524210802848006778118753699393421831822951902488258909014597052806887323289177377752872875395760087076724975849883904645361710704383876771599309235092169860259026281832135565571255059202750330649391948108550872071339597246359814866255340392005430197245223573788248112982152312968807115169157740034543638789087744714807929646309019786002433195530541908766891697588315866030767373718282673439663185655871374188190028840493675395830646358343866550403255934205818988379619231092637507604274056050709911054656768523176713929345036358883833655443883957963590408395723694939943769167739854093989185790944502318418037139482224027101618457435464098239591843372532132602133274692337080187415868540556502059140332272699957752028759124719420357131579436256790908508122627164044271629402100049355531721756524212210461990715118953260670310669341054234376100172829831684685968446353565627720577515698104168028790468819900065569398371724492733710914311575975452938729675534248794802094866863296098120588141775681986513140005534753006746823407793427604601527894809690491512683102174064126596177869705283056233128386997416118236690187522361567437866318546527137726695468424376677179183213346586864368947985223824629541007317204541520317376324227823365661494153683316442586627512351380507081017206841185240220103527887543924618565778074699024600234497747068512750260056296649014939077574451719947658423532637696797626602909129840624582921008457248403275078125632813696436362363655299551645391035987133808194691411484706185396300395147856236797513986640208612574562876166053398171952288594322627731180916155440718860621983871229029681712096862395713968718056653476483155924191304716159571977064945293946407852637923360840827354990697050000271007273588324069999759991665758825788543690385159386675289741992705816925234238971657821420627449496225734677066822913031579290844694961157279901640348648488583921649336887840138322435685740975086385560627140775224231924504338817441084018255948660025509631082656410555575628543573501385480975986674063267213888322067388880707285332649987847705004548871767018846714508938547798245599757687689575831864607453313605218490453297006247644071997632786934182896614801358944455803449223770607448237572800022934362197645686603856679743355106352300821642582217049090743527563826399869390058248221692970064100056407185603738007524551823436420456460904795803602107738402119001035037306187307167979455987128947772907821794087732109722461782284825979851566688674978368199989311134866322860028399229713353745556257817430803120399462246420163484354638720753169730360452019027285937262716304553519892462779167048855859827715900399619619019502637006507124210981105271317925916621828687594763034835765651481776202022299368534067013358195913424458096818868958437426940914788623110591732340194245844173136894577886349851071464189351236023951102495085810518332001552314672283216671050149911895718288903917449547777643705864128805216092471594418684840440552016582565184642481127409639464300746154787253583698446038099088183615236508371873139159422335687742056194281593467210695716268868816453023352040175279404392729850789984685173902203780326836100686402960044755213984618279488394974839150806267778631022652569638003684032562695793717250496123144405418978141519037177165134276936157767087883525752124070131081636995339215657844785951422515750008073999758540009196546703341373666679061907277630846542111757680301894968298509235537754049044751541718569684803380776441360493651259342860575687673245339262985476584578600677465053151599606585020886932415146535035082788123550276445780487665930652220927001922201241773095822449816629573515947301098512181632610955136154984590265972974826787978666522532283671034752269926484875691693988453142189643688991110458196395879299681126493618075634276250430565794506926657732511430974353308086982764553230557928479546090757325977629664984921006134699896115361771231543491963600274825221281499214614742128009132403578088415071284293103517734964496111557514427388442416432747160915005309855989546847190701469249006115595186666939854985117391058468558958982818796448359302990269802840124069772573987352684483080839694378882591095891669950012409001818625901707210135127449647396729858286737200861544338989229796317918974879443255205921608893159544320000682336077790974708088544217744233388467687688929511665746308541457748888758430671514411330999584097567639872109554109772991997455093071019403712769083247762955503318436076691651707404132921894147067220399887869861204852802227062167285828752550983878895125125070175261456225514388188280012305480677268091752735943082550261593659655061664802938206201939970508344334343239775111205766292391053239202514381725444379112373722372910256907060386025076336031122385552230949794192068113575547262578362500029281407123185895928689812999596138533272685993254527801400637666880365707066663076644593911251094578922080901214516133306582441022019306581069454490104288156372390317505358336764977067771219714298174292111708411162361335581601200764834872594454227297983231013279418891825756109442090566281261915180280719291080206268453850952852719535750208109018947931023547292791204634118026690972492068725318950720446169858621913396222480049253324828613607349984029950062538927353760421181207785404808393122796427369446544400817301876947286448340537222956004029426473314491363424099071889040445095484282851605656832785824450477080767097465937259549944657556347713855159669681468642468418485831076653895875226351351880568533711562432038487639227321815661552762319969370638370098195569148490839869982923118381128027539731719962173417535721691434572931455147028535594561534830014385778944235402765980206120059411017672556390124378408874234699586956600707077437867218943021070397506833442410089458282102139847746444580536192987417501463622733057903363776717979076008180055124976031181199209363104539876957423962731355983288763996589221439941164065654085507476325130538294644196889720345975148142052675779504828935258559624326187926760565739697918830574835318216886232559284807994123310152760830756425437087882529963432209876434210395594750058096385009826674024358914875636833350862748559930201495426484929915444997125546284906085889613253416800502857630665170286158624628610812471817816522500528925302930093597520092569972057260959251036861459336029953351516108660491838589406350137336239998596698325639547311925800977782817585793335266464213500333685026628411676012383166879212631582102892973174865324002958418735450285020835314813778880639381499148358182522672143787379853496909122558598857174971498966413306561359022004226794641214916371594098418591685301663100000491366135509465550381561911954831474501687673182357664642778236658204988014651738541528464680549500541128896469909268671258174444424005315455128157208948017069240517600886487498038615582142480152401643975314324443735170611772454444972652383413009032067722382689920648892814969312613196407683618110714356629861513901940750627383858808393568267843363590894705908052244672347668875037394643484719686466420922563875299929976446759145667405565355095960920790457040519126439826405254060989474087834803788874146253162645930964731670742405266654686957921832980520139236133299796734198664431505472893061484901826524432204561291319031668690054342173212714577340764867953183451577336262168573581625792231768018453360219303448772852034216739826179055970561680448379915687822126907278004773687972369048346113901399010164641206966395755110419439218677840913190696079852807722642608183041283050718361979454458763479007620865447628582806987572976710155936366090304975599376603042249822357990979673473620440201681976560978663555243195415248227037864232515909656856727597826993840773562737458843641685081384018592606442104278372547087622289608097315200806456618679675627637164351347494014979168390479092610108882810402252972900615698882934872042014995245677710936586680750509700305113942652492518885249146789697700166686736258305819390244779396575070550834530274628269166039002585250451576633619963666734979398815421076746322113907018504615877748669513444990380107075131590661487813983771582106262472570613288893713485129008176757647322590236898557162337995565418650115463093354825300860995421469254047358292689344497139051109700873580537896318384876342527452200213807435396426304652515501060138772146572512874289364826059850707297533468844296353874733138604336210522738401842511046284763574489090486710260768628551890118597418704920650448980075411327511247960314689131841306872371189900387203471458035391486163518487686685349543856703743872099286498843928968065914143274965445020372746981860775028106654895256656689919655451126810623297067844290408866483812722703373891726002469529742745697936304078834445328363146655837904297083241824551194571055995143401003287245165660311581367156389758764244532905951946703566063750461911743886384809814565504740743967007386655445275617695736450757212679180107235647995469487898793702217988864075773157478510513012119267898693329011469749700743488955385816849239823815833931360159760557963821798746467462405065218230413790797260042920889233460050358505226986591214644551153958114192071545605793083516714761124950720162186532809317115496723000555741637357793223480597450186873720725808159363954027826261747463346410174359088928668571764531960467407847990977919904815725721272964650194627841612857522711195098193304213116120653506209775669688223923479457230391646509120402605649705738371283948161265868075546219954808346881738140895267705943390714461390641567388230412476570062425277677652803220457064611564985317810446644442459363532229880222262864819102917095780279367140075314478494237817194629261068725349811747779841612797158312930864522285624753397362473222185445647916557270200621135608951304548864726432745716750878481055662287992807084617243714253965204365228572282917702332017386485038900723573970713043629975578529258282958676611059220730354834372075731116152668890127092477385586798010856444221647356729755405760273114859625042565976276572762449286033801721600815775948268248350163204620091395913737722332000279683225476611711893857771748331866995523446669989330132212358622890636398894773053520528406862173578132397342529070751422796895029608462116879595793665981032120040317397261528097388901271345713399152035823463723509110773116226594907229190929634771157748579472501089857308959410771770716420647644543327248111934132364993240804437993975615900997064167204227489237722112181980630777875604595892365545985786727973129565020605922631805114534164550112289299658049814544736905186559255581503720746181983269561426657335983812082262148591069245438501335433502653742311467596221814915654435664476257680600333637737486766811236772231357994501520286835029441032166912196519015850360667596143380390052817304404636026470819473265756541875065006892208502409215305854281611089274026235525552107748135490347513984148927092862649568583416667594349869169524275237072883990831301720354460615686111097617823871902666058341205450498547444433218320232629207812607747497642721414855857263413483765930025275626094175031869889933331446728004491897263008514506362437775707185271670080386358249239166431755568263139356897243433926406292056767457811415191457023828037193235714362719439709107239132039226208120546999064355865998564904628368299494001286228037267193406546950562388675744400529968526204584155127492971625991146726860090122212533202663233827671619444362729317208858275723547145380291253482139994657632114501950347798830014842434618331466000304564449934482230006618773308257022266203761090224976407038960127146144564305951477519292112791090326811054203835464988772075155170729534545620534860424705382910600624648034176380855445034134811100534621015076082694948917670507170240376379431636189145785052452999367535009775711300362459439974880550876890393222219754444082638266136282648351012366746430017948061644032214745916983590361551451903444044294458636775769106840033040126341293926198219643783601598723046792340434880839314629325126826469809647248428968349612251491632969305641890133209090723605201384660266183280040888729801948707977046677784538082478939522992482237997135559357956446407720189072176488076259631009533110786166908912259944749488167870261395497943077277560991107732197517664430626941435431905403784880108148605761054412719249660257355760813073499541319469455892214288149156956205316972607076795476256719199876405658806036177471869848575537134593378933610430670526461712947199479944038685643165017907342656563891780771151612004486132741054954313026514219405422470172281611918234432459235156644803606804414382938046865762744868631627125925013867947303599244741474399527875577299559827226127019718736393877500235209890474472856988507581145167356505266254296168555041012230249442889049762388533474538294445027519223934193673411535503857664551926521504598536635573026799375281826251095853046527913571097499348685863158643737274886636790942307293121988268003398456013330096705145321505565872634364062698452228598734461535812899487608718207597181505210656100098160664850665066743665636997466738336297254825279208749825731873787411475956133655783971884219066578103541524088483266105017244607262054614434927916489292654367237027740867537680177165154865742730424853030425275780535529971131913176078134004427447896184960900178434678736934104179936666087382049552548302976650295919129005445490475766626405981894247468124712296881955899863421468601857178654231284731839478435928645319917130702303210021909071372691345549630890068211341356354240803426068361849138317704971819791647448577195893743917625832962429733300770308683029181167275636846106315161829939850362140483267016872048890634038292121362577145142183507637879303785879131354683699065127622599843835878779251794092943219029264743310118386948204638171708971784561690307835780063839501280089585539922052993874882546481181437288205375955647990195918010287383128063578494913909526447322911127965264632278556365004453912686022724880410921605628134872513721491133602285719275841256430127676584282194635993497959331514386356567783781254895262671961553643611231212033374667171437642243842915896605361088068854192494180752639375331589785119787781102453151225040009335198840696211895641451015608740912482670170285946789158199374229531616466054369950079571371620393853943749958189937086568134263261669319510630417787407514479536167952154883610666468825329921190624800008498578572064631365432557471813629635829756861944500760544599086996406683782641422732141747668010004706054275767924258085547486604843279746349067292228524304166851701964683973491861681364994602532274337012527398321883192052536471683022365009033730131428186390029815488777007050473825305332856297980092964918852961213067385719159340701650912890841939189285566422314889093582585415702900565639054167225080203881608454090514474462207236537144018190831221264822641182263858494602400269702469438004721844313834183414033181430016773823043734872271170647872056375919441603035249253740333076655569460446926702278113915478197239229629570351009038430566594623615473511771114623895703203539830460616621328411444808509595173375989840998730932551808444356989155277481454941853933021320593090775801089131535143779580448539846810216514889355700085508985910801479544345540456714865836423290005253530853331973468466452458813001823946021695330029975514594520142489366011158765376487942100210924917485909647322542084230911221109897992131993177152217118651995159598274941373071901286568633719895177848463998103216054806176478193252639860664679686032818924479561487188364408262300102573558301332569813800532810483013946457439369566040154351765420423548804006230047905973332522848648289571932414274112673016322589671878029908886930886745557878814128001250051207645287746297449619716222418441752041518101845221614682280156250992411479514508018846796495399669007938201858194692143927453114648350640638007219724291766087487773414866619844350981300475258601777394240045930194536219288634383063531399333107484160003336337258524942252466181320346076102457918817382332398090417602270775502607388757973913650121367977624351974595393310724200824113667886208360094993035291627195170385180540374029536105180997148537870738335714798743100746445826521163349303482345408159408030942497437757773382511189649989580958636189887980522894273026923359966107491569682238035680748755437326414233374033780679894131253943864811098768143049098466545253527551421404190762200789569676043480559408256174564865301960261182569207683876307425017809135798789382540859715474153267516345009894425968244532266569202610680124743426158867388115599876512686113359863791263457299390689254368846379468023511808169384623892963469372722579590848160416591107817896591855767800717838903495425744994702727902088602814897923168358897115050820952591242902415311083709059057824908109935975287125307104214395561788817174029931635716231985161374881243185531711557011642845724269934056165170771813752398494696302473760774992227061574760337139900895302384573438177976775114378647242836153951849449172624555628550974609415365196070526289103435753304695119445114817138825669493614760341454251806810547111447205336620635908045424846853354922340856695235926647016701976487435710720722520593624930407985078698044196862931402768296862279039607518254857139048238977806164501661473274973341291654507074050358774773945760019918949527092414452909633012411007011850646212353106108159044423921337170264695660655578572546969659178057675978551007069239973853843671633675431369936289425956815022872441685892491134144238100464741522980914092762357513648454989007912084959362226064708021216719394032626744990902537615220973676312856227639757738987860432187143783417951173817671508531393534135842250328493110705055907994933561221088783985555916819810537818916562635664976788435364156648112475974962033512519781392002633887106273565429388735758244349791416845285466692062669965846640715161078878610756244812982664057178627788732029694229916724513275811239224636624028910611783719015505403475242298648719466414014804074576579342892328385583351369744314242933186334742281614078184233637753206685996982900309793273022371448598508034861815797561733038698435316286104368382085098985302354951761061345745531882904601590773342190388927954336432628601580762160704808634291347660607396265561273372599303526760645994373014291262595956462620225379710837294767814887574520681063265268074206959789245916128487322411990070090059676685105443299366325493893545220055223535603356068927154857445133064304390317880693474487865879237965853004970675496159477784890837011314551248994438933464943474743560994124606664979466233087747380831381806182586490981409384679276068811073039765165300518371794798443312223479991389481603330978925965066226749413522804588608733261632747148929711901885346249142966530973148099411850211873702038529186231569048016225183258878290293473282238278495753564608000273004940532000623413987579962318948587943277960792207633389281408696853114357180793599900359814734825772618498755197016191661213794708430583571080459820594998337845535137257458439737953026250518001385658889078910611018195956192071862992684217301467556998097782953908191887902985821747627182894381248827816621719158394997663222203244064857931257828774996788028785471030609351785559936410336801562312041210987617284791931888199673632943177179165534917909366883181038918664822661024543574827400738483269666229249699789891864773945925730220929820732160456901890963076073241277012546889714023677207685895853698026460576808195910360058852474617940296278124918609520801353095664627986345131874840665731619483309306875388539062065597270890575186622784578945939761709777694665652882718286826420736914162331373417045309497094262682336328699608691335099280179333260970225299934447414805569516806270785229867582365665938246479710795159861419126225960890986784319651052968164467132115853772229896963352404330649043397448284238075440018729996778948088457849346342323252003688755022523475676113432865732092878842960302205658383700209011682357426882998434608507068353735068518322523467789699371521220093682263583555949552886396581098877421288402729668346077121270421611446413063996152241337922416559225434520873092180545756332024897744586338344382128322251752404952592570424699697154823252031705117355981396878278224052611209214290950340092545672454623085772051593877601306013856889926653561701685935689850129658498881359478071629041472841758633293721443714461660887933854932233432091742300468486228657129630657674580939869631980968654019846217280533317412744655644920944937254159622992217891612076265130777745795463260987733512634059079586969524937048575944462495284393340075726352335596329048118208295125137340656078692622487364628267865174118247924132664961522855864818592213204667988728644273587768324235365801922926467773402998721653879889671268252769788740526020541036130255482321151781715786030594896699962182798153383442915088936308115406979297760453024901462763938309308015573153087654355923848558189825788184436402894275619817405458388515660123884315206417984575097644256386616111954048441141843889873510154297869490316013604529073843142461864941681415023285112489249502386514227637174444896829676797456135100295396983213197454931678499929215701800250407857152515425435561688948650681187877269726793730563487803833438581605518222561979620355203623154997551976028082752648251574630571338622374792033182078170844551250072258825489590368864535566344829189835947544245531639186861424999269629060827071235297345735464241041986621224740767629324097588753231022054486211568621352171468547154650159121207675608171157225103460743633247666053580444575223303930962975475765256072969967350517517129141178473185531366716322089987593331150891090350576807830871522244035182909607590190959769648031519277265235443117290944677490315052075632562293069509785615008761354199730374865644910679590420911327060550742631122366429248311100875247695256002215948128976439707152123481688374988714643479047900325915573690637048121868785272820906312747367861708589350082597754749279999667896738888851844744704610223722836074454990356696525445443389501584196133366560337411205711585974720334814595420444368218263747375599389579542643691962677683051618514874518917325867382034796524733894085018227932793947013134650969336792630460207084227797197468927865494652247415366533264774024467141829507344542106522259654289287695905565354329216763700423289987766743532658255808822363474843997101966343200680575641562399840553938238321633304372680504272761432834760229080159263194373359662158462277357888331577397011984907183760189204203957321264251775233633761518214823241920297713580910239774959805283811356173898174851623298255653258295043080460753704163862638635679780431902865347835403581628807586950432075223720102517134333455728608106020042692198323229216245421335792357700479027143635274279513226934397514599282514095333095774840411632312012431107262246636084261159699332839459111544398520528962353213146062147758562401389078847100233377727549682372969681750580470810895741099532036867929740769603018429331572896423227637996655805910866046338324519494397014146920816512820616513007623135496662786658957605427488979251532554873573666571739355510192381991364696997652432448729871526452028870775981647140112379064816341341154879982684847870911482283031656493255316096040746804659477448065682240140875279170676920550222416547490245796389200514445867432098986531999428284222244852850430904951075016882274353503194134606460716420128593549354071573626990751461918648618767377594809489499094470843516912888712652281707345406396111430653824416704869279914504522858959218570071486771528985778369927097480502868256233005547356393564782550435354774302196206482190035114945032189294155990686581740318110362485167117149889898472086123792002554620408387545814054033338476262797775338450483443692359366041956252496120715071143326357263128973006387089845041685491195382878571928073724321410923965239648954606653251336966689052220409664304239533063273998130564228813840151765856135247353096626497350966723766179817831826947480590186943621903963988031830429586004578298263733885436030169914322362368078223561999332356444448681170018825284325534125504330783539954646876030256370658319015270910339437642450386165331018173000478541256217539114127997788213453419726710778021675297118089034301655452182190010385311447400401987207435825082468345102263372434685689855821924969256149745384882393157147033340168364782466149278542769794527680751108480634540047742171691037043116291078277326376210219575680870335008958838810653857278516575533279984594890664588930214274873622100016833609855444961375788889090712530912334955522611890475929388440394025010424201449280965887845806537989841225567813162527764831907307125902981198353826923735192205042953205644996664620422044370263253109330824377163668318409033857075811733478063846948712135784980251347674211927344283198967019568117410650739463900829170580785838348946845367962980838592418770117471379040633099754164217522743441398130853871480779370143405947892334937195714352800350473573573190677890131438559647600407240518147478956776858949362399267016532666536985303159076306042421633890971625549188884505584686384436806751986125559210561086217403725892910685691250800096437203471413660873567292623271440997042763293529504354168647612272563531559396417298516452266239179944723152692038329197116131317758806640975736977365547989071877253519433739278026831089995981717597095223145402682669308289001061571177723331486132165353332911322537146435849356952543395956552348650595929851172513774119534795657671219842962571567784790008990600275087974153756671954035227369914902157604477248893959138387308133070967413947678109121099352432088439547726978565067511442168798297594258535317307076781295162058515305057422214402908405222060732297517973834907740184451178913110359204067120887044133973557797759507471453576340520833944090034025751132268729807367829852131135431798993871207756164989909695380558864926169624713146398017922969854965141239471165615512480822351788682435847242618827164719091902704109669015225493942176159204848403064405006099950832155552034324538774954844400809062587173553340281677576435939602764536646921880804209218134216105545734881378825654062648079149593650791285037462803995955730838305930034332918382859482991059214118326319562690441029894723416018028360061464150306586085364528256123925731139551423600014057114029195467831584592745863020740086120642232640160727048956029681417085768170459890071852300984559057497275088703980528186664054019056801541620195675622450877723475343411218106874794881062406573876506094646166067983594660641847261311573611960120683242054436577913147029852656420196577905263322056776435696067018957530649100378534701563301118236171539998028937588237395982100405849721450959781196644898168903971187183980083830566604735953302365595055175007913407654148700335154724778427560096168553146143041056958552613512823195057587012601905046557489350097959523475581058299889166654211242171343452548760082915968409972446023252955489865376630419525525264435610976132548401587472457066382003677253461325028019418330050597616603417334677886445065827073458924819916258511302193940598440319174331790823517971003066089585650687108438708473262047907242754921547452132019165772195470120973980103995484804419285415428154525624836605443329839530173220224044573859273808395612894090786869103893485208868518509017243938843066176080786312668604253983089460981702880290069315607859549116573576970224718801019783053514355592788025567014323843205124579528330417064646141614826952962366768166881784278859592230219709473582946790706837619082289450925245886889535097142659841559471010606551279442222472166688324082429156520831565220199351435732663882629162519603773804822003881202204445982018724304793629096086259361861726874172452815512086670084239447496777591519946581768010858004344011022678751325700126619583225904987227191222992660423782872186538144391287052839115470501036876081945382841864837902479264020299992912287883085893453148259700336778864242230432985954743188321562425779802846593566479258939120052263409544026617855271280408773845825197706163585448426937446509177698206204278315217425201269525249056696676136304360206247690307777564650108745435302614027062134463652394157523754403100813301760570786195929025357156362345639185034713107597384951973874829521652148153911439195967095003062229359535716737598373260991065911667375756875346541270846641366900069333527864961575283136831436860309619780730406735737472926339448392304949929217282170120155809429784268342021370849700688920099009488856766551498922225347661810836603857982745113277858639656712160222469162429229934465284739990864831264291556017003816412357287864797788268883234151847423042879332263956144230091706382238107936244625467375193926745267737345813870989398147757900259630602224597585912571789513419230566888374419479976887095615778604808788194130271333613099219806006934950313718967800223096601199083559340078560354815676386195250994020145289613749556687224296899102874472638302404541250320122795728178209885298339855719406503113121151126000304372053637405879978910724444069624385792791590638438514537801238667214043318491702431748751906260837541962857004999068517280067435742471800320814668861199189852178680847450583462124593436886211249418481313159252688084878895120484270559245505905740500946866934335196533860722361233104456342587230915904685898406129994879528944957043483509490056646107258930542494113033302450829037764693242811711276947436830445843825059712395957983678461116442834121623492549018959739585308984595223055085847034661083483427902718766324289087153087395494213228120432875913642838880256967002826305982586174218554462438113979076704082046187167172347176158149828307971751247581578167145409753688506536583088463503033841124118506864958589972971377177244798554513555634443563372527605512432705314088925691411317794283709965701220134134433661412378433563277125648107080186799518595712990343646272912992162881487378399027312647578805717267180963762749787927268086773392239606856268018276905044625211499394941669735099151245237551002811417589022868788562268187496887596015667567146271259444028821385732205980391064429748637059297474210053289706652722071628798312546089197366659331214210223046185811174986003936800549046389731688643527593463107248188946633136479318017775499090039342355979627605198113239746587660329406761415262336381808117581900704971629286951043407611801213879243436455290701286494360265029174310188997747163543989150281823021886104795183449587479244280016230655519156404106096608119165586589700444874733544486579142530881064951660522432395623353455964431108189135881965993687160080690190099468167713307107265243631966182957139846696672544627550093714964809095532690501739912914945209918250970236681139818841303748187265737373553977114051028798143738507692783769491647638758201171900072238677232559794310259275114938006932064200045541474704459695319487235517059758253130820775103004009009804915750176031077555654302361127512834011069826043532907124115014668503780278913128505508613919905065170907521366798592500604779387583533566678601104062595313323309522393855436287347823850747981438727959794151351977822623720082461639432032884017199506095904101501779993291918025903675136423476833224854704431305653492449944473479254622702935678623907366203436296350330671302534182532294737550506768512832432651347330043885205324071712929064498796182936056998129412488210296774465536436423660207799392999469004746489205681316353868808206233450157810642284459471703279648458373288988176829622656270647059375941282735997681511236540599104771578983076506316068222259726656909539043395874117941419926465817331186162477662363923603221131162890784793719941645670740601356100717743527098388057249195504858819126635819071816432954813894274245143707687143041188446038209698110525270079089906131276217105396876702542365345016203480722706129519447787191558850965568736500842318796492152853470113922938331013172505695965440353261086131737442070104523710615277500286863089471337488060974698767567400632648972504881699605106359523206150197907247569227513349882568462611419747411553748373924170628074258196880516191002435943644836928271513354311992125406694544746680482465087575752220434034434887511628238719483761566297749034645010977312329700825567914069145629958854589939607032565822470759815580356544355466137553475924326383674267565033040257647159076092000794994391156703340279788276700687396272732052287724973133609420503587454856573245574726119782488428775865204036844220320795087088870226639741459986009268319401161957032157284027990358090049563393928527308974589421839898145539999445127175626058653317289940469692216463294409411390705821897449527552181185262633325815892829128523206225031891342792144827927556323071672305962738820779849697606495126646671345142530464485620295489745448319500296539433461462695581548443797360866259878421772289501879645893301957179818480918409756440679960024598855017607227483552233273416637244494546539020421191802100703379463634572236004036100314468295685210248675788877212374681120580358123951774074878137113087967578554144537856154994049983258509890246462589413090182314293925981349716196902734972527719233182669863242117800773461297552633904520337939450606261776537457495550730671943257839469430792598204117097439873603582003470244071865234811263389501717985298060054458148043776797506575114983193726536852550589767850536900743144276151061205878661303050625592942705254084469801976635673612992558584382674154206022873663967541938721610950723524440725868644162311624381632449697816266697019877184938774830355703805046866599609226144571758360102680730422222512574804118345720407596378959947425027599079280401767558240651186559517335532538892152498488567050633688002087773001003196472108181188293983954160487446558684059163588685273398041141436559580438752534787899735464475481568942459095328385936749776983382121583329636965430044413470239953151688855389019486720675078408279871508605534941958103361948414117810972934880505254965051933510704448418183109272223006858122083947296819052785478705610030776929006870597957284511405150376566019231190530821423952728314019771330877432189723086870198445970585301415744123080233862135042315724846366459012580429436023836855511822742268804519710686996625973691957074581996788753268972185071296953905621443921867197270996483453306217426819743559032907066923892372488433388791178462154923376936847421974878027002637987731272274695950346305065434675221553335458172507297077936429489603749515416327781293141369217208769520232971891796781445337193984448098971400901603298641416577791858075314917910106015884873044829075615281963444626017192964536401024268283322933201793703838842468792730503358572500742835632763433284076306416858692143429604245799787540060508453751443230197999941365092780492877533958801466382608339455393141304003735770929955618795783585237801648396665125166463128801575029528739123099848444296187070938755718254863611225408893274061464859562320306855989845830699285061324228503895854396106050049243343692917261316801958953972649782953560189266014321930916945051848087535543451622103137567836002692672002256840382025609821819340960135088468451894728426901861340773934847958452938828988812866860713506725935245196211831844822159420986710584293678343256436145904052756928156225683632879941898760435563802732039345885467502023020465851380196243598623580723369654248021449081939044290600011307430804293547432940227463277448428911865926120153128075215214576442748997475045804286844877346975933504037899583678647177692863711352471613606640046729116524109535074104949829774807820019110873877637603094804000618103967724618832102146539113736907660472882947989381742919880986690332838472640154908282495931751451561490943933235275825607951430256689990145825000003704242899158757228333082953892450506471886140820249252005667191784612494966839554022777479591741008919272569255417643286759629963644347427446581783574804051585240299813546205852226426918659849301176544384923320101840382086003619397862030386682782578506916726075694700557160195382753927877897304883898909845232451255393076571864641907265029100244251658717050609991180325849091053904253634317178676749161083089921293329468057765974560179923008545745359155500332439749201078014697434902923862110974269209848639822094428354755759746472733054166698122161054821968527926739452709905182240721861200575490874298961717666064650351967571445284917493010489110882957495825510617951466527703537670524318874004063334335302108439384723661487031498722136995012418825133726216461169505249922582807233779414582010306133448569324144213480667136490663394933166833251239209520522161398892660017572181472275609175947215532022373892148793870098431923966139316253509349519165749357005703714786830034308634469907540072115883526640844116201292665946806012127959837670856640941548208174246932388616535247913216272663406764093944641355657381852857567555318706657734778936726235439988735687243270098239333951422536032551085328907512691655895202440687882310355441634667137664857856887740835530629542208641883067820740129243124268658518398516506008575894487484104349527831455980151707307812295296038988453742313693512878142934120071603865609860955403230879742370688493704234765538071619266004141189142614264180490956342827920962905290710243713561692315891203953022724804708527712392966621665349785743793730211040364582322418651520328322011338810808369091127531764884130846448910230730301721174237403251986070717138585580807857275725148740032878100243122537559000938940343011226433236765818990881934092551656620990169525434248248895976061531630106614953148690143285259429408368233186061755009248718660768241057535157582452359444018264060111646978533459420899861676035544378319982821044462137126530085910875558351477098107588326350185963948222648351438300863167944782998740182462481587239519623903205010648279820322602810787921575783708023362614437792416581800552491455195334445576753018388324087249699655281302415873796764078254294624718624801169531588789535149814095233111645201287604545335960544542389080730990974338211175561715521444529954561539709187374550714735304320676610872341952805482771381785562228194427679282627991900406493238149354846148947854299746857937752779286259225532455949925780237853713235106538524442736704950263229750547178985551012561778583182306000497595695008999344902176363017556777672594809278230852285588000623946937527298748373187694731416723102456018312820158506840445568167121114374042154345630011493694689467962634880229081160632522789616697973494119005397649528529355548831953072188036083934377201547006552494900153843983327615280691070565037554086439326097644182236226229736911250027330289596283567841268059884104754522041957458148825982983299734261840903249515609830726021239158749377968744502093471891617589527611920258747130280808846406768727421214541174834641784751856618090720825560028230149928917486257565070064822616489974728344215065954107573067060986753729223932623239025831461199426380651856068276983096130060825259731342033439212147825748991468853432543867814059890987451627846201422287154302751218252306731863332515149409708754338800819231068288805521033623006992429189486392900815245309861159389959314817508118779241503909049320668082645733083252398441031728395502580529252691467898994159820977975545543671794743478540304566549910045621342663882619997771764709149201689824642987101729850864755569173487421673794446268254391848751211770109013396526281244064156687348981836016235705955250691783472212986644323928770838073250352554277886187255670116440445774952120731659199607663102944197370294362913160981108092489253812581696905067155904211126498435286265084907862975240960516082483678472881835309208421862034025471560208679617623074595778711897339683501934342870087670860597277539423116374487019399814815477285331163804643669685924693932735378470335706947918318624666240207086906724209134268506794881810419622370349725600646706980244811261952792101244104075408604745572996128653947165344181087878226503291694110604727041610209404357377253039410103458208684587600848348270433957813759609452430871341471413323909514820495238114447472256157899501181517348116621275319900514164397740565918308272153589738389676455571373452124983748619123247138859014086958929138588441315939849630448301986347975061282584056522617637387676491902451363080813609236840853592917766961755614653081522626226352765745790617823555699910372046567585477377935943236873282553678047668945916514680771907944611450273722502667679559817655346939422310529931693160996978613972266179831746956033345214102767039981601412774532573757431834559384054981417433933994762533700172101997840352220836947710341769472412552811171435500729345397204568338393219887025548977614990592353388045259157323649537507810329680326556764949120460976770859026809265272021856489588809535936642292501055927945913416550317093060764641788252641086726167712769246357921045241950514261737611890607578134039095886112739385133577599504179334440849849003010746251847776039439451874756749162804182560802959024013857089127358088625403363994833521212763730538531987233367454133708450338914225035243931478419251319158981243137648429259322920478310032007440415885732273210072764551239856511015417014964341559237742419677982332124015998875968326927678667398314148120895260912549412664312146409237475766138137456458710131424181613915017740140370443429763541778505480220232975907254572821852343735759627733609981697383542877639808795295018060558550918558219840038878152643601816455864454149664128530499240488663314258082650727030480557455843771829334945031983100762540333850586797571124250050114900282503680091954330832332360971574293381648017300372072635516534497433411212940906745556694477267302729537121043496503146254941095412178457879333513704835798623023674248590797066422974409753358258046167860107641702496103225509316465341544542758917856512064945246115471017848111152923995680352885528579201604168104448852952437087285040726534732076279526274822129240376176229241072680121073589073281489229063885152785141743677907604882889337931463579321103621062226129982465920439206596082702772464928097236514899359445620257910222823015888695688202508222772054029199094500921471634133867585875396157368511147724360346282142350798610830366227456596378480678828799877654734263294394815776186529768811523852138552878615426068862844576065587734101476760779624369250757318711778271249582142978767103457632822931842128424058917409383563634338085688056547615261138927804694928705984655257152895041815423345505149422125150231845527744460878914161005762812485391959190276299022029365987553179403465527733864078956117723941457923734744997257821090080311525995581780629504138784639043118163841297728930624955352363949321432275704172618912895982255452361593698888501131522584535505709810936533580541684280284837084544826715624681758760808657358741440131814878295728502691293020742939618701747704994251687822324385153682999450174644148676282114627019056822063510756501621543922106356467669628606968754910175093997439777947660248561104043378899019109115583454151982691354205896685021679442040043981435368571682995601248615887832229837886696172393853152012357304190476974247442988296126120257787674603588175326611961907731193440681192392067384883246175773914696461597523321874272520791029092122904527241159997675218424482252695578585392137336684401485123089856830472318076133979490366226274724011378472827748362838387038778542371251357660198645394063017217799114721995277757798834688999364804448220991476654600310509568747690227342708858880642328426942056429472823458757841639790150431815751299023383021404806240252088358384460323543256100592427377932349260000844125052227767087938755908824739325046461691086895340486240982974685327186945657304164603778300231444264863328360960816195036726446416414071989706209587150416513874832022954512501291982849096771954973083528402744748142722171182697759105005085341346401814515442894760778330231107813383220171100712974000037949232711442684848104393223667311413909197327910999912680480718827677662569154600186273074648296305791633847342631647408925951156254825586235201779853982767184789657988617952967821184727283881176803697397090000570099211703984333506070975256083776699005243248677419254833298490501241490511715440372401114129644864375748170034769886719643752224448989979651933511322630408616954112487380047640708956973979916629161960141388390243649901894684435944657935281528014320481353644148211256009080724596668402245791273907646192361814489937499061711579103502841803849916788266131353993636259125717569702552355670504945528743088612796709439060207970994789849723070933130439474928160897726640884389124075998106741249818715123556778105217728285734540410487792308761891164279982723928779457932140853996063940586836173062846358430020796330954502114837375154641229290313341106348146821029043131748972121365154927803934756429016871566099233233128022719498585810214222792495864401304842885742477653367690034335375449203170021607351160952653674666508870945816034686199184337375660968110422260835633688432883577820225491860054045351646529063546629869112160176015798190685864863265415435381843555533327224157758628149612080422017692389231202992893483827082510051141832278410252881537933486075992300457105796170115093661982782616083112653984282329583834382216775704318514173967532009355392497335837333143744517945754555548936534320906742048985084500269294895839385321424991287534994967515311591557793072023534807711767380447245210238009879726590156858599808028030826885420758829792448030359811672853989418622578795870266163010516514006986203381221612407304461571468889152682473795865290018022511312365078821120815795843183371422774461099106637955103567912195951190422761913570867044960271865836801578950381926358653194739498367023412828110056236186548650387894222074397680108219897054216217606662470671010047876127458058791372985543223732299098273228784960829937706398235310139853612470355105805379810767932197145604895100442690365515928546197587208931967996850960761496912604803901330169313505662277171589935937984690468720541805952250918006065055823558520083502577564171097097496343940729831970791672419581732738640852085007607611766451502113520071453950360401244960563983431719653227277185626401071682892962448374738000320636290722706050447765629373348375635842154557700320862213637577435456951179916575408552993099441432910640173487579998224937402756732092834903595967953990265559616316259915882281514622688807253598405090969331832339129659988133287410346508617655511302672986184460349542035132693113366951555666436570356413264291685523577014016738347074970959613187296888321500830508553077849712949021832817549833008168215059198196228209631389590910455775862160149447552962654854788853418150495673251764493737517856273900068186784268738672767051759653338380332337137984280717052614602609982408631870979896985569570052308774514763933883960234437987736321237785266446929493782684436242583986428735397761232349720377284669376664145479815677632205655320561916621841571097118462349439871812918932299518236406770930774985919323884354584704088934918164017110470000671123725504350616350969368491848153510522930565868467417853406875184948715032541049686942176557852508117678658357135922691703711380162501596716398740448172412193400412786979393768303530232381276555697496824796106164401321865213714723838197154090911287341539626669284171474821589384228682212599770016478272923137495089958867434505153641056007985235573413341525839474700954161077887898742808237593238254653979368061765689916408900224613754375274427817567054300542462164399523672154988442455874254321214899508551847941288486224023321593702864899616979349398147569303794564586202593079967911277627441096203284656099670933810903731126258451696656752779423457326337099312740327607708163983604912830249758463939938059513640837061632042828880047616159832863856584991786909516822905492994319071269562599662362315339637920427220831683092269863636269827030553604123335929908878867231397405927984011243520658449115434535906953091814310386362295680386157164646904549312886349763891568999022133273870588917057059267786009664974438684934721945750163133536528321240253968782346179591891383016357916293916297622284490529025598284324381393411899441845453596440629232687027933359169223665677401686354336864263670991142026254078056364917709256923825332434238139282510796894092411278248584845013218991151608227765007644658321973818233663511134533748744807609758691033973906515834004766092560868435149852947579967031115690312043509658275735012574349709374868170500765105278140557194204082316152509069251831473275818314430882376724833344254476678627751202344716973470786763472156179810898479408964235970115555539650749246627448206594450844398998468626234762371680046922377814387024813347923232954491959420950180524247840283979195674302011387204328440251143713214470984094620061949977597853708098683937144087866324664176344764256765926869724263883522925529555859362432924482401419740778871789865322593563553252359864492458970743925148857339897749962158140732297679373277965770638280095156757634670012058936242932558901323427673797159140962145531216918537079606595769544269709586907558938448871619751067745785181515485134952608454317565702026914049742876302475908999148727976207739097305037371046841113211978594288254521112875047462566862892878922179112819977480052509460247902493788146840018089080349461188246312640894750221988386471709903520589087602040736440860094968494247654144970317529681274880715193163513263938973863404872265393498063461679265389851311872249572095499758359115986431856703191962959513490241542086166081432451491446579161345325479533256038590477318077371035167050463073076828715854470001005508072324364587078797017226774086423918158660311090816786318014956685291047961203347870330179664067922552674089193062779583861381889921842840676736903391845809774616629131009172266646213019010827329001547095606251631845010690109499713753422266115580924960312538871290421279076795427630224550130596566006812670515955785567160309448323535322621862860199433338091487868699167004896351669899582183093395054632247376786122978113166291674912719393927465779620082960035737906943600446769543334220391067800423949841182253233129534632900507798012462414040968523118499382689233079657392871324308547598347843661702506301665780556995731028996857970371471926229610172825911177434673502062075578865325144485605446016969342812288696281665656417347370678433468285586233382773232777451256055016876093257053257598591205616324374424217422633726009962334115947027290689391530277406118030989727835262255258023105080682997715559323814891078962351616156833131740988894612740230267962576177000485491909703571436252656813268249225408284705066225180550586661497699650290436909666442138983671743878836497688244783622580092245324632438289482314262717708662504937705113831722250506952030280598766447171144571309413864232382183851769564806257688443706157014044002609373597859470856685894223721213027617417517351115888808352033281945093376616151785616219891782482536122761926694720921885568726177022866105558404963013359702082716862346439379791014197966020424437748123137520374386708512546684459660694880578758917710843411415419451567371946461323326045912954772165249501142472446412255008464584474614306257544562480613471103820420280328474693367300886236379387456909725494824912966752175385257672783263722995885525496545290174428459056146200462475713039369736202698275678251710708923672108732022340781973795947398894677515906912422213453447489783527088063578701704136193287517998159633217692259426082953955992425940520542359891787620727881380935063321725182742751531772366419416531858515879281612162806173413886053783891722736276077950489821385515723977997086267289817549338041532023793074847282552805741875475734408110442193529472541804642481147450225731188741434028481184773568387227748552522383353446006209345261266925334111942653283183940094886053400077071600825013735805731929455487552677777976045161537936293368470668486995466783675302083388046075822027099129920389435863800338636220439737554955957016214604788269298526325454823520020736124859588746002651984247591953595736043683630173013589155072758425294499263099020769885289023186000888178878084210622000571075264859770321238002466233755709454619049749112315865875234819786503002939239054818928189659690480306581939175911756175289442153142581817746090263263294558438954566301411549473306387071074743940177239680076462844098009471014432905249197081909660938925063132920419157367135240407472077515356254842792037087788033555712654721567843148408873451165782046503727333531353197197309019837774474712956344377064633476386156134444578638855000626300989204720434683095415810855351489486506849205931160665887499205503763881849335342990213150388442300317324846496458274281104422282329240399741455268846109903307914720197226107379402245141709130142901438721543768083926288392110278662089723181547981180997482989300318736447171153167030150472166913290728534258186928791151285684539403069866831289137025174261906162134730958681536854395042732755040194684954188201476199508250839414260775984406642251734026249458746766383389066584760337783149947107190430587774292226525767597701855118785307180885640129234232463754228317026832105259225925892128479002392713945256022470574104248414426873767038234872045515943509229587428758583717950592092765794581657761118372668644000728666960673893472037580927422401825680729466520804998943857887745911431765455378518377961512524391928136667932010614756975144512067784639988489135236329941898780904189586969995206236044209552904519923677086116789510194115803363125172133219192247275189169835719768155332712170020990766658271893053265969302894646572668624860058399941240988868032553468264139734991804100558075826495998889464221867434432983781894035253081818517745117578902637101988439100493517062783681310161527939085766882780783040267414843671716103125729511489494335588308519359413271613328930672051356400257638468649793586878624739678694428145467025095876531805141293697059125036606584652852642124053270535714761391410993191008071013532848980981339311150239231917080014827150105485701367879864405453999938767024356188854357544311613800430041285765746201157602081015199223235353632194603495972341830434729232807998744788309554550848176601866417133821379401949353736112271123289775603499240797142053796393450814240116285411965525150057657715837362247534211496942261691622602183484335263829026685162616652933904596950191366370751049878895892483447891309910091127709233700642091201037280246204070241718902436533351371265046595301657442748992773682526082642329438128591138436980460174844004583547077253158759141057587089538289846510665088911379991925436206992769831166064623195109038362724573618166525246757296455449048520638171365721882285986396553822770523182560396787137453083257058684008846850559790176112677661985814878358990057933123660720621775136927729811894435681708925423107178299738818151330774406526061661569675491315181715379508347683363248017033834793369512338269584361813464937340587506101745857199903251760892239509438400346521204640831810249555425654717083800429400365428575598563361035279997318858913373929567303106678299496860598842266759680797014281153308951900925525326275239931619355227214640054357409806723644337529820186687742437606079387437970423105419983161004646010185806798191365629446726047152859651074906360880191739206206721422966926367355512448981506860820751905401386459752865944349550285584818013427012731573197013910217032899550022733844481796924292087029378224520221577621001986315492317542565789053484782306793805044486700852591636888231852863427887641246833374601076987759051853684982004239538011467221324116800299688839453765520864066078792473726872619670510343589763687921045977338692298878743340587166111380030154205201094427939760027910453848729380328325356061998632362923564254689591348463953296980425554679606526679537838582058850599487494098040854468948755176702501351604210726143269928752959829919560940221743445421386107500955695536764796110175466554444820108370653604889853951824002380901933701271577838213406391746947392624782882865990844317991850080373490199348545881873358871250674298602042028144162644792235968623845517750423898031980628357276136243985176097968411921116565562277588982054010832450430952586440177167729680034214957305581552725390918451656143388405043038509787545928139420195520583059193544655682630041077819957557146138261478089007141694389086090494892436746541848772528010438429269481082384544937194388192568283234922052553958792655657558174143271279614911689597878345450050761992929508791725278771506452469630870955563884420482188033086964286195647954590222927243694850798388030811938590962531221643034433375449829694726675755321048842419476929260713444656832799343173406739045288415098003327091467158229092032236594607263226520364245983194194673800392626392352836716244662632157909919510468249838980610949126352238110710299301734603000081954251592167799489159087183907853455015653299623950963669045388763612563335258112265936502275394932536919267207866955556321208913412354373003188801828467516541984020479831829339305346520563076166119202718523035981181965367568622702710803803427574292963816492855004416766100241567137739984834004269533113216875216796717488208637020294343239267276372716648198713927220017026469333870610187705611606393284862543992238603094433317999449853146993053182109100086353144866241656202113900666588066424172230508673237145086093341323703787252416350380299644107644566907503404323085263418185619300424110929942508193503865285429420027663962510296575180709173464501225204819426009821242962326577427816752452572857534202727327069340670402493847652153020016111573928355012831298750815146181130235824320433234492393080114503283097644590110404412754647485907744446873659909503542487701476140346971463602512248825489146516542595222658565646797255021013284668531176503798183015041598810647266320982712166312626058096606758566214237537594560397676663155310012070982689721594448962864797070827342287553607080847302326684677516656100204823140680319624644468406649570273727126869236874792408074437366950992541016820857499101449440780046845140153403766913646339058275056138834935873082238325776406243415926326300291027956381792940398501733259404167897220949119485288512864584171207011551728083222528992744091936572965276996590090664233675807954202269512838355491089134593761876927629512389220046740927102261487540423862835968907626184515922498985513251446490946539968155215097480750733077365570143268745797954797272943933751945795497850288206477503025496446450285518826076765365719212392062637820292479745152715361836654207938396079749657306636674828402149033634381881506826874837776794849178608156011221506455348709760095312543909947788259804702896833986823702071290809418969852108007500945057312588722429602198157712474419482614748052914754869465594066410549079780483639219831578777003519560996088850763031369332949036805025462695052555744596008328481031250231141733077986766349382715272735553970652951959525250797166364532915798034100755293841995783171408566728423496199859246381683423264674208803295219931304521730589355236444266353330190400689036574416479835475889976726482814647601634974446097863437727071492793137362092036618750111810585438820345670928072009628177494157734391246003657167024097197396131788564310045650464853057012085201905738427474269073786662890944007447726150697067979123046507873024100709962921953959421079982093518106461038039241313943379358433173526316573774195899451819037196766560877155422953796464098857818991812643569439846413721036072692082868054186716584917952828182244507112589511941230483409376970597904811571142144313708042462595968114370415299787491863555348746820979683609312443615626235182024208665233219328813245372555389986199487606482707878508899927179119233896239719891143715924388274978555643574208633780614286317183440652169781012123825024202264860634787005969463371923718938765157542139480616566545564727232513027079355058589318277394742177236812580531923554988666528587967338899170775200831968567820408578724886505467574530927443808727059666271358568147422870144059832520435314439156351837202202052221180754149594170693655585867460039775924967557916639029896655982077460063947216826481062316158419724129866120406039395211081288172287443612773010468657129845654767300397514475244804763960619660070807068873515563429568081619085444928120411341898570839707920446351304872481732290244226197328034782409622851270661841902220164560070972162117122006865348090157336197500073003389758567523939769608669093909033483280955887974741888677864545347791618664931126123953369175103896720191750019503095082615979937714625227359614871510217766416720493363805421401471940868036497263022209041335257829541416651836013396700185061716801172819583718809245657141147897899546804787519798843189263602944031482480215674782473412602450289733407877124060763313125567917274330445419976119308838371433987410625305717273234953635939810656084362240252433133532933379691265800861490795681573122057191006228367980640787787661733936377644936131106251836301388322807609313360617590248673257047088015248912602247598519310907667457656465370895990735610202335682886555024699636436361754032960048568994836413007826359288272125480696658622161472597783928086376717564491874656363110613267175559099536977834315892601320999365382337782122073710515036382376907425819718162557426575315084819773273183168115292691243630795174253134545996969853041024259320624391970965853153447564239375037179648221742439890796358678403793198766455637469941924748493085923301108404034305100465379578451879691448284450606661821618120796157201451213831890355181869183350325488556354517557612582594947961246303188950438698035759530000361516988090245336032414855487838605752119702850439258085569797885321884780243702178027592940392389573680056382059415481544067551615670688453353926222972722619983369592962730511463161437839720457045962232681005976418503388679257596728714219133388505253783929624269382181753358996368493475179335422064942337274835196827200739818004844981648031472020524503856720353329250641021399703933729919415112202424176792882768531799426661705261830494401302228322235153525157262001585550507364006745295016256694817968238889779056311841509759047279290226268115777692837455901538169970213100935013325558217722348032933575306548258010022093221251752886110550673392926003537023589887329745034254705279781339493259263466728352784653985091659868961190516047180340838798446874866625214363725892795248700725826416328360437224526168266995459519043928830349707010739966265045877910817669645640497086905194424868626504048867181169045972353783215001226201154685878764727309508423752646270485458174178318786666845470129699526323383689693827892410323217292233290299058125701989408941319686673211255865997229289137099703596351806303426783866303115125876475185963542618475300301521781348511743015833654750977699781698796892604048486523184795097074743813440835176242960610193977260521478698293994528350672778496992458010299666398948892447775071245816224078292891488683405164628253271900776236035656201329964007193625957161707151217673190429466747104057256834003928214687111550658565046937498061745436549276985618734193845643709619651139003398239944335693951022570846417838037882441121217917822311260139388943603508049722326723302722893015561396251105674780093982105774555670759595661948418108906221876544685161213933115348244865483296657284872304397340344824081491288253034697657903542359402950203970965260331138571730670197396391302280178150355418031516291341951156959984592026703644908879659356547988784483877719146935421669140635947852896445824147303246666469219048097850788681164602930256630409149899565163558377958231351395990077107505539567947020884233928230926814263528895241580125595095495328380074445326367556090323102793339778130880444987732431774663909405282883679911627078452599796431585110211856508934458814516224504240302950873463668822763135866648966655336368924693858403113082361206912769437273445611119549291668544741102748801642269980437053430648090888180199161468138907745213246848756743879622958844711487761780146928561055749458556811445050382375002653039404047630447341277612540207417336131101661566964966907875529851423221270830375433440256002555927544518256806625781966920626994777012567043853834955243433502614452142657416371225023275087798764079576960095478812116280822642487785691496049639230207204698679170389202384717422149757974811314154522698270466454916609174139172108613666079628125055918344363780733841511526643150615255372515696363147045528473466431854750505997399282584258121320303207687363806404806400410587813997670946065343771837100025061976810971832890675070922493724245989060585792582653021608964996384795874129704775074057622881317938385273308193494958274042820766131667591121065547793135448907303718719347258010796482827348565971776041759663810295145264851428205780754784103535963734782273380157538857261442332524104052610339729395058007396614755707454688447498905603924558852982902806003951134414186431916079318023588031743494110477633125789448768272661873564177007216062745866426549086935096513918243691010497177446985637789943441122251732103021681508203263709558886681423042764450335508338534377662715686165142331810986184850221934556436876332880781893781298783409676720188431548899001053390199187666005791717865961981493863223997444912799266934963221355736765948067188982298851997756425638547835433799617671176622394096549082885437338543720188253239221676623425092593413142128689327393406562745150023767409479288005546270683954643976511972474298289320066110564490950137662459316480697182021247896456373004095203887332160511877362590332519629056233244798584162490916919432993638562092385781093290158652680698666958489006629360223126113927338512738675308690526879459838134309058403156787710532984803141724989525815757196213688028167530363265209503112464528374973220620823772996572810831880895225730557339814854329476201188558088277358726783465571817980729160164222353500758912885488010727096560577247768636290461220826161154968337281503133826584246751201037825256406909783389996317388721307527179844196721195333155215342397258976099204132501776317943535085411891864243939476176877959573033898444959493368215889477184918515205981151483219700065793335293538024127579348908806163451024152115742944283981954966857336442415896096200862829696102566199232243870286353493408031732507909241767430356213782873178326130216389317631438304086719289161562925487875376792417801594086085043937231325453555775884782956203890817717169134512535972683501633658120421250221715845550635968754326748404212327393667157952805536079987277310658198824547951936516187240030531047578810171662889064845859356539860417361916344377290943994180637973654468964443597305722695444699877870008337687979323986759754257436200783015652063443848379650984035525422774239115444580553775116464813545408172102925487779441041821657797361485904040915795297691761624759176009041043383552384886591611535946162852672996099654615091532297332450289819539719729858708273720061161018991437177212256333834586640523686424954098166399499967981624529054707192237675306961989858705905903057821123975098198761436084175355461709392096131132481174077856726806170937338789504421808219679050854307617507869213520661201303685691331393387794711246013113560568440758755549911638073128823466782075054539553698477026930413242461614864231526600873500015104174924632949491724179089893653487498034942397668230799476131493755256276457838940171582449890240155366602776363613726063605481772125923507903452515605384942390396330143459846174989444141221656801166464686945627778283728503105548855239331090941940081832624072087473463963169377649194353796097910787959642225580484494975053266509023650065477777280953792406185054415819544778848858710822151914938366844601498932210198108878863908035724847790013400221701625752870816975088583811243289440244818321528448249164019438564216839597108606535194923939198264134193706324599350925789050469890867097549159810330636800126912748699025632923386254693964782493980070358221227308388113545772982951748710569218936854686682046739803922843959520621679052453677424876959591555007500811437059980627756780232870501389129187598262249006027369399529956759201143265935484672470586181610377086037661795096785825696306616779075287278732329382281719123198988205926709130535527271782822488799987671413150340258468446538351307886555299381381948991251437577719229613058832442576727176358492992181905910204618314179322006599288885094136894584597760130664923703488003841367634856948696854915998027979776081174385038245164167888694936096169279062387046012388617861715954268395722609183221638604028982126457541677623771644494169110790219618999554516951762225895468707152548523244576797740568412834000310595999349575961435788880958848364186973781953319959742952977382890898522596941822773162274873641352519718628235533424527128603138530271687572764979884980311769867280631705413763270147699211188566716844489784495534726369579151482403200017834172736686296737687394220625802783012947344730694885440189061705995378129239504787316454038586252178166478355291624154335324992087535026555801669399866445816862620051112685607503711108291854940101536159798754938206695261046961416175847137936502078738350224904406303993402032578901499196980095391619423612749390358058118560761883233624364538548444528695160112705089586655397440206273061463978763165110567765347955528500231009705222509753547474436047217300880207803925191851813808236576689349805144735320006646010698972897553576252625321925604239739746850702506879379705354211385084885000466745845662757598507074130215422127670221867529458013936499493022331750798361169537316494241174132654039000066982397533050234465175156269321766562243981984717419663086108742655403724769170411179944959744943490106798587264114047145990886310291702946931516959191753981769074569988801675159594039629920249751061605078955896197833688523249684416925571989675740794877204654760561815784539065573375344385681282423717165076480264145056387633983368039106291153514395545704991159369689240207420320902796446964148574337815942177980824203494297755564933930517513075350730283725540754398670412279169652833786804643007390658931564974441292388724124129188269119708386484496650255551106044412199225999115323797235562452526112200414380172502594755512001516638344245360694368540693358957331842753612382763610902086230307437323340243244935967346216812848032952296427498181499866968469910063780211551140243384763825832710276495755424907861740830042710705551101511140013986337416522311539750700509541296542299611471121090824219311961628568088198827916151252266106579192463508844869367610867906202596780364800704292180818391971159148631390393448901581755735611983016001985937575210894784996758819045594744718695394992220265694220095769285879924847383419378935290453513563747668877037085774462261750892650792618132590817129261547952287055107930704500540170098008638845117456990237022421020202654037807997939909495749322096704368132248673061384671377129886060907659953003348903249394110619188553509064572026453432934666392570446183988071854092379697494043107889841561495092528393594623707207544955536349011100857653726709932536610756600454461460732810814129884891745982223197075265644737347703964874650323776985922836080412620155853485213468242752035103589291248301093282621565983415029009496153809667670849830583042391558102900201728148799842158936971369238485668686772876451002858035738300704089909708590421978571272366320914914909505745569479765803958842936767288564149599311710645596765641228171037363384525648928410560776840905632060757060790190243070626298616770923839115782688059024207527630824006069847491640887082038945778727511752683317895083530029283683110477375259950262271234526533345722678241749633300183299256129424050914620629149175809797901461198155425792396286742757631229945886551029591319984922783210800411289394586634584132677598756335183759259503390372747581880512522657353338972947466885919161784232738996643891062926818957531275151940291088961239098352521194821920590943315792970579997579070587055997613756154765304625565459910857237609337363517862910112853513065539020373499325983332728830095684508030050434973164292078947319196131254343841822293436565273943037193672163833070071964957236026539666709097143251976469643434882389761671695536589554702072159665106357993110668478652182204219261953398501379157430556000689937075023829166057299032577576995415887946308999672843060836127262309223512703839687089038204431711540283232306687709489015207876602908781859831850630980295099140552942097760840979642847442699125619042152727111925830491366345179058841426980489159113552948529801585300923365021723494768606045951009015121508643489195208679697911157715747291553794416044756299095571059921956490657113404816811588053561707877541178424218237943095409533398295721365594900802301179494986466082276574596372825895772911963180209915446107114256037842788717404631431351883444482210695565746864326720435937222453307454555685255305841753508125983628278486129913136863186877122641548092250451509640905243389763670263201565461271967578576533237854337582692928804218776033285419610999179218738358121416842478893146695363147915547829325784001047340890637287377199693803771693649354917469303900323019622384179578052296751067049086341789526343121277328958836427746011759459305579260805810031005787460539575120195387855017489353224611237366082311326391756704641069754498834605247997852755505487427612633514427204213160323539826622935102564800040447113451536108070325543773089806279052837544297248227854226399990071631534170416408975880322843424331311931446568183856665594825731666453537647795436830424470541549657056745657799256899517580122918152042569342664024566564256944386318521600514297183449265415160164192564333023909233427551516800727060106267794908737348068315651884191286583450994851454375009095306930520321173514160000549192189396849743271484465650608940744911108369150761325026461209580741011989394505817579801508156415780084457030392384737271008443827178457312917468121187743726246980375878694202729792681863099404782599359989586373550490589968435086049594275273561646421757341426028689452536962360334673674969837528810984456279393088902716968770580927788204038014865751842659168310551543623084759814299419139972820690579105524898435681595353007953297208410897194404415344475163810022854252954233420789698907503235350565663371108673053031754098264175841864786340079713941300725653537744121925896897248436754749902176910350461171156851248976618565569087287838313850991075346586582411937942411828652304034808430697562179095041635189979847169349879322322976089555376380662305585912180187878420621356831677250524999266707514365017606358055688964965317738102206548073338702621423195371355502742084375798228999194681950911684539687819474450171926454511673312919406749746770440878986312723295753053919889962603946400972013700258160469182960433544313397220945175383329314001697296302079386277900562298982278891871772995331845553872936002258241974954772731236350224718094287526365478541020182360064635989815322839689664922198266005969730957592859346337349188510093157285300641564174834921722838295664594544253834514495429457139551121266990680404275312612182179655485404487360139093463979542391565367585117299223888709594729096998498509785287628488784163449142199290502635463099128967826780459806072835100186469345748621807929925377515407557786961704468714374357954458084888598506643476326468603207424923944332982034463247453283809671030517327032518482333367769366892056342648074777895225704704591479012159425706730181099170233822772088991013518871457328560382112889999447458643909615363713950992582376517765165219027587662317647559043765666826255023203142685840959184416354620013036848977121807813838048756442011958576937802844064896582372808539944004623314410238524282111318313975602955935764081038121157405726681456204111831984615150807187134072085884485611165278959957391524833937797189091935255121018456471746476526157200732350042350807038114279644785763910063983454347554153327421346630999907087677182746785273287973757959436725669236525187829988976168136967195906120929900597376769199197997946463420504045774107219884188760401397133569585090491695337291689101626874606972577238599370838601745978393113755850484457703938999591643447550623365148251346852894157114301039363572505835730358218771866257753174887051947892558468068126435618476215501134327870451533364094264317108620004381402383208221061260092964078318905787534745014383272245122193919670579216974820026844058778835114636370659202203431863855344169071022617314839819494375730601064525896514046852486168016410438100526145995534334914729019584062108386581491596156948465932507872039893629983569060311920040204691469964496018148099585380224332552246386903595515712195574784983174890988099503242715431561229029398942265483618021343080825799938593495288297716677314025580228632863132758671011592617900677177555254178458737499991219161523690738879596845206039890418926107551192651525132980987393059862702161040886367071268420416368311521747944910613839174108347781141724225236314647897868788359260599920589594754418718397105028411743481658681968590472362419085903243606953595857575927736354193011652828909438680177672080462936275891887081325085487162044289871308331867059628958169568686565038865476605178920950394274198527782632784592165075948800216433160975325309499671034340716289173971995367893628156801134534438747267831236536458021551185720052252981131259559753806901242584076428351485520433697634026663418720891962235049782741752592056283468790313432719254634083841397237545967630386525281691103983504610143795469717696210457228976461742075083325583888487384305730392077135364094784208009984908587246379186519482095786593915965310135483670516456101824896216646069397437446756563722749893675457727850911507093562368042020770506787234213153955799206138454735235689030002638197210085230658638247506932487857694224557437128677576201051775525738587294725656442644539403638527758201097144738791991588683021784565073246119754749181312083335743992384299251339525991164109109889823244836076305507955069399073238984405775725807773982545779640041162210950845417272280850398829117660212478405474344593038042371055087416721167704810188196636879817368652339990151409547154577351083367624920741075273075082458410398090224308308386717767944265967544208576312482999034396326205165613562337680500366232941169238240031245284607933882119503449501528221653761469934240360277138628904751246153865851075406091440981467988926628056130114366886247137336483513958758672849099211794700642625831220747342812167541479302947479577354476156801935228469176657136998539420408100526902189369385172622561242031519487973604210189989954414675717557022717427314962239750888422735796650067955250426386550731518655448414933174852256177366448259872906260220642650192498048623338999703688614993020006402323997898160706554442516844517247399450131522583204790487530012483010517848054984253877184531163943602945269763797820548478123039031029760904799334886704920823594280928646283604046916106263563131180526969756632674441639744777652647007653847551499813834985769056880977019293000179100739046859172605306645808434222439828085868070299481344936214865121215176028791517510177980747938390246619175714058355015933221844692445347764850396018453956698066365752657735898258148374744971078271756999208317861276531047822984213883819340544547237090600470947665388606110596918313562117102071582675700235187266959021843152447234603926616986813823547358438788657145942080703236421962834279185152290456791068023227719845626518393194786253324223338167018023001375155023907399100342234117133821885601019497372855329606933838071430348457992526106640456082732908100534199107828091628205700957619993626378627090950455362841964105066122647922801860789813484393652557529200305501333414288757827859680714267196005529587696682585865289350626518655654151886469883018213051018316728590635592199723478017245400823186354882648480861467698142624185765432364046292764642681949322675180177590960551677213051065895537275024731190371986806911567020454236290856146748951193298128812813614496155477575296883199217538411576806234964746832731188432194914440439981247813707189884937208164018058333613446427027266979139803113851510074224614510722445836518115809292463207985884009124742862023428901270735822759548985534571067791082852912630325988141865516775185252552812674872129141362213134503569128052129021081619617580147119334205191259357598795039943239452905712701366759253592477974246165249547539926320067342423892113247232434794138080607445451486342200954373834755483446084578118797312858133273212683883264904917503211780029607196830922249201267289885460463460927642265362514508020459919299526382117375204095576984548404925294813573598950445956497318644018055364518008509411205844349007367098411880127254670801653505767162356115288516461236668840588185199824339473411589791368588736705031102504534764301161798053194264309562326013753438505496489164719534947625896700088183836413977337803482540910686538372661728469657896136187490465035739623042477831258047675682381163595091349616281619871965908555308904018288939713592516787733006461640227504137707009537123390049140206108495574508826556311972068125671550039146594881301566915529997254680143588435890139100384195892268538213233048896887358621007120968837195986980351748687152660332099596699617019589934966289444161938636380093922332233406090570029844631977376839706078281754550314557476157854099372765756214429920178814983249344259402263745163901456433870193565290547205839562479501858599142978540008047540237125128438969715346437794871282256447309082610302718643962841834335082339531244079111450630100471710270795746103184066476754908692658358832750041528495020835789627651817857296044693531917119303992547021574108111086972110030587431315398277302141601406903397602731493791720762030283352151899326991112989414019223172394500992383011336020373422986991559801194576081649033709202257288709456807582129173848967579062928232330975781834500748982968562962436079980721847091464518619608675484639241732945980441885968897108673975153018050045918561620206406614859667145883282592061065334496118819555487826258641662207476474016877373198905992801794067567967575164009089219184007838923597514225170387435927395600866073133641210890759608022742841966505768625794776338302870516420306023647432217148240557306058186072825509156455696447896732610675840653049297526738423329205275695300533680543948541712312377316053173569181148568481709051451185476749045657013189707537542006006933500359848015265533546448046243973032102566309912855258210126034100021973786145537912837560030672093073138315023488295101450075441649697327456028753762527408104396086222019754134965328670827304024237065593922205977108625677020512890772917655651816950916755199134463056641304612058466759184528311607760134288125561599553236098449293472275757781365586666789290264513130482655452453586789540778973803798381833123710234980322901083024067136855137485413831068553158488346725800557110026357658770041141571920950504638510887286872683339720360425027166375162362642491543975525906025235675215590983216600303423055812162834852369275965675898872791382145857343246777830762527355714653029040640109073604697588665590647302403670174871588966646300549542182021727670257514712843843122889856331754905771466837303808250463371048712460571966600402583498885058746349137315071753824219991346674937574678356067183135595934096341746702593811203935511903329801835459650944453661151674772507260605682173855463373044108229048021987729038836347464090295389782354923736219598354917522082329301464109531003947936700114269961011675418817854468546702251633833790363648693704145806829709562199635871314496726830298576971091855995534742307952472084451963868705178272791524798749068720514682870559757564307531409896433304030074425763829909568338958838581290509642925975749703471683446331271484570165822349392860245231700493100530929533309069749421840791529479853373404662255164219171354805810873384702670641914008313369464967784615435148548093302530923428274605467549033178818956054231174123645138399342170909832027342236734901055882010540398656340381206721936861186028402446008808763590651290600736269442469862209032348843129224726672654492504284356001365264395846364640178490877282813582955819032358899891074659462789041478123095820985821550134692380056152932187145271688802687120891018196577639525006760019744825596689770336586832896532419001257798342748590393139643882024435493852352495230337300912013902938460661873683987191336097205336897906757257614786956245643754443493342085405175357217315855618400666497717425288791946353336951373396491770922387812339221081728505000450498176300167008157600914252146780709079448037713158331569100049426058937647839619819703317960632208262060407284799200116309901676174534263152690103648984811123094640496288576719243113711494123821660352611720308365466645588227908091253819401920413677643832919390519807021253195239184968565423684790956502847878162596911664442177393375310876422077030881692037692219574276520919943669957881696309261128453357881452031782914626975163795531138950066810321439129045925199800430726382262639157865930708764520399043829243238516690277155734291410719428564859841417874402202651100989288061953777473897466251664638570733156410317420367425137363354274358789216102563541531936579784109595961738062433144074078605994294195293403322177124880245261240876660494755672058786133953066464990536038465113511433151402163844620091499164061527086156388369038902478316872258817785244172114653324351433664454589120954980047695995197359078824389519106418862136631259871519395204434531061013956296990786245623330940437073098932805292864044966710492182939060108058336022262460796397832376917074786120568450033292389851877947255013329630302561224997679798826930904104134833673010066837712258166578615770380219972269755872705485035656170881957490280928968322695547545461824674452159892834431321693964523894431560566333229475116103196693873471781956590923374279425794662824083462043100274809665704982798156673162504503203844736167398764230225529869953103935137857033302271095661095498822283557507634234847589875879815616573975216791608181525990628883059130086148621537547199258883658959052963465629253235239894727695367506843736065971718896860778463022901362751997506286606723811919845007212420388075314821627226334637617003958443601541170730564059082476157405556542591493682851332420148379562623484582141712642945473933569430405593553536918330546722495036007372545974730565131018683770262786398183154821122585917973071978169739004222401599616010468236225305493188113489865783428362196125508313693955143165729603877046870111793657051111622345296014478914683691778561132680645615182877879021464828377123112705508785199742778818242998338894834660002460337884654792299429935229461277400211469427611192568489733636503950995438436482969345577965549328495609448218163008589099887354049469749352218041884914174674734125928304932816378112859775598591768491807205942927523588049023255295193536368474534358752670792575350561830974462158760708349692816429689404113235696757720144344706682788094408377514157772729089157681819672194551041074648664987068161793010772050275940801722167340022661694758085084841612742813363681801909585650575018094034732436139511425894512718587573643676142209606577430745955401142662923817610251769183827266932174230408792323744719060993653007791894462268169234847224534873739746768178428357922725603265063520803506722833659728765287359495608402215766972197616001382626899911522846395953300167837216430341250290355666897668840995249903261022582566778517593687017011453670151994198890925505359143554158581281505092534294605212952279656745958201749912148543234201156359069853731576005860424571602595472998001209632307292535925916067483352413091144235278672640430782724802576426261893952820532123586410662912170475013208590778799221605230877105553522804479321715252261386038765636841518176871151548292335379485045178072985416842809722971796283257291038507097639897758118879569189701641919932093103746085744977958395425444285730572686511542365557314436189944427490230802957834750261586290960680374968961759004341857382233884552032123625138609574622637482182096457303968705441036011319224703519691250582906415099485647605487419678301731747252247707042661996364435499490596270507462914687864428440828927612194334106646649781416697523901181031215146954425942004619407357070010745213118558386701130361276766464752895607931617752381898915690606613510774523875289882294790881249568032891870671408957888154976470741520505700406300585114543372407132525978932553710944761648790602429947319031485576030686241249778212809971793347072006965979006400384503655615211136180471013820873559274905767405104175078272289489246316002619508610029651524230272704250314219378252401156237687859269768237265238574347880372397140381912707663936763591821400055964102329467188668294023093173779730820941420096678555387521258083114177647601534539275093997246347575769246954526321840315930311240910062892820478934842934583997610295431089032152710654355607639672133999074956111688460211756908162767040833167325166614013085876308293200592593220931333524162264815606791732173988395617929149332557785108713148428047027159928540674830373630385361691970770144010909409482422279147822242024041075163652906988811628828699642680449670105398640541884035635296185044570830613025949969754658247635908118281916831906828693346438472680819724419941961381406333019748372511899765402125991122781056743475435670997513759568951769318436796176191050836270076289307210708956770512150717361276600245296737989296666379912566565645589677814990863141292516793704901873778795258864243904937657684467429111512444976959178260962536994623539781900545481556104909924966491817570984963898494932034340266214918023316485819358692765174762703375072410419707367849573335431418645737240577567949654023906856106647935831704822003612490143885129723827444225283831674262903377827568551512780901795199248350495749825167665590044367934541949096779389690545368913329245530628746012730507913027081477905016733755166120229778280793909237101881978000022707947919516701260857164497802063881832164476483985999694055078786276734507335758224755665474436663116527346837296912457231180638236647014101555506114575421259490591593027679468499023051151906338205178497382892072477718289605466043213112047077098345829348443228680426965792652949986655458522744217361060711778400084093613217155644397313690597290108583594508040660120144644464062428609548946609142800785421639956087157279673850154723914852344565632979132334039440619200294391801823010999220558086706486394956771952013514790036659448190363638075666208210270514642754890191684515777760134369715359742079202796228138561825310295806537082529084049913350776860925341276602036636860350197550129851921004863542601690145738942167409093644020403629640893613213313154656914476121657345641526958223215161279860034376146283242633974529977181333120239553904404724580977557885833315009499729683002999744150099502883190836320713023549538500049348861961248194981763104970464878632876827564631628059054223331357700103917905104958958694312069700210305929347123108132611103116773085393975248333075162746409070313151433440055157721356557564728349699833618795662175321536306295565533248444197269824748169562890812689045963476963439173242557578160358160912045797283533578622364097667676439739472787733393189623215259949988923895593943851698522997874286917099733863427004443928243112153813941845685463859390358789718073432385126299621546280347900542536461566136255760989738389163616235545212772243583649379793642445965122205604987827242964085061881775965587361651729806228702687124564907989188782062262110590260199068632706718452563121953923166059775248241061015115582916907441142320137024374799395068320046255814114598745230530079051536480691774494951633231439326071686199080985352151238831903444347055010964522649826350471008697502432632670242594631287616591568236268229954991672808470153968808620284612281866259882551086482333958967771497518349268861352971331069697842292154097752250827027153969544935604057709732417659533855155572781461763234180975644163100093459524430841022282364044317029715582835479171047905419155514324942100966666776785628478045295745735564850069579235714676928907642655473759706594362439524436661054660144521623334102811023836283671308483114755704222709361808660015436096687009281432595763444017681811774079330373304998261097688482499653932438387485760404940843630645439624000691491906775757997376522028563449967841785062392244553428473992088097106777478278516314527492496609707347463922259405765035248534194172991130334712239855447441514721327635737337022704453841087935049003397771139501271141400894226634991360391618255944975454265309128237829397451537988944267175594825081082800312497424722725774648020793680097351306741310777400266304875449272578317704904823011351800347507822918970003263534072245265799324871511409101025804262385560351224141579624946582534391968876278626855127175975581007377605728286659525929843909188811082336632733276682096404762706508814891183204075901902187645231860233460987989615108727140015318887244714311146597878633316395373749812269429565747838041614705222975072720121142511290696243295861947708517563925751014206573560202161679817948256884524373707937301933468796603727209765501061866850931579983269611121793590328108998095627979908671514521644134325531477023287668371917704848212437409531860813940944978297586457691342331337183603064570057203772165492703623024422351087796840644969344747404160634980781191346074294161316592520809617444904819104257868451784369565656353063343174641834228893844916970935229288639441496445471005433194743028132414237489221984544509273246861909705574457563368951770303160635527862823774641556394142149456661056369655406792890584594400900332717246968757976706187831141257346320862870911191562014573698256941451439494532575108486885938220757874808901823040908988267493207235323610853494400623654950975986532217108783905435463251229969479802818867565377212052354558731765327589686210143411397860648876588752861027618905720436413128771887551410707538195296221123038260476281930096966030338637121124560392323054700077020499958257587405261204887430723429321082961973386394040786102272853752269050891731256501050885467152062815125117579995701570642226066439644681255723395031711762203563876736872851054237887029631849164890664991662983742434405712065701079109544439755842062886019128339908687380256756793401212963138969558590530938401322663433588347798999633561039512855332928009354872072930532162027886256426394178016634737537337026694476234622099547203289067527369289400237497620717090662486940745688692648755963043341539258233266871192191764583173158745498073046996683107189595945780840468723219633108624902738914186862523842203675801627159617456329256552453013674481734611512162706197388435656256376771415181741058256895076414524075865386101971554955700843271371956575895138558031100002446120407783757794608947909287633710504867812494101576111795578295299996666476547647008201364459637087507491240972302762393230209128638254681581012416824318175222050945437905388159146808710207632432955214095475333865947480172687425600272448299867349402892333402311940889337229298847668242103075888511944252058150435890228562794412348406565756186024791349080383939833224423406159855082276585062698177736552600429367577438377340976363250557738836904844899138733283505020440418433981692257852293770464908848273949699497128569398310928850310875463954548380282994941400510602460572038832760967986842819848201375878275044226450959466998764675363281139035084740708022709251678820973319496988078457412761590262820902748239232457338270259849462255875689066406221080153620179247138673893905021839758762657604530087366595585801413946669382029664850717659101266289988858806079826658450385047882213794372032237165083821150778941227602315575562693238622952234342713188364020924114392378596261560955599575421933222643956739572533647532442889906106741296762095033970199452989597231254769397941832714527494221306248455333064976073416411028280747967351500913287726139289388734691459169473572331282709279396999875757853318222374009433748002056484440335944281119932352305379486077751037420651376107444554944551300764174591337859429365435253026057727227763097810721978083145992349633539584680877741460662441563312917512091979846981414406340015160060873359588825977586935053298033059653911823876416792756964096279045164253459250103720933691252522762741286352575523812937457137545566701062138364337306659234125561625667677873525195957680375726109045405356422931030387999279279861685428415994394283257569466646910357040330243189243961186035982077305458563082610546233802994322379657008059581246627546113405634371498816036887075805847504203109801582194584272355549857306668731456219637266774903482425630049777113132755749560142011163395210462621425132856623039724770737277987166878136630374142267527414632806448042508608351736882609551792341598924518973369509358014796137731821512513146713014195450154662733733667475272778628297636233478106981011188302816366821495893493420466713850560516589912460993105161355390371943335491462156047529705848132876471764060655437363225096263974533015250220830150584308105479601842554462986966885569055917311234097331008690679740854683335561037755080688258923548331870400941247818973101137772506147542950996709499515825317050314115063813994063085241098514141448015068816385918278060535420669585463951635390393520551731213057218258600622667848944288680898948491727308300476554582391189983321509482273573458687039991688438808545615491519842232679002955407985671146264135631404788618981413479415652664769825090811764561900142460911701155769706653394092635328129398856020232830257423720505165968919577784232435701726698966695193903453110151354426755657250170994715020420779281234131938230502267156842195686189675030783151469355641039554441783946552518045517982866706637357772505637842527355513267617400120725942407203302385851595468234781184083457368404924861614051709692415979815777327807323446528766834961033012027072565510280746290143439892869115205386291925786023377250031640519919647790689449641963319919445531075223797803786714464889976212532126063643385102113600201771644261914368440208971588203449865306320991011352659361213403970660349729298380806063767899219114775985615552995490138958516330835458867911435802205067832132392343038568016090316621271057187737182569543036526121100471161795197039715499591354456687732910719803675062889842577290701418614164129060559111531138998782661024267189393153736159834879800142164846207819766808547994425044791281726137138814659031227497957806229656099328590037609869523684583372028927167197697792316155112694152764260425960550099931074458784864596969200588658547560781869446793927736435934627444893227387269791577913040211016161829676812431884064085990881014135032469398489533049986549602887375141880389126042427275835540641502732672514756152666514662481697610145692511504776414744686678191761378194984172287563874059261870581070842157175169851929477214161689536044164061407241909937095127861104828123979520354201744102657394546688473448599158758662927017240275401808052857473637475492883098557235657858956127034150638866317922395431019676755840653866998974835848636380773677057327323556957666171334018035446707992585122369238234294415060001160612578806714360270212046766136601394761903198121211683423596045303984325868066220929366427533084366630707674344508814561011058793543894322203815027211688428324482066473922241705797011545687106251133125163185434865897554530748434701474410181615621025721935367313844639824483309039269648303869786359812359621571065349766221945361828288679974938748870458003359618113108127846686361413845008663238714865561346008085227315554781997973099259832619991022822598287423865048517633751555950693495724381674283501933293116874444511540586072466091643296596308483696409154664069260966195599301985759046432440734492184947091859501038692651408732328895896801083855297096455490579990077773935161082193131975550464913899600119361274219641686157898878653721017633934506553474178704552444000442208567533042666616730173220561943374508007876319356017258434830337681377977761731217751052095754668487067078800006421776694932087510565777379936137528175623816012850149872302060250618179007464200202355735409132564527159079384771781453893606033040843958023448928843457621332572093911842356951078805407376577621273543116618973354766279061683302678713287279154774110097429226441998913957968464470804710590552045569112018720310183668059025964432891045810575749795542531243001495662705041068740102327594507959231851473687919604461339307444446007345919235136532039252593688007493213262850863426617814021120452546496077048459320878328021034403205248031036925832593336659388803663846246550627770210027525993503203358494327776896263500336503632552352938604171177445979999240504537407996376198029602514744087735539981755193766738644804345035337075404359938046527412260742503914449004455692482048184836010956610686244648245963666563641430731536427973804609480642744636574252637842689348202581591607066816626267757230250326165531823998726315601059789240695199649242285236488737564702913294242428456945637725092564374141773769355845508725264586640081071405880209678812778621891890290870602538051653378127428885872100056842221826436901950537384840071766195818944330151561132012892092233964480967290136580893155357991214550264961671000410626753788894455995372596139184818971297546606363076787123241389753888181771303274319778823784723134202702771406667364644121352216345189392875242216300358471111177532833071495222402405826729900417523779560692810228169131036604181073029389404807922175658446907137884168178125836936327242636112529683594614436123319904565533078826361535973813366884319036542819166647484560507104168765563256533231595346126527139501504871271923449106130005503773049111224185340167771451530767584930288223723948985771912435920446470021581962924475724517514949992048041469229060384615069572717000611580029712927877946978471101067737030063492671241970042644016763183524809782651235415818764833645798241957609476385037004578835337536303680610980901644963488709294756134731881323469695584775707902267251353881115365811167957944422757287856033973523931671857304318463702080707866707656504844710828382013611949083705850393516192374628922875335051093921418578815258643903301673312830072088205121691045548434722780832625442199426748350799706881787078046570958203499143952123693381613394023415705442165524293514399893726136113883435208831160708533353713963621742134189768749307926668239816420352370561780128438263494999804409481630345375537442178712968243173047903504164892348095814877266664493906086909239327751629778284946542465993862884472514607511993905514999630455829809256165455627635500854083181346550294856445031118310084649438365385686155105790797339222552753893380591526579240610624729496630154677603859115267157025478652865719755624752229938091622778709297302529622566681794987777331599412778901375099916623591769376180638258951914908708799949845965097111699943803551632198907590345269155489714453248291299087462904864773221046846342676221900847736819072230852086814157186077990958570845047695398849860840590706876005945475873902821390725871861088804877674648338844091439494650415899261036461815811895509023274507253773631827655267544476012733474134891632602682567542389089112530753304113797266558327500684632683990175319107397843364743938406339507752621599197371792183840998281930212011590737369187371833171811677074931924686389168319545922946539922397909498686805063696929885215899171139211456924344641844755108613848519222721829362653061879084017526987609867876143401420619416959708030468025105780497863070599746549424572192333778548295443632706118969819281251258406099214190317270808893979018262416195388193699934400044641530815611723687074788471087054792232146906404767535131535362682442971017636244806120768619083896196050985013105313477859995091957778579537626090337703086097867993730855215415351555159809005129153518056987353314602281858772429336021490799579308507114746859386584185320690850885274420498333719991927951850139244903174517161105668918300548839031184060716614985155823098877282659705652832821167156958948905837923062234528019719739691966175063734782623792890864246973615215802688513010960957772509154037690433064116751594464017678061709787750240318499052200603699613416741659151554076916275874250088564779606445033460194915620336666844477320377898810763810873969800802661440152223674710525926690818395002046904927813096507434059792784195259860686093895153969594066503840178709545738925270763713237824382979694266180764667543313200059952529715072172422899042955200045653278414538995890930259870544146143152738734204952299798433483387281432038688222602584901949026816971597264042328894170254663828415086922737317118247650831394137033023885326156557646988058054307048548250076694017154109010362913950520231969532430005242146705422674626384606938156049990351025316469146240276669821076991173755565305442288588004862979886614631310338748720434187136940898333989189275165621781772610815316453569737813994594365890649609202269711640833131349005050387317945367799858913140628507753437858257158176625077127162959928674091009363073584853531709033098348623104169383902914572075180185675400442435184697853992473211062077011969893058104669463689044475031839267825160653121763718884414842036618893824066614785528842545183655391550259428575722960115005151606698953170591182162572689166975012720618427559137764025382129719688144849097926631711511343484718514077157767647249807576978606284576066897033961755140107424542653156481590329810440152586064134753761130370576393704671628584402973678965713843757723081359331549950839392809670299338346970601730229598154983128577428074818099930612576507445019833975543522945796819886603626106993173626264497835837775032689243264110262668449338069704670384410957647307343408204947467019306601138762861379830465931427779962316677893693599192408040246936321076679472847020509628634548944962061816333208686254900069414363480395015893128831676207812093593613732189420387584698433422318720157344403275123792630571398201605496412352790715036370526754637266326574209200011444906105535157582543720661397322103606339319827951302596020353745793266034881041897999713778801446547896499278221405579212033676519601501237396819617374328150107866953044067483878956019705216102969460294535198692911014376324818124115656333049216168470661159803823601739468147662731808561731149635543454647244151801686716988698976769817266036976499989155284580047078581190951768783998101362303686599998148145693088924905928914931017091300745734453020838391440962019534749704522903576917869145652160824293550686104619410753788148634678788514920477810614884558023778924422527764769310179201969979645140552219186716366908291789333385322176077418165306560125506534460443069191815199742141250370121890851362713960197971220272922821388513483831119724429846645042360713380857397204447582127314762347416872426444475494662087660653569513689138788214766044439550803066064049328170479940428871522868917315642859333542868575478365392885018754965195754535016374379315474057655578517766214239803784311083606470575988713400389251098584492661097304463694933606100402185343764549151078389363476513349086693427206985890466041643564686651478018436666219522813995556159551854963991306596427521513977707635200828806111289989325203791048128787761424341712283972323950329047104136114434236700377460909683052547494455843105274684032464345923244864285276498907678218079104116835349538593531929123470876182531612557003560892147501502842167321139693639384161235632766473674982806026233777939918630312432156283035741423770019620935220147826226118103426824108598837740721079833090756914326043429990232595273517836097285489368183357639423148214833506882905573475254259380914008720983731465202508438746496059144417829132538113090347915063271139129179747520431453423517645251879214787723955518145994008837007699689123913633563782235481070839370061401238298449353882824056038882906903736161207181905485845023376521399926703790202617333706005262790872258308660241284809779151025930413907392395551427400282376351767608001383709438692081280800003416271091796960803882372846783232152885742121441178966876236044693550019679524424901277492499558338893411178668988126417560935633707518496104445409617787601622653927107742257741591158900150250202483916694927329723138043421073818027389209282611364335151619930540766438572626730259346336306713669744283138896116854680978365313551802236802821933932866538856760011527594592315254613177767359313039790820407015392143966574279797908050285894992905062260740385197617611240291817701133033333351322288167170283617983447086025963985600607660604722980096820235781490302777181944825663697823893564099590905282248107372609917846729582115142846375724085995230486771265173338648230456648640471718244095383642136030995472396153011715493107160064335085152639819744577406373755315975614507260015980215217397511648731997796003557030617852429494428008214816121444328939887198111789457532251395143714410999464934930118364802379821834021003832888313295389439888206836270526231621069217964276333557991470856906336227017608683042415821527507502409967792570235530259856609707274279164325875552411939397379092245632569604088870147372581188586592156107349119351252919745612074080949073093444510070389689139787407759466298387638854535404187091258978771219602774404617781666607357615094240910117977190704658077264147340486960218889466867884756935813790199899754573375332037220786138736083147470604632318700024626046608461541000116319534552621394594066017871089679917583762825469436048047222555098860785869120602476152467521444310504793640594737657316387822882218430320360652673155180433219345253989923739484428799387481515549104878562687046786160815756295880177126109280490923614308031330299685952337303932587848105244826515443438524860123969572441476945332092372005593484878501198082177220162898444444533328274239471954839009248489767337992064726239617847883499986000671322802325293193387835854387666490476456530339544192686297852996703222287823746522338350301180844849679032682662730534750842618982980945938623723900545511150536778522633677959881030342174863227284185233991747960663083960792422046043335874685607850352440914526600667229535170865798131147809190354463587379055109537032756942399894377832898267550852925604125472624156282894876006733316342394971502506836743044241814600597311888093814932147049161556915344880760795646471320560459309082711896270061945145580798483983365582659205249564673277531668643611377010630153772467890119969008449920703661305311837615695499623840869585571587653947142143670891860868375969095000243133308380963134163981314177856021157303973990209684654971879626657276289838631742247656225469683608358244404073332167870225432267571598891717846197110392932570462105938937905843984927109613152242048556294148872977231412141351762407973483777616076553758735453179137440835511093231983393926174217088133145079331641569736923778546806260367313155703025319937877475789266626742734005027385961710523191157016207627553079543814979492795257560019656800361910036839409704482515271693535607372624642013889532003642776261815916337254244101542752249736467770319285268743737819735970984888504982712091754215838588605941708032769558202805130660920743894172660298443961776652409630496929652796838390775212985401075861526383391495403029702201380502955188531544760974830127466127870719042733038372327574604905740821900825672325770507180818436177802440822163858669497376951839537316818344820915016096242159731709202046155988415294892061413003323971003157150794399805308898841157286355362976226498320365826507254713076105188325590505084287101992516586930544495587682559954300895795736936059705375237635452719719897709785811258689994949064423894941924307839525767025621829776152710232753662291524879750430494400906039027456210055611614147492190931194386469604792550831615347180355227282273980230956120622174895336732894616554270512195722567372253842027518261402311722129827859889569739876993165552859249749549379918507509237204865715840399230643678887592387910768322233084270548505915514331653315555060850672175806332902156937678479177631856479274254233585784268617031051727674629015747015454757650754801641549995397058906424484671440171194937229774073898936878094834859431104279113421020869246955299816482617615559383896721949940211004102241408418982834055109264665929007479942384807876993736290486085113330665962611741870415347762765082448307464127297716396254608613448349027998660306467382501647759846686180598810096304942965078165468096147985684688372073591433216301897837626912980607136872772446334719209275215904171149942416249743258904658188297078709888107439779174452708611976853297476117344586436983840031341055519254098693916558974683068330550016927916766982986675933264860547760374876604834936773529366882517148958885986765477562187810957569010985045777667702712394917411789158416520215902803291934186224759517456544969378256121895526672104833715493017107254080405707000552533865127738598955335817010976653182082772366301889671252679200741419368156229911013759307589860167431683433528740947149017382608512987046385980030182124774071091958913169034527767284937449999501305666738791842458635611326875827382306790573991304274370227753959950819379269647280753548145717296971347765558543553410181356360206862211176615326825260235759498172264449212982448519053586930297107687753662514605886195900834981295282047644472684191628178782578432504293432009227577388584774241548954254721132353496350490719339420598423679291770426249421704180020214753587703845281030832114667340196020919048622229996800089152052427216168356926539993732311708543408774005809325989561818169018850700269006576948752918821680094751961328866126298479190061489550721555948766063200592067107944710547143143693259397330575378304363973366933219520773072454625063820324951917861680931568720255360803132052014219499922545249045348159136294106799264965337235016060029177573451915527256325440133328740235776567382780969208527554371188675057657449800612088532924538622101404279526350434769204288866140599821311456078029734606777511118886345632373503829963135667516292381756222074764870886053983017333330279237223752799228030905142648958260777378942551386360264426586971883648258961766421534629327664113779097012278370103947317900077688256803927226004972909281653956545574975824731793313334339144680317906550981313749548457417317394026945168547148115075851408442681969563082345427758976110354262079082834686490419844085201921626195827899983850253252564170853659560592046289823747635395320294304042191105699706779644784648403527732082804184438275794567720632429751507439844477637740146617039726327335033187865750922866868321578547802966448765956134838423383273539438667650499334255086267020782801238743470755921589074394570946314597687484046336988262989974276794525135227656815687213211413400112806242286909877163724397912545333258000866377217792655509240344459289598183508053544100323081089201378944336788506462244890365761855327810555977739076134723048071835802171732924893689296481476212252914603708862449347450023616854609043092663796557956603425147274687881096372014456293561519037863212638365589526841908513031252489853606362209178232346125050949085123844859121879703640100596590507569472080615357101830140408469410609088060550666918932241664587723110351618438473678153925003748089030216285091042811435477644561674027563971295412154338667266148606100998651921839908179919904533665378629615481075009437837575476679155309043174734874913596402712558388459270788875797809899991744856024937094355105447658187694162258312319117030358322266686006528355677433788248461976386745839636034204644594458695505543913217512023389952254143926148657393924047569523617446657553234811103016332616803358794329105132118381708753327333168833357003567355386952982801991065552210394871000790074241759401057273397734530772873586675697966012625063475343359440484020518374977079585331414683877999454917889944463969279652511233522185953571797372919752123624196055245978231622812076821429415364886309778718113331202578858610891230775050552896945210882221331343301857474132811567360659045330760365572459673875071993218917733209296483042224364433340210159408622811468384477897753439661595430449317695505250487038611905099774461113444564067455336051648449078285720948287753429869503577729313124965323209170001705918585587006860723937151804996435984547361239202500558660520999088281941181722247532377912958109557086734261054532680780981429607743946308201029415959451888530807369871236804042186406426863587368646015949215535457113145528100493816693418984945002249139874939502536442342688771440602357878913966548950948690999333093182186429820212600719298953247334430710419858894445405364623021332812168974157430065875732174008996572332437590097997166223701215901660794383266005837634737801131674087782039473968703709925902975780419616452207243591048571516109228661724745588489108926916777106323161286171577969781283581276074804007719616009338391799447596109636581879064002465306385493840129755142325393235056481419542808752346955059911424015911243197505565628416475116451009005839908241297444875384741417919976721549359863980522110899692214474651961587174517390350530548150042721704116930050445781769839468432917837526277890919299932637546499994756458389433732347944664365103430233622470688075639037090062235504633484036232436226660799289284045786674885742274356245301735244097570510429658252383734179041923775639790587993585643231096941653243039157674364651815792979544397682949329670065635030757988931133654804503604565979914980927364857248355330217495511870955090299347471049849264468787526834089308809734946681718127757561201903242276032496199354841822580136439488425291835529569880274355195008632873514423933337364584596961066487988026244960228106576673537321728664570971554266274895959854737986388831386293214373987335519408344098653304144818486481188148768503497709851328026544193202652917016892708215676950816022956281336310693422167810052200450347329736670043449960766183243180785543182668559785963573473127080782528118303541112274808802379019541293768466181944615153534868952200857035556416235706305209365645812199253208905452506496154520229926630108133913102037009061944445999850926169746589014928116823154600483315492389487879443403507554010159011245282033250804558917173451890275830536413770066302460581130769988927357783883744856494701284990274897273807510120291440758097276016576381664683387163086808266749412330903429229800142638396174009704689874072521995947389711269559167277389996962015120787486778269692991264393355412738857670282878648765305807769196908283328308815878381738371595941174176239782331702009755577552746594076974589791175722617349885674118104879685694097275093614614725952587229665369368148658927759367368086803225604216612830598111272631039681451464381842679473554317548646489026031785552051799412711306373821641626246156678351033348291294518285198106178665391241152171454723659181695031278557037386121157035767425707148300864801868835677932991065983101245744241594464473688962522039091467704100222425573949004307773205951756056050156148739881047646843787426575489714485854732450713740469537961216577879898676653338534975157468938630474937286932615016132432914631207279163067539102640266030642422440434134213058241478888467213111998885856431011485917180358476345060331161839419356759442014714144084137525127139380365181060351013346296448237135711525475271169100947223265008355266064900411302221901152192062832047162931813434049626751919995539080073646142897108102243107388399933142544195434976359502314823433870081246447974815282173486577007245300702062219100991539377161993099514808427955113395896042905706535629762880887705429496169394379788192485687200744139953196258037985439462587161187316160943746021321934643526111252754705429435412364111015736730021589336631283222238158261993787919380581734332011645275051580057411610208105105477249921599198042906416493940424181531879819642227101758216656029269091637045457631499903982560650054129169634934478297613200903059970809321274263053296660304481535528839474717931041850558956946699489182175205926078689075306009213137917121657374483707636853161890015404774649456551585232642235365088816577168359217610028606308172754765210492302848891104193373532957756012784026939733013507699392011005790453996485549894886665398606276084120232193261669162143543966034945376679533093646172871802563406549353584471811968146562691266577616194651284963447437170875116120459258115104678859380431842693528259311931164304212995073410186007262748108237047654829152384625418284313697930101356062934453685708738823895091612321556137663457668311174568928489799512383872859717285392380547966965443041277515854482222359398135560056964569499675657231263788063909252449872028070936052080663710817990825753781003635802039692402489178467607744925110641898786630356758329824956296200014455060560329321946476508526256201453681372010302495996454649418309955951423211290967822653025772684202012147197363349040117446239280901175856355450184272767495991262010053695645434077837259407975153909376406966770421550328910074991381806630079415005544237666786940165659617602230616854347182241061358053299716520728728619815977496854827805423411105810698103399019733259209726518181640549167811951289576610424735372555976076295726060828683570324202284878949693517463890392432778983960816021112684154889417243524633546554457497540829946292618343539188298758869599498153425756644679515414653506682881087275505152252114972585239682593116951487658434822939887798638916171525274625668534355195320133636232547432230731944843159722216028979556028133090314981574129019909750961335751597507290786218210498624284630299803134306804566366927509042239817965128452099574951250523240106733487428156457739143085312457496338524563433121555790619967488527456763902759463591343089258310601581853697109564083986465333664817003962754784791651559010389991134759763544268216668577025802619598759150822718539726920362571222397713353032079824976027707395164720731761433078835697142971817130545587214438340393525103510638084876534807471560086226428655285171269477216868112171519160688066086342691836323212202967966334739256755828922769814694934574230389574672826172941908937889203889404469804446767937928723468457813564862942500185048453588000185224779010553421694428613506109501776980154749641577461214617993534766939797953423148242888182860616985001265609751566301554030773132555525221124908597257342006880402018249198365194146166607066993200415535349871124176370107333960978470337025476330629817975732481883015283498513540401525594203679519060310899134939279760293537611659261670703499054124307173814295938651375336273720271201097393009622738531351268297135824624071530872964665827545984486914479124804028281624074643330686664091960619462928972490539687672774064545609747798165699214868923976246755908798830598736416089826496103960809447225628185342205277113690157457849462626804157251009907071908447804943453897008128777913243735043093952486344163107855751343256374447923181018071942025066655144375432074544534279693141351962864114867956353726604544154925695079048348605518699020662970130827499347875001828898846360347442780874345404803793752733898913311462174374661257140719424124381201938187031295465878655226441231688382738092612311202978149213352208890178699328280339142159847554564392942163639732156030149287539650866962956135212831763627275425379413260922271115289326401931643875743532373588727348235929577638096794431515977706117402713974737867012269305523970663233389535733211548860467075888408485035597933769019589947691359811112738635886110872395296947878335349290473238590687701727892146124766409425858248474827046301101381534709782615431928756711661182509699144160312910279447427470390266785016201237070937892478806632147002136525770320145910195335677678643403124607118734473037486628348495151285545368987209375257459154917547743669813958837115280538892019598434300751300200227465664973331294658135325534745212774836797091431094475844388327204535804938061420557760733660139744208293525504122164241895307053984003788487374595423643401596044511037128393167190328123312207641665133352561815413616964773086798622564315847095041600403981115148930949222188342928074659089531905880825441403268513021696724906235114790971259602981257271066016960082877040196259949855892966839450908939530064968067688531947396160843770604768017318706484701658790007821195797781758505226381853068818360771854201162971871164999383697348926772960854367076970581395212432220993968763192952141596677927110299319991648194357678048733180711984438627872518861927392574128259991558100522370632811589334743486357046090881636767051109695648662573702166461526608674027210215937474124095392573535988287617621811292037038573009171271374058458144538536417556441056538298304306553647883643915123989860791368169339802363558280818486705465439680371471475073954753393262629146070083546229575971975930433047603513278204780918292065785683377580888126489428162452847858054016334968200456408364555452164701500607248931683395245069550055390390651939753222375157151099203377362790525329813061563537093465100789472224881647003275994703400646839569188016832048270207116534149417648176281211571293186963868139290417833263981650263585870110612433179217815103977332148975010158537719363567493119857140106688123055511928075216157705639984881799561291492419473563445370252097766817194815259635967935061383636059796815704819734452149208508736961678569897170356233681994306391165727516719661490220790834879999587457429721851641461589512117666372535339725639282971553338389383746338819716091280354959762023232516497002143821260987733826072970343136573683669678046367961017589261854699059743280702212719709060217330541271671771095766986593620726326576571817724680852093978035632708104788361027985880591148805339225743541088749528661519884601534250099558288723524930591654824273365240149750592150041925785816463071821534258552148009257096591275720026455321536107718984475942924008616208665008993441933926229802760821066844218621813026859627265447258128213161554909080139820021309542545847323145324152464084072534468990649862816639811115505498738045470676740726388202275184978057420405655326956268075833969350068758119323954217817650595872043795838895745282468076546989323592431649571400700527346085966350296521263220255111990803652852940466067596117187125984815655376701169868753756659459698644138622229427392651130307066663151788467912491623030675848519105385500013776381385375380470793431607713379951909227920402993391395456793661707574344626548852974995103466064731123324992417276629876777839109641747351747199599193302879400683110567851511383212399270781670838011511194575849559973235564983637248599940219879139717421429455936599472049796619439800708901960846214392991912975399849913757215960919334089516530405061067158300382599916220923522736907007639025512455956311729362866526235435569603014505478300742753949851585004000604823522312988212879293152079525480695864078351475197447997447894360349691782834233369144340946702182085638486579661776830900742611944295280090619719265038488043055866683920372571854589050523389601838633858916505094523749202440912817645813478623215178081980724749530134322009611608198475411270236044750968723648084233405801950889741895357162607763845469222111263652817997245351817059741878025412535852027751780113253583698822910913195050540000000389808735903838651066651941914788955440854144928120478855471233492607847868586702486214472064435056719856252478346511909124311559186212974593227423685040825029968140274928709330111935574694745687799208674956361375779991147663514192678392747862627871578913735739615629715898139894069825740820721089264883421504298938460355924034094615212016806175436875763298361050362637013677039781595776681472185766465449302099444821050958686124026563497397988984105022414970045710128546493657318656593883889311858595574319289817009457835634323538567524114904887430179375273848190252796280849244786062605989743711418181887844462717619380265776911315777255692533455114654323921437795580618290159715585349081175011021824067061228299805981995501742415798843391807075357385370002100401659090256246587670555547203916513658780801995647834713408029394051571605137341167854934831377911330873858174161814998819571949879493062599188564764884450617508788773981415572937830887241022424904288763649970996853498501374080224943069303564756441169218074649452547396803563931802107501581898038077439915344863381941310798919014749699602605357087521737880868104452567613026626860954364022537576380091394124553424648065834664576174939957367201007344320115139442967263332279963180017958532332072810509015973869094970040470988238335010609457929150624012265391938717414287182716504002776970847472878102290967194029247657065008741109446091120835759518342652836736565361617354963501716674730562379482830967876032049129471371925171758530955825231780763797799233245897991766346043635625155718821329163828242602684189310136509675837038693156066613787236325198372954659537957847212380273832493919849161640478861326095561439314009764737969543460874908103736303905306684127350751848319688430659907023443118123844231098694643292261687590541827784439199222120922712720645624708391058210559689062879996313006372148569882546440926276735329121495508131447198747102593164936050570651293890778964812019251392888684908103237754932537660274154845691864042362716738635975359994168371592541642861402994408690548008629493719966519811167799533552341248649609507288868103921591651127097263714210406275905090558099278129797761907063822352033332478164802913607258280918311286944549737836309815038938905031977571089923821489268607672406290712095793713370973110370229320040137478874295353964294610943317799633790487097702527116391608995519798548484991948071818135450839328713721428315706047647003751609222229061352754550826373876073724310876948354939946796224530358672268705085619053811330103301286919048726231281968400860505162758055117052629040138018879721391955700624392506411013306880701706929666736073866702833163441276200068432222165770789868310396069598798643986564459269284434737993196260178506499267945909222897667306095794019935543099245148292602083591399982176082638983861531587074637322000482159345337936567791322370575436524628398832115958833936436445842419361899379031220974480624457677322220536818962191737862315392026798023694263702876197139567086154186407258521236864462821876177742139881519277073191177088491964512491203304823406473244751272497636657834432796762243975220893440951416700093660609881752921515909998601298084771018494534626861850714710544538418140957585091647906209104756522690622466853616802365765139106874172195036563551791713138289377610336665080230600888597469499649259404163703648136680287422496321155641907496559451141871749586888721143590800060761475120183781216019398804704810345665933429505198844415660242889725767027722095471418760454116585337726647395242156564673919770639929502945724132216582388205950326330801196799067000797217952241249544822605132120567327331728843734604644445984063525970433340704662925149603402158237446087199005629510628137639504612226443927760424639897415460648590963850471999496174010398707759694482131711674022899442692296724434900133573193201756822539308153884833532092440757160177010667103435166613292322575639110920338282767468695999633696941951602751202220071774868054868367569794569872829114805224503837940461549527999752758451566891398147366852251568064887572607070883587854652191117954058634247892444750878909381805449462987257918605930546294004596996927918495988235087519151539077791339221557595527737044361670709461570733366032188411537017289305358962931903954691472206070431029691731048202320792522586917422883845578790878635112981347990808051360187829104389549278711525665663292995240257373796806289030325493176991126939234291437640413046726562041557225854356714002420143166433961992243138176129814932104705285913991124903992658333951429611261903574621764845627955846605656870622513039756686287429804779005669222873687181828531505929495386070059725374142199154850140443802993047073226200517688761776588100679133129496613147049959858213229012207060158261872767841280982261762026298455788279424479671559010989930656807382682417637184832820606724248732777196184420347827635297215220272434233966855160810232040634085752279349802752240170208932025837977234362114097742707492838443976532092855836688778177419237115738774213559639462380949845663253460840569142639849543394569656725373538170074460479263309714037085184488376333711683525714143799999163531757072548327391960097906705674305030873763999801983655144853671835919871776979686624193478909622146946219937303478946570929713164334432957989808220092301734614534120353968300782091874334191241627747724384541326698047659890741502035396601159900175614177667242645476168840614551435577879590769258707417084140647583259285217385064013475205861229248560822814612064915347991190915123702466519731193416230032280109941923541937706324532281113935325869153077446285763112642442186697837956278738949773474328417428990675405798718913369782169414999823844570844482982801882893278489393868148982674611296939498598589170693613146054851328310021803317129441107669576253538365211981602802747891255678754686586425462613893724014049399698571239191345004753344262115094746093504874693023239446675869275412218701018676143170407751729919596842334421957376464718071283977895834904606314461453830197960599389677832561358037980583839107465885410924442449373645191194160049152805943412052508684935042765168847552724602882779085835622549442090265567662226208518108259121257488789792498099309811410317069175502927837020503276397075847315908044762836685413437569114148234698078341955277001018211101237084507457273203041835173845424425855676292869653327476718442038127630661475463115838310299217092396286839784100482395374897656064684713286114323130760024135756952267849356251594764777817168286350776351078565868928949006688313863135764351377044289180931167030477425118029351354685890021667875973847699798604895620273477944045240949452061857427746577591685363800160256646061385945964532878581787809666842448524917683436411569054328447314002042220044704901872195421807804952277806068998995045137507651038969985981188985055791666872809701963165431677391812799387917988071059972409066252044304231021576630258266532195566469626634211603330402311290195746644007922532537300856253166662988611008729827457465432789915845956122544787737923138366875239483029409821410523225775902725622872732796837451589408099349436433378973622766987264376799874135148518811471026190055717606125504184726528700748044526420023743435141788680943450611949192938849420273119083178309800685323823135595404798662281640121248545633821694879486004055805256669040300874316219576451245454581561514617644440103423703548125046619885238800592631871648763890814124449581147043639125179775484003360907522872472692314933206542895079010742305803628804282697593536979457603709031111701953505272804357519139145844048063765120955039990430242193893389007414576439374051832655317849772020432801458822678048166412421535646628168977486228877224412320703649693335003856451766568426315098768906007297515008236201413101542009802261956831760269238419381524425706473885693639412790229806241532695045465802266665051264933352871878495833473311708577988759625308058354380838039195993154438339295909646797733572291876177393383083318725336060103143675958660739358012521311824771309758153875937846903977493870833606573088323710010794245437318348189730640031412598007182440902329507246139652760697115079308732315301464435227565617073561531536290107979479516959944334945599162250717553913377862592061634360469313787659951670438085787453543383843212035536258641058293798817907425019693349721442517899096865747333016035703954337225776482566807266374130581036660259155957572051656688554323324158026125955307145883287612914506628600292130658491061253093760717846478808459266042279554601559460221334979093562191696315144210696817436430066288634686415037495096204404255648284665363716155558788453671525791647734111329372263901137318754677305826342137606277564816902446366053370579319871122815714926509808947275519816503197200913177066971958443893740731346877575602533969273634278753982204015971842822809421266779649792690278615913386515847028938505230437561596746196599419343522982035864646289261451058906224839002662376672400258810562445748307174400133858329804725377479859711970762021313380871092670364626849861686034450448471514901953578931300766872188253350313861994482153950233947584213838903459762174045718589630095888221617233384307778238471612217263020514480468961206259918389727041987038238006400111339211506246627167622360449633144474825315064197689088613658583504525692034216450781476845224286684412122162559212477850614756024026531035593656043921003895205213092287228005466035819381520536312943012211511572351460956362700924590365921131417824074357613119643519081251084561978562440208745313386087049674793391001504424679632407512280026755223326764330685376662899986284104405284760822073521186286287479265219849439225554089225878630823397369995033914927198869397577329321806622186801906499162939413360781400272852433977867591799729429315899206504257451377149916696481708279081853771524381614195926734131886937788358185258316069650252225429836307454075631571906915108329354123769187768758620882576980029176178718436149036863831430759934282193178213261328117139623354608693116113012603832624870264090106024252559992394487178097668272880450943686617974361134521037857579201926042233759289160389815926468605398001098761747972848354720014313878366816223198914523579459949129139656114725183195926165919667845390663828671076772657805017384027494190798753951452135115628360124550424671476340031386055103876233357832688398400947645080949789516760771191059812699536516541083762113646552825931514446851657671801632107333352825584471369469637510440681674354686518171897934633239644359160320017721932020031742149776705814268937791951547632146773265604959509478680025237747005909532390419212513795251779435329583525389390918283092006785483926760564330465505603121973705388054556452399196957839567672869195692975145410559025557675582736263444089076892827765341279544110542580091577200977825831587391552858224935929981853456292077227235843919901569757213800320347308398366968826729604195580272774984687777993158187179353299428253030636161685231278232559741744969613462616139606103068039059684117666917365262861790097555923974817256432905246186304223310369841788769956244410444416666514484385839228567967639529826309890161264957887720639708784073350696866984315470541435141145061368100954222078784960254790323147060414329979616164486536176996201808620739255280614650891783764952627270712367764683790016190910319078063739542480039233338783786892483919405317617587397959759184539071123319132604434825691727311035777069775180782512424794713571903699461319920154201622622178286295919643950559795383154473996054728163752885434030357798452362653220880760233861357431469693847408476621119086016431334087989759179546576017453867999288574428025645309800899584192545193939400876265527828671418283974564179153453547149202098527948972009293521813117922315695814274018043799852432791915959823525461531184371322182254757416553653579288212841020332579839112429593333460758751369488143772795660791366343250001643709289105524392459002861491537425495803737687262717034356139069390552356354055287154765877989757006209671916402121239359308371380773513149705003328169424827153668922583413818609493889077148485147028306302773995302776267213536856559454194876638339420536301676486934653638467892365681246856361548356672918101716025563719676370457430782540211375130234382285526043207629201528005669628966124516252120948257375599179499911607415013281570525669497238804275004348722007504322537074318909475540975084585454217928304605914268009485275192300098757274394048496381367232481490383447905294879104245953710836799745263670386318889378149357712499767817934619070645506299957455179603314452545242683682052029389643929581313892835187247770958399345002863886050034331473766630376806625123300516452099894434421748290123806251712827062345508780791442083276706258944096186114288985753558627342067501194309470810972257491011531897968932579693512613704879892270362472055313140248567660221136385219222265069252629271488030070967908360929134136084386733802830770409067306272480748693848756808853662904669611050448925380446267015813227757318811200779128044025045036779240512915925673744030598206829414363874778312720425598377926433801336418761613108620625651408061497216840487025668917867882360875376853542243543318966846932237769304455284847685573087676604814912404300409517029170531672477445718250020697030069806342069197522134938841728946066894035882076822799859834603337308699252393613924019230930693195237650332544872614464697304058756334585601888491652648407860785699297882069628069388168090249884508133660494684590263276559410194379879410210997193920203332507791445835355932166676842554947978981494510002051264060702645006724626236791346746135518111920585222610234857872211929078524962379040614348223504093021532226633233115220400726637239019950963355104770863146519495297358189567384367801420453075810892718953288404363884147243789898465737821479865935921982738301769889856446716453130218040593888288394200679190388410269832832714398555310738000532299210265031351436619108637102495752198869588525762381113090675189693816773456234030878531750480855650026784981919594471489469917442863326616476799075431149873090811714386455693885314720841565538200602654687121798633512527511636563988213535775856351278293329105469462224025897094528298768213021088376779747418912987296243115108162791730289114696610501338450436262526830846316348447786372205272559162098352582351918847861114312795159332175057479873880460270310760165250939018654385367825417405356699480552896790101049012444458431382864899571817809619143140294165979682007834432106237920199412858758451518708956060548534693591860515296380806828319616550218578353427786016344034857709067685119539972622078739771157446850863672157587591738310536750438116316805388497094250157108955592452159097210485577934305410649489043014817537646839943750373366228034652340332878541109187630521930642448862155921063812623536610256239943673510894292443615344895705326325859695083021820253515314768730444357307645249626234570968961602561526654812281774045755424929040015330639647237696780762978110277464775360430095792041784812853496683386730832499068895069944228871694961487021712273325157851992812189826577705252870749734397707036387732672437459712451563903844868366533484661724626458183605087022677267154313164725939090597713096216617476367972942120310150385194504321897913018961006518269097016850480985065792600018097307310880497984540737528509740055215681128598771160650973310246705826329768642283269871313419261955914097433780038941379103789570435482803182818910164437261100150857716219954807851188510755860799800192704826263192692149583850373715567103010239921868952088825157078798778858390686038694601434444662353511646838994965942737606106156288401405115112643022182851382801326708358541750700882491615872460707599742295492781434030929194319158294347423711210267869179731421747438253388825783244029497324502441073260316551881327353963163163103376270835227825819494184180743032156190295918338364777664017602061941650884310297318202565094096580714847096007123961304780489061578719441757174164528473350153385838208547821204268949009488631120522637229745690830066122930733318107214323178796585765695816870500114642966950807501379311713636434036765466157844640524872451374951791066206448405229698844314736844522862919953904495620814791306761325203600898155528501137704500448304106626424446631674207863238168846501280997732091708303043263682602979860025088310491183660165728775974699842389923820301587827899126696322143791776137065159771776904095712220904350581822302360291342723948027826934513572717757891627618272376328141055463417887517576848759858164126249319862198028383596002280583172161083466516903264498031296960582305953583254019157910570472526607192422502582261980171699438874755077893316928100458207643036699267368407051170994430769222836863182232659332466915888029880623869875117137941674627742787256743047323835748757381003622037096162993586899461289113078687742209034233588386190945924498393628097514864293683858668266860529101323387595106754077918250733173617201553140693782441750791491304098500239946085443005024703211237935644413738581651985190962201407594359952496776549622533028134849056198983437660473495497696258994502835479194733995091388134621420437934252840879010216166928778374241031567167781403141470159715619089128014698230249399278105398194491959932727158796483731944852195687783776123329096696565363786464016442403258289444165447878483413484006439614415917886357889563100004842080723814321583703818203072334023857669224009149897688217415534030993159977718752644102137145957625009235111968834455362910053794555169924564226952302685994220960940996400434282031461844840583309689904200708177341776321915145389106598262648743219874077487193759997529187186041234636014175370060144130143452719567845340414690434079804350015816580108597410465303108800762514084411984722635292417530715062772602117156009362914406602954885927270050571549554863989758407889989058985953531692597479690262062882210685373080413457505273737494717709168718232748800722192854354427612694081849462898163046407995956284502872591821049803172744605936185443834505002667321437205040476966282588536608138610028519523256774344069103363650577095450615062728452699832250865323060132902542453840664706168975531566042018661634841478244320239190511027349378752870780430952016841052980871956456801368841042730636469355722872375937914808101561449913528909745918484872132398235383817329593731653041703355804065935144701966937284570119862277248069362795947778364913539221670377043857930782585018825442123142974101035570317937805788324676162848127254104329623911303152981625897369203709880420476153360396902743418842221451380491491246969230873306513479714428880506961674724624962329043831000098477370491094943705793255522866544857762789892841286936232279166868415598741680467284550731792148273345860256474498285093576251712885956469891352098782098575129849373250376038048146938529007909311871058295008173143965076675552629706896146159562688984759867846122899067371883596925201541038998571047007838916700936570156813435127612235384322361089426087221226537221812456636240969457370859828930233939875971968767394985214271552799615930789985738675339833064792185176709361395207190874056422958458878892465242281425885164221855017441011723601663903606410411861751081973198551551830933072595227011193930310036817771442163103431691422963077794467672741975582842101948102796422770098697900138225402304696250637965546694169797343620399040840327304775917438984513467836128176065145137207587329704538883870328927510532287650049189517033116054884854973636996583627192731645270674242792571838167095479161018387455123426079749989482551591388215242574631539149020081717882020010435352220277777370082197212963191713444871412603664401783027637022300372498546307524204356294170153869271803339616534869360825391313124296362795164357186366203772463142986370245649916478233088088475503292750764871474416013921615622871182569090351791826040696472150494101621319378561858601180273833511631760365184406900248004039842420969262539607035123917186975477819767136162199912697902533003547363065159118035747532749292876694087433596643240693642960896265109141255345688702578895996229550807506526459073611863451703616350846348301466461714496484243927135123081068283868463921164310070920546459966563696402510766007946541041940655595663100845956859736405358414696020947982112534040904606948811529671865851968627315780119441691470256453422614047357641425512093699403629774912977662813849747866856763601099369458492288359034334549024547124441614200763464388250086692847049962333254157698841825556983751181810098142637777482318053852584012338361307704062256719185387978797810511058680083503484940025614018013832726981550131372554507436926614152523670209125316827653846461865326679635192762589513535736007854693251058934313675404538538340474143233155806810637016284569740998255036720230072558691161462152928253243039621971694869626908799777865318583045793319409855983791584495333869687955144168901933221766157104360349603257619157082243100882328393459866242079966405532393601345391728227798444519641862005246651889602257371981043177651341337235781084354759777597708571369500642364056184976869955344684407290414211502599246338972847207589529687813814506542770126503024031993300983333821295441130906904314671720461720494585271749233355807162798690442103952613703068813763588873457602778027080768328771622463317045328156651273504643088191549188536735661928049146727005195745694552135318385394306664755094055783334401500500261037667128423302738204131265426182175997285569660853612834709486464778367157950284187631410406501315413421487891263518609735206833596963873391294851837297040744012741372459586622254226607078268707718996204443402848937024811784274805167500502779461025106949519955706325255351558380314734769365352557167489102826829157379297560733960509451671984472850519398413408385384394209828703469076667205714260542533867797826893654111075441577753495676713255858999037049818467740986173787636084641058295675337338908045183352773906908037182954041859009007603202547315895459054967048509870708430005676461591974340508789654787674941811072595461820219380214092651216717281911956829582548376685831490392819791936269422536833022823755573784011519414311678952621186120531944237262016160929988974046074550742729525426565589109869876273133089765155824649853656452247352467786355648991981771956986889106562678292471737550223781596965906764478732034216314973832435929877748669215048271858146820700356013206922893292762914316694862673463167357766144859536923507397922493904355377325315064461468750386240103759250502293505157268884428784327437589744470096258873141409451645888217418639692877534031630129992768621671947464042869353022409745668500923588494339854370358852165071518909751828439100499561683856924057400337880244989485389434277799009754770346985437553121651500735367360224969834947060530729662697921998406671320447056039769577117056330482642108896125517003848263457050447063671208779392608448781389038244395197921857024936492284035334283332369256470246325504111304733335007894859037211160448393522405398750262977575966785841117198657792942640367231168061196606893122394478177724545726106076231793483607692506807729980140134112639090675404708978161557568277634670837829126455000868479265226334847581075741259069408799415624781661360769605038875075172156090128536855161607602508028290981520488291282006177351314008884516606091380972212636747328407518705036735363449810377753250910012889466187430411735725818058215224262342981336448983124807799632502847199438167866842496521804142963802262737181422091104825009435030927870999236144980143856610049220242899139135361387054303269165555769041663649266333872180077900984172355645058448682080762808070084519996941657519792063203803868207712462538809701587464792581497794389860712580973551189394070007913322397009646913017726936848259258115445623169185382720894073215494438476017595046946568404114982377275121559011997399839350734043049421717936087097625851543082348901921142647474223158303605776741821016534151409622670564079199776683387797758199141859833534545430441796423880545912852753817667311758606022601493875702207001280305491218663360186264954416662447709001864673573987368113927148895518531634576495351182005846501172975702492282663193021337701051153982615717190449401081591810128638172339588546229508158968826663184242270731542507368710532264337189937505624534238680219356540529371524385793064692616312419574905696194147767722865111316671639246167139347508626444713525300728716836746702538416900527324475432255350278299026995540818637048764217252818444273861186734855749973572056946062122453332890556180436826444434560559306074646031823784748333260651364307562685456591391085475270125083159686118725213880976529853980634909709171912455551430555284641066934853268638411225049512751807787245530150928234410564937601927465174864795426141468835821791981582469271214330260731881294399358136749292338675351972361356784840439496780572114356375760103495589915610298914177478730887666684362847618594577015644137117768759083571566247959471316659531463272968116123262621085501719069863874663201410942963091784765720998609097777274392927982040606543389457484823859248060941112785423039967512670425210053902721902376252674891135357614775878733877387622413262178222493871200089912303900628306700892861005954846092497469685351390404195977555820044936546437479214949578132935259056418947991084083831307270749548828959330472620524456272883749067163506742087387247261103438683675829676031078249378170749230864600032497046247623219453245030790902085866588072897849110260755765700873302124691602696473028100777983286104216168772170324674995590374126203873884844873528108108008299739481033608179554693032181580871467988348804582523470812267339543236954875303082209554570834161386346307822876458707639540862618319649358476001497247360761276474487732463322676651495195359237352008914052174589073083735629307623442511370782686572206963165383741323763836535261286479405698061316061423390949258952360975319001322422309604742828645148898656478556357691872349678178998859187440187955686607380841718068469989688721335874534576850065128208648696391989690260113614505049902764997841227898440982787713211341768255081032214591059799597458491939581540453068949878465132568644890116152001710917694322207010294143361857186995482908670995508584947075056096657547523557030708870270710815102763409111845222250946962599470403445557347500704101853406661265730079645729674202369151552642595873033663792614213186370861187562594813692450135636920081081050227992386765989756802075495779383754029864994650508456016443412043467813722198405651019875835544635331758387793864169130588153235751280844188104908933672253679309800277251799352385636988247367360231694418444788892626228183674224646927978188665880430109411773394455500180343075420664646389504093849136709351486292182576086072985526451800981964846512522472846380513300601906791273558892491924301550203665855723398489528372982703279621778512801320026282883637541109284212131605982929363027259585562184827570955644233113632989999157921479762151326237526280762744865654820860534100915285765733291384614812183650481885380279114683977763762306842735802200888118289994215942053838389528073856029763213447278456938624174518275212734959734212777823554532428407050012874212414163488743808391600136338887615414738206062744587141935203325180885467823857345810777798052116601425597822665725184788421573329265776723049351510400489906451052879188015943559294720502781913097209497290344809167703826534142041238087545029484946031076997387128954065638393392074711456914122267018995879876525544179272803457341813762162608727103238882947042979886739672769313825571360858393314803683767906849782765964466324873908815989966249407433488384994946101152350557124503867226896375411206875672650686220341464714095349470803092331232804610747664405462313222020297095232901057804921447624346407729554211057970206326809889657622769496907338695868933829753210829948760604317942423553176365254613870105239453078048425794679651719903439085681530614517349445202370460435564912678846542801180139062131783661638081751144504745672144500218664108598020632209665932942271569398436628006603140353096392069991093808986873408963018246934222200095731508896039852842810033900660329782313053141477678612107789698662339485264474911007721188074984000073492912224586140184281503901737411475541278302657377578814194895081718182292207618196294033461702840196739021697067068682067045711751918749393608119708170553300160733655708310576146970375858554262390971304445421784216649518982522640614103828356652796358292727603865189725790784385804546099088504045510927305982889169785317665762670386583158860450892994233218736603841221838788499422573453064010955519765060693536852150296625325650945845370612501342285901660066165671933803050718215937192393010781402622673861804728901557392838197659935144101447268227756529839028056708754814109381319469280028879894093992314843455705480734476330381344308853521391600823509584692145468460839023704512437574063265163886593514021676653888513933932613834984133931221445470409791567702024775666298410382782208619216436368184159254438048021527098039132783234001720605923647261525486927049469983835367797751418709636460362550256375586493870790574373256008337651006625582954704455052215057543672111753248478921819656240928857113324248745113333158335744774626382611555637444790850789396608800335604798766919104074720401640483476779546479559247386693798283080396932964531192606292070070091366139320448294165313410489539066561682164334530352797068342231856990293840374298600125685197485471630577146448763006012278048309621310093906658383048760189978513179665849419455505510632789091266856217125776709582371937838124318341413076152255306399955939477023287838712674170351564649874329891071995240875257136986607433605123712126780056789746585582101740869775131940797087454012798086732775117088748674941548903297180399574982442867837705507032039216918779041331164677053439257585198233733100897208318535712160838565987019496700952147780425330217901192001471748679928222833611862039767181969727539462731124460951701249468703065738820135526175172610442025041239445090031429237581682772937339131051440306621911727381943702787452176548625362143958624640955865631213520524931173946847539238555401138033936402821813373450754558848425009694165176096976292232208259205489578956561422562538408190943962485081679530713755857021168547348421276081825930368860193346908727530069159084856175346436445224550009546779811418427428294962714349131860665955358112666200502759305303121008691703399917566405441856740267098183386432377921398655087331097600176317620421333611084424636424458526880922995345293802967003172999504827975646912685491518063580879530577585793912679851860164509597669024365288759638322409759060925042428035158605995379628211617497741338294474801799616436823021693826077590596908515057485110061375630200344322835592528280233218658882232231777653329232491122896930539598221690014019212200661550562106402970660306502588735116050867714208759303514359341699317741769390662856522183166887844176475892090625234848757546456943895341989876490578033700599032052283233029520038360940086926116856599046058494002944025326097643836807264197088345048812744248484546322393550461142485514855257507623399100693752031476329974445784124426313681919853281615137439358724559988192030990288301688698643231744386295811793602267477372871602755645851856114859348625724960869561280158114854253455167833144825886009288525114074600906623503783680990835786653551406928576415120798847177036629999183122250797604651024113773123991818751341432829757580878067721304908985186579967125998077696383442182698466924502260140850840287094656631220539224262650297054395365765879655899057618608036150092516899488877355687781560681475883849759883139968432596112499298818208705228477885038822719822360586790914221924054299183683413790543485806877021928495556829744259500815359940416504558447018388511861967850786620333129695781182162882058760659648204058708627319876036330444008511351459863841326930866973151078748991394822239443450682929098636955434772756888107590582209198255335354240137511111701369761493832915324510837995991088704755838498626486059331577323308239139525119246335829336640082125653091922312938918894752306970561437943605706021684298943239985698994916052771657572130624109418528980590998587307915457214807485819814738117099135039853144109775750019371396986041045397884957563592232179902152411448860067927845815947027233517214646283879367429575731567670908744956848622762951503744201943542899992363539173787133191886317133261881638055808098856299002349518577338279659058481897716058614299011746466368918257679594572418117440116294746416925288938485959517554921624185203804224016736697614573664061643370538369547760997848076004536409140690238951280243966310670486671577385349422454948035177195178646243037117052202752176063573274279259496836904762083187926581491737178540532474871771901765926881271546876712521839032310994610767840730555467113935711631611986455065483844772363560030500045936906046054591271951663907449477577620101706494430942597542765150523258728808022004214171779480834122005093079266873883635817062188418211783747276850823978748215457515940395304564980099848108671391692442949469735655358777368014946860862112933645789576975382292642607920740055936764113622748386420284521138408643529253893360853336087818994084873544340148787450615149386681750854750162626458538997114057065178469488881727341709117634555768836990116177426694949484717070576476567058311053705237548707277748224908966138953860506660502821690992281550012840177380380455318518114787435686679870254812938266267831466181521051888770484539075508467652074843912836547932066848678300285468716158178548044357583377362316391706618658021781113834829889291470420602337719863887301968206269362387612883353428362921742980186447463072466670687836727962953699235422167370110942703064473803728566140952320139594313155203675704947134194099456008800305516460648642840966868619005654584852165017591369063184300724319637648803194223744874473363729553238115388020597607243454227765940257705847723269470451796661617795793799053378839715924301603269627354012686251610955067897357065831134634004394439912613811367785326753114257212714762185025935275097044396466004201804149726628490978570629241090900569763442619358868690137752943380470630147212316882440653883470939838858221902431831579891190339504142874280339172668114326237579777020863291000976366204258956157965279939895803897004267833816681927661446222475404119208471884432916638694142469883613574290623415476214079223674682417735195119461888106179983487056518880849389103067221118316688144621914956240717233883985434162910931381434478881031988345230916372476101600352943953603221164133471833169888481288326339244765516394170485043796495402217847676753599956104952001327562788651323578543878136498467816240831628128392456137577088435597145081444904128301850013766130258982806113239290283247352812699825081413098581796442661040836580977621818237798421437373067613655933839969731411158465783703185866719248369620625486532966483002614061133830238084670995796911323489591116690570029280320584330363694706634981437976743066271997688755603876636409806292444709469730901915346480069019096330173082085572734053311583913433601800944305251938254803820600310540254764325739288849303268829662021651835796666560014450726602582972979852346836850294922829149887447720133336453604666919358586562043452010606524077127802798179296751647948034916056282134880187664377879336182602178288629485107343198004893159217601642178912472727713949625516207731530820256067972649437984884806020513016691474154289825664556537884389698506682460046746844366435491011601678714564965332024656336523621321952258187425766809526053737346424866938121695355198396822396143429610878142630414687770938049445422793949586671601859996142064009399645195636777257212150953855699876261353560114980688361914124505782713942224406276247389811137099426140355420913029055278647007336377174312755359156882140515969987163342547067096547776491764544830437916340957452906028325098809358595895101396433890542451099479258273336270783524306805364463964668831700523551938132491461131124983511486178924728873344974608873288841958897015664098105985938108604988052560254003969965076523332168164650524656002269077596425765841952079071286794770909356808903793624279219629527719880080589228247084322592193561919978955186609485281910436670973758352018234607982921019376523705579339060260548241031006955169757616331091193883899442986740299814117137352077106014481483230506808235482971311624514956897562179227099689064948943114796861601165014742898069642449035676338654984529459704137919411507900158194837117367098204920830906492577989439782135328009031901932656961476788400950093557488764251508494078493243606032044680044071606030215939337749746701206081900590830144291127108889868079712659309771605314868273980712951124053374205417655574123418119267035033350792085122076986471704183300085974042758855180923281702259532766819480317173034805798280501173693863855729660962072658916247328974798208924846841720692091273704674619068511882155395854468119739406345879159377244291454915062458965640889494730865611012481910689801395601720119542716849054004571185940367446201118700851764751534781831925041797479037576492939667491159430133346508865019024289782734694578450684818238136871316654640007123878770896330343739531735948441394020567008126219666780142426052223330326696452684983063536141910586196132924623093790680449628034284621867349221498450729780701921666470092128658594808616985327692846740221279933173205442956182896781081105505403311230050382118364571517960965436755480838429150362267088770029931923499997968812356845030837622405768597423261336089395643216360257098834033673190635524114863673441449231075502851937883201354388617783816983960269627331364976180078461190220606569580665763047737323587877188653085998734731766331374663559122254555233270870721217272612745870172679747665582404151290061648509325557730365486693533103591863923905935494950625717778323816341332534485435667152830613557536836369050431498900741413215972493287458890608647342514963625913543527161190701292426956023699933467523195549137820106300299167970200651891835300005002399682374290773802606153540711425818718808209013171786574000172755013295915209628716281683629440723082123920061437810090251353574712585202174654642989015148274691678220518325537626522136839322598935493004103412641836084011841029440167181394246324699154951750342307311120336515308051506722463203973665918576709100748555625594951349943520261724746715571857818521086592008504255516247018011689514471767150961225892561760222055120740040487040988507094248237895179754841940158033627399415565646194863286591733320519202458554796546022955110681369332935801255739475215535145329291329939450634807809842846693777057200319692134236912230988257961520341946119158305703948216843126558113648998062519501057796208369543356061480690805542989593262374735251185434442813966125735716058617539444718099344792719182035698322057840057559468849632693880491096957418590120050936244831216797930092756892423398467691944227576379891884712561542071279493872482764378289129189833516222126737660997300980680873020151526069437494125490252302147321687338285630251268954482191160719006125245476509228304242947998336284110240074599529014011896070083278793099093647251230706153125903407101529580613460186434598328934726341578939806739095081327103002265589583340413776456599839895928519990434603392752508081977515287010140548490265130989069767151199627937757723597416496961203302402019763317771754062351730092046379740284102682334970039024627874636483126002294992867922585707315477136905351927524294271007209564591318284399635473130574092256326631944321689067464023806480231461990722747480478896334402438691103216086860357269863731687874423609469139295331036297362210677193035622947094747911542566566503960472193165807142154592476303084918394485381024938252749009543367109101870228645900713405399928893248097553520195908975205646201745638561768752169678429251320406806430390306378673707490212379445546293814921790004573055042018562804513267513940584860693825792640118321126024570520158456195086689326735136577230063800068526270329469884761589297806951342594430272791468567036533242222039536446432638484785075171732459789509135579852088793602706799310617971809589470668969572705654275882598439948472472047427542066949875304440503586307474779529613853075649858939184392417434602631688062638949391318735570668759630734255683723766116748628169164761670420174612800680914613978431766053595111036937057315667264972758517142978897538669341630949617662828687515491867683493404237370234303989188741917324186965192704344121161866949284562970181156583613384863185928078090109776863397338855254538537703302246563191487588975469532752536574833592313747805858529797396227511902698628387851305238076564679349746028288671065638786833044943141886998792049252828773708528964150506856210020804009868318173184698066621430551749148024421882115335574699407020284202900616391739158276181551612870104648164583544698844362559170357389474038676460624619127603132573319693543137886650684827287107934848704649222124252834288743072100781481569423476888044384673565563331590114112717014156224359869111753180338129640867181753102923947654429232035033319945896515215027964575179121186693253826509837823381681291134862365226819600659849127705522041671664221259558794252556609732153211347843009677486225532958920375643040570764746960705072174685127588175239369773165142389876765415030290804679663074471254264905319818527559882250301335627346910264255263322703303972836981435598843616615676628089144197514908986211570552568100143116602945564900982625128464071810039077655168994759145708277030510447706042683311591604139863284926721805781438074958241007085332411828518594341639467108142944122713081996203228651600401307371793801126046360640386589467927165018247181795106882230445374500149008122044717413655225722692361308967096041524572884477639600136888840233166834664809379114303142553844462787509138940985012432968876115979057378754441564598818288605096944153599600817766234245755836053352810742385605905171166253072012355946885868424440920382094916509573113795297335086645102370812489378498018990050741370262854603856781162943161785118000552453603544692685429587531439970405902127779882044680890659129924146179113255503233434544056458292385140577660358115945321637637499252098990551305568227634506208364643340920663188572849244293319541096614548512281586001771161527856131519949674737662969304959173653829783849691639508317146349334834744709385359055898012321343319452517152680281922606336459369800892409232539918935342225945586041733771585108620304163812248716959196181455662369767301697592531021115955312554842388942365512387293910190836493809938656748242930380047494210377236503355132057276770009289349499513703180654972036089898061305281264149116661211368722132074507998336783139928185943430975636089557844652920097111278902539752710716008926678844316255873130961630984778007039897753140706877100234345939270875447261014906113178741041063785664602711957484538789794529690805089055421998059541549617645843021170449058621297927486893056926594215715538591108908644463309285968550124928079060189495623275480372576203256200929184046429302759418091992365183049432273977307052301276819466746695053924544012514940343209934723676439218949702986350882800400965350152410583750516692470800522704451200780732704186005645526153372385142073936282145852103541736555155257628859173275941132915019112628195970734517657183037978725027392170710648325838432155092902848810164672193423061277822744688094775672172919878572799360998154250871106492237486097170974913081189802503613594191656850449724747819244381156964862803305450825964605283463786549225796001487590773854069795537225820380897440479838087366904657089679002347367598249121223266027355689125093418525746791576510888881189677917281649547015536588154456712423235349773595057576794826863698140479724621586053582000473363370241815598205783172767573758924500007744554397641141277922377706848786271847245124740164500588306431077159244517925398227172399892415935247549600437619168696988870116718473492422788945233304565144260560042450918466259961861823803806694437563881021796347842217207688285605048814551771630400739854524654117423801475581635784466637683689416713577429732352099926574045065451363839887955004796648581623071044230325399052294831181337484336590401582025315035510563409325886956421195178354884458460724066082196668753466594564888280419600176165683962611960960186613000534588800332157292714773463287040904648624830370390452038188479836712982607032037364161424316050906180362140113402587413510454201773627602154854238515138112816763892347051912807467072824090780400911287287097708969373217641460789501013233176039324806102109459481214698255665383034237680293458622058716336285555918429689640757423828346209205913962006593740182239933863148656690224386134749644640531493096768201784170808528094511486009524258577542429041382210785908312075887208566473429148843251085631478535685632819769611857516966989185411985746418338739755420197853915507541689724027726698577189545517839930581541322033837008949813879829392994926869282741298161257088316627144573577138717063654911195370842210337912426112028503657921282112015715349042713881378356831449130332172513731703432034581405712643154684049151102320340087461141871142967727328896683759885637312056559081426452019920730103569505716581392092420063990627891365474449713234116230650437239192192001624446752762364966731852735661030213285479571489386198686217458440004022319744373132416514091580474726040214878405815674086614290057778628798936923376050559934510244563554002668903774029832792473105443668742248072855466089748914680455188290991277066221888978807318573623686254630854228971551893933960779129451568310211981242020519782714620475252222472910994223104233554966595889407091028925417318101182647048902698966560094304486065929353461085144364195148077716709649331103077411168876010864418413541011577248322844679479922626927898240670524850684709235697055274746830930138905283880711232530836750895253918946876331161842271008063528621262434436511100150572133371270874275236609793996275912871819917541103964219189880147261868676629508542352143838271751436046295853598206548360436075640714092888701889043107305812110916026208968593769780088327748167487971110835915524306765039499083489297210614399337548382687071947596458877218930153020315087966342309649122240066668848832843322953686121679419478939572370354362885307992447021808045183197067157105079008672423030337860299138365181079684893556936725294151629605253315426675243358224460478474516332618756772330699165311594294981301045182549974730034823958469582598705460975251220079574234359241172505075053341763286229555845953985541716522396296501224754022412690153985931097141435426856019287829204562275606796068016855965713790606237763908707873026713830860775021502304549348834064985959312253805327234427322464632182533478745746217995228916557267353577736335412884727464294294472387408205890651345464974773777085362070416315176321251777429034715254328246498181196877529916848328520804724033760550149755037384799998982199253013435767287968816624671523700454786261800685712596253982615291067668453699898571715143366884195182874649071689107331939731591563174530799946109420572433344098617077528135873084490316327332683239221194984562338472851159422238321666460913122087249080561033459810804716381193318279691027356654720763260410164201204443547943800101294749304323192648675699550710671600422023275771159204899620233900136836129135040328675849547103158952878787483940333613731997138989181876716916944106242646809778752819374284301216159062548854284520538147747722109138519435128366190620588130914597187105844335074708958787199512584996723806112941738306030170911214009762094439684843641443280617816064069490184091373151198647382496407789556268236432147535566819957676493779637899712594387127035183064380492077670042215180989160699145164972909921306949381145110726746781513031042481654154640414933126255316210753852651508238919748585450713089653944093732914721016026766357853589618721000897069729819034163733698726227513904762617547758067352768390530592033397644082813964130623331057223600971926422076436472608301428838297394471690835994023948707162697745806458464206148059664101212176020505746000206587424622380196975471991454375834888139637860032645508958025371590617735076925848170603082648352909169273899934089201247255780112012102079981419309644947430127716967510615615259473383307446075044976940776934520789888728470042188075479842305266454690000711175941419906922449378019383775088323732660892037428725162617632164011577137343512061879343035833117433897229677289025997244090480070103368271280496181357800866194274562410379280417157336014158254911196254247354276588893876658347797498573066609050003528378645510593171413393963776418470122416679006792122132745640706778913325114414270882890141719985280108037356076577982525003140098285665198914322762984135114208853958324758081976738528423830272675568373486717698970887396147176173601712223990353428552737393557618542108184533617576135426975055680085279160302945091924048926516356198798705343723743675285693168787294657258446025794032415828400146698882809006946576179798555616913971896968015803520063762384104564893184821581395724911599960462795446024790372907270316623379197686385028343888620746854511601506640607386079092593344437299571735747464092814341945371463119856882904783881696149386912872287117722677197188734956240251470314338301920916735966649502071754476881443774584235982550812218522261530358910615196174587084373635120878349455305548068258956643292831336187426878175314233715919368601686740570967899004990378679111359002330569296162321191492190053864430528777518960627419290574641647061762606249373805447802063121682161629857281777719022539029550785254224219623028704560405985074088214974275498326967828364540499593466534222375051797757180031365866548457532216536438212594334395333361604476403453956749246181136091436257877566643651872961779657739524167476765487535457827884247315047350286995211193537090795002290464582479894046708709267713534251762822492572663859374543879943587649231554540655612433020070350639203458502488810209362410408111299086079234098387070822382310180630747150375378991677701626942852001927433698084143045436783726893119079956428373843066091706110946535978453783005002689655498262908688954690045419021418907918248499644127863778085528264762846820671487761493197593938007293067304234686714810262420451228580816435585566558430877338802780466701109862338669378944681257097512949987148190901186322336592838349144388610995344138433552686271039786136638965169006334990686019321545656977942820811431248704318751368924322354697025439034656915174145263825835355548071938280785632008373548346568317657759919114763489758205788194331486201647220851234223826450908664006091228595959165072072971034074161168453583896989835210620757992223818659052871048603451055974849136267943991341975321664801432198252931690149023177792169986431248744826476879083810967666484623470757187697208318753064624004799514374574334152202657784544698543322117033553132173777084314436406702881709177527999891292983851882744325526954071847611748830429123009513759718323405486418499179131269249045367365245003301817295658251452178487683939794018013640112064628114538597342770730033189087654644589527590739182733186814337495056505005480212561473678772041612526370576495372244278852924349440170766909684617719612307556619811861066549228789538743237362534864345860721563630212083654026342257233555476276312867915961740673094937133282804868005895919073460031504313279162750608374835988645201439500236244949484598516946445271280704449495231759164456615487442856792350539836452319977591686631993036951178364463054499025044929601941957587203149804305950288533132451198179031480489546235702065916013508541109657789847803079366503310268274975272835043131111891198695667004756198766102720966808383613196554061304172650450646110721000303489951499846653161310065772788048794847370577411195760617890341060097233265566459357184251208960801368943117655368146731330445233065170930702676383839723999108798876488109284713477266247765229739900945775907748475274961384804975827136169294970726321818326615097798201411546129323443190369546971486708051734210085647805450778531120678797872531374112288237857533808388704042573857565515495689566261157782460985451470911377237553323734594807881978221283946604275180411376909603855002328421446969186082963433149484638244673733476338219119631598708353130509494246880635076292952050983489452774511435782766495479062551291655399945303431571786138838887713176242671358056422750676106652350644471327575489480750924746914283758288171438568376716170534636098591376430923614816646544124518669263495178653240702782352595558139870956227132009931757224426550047524614336825195008407293184192696423893945830326592044001922992757075209311852997248733587677524388960647896112002407544771147243387867960988817670130523774309919992365891370869010197931828357520614974739439089974573850322057186898207624408667377309451459293152505292005590173231214515547542217463180085386966455113061964351536489150311837730378252513306623955368577095399252321743494152467879342611078306136246508515202420861406610780613547974630998730762713865601427172242418157109822095143852997988291924361912271277930175697916643520544824013082049403493478284013978632519852791534580489958861249672685026601145875399379976973132086390297958745719202826343126956420234337303330971772145348074773214657655120821875634256041074657997138127201552107251745937347595287881387448530054868255418183247739072120252090813036844549411643705856736501509744141150216338455584369643251789074502325958036730850016130992778221022171207810360609022976585407075867911859436715775746388639969858770488692798291515946713144777271725637865930205269723795658816313565282946736720673645514849883281187874923035891277084155413010410629164362837773478263213426829885630041180310533844520612019434267810865129228263494278064290672357020963759204868941938869379239506878939581194887089498411424975946979343681321314496452217312317741675800235334324591097406003652258659370226960288742286092940734557834131144519272199241725761363635428388885625948269702571321232937116840382925833517206122621650822537185427922751549697053024924524555941095974679945733631324616306568693384545147122992215812678368577818329826004866059225478788486618891361101474467103247733471616779386600899977281856081418537060477539856735979860727659287978200079175608201002288657993020817110210507406898017533601697356761968154668533827927510336645365763680937058015444981022686366626655932230643818230292392767900272914370865030550836428553489937175303094886570247474277155721814706058048061494266677255698402663453290685269889460682843736238816367897740007085338239262380248753855239259633475294528357962048137910155739204248004871234576102921406478903383642257175096622392518899968160158971999624900391794360214612787183235624518354658374191385364420618095588034166111090497806060050938597451922985935731764989259857803521362584429607160976269326054773695472768865156699407655234769247751919185694064049498759401092786130345164105866407560216080010804873708302579166966442528454183159386067475931273279191573668869364876388209710199647144425602157019138629981002703745267578550943435903689337278742317321994303102484083592929053299912870861717481273911980656494759679890583642437892185257777929752252454933322005032833353567405089547793803855417065251164727107508166071719700539579114146503573466661342717535282440689908984090529939666555428335008244633924545482225207656483701936298985395679654550084275410657729066497490197307701758485496069788214580191674107000286492345762296722210862993450953411417018820198442168473785180677353814566758517428677979418756855753520254966682204286836110681334577011253362961157673226728440530115834295572281166764165662520019810656883089305878472831553037012036397704273156567248184679745890556629463942239938243553263155440070079957148909586201446655331664599801514771941243810169086849427278468563288023467818706260005306387992990040088767815204679563590585395477518610167541362649861500202347325695651187573650119466809934734847164269459684376261763435632293437325165031687750014432402075190393398332128859569376642703755829140843589384116098221483708406299912847805528330489037360098558847283878443280586573944175124412882429599006757916058281254154610767023793029151885575996368695358033586713924955644495300941393016060056940452257607887478880189562108070954562283006492012940137479646154999875698640206340110348775901539840325881849401792666693734513440286354936858006698415205223370299552956743019926486965847871542520030966912470245826155520307307156859316534261557745086499282998353970012009851770170404604780117855047578288258060166945717976401391553031275046614436341243584469993567447262072852635227907108261691877926053882138082349165353157294798469515972188119064213898829959194185202574543898811113057389114460558557615617454127217846021711653262063099734012827246608077437194637412443901473304314900715276302950305098002793358207484399913737536046380422680370762495204352038133396140233432967510004009515646603527655360623755986208648202825636046434707743512272889729443202926054844404106714720831939375035809611886894055083467250273780264970710388096762597156866587449015105228071413614618247359500859792001774084866625111190015807384180600657007993881148703621046890569881753200771920225101998530130665795167774015871512050127122810436338777756617414625526219698130066677494899350439955702563247946349492612252215044226584747717945112552505983416955028745375457919615619652230280376855471757030569913118947150386943376685136419689329133421933819048037035535085845477037887445336261446632875207352757434352573010852703954939963521891687562599312725288409968436377141445711152726248491852707390187845777905328008322908221747666844407202847511839111307035418889034384411022269207516870126021136322878835512400758263795674790276618048238239504717985694137198156601955255205212773012249808330525927911957371284739097587239280533220050402675806804803792749369672988764757167192551840847156379019712806123883385462784144401354089458623409745634467679658392359843045742687799270851309122763082200244880435247494066482409672315457652107714939008474829435481690121911751770293581349957944431661755027801910846187552299610839017226716834726237420636907353840504501004976650378898355463514926639555144881125028934467740209929557590977222937940642868405365348511816593252550814687901294344232744741998677350599766746114396086513698569169630078216356916530382890903990848757129115004519747706462780161240280896395050354979310126045814583755465309284916273241642169895902281854585700125022805864997201942488783127066418864912097719005246255692628530066946052352104682238445265528742119176186865978474363614429529657246815477041281969435948281957224034280313364003690519252937797119881539632426967402092342415909699981374715429684217310634966673475069066152309833606383545474870665679580881067726406534954270841986277564828776240957784220395904272848048559248186102356473481438983886165285294620939309336278523038198621198817719444264142402032279182189297179254308588854513841732902697528549392507917387269090911980939396819181326054390394613225407326728747921485339568860658261521949504622642107747500543007463183068140551170826294358199949326062105602579267949699661117461648785177553187636676700936169067436759736962389993945084399508984320144889537644214859871416085901389617373552976589772634545212654884195262677186264757941256630312293187599442792777600538667637980983626703449300130562749830160381022988186886928591552535348634150309704522560489214290862656002268673000694680481094171681365989176293884345383189001869468965677084771467973748663635141461053123778258764016493574664437239352576465746320186059253674140251548844415689928727151760640006487594061228914276183363680949577715674345911927394066964943787244356521817681928224185024448276119119541937783921138881021047959209499755282099192158729057278576721277435773403656684583983098213351647834562747963011025765512368583023219667220954230450275757750560673536085928228249821147531115726831002560236529041968717018768693228348698792607521617418639362836040796461281759807430322568935791871829751127677690760348760603494061056432452018549585035628822363119213274691090325374693416868711896772786499272334920477863334401847298539068364769847906571542696712671102954188333958358533421766392291429087663887454017516473178236811031388713147081346073744303385005328542855572129339687488998610074832319955763690009204017837074461922065264618403766641579325317613936350037443315371108809906612069137820247406184889372968205017702725795047628451023937532221195248472131743923964843116577079582041024763985513250656765323187100714273068979000955045425039987866919104558581254900132919042141717917210486317101862787900834472815653996664869656646231272753669417506877321721904911679871823699735916730130409146465905751523239760253578115332685379348931446289107519131299228188448708926406171135878803195994127922742113623270940158219638441162496655814097297547784605433216959609989388048664328912550058028810072392564553872638591800154118126916719938027244142088427672450149468397267777583467631491290197805786786913557918686719795318481998062949892282124156517420257920605182824975648215420362958359438263971471197319053798882570156835024540089463027021833339208622539622344779146567858773229210920426587279677836835625026129357858182822455129572682151873488606301284886581628007266477357877783598920771590723663404910602236161313991736256973417969158175646814728127598311938280150885013012664142623534057028231690904374325506033180062194848696820962575867416159018854600359887743867073766770871895259763294228240284294209622302531169996018742507206199810176384054906585561420562391569506427524530276778000280009651274480039095380834400178423771500770319307110492490101437749092559137776232934589606907329499488539330894185717563007340339899425251740983647941436004693720968417399803321996132803454669375088046172491927824247089051965425156480624123096067691692152168240197311622958876738791759990004313505081161236076199463196595012060238083909796601763395358053772219697827451903779162641667465661593260175267239353097445096142310741127860283745398954907332531489398873360615524037123863951093340550645691052189550266659121577229398975381909413572815039277658593780786408278267954850351125956748564092782290342532711725375708469122785362789633822334788944209341473251474324093416830615530107367182753241799895221173505579083392603241650862419177767511994861749565757347564660751867118561824453449231321616026097788470036160800507756408550315160287991924728408328368185074654170228847778195388755015107512127491256552806615213172775657961883048797144682529873595302671025387728898487490144476464144572766421087186878213121312985116088025800480199567952198497579805876439958888503519253987176584656181024428109574058402610573490556775017023933556481410293546219461517317552522034450576630152520336372196191210276085851490994857359521716382938395214913277590536892623169142225717595122273973756407481453923568930277210648823308593868403866254919192809128851108023127044416609660868886244048490321657863309380776485465745382786661867071428805262790449830105837094442108562285216482924668835276208466491136818030675363694567690701837485437994088800571921629685800186300670908565407172496866400222647786551216698457849440729006926861421608976809760758391068765808188162144360315790126557742277115237604427505038882544047740763440185927031925998763158713712085406660279690025293575911742538966377511570941236099241171486119812587858037711947682197418563679311945552930108783964654064231472010520365700755390720589585743646093304778997041908029787998877174996579942103756224703913913680755405602009957285385459626038446404109046435064824535659166309135349299834292140891172793183191793275300047905790457676442465299742304157762016972770355573139713798075767509664333967259801039828214878274145111235416084779032981797760838451453249180016826624556917826131456855371748873193018591640845042311561588164459576353457160207505754137456061408589960750104578115005699058044510858882215850621542078646261060233070369624829194084119355653144993754043610660986383290853297899954552082494973245152156959738879456695369322607174060544992640112424447600521302496415666605098028274624440951435660035201869310562024058582588627176087919146204026833715955274875980681109364833963980292566204808369736082399318139765150666444040985783694609759827598927302558549807914370269237763189854602816384602228050755567791191530442019787512387961980059494087103323044001886770159386618392378113380988801250636980987985774022991123437217499807288803332270872607725187642838855366462595780551267922942450707715282289101264007038453759826094877121665773762279808806384930371568386940780386252094523314361323618652961273913770749180597834321199056736327716814694972364021471492283546898893279584883853513771447794456408203740871447684110257849166662670007196733461173689949828524978873080847500301571361050381093834176548895114929217903144196152102600732510125441554758865457856460900646087971983046963369337065099764568721994037460650420395701619233985302626001289942418448904954341620846256165370345421949616701338053732580258831387703344176515918446724384817774073042604263761121708510203965561134226573371442256757624201906806505329880402182982918834602591501331274504742954460809762913323580889500355562706814502797065609003605228015211044399952254066990341328551008082857174285477088115003017153600466012060744947594343631414125396964924463709257693278790151777812472443012377338177316205829406660431168611108520228513770488787569526309391426156558443404121700966468011216212930335345439362059848403564787828196856541199106926821946452053559231937859173996053000229864361499996729002365674619212067555549140158417318663875827723734339314799655965585051566399604029957064690296762715558665519682844931749955442331277324435889644817228774893231751428640592587225600741084195178019230120739726521876125339520209738158491294443230392370339275943253845660909284056002212487496482303768207515426588010294084189864206966282521838997964883249850440341255552302362492401838420770663682572405079102876649318986602149323281024014240115771067289645920386822291162617188167924441505982978981377169628849000880626199957693220199573005255942687459952117201976570557138797575386095708177385565309158975363842447348817529418814221203180407030545534543130382291294624633895242099394346045402510011110188769135249769924481438671303680418540413959781472852657537293043833674424538845635629954685833828740903523779166746768104635867128021484852983168158150223765996521049163597929279727915677796994054569904826011096868905313585414683805026109998626368372356653972971602849463890357362819115212010344457235042197739512994151981306224615982616416761351807679090186132878833368125836967574936435733657616931077327186523539760199552239190545138610238954362121131542484185178068392429798597731724837373952054852065100691531938341579200428500864239417249339228392291606187432728297370046688092748965849768959670686524428325169907627131787911883907873303349425262571827234464286803057900329625952961522322111765734643598754360909002923366176664789083897354467285209115099662935038618194088637523641421548502146449461367495047238397218657582900525023450489509027986699064448893260981374112149085650593379704376540463747936904795136040378292607269071767189578981073270630784208004573047471502979422968456008710057680229045502443189118617555353021403926618928134177124457311437371693392228704893456801021767063360856311446166263795445588443498871021244795049419822175151911435294835905488963614554669045733198352603394590627301698204730543805127485959916765415282602007872194523078945873799539204631654913218721804985045486065082140689090184166783959421131676266803049725348261932228940868408038578853133526897501642055534714249910283691717384449370711423813298100002784667004076399585619480271558823211376148049269454461678010062232695420666177747354499455065044063816407573954530878957500606325176686764761219625889660257897025033198387967470261651946070693795297572805558127748693931388088551605998881710730280909725002378103995559304222131611648416865657383185971718869953337675361151620303979035701565692349911946339073254334484433351216271758740326165944788798028077653373572953462707086953502992902574721518365068899952306882015671624006198961486864308118645031848913705283760568125438628683566575161471720468289248790494680626862745186398213252925302835470466154237652281644068536921231453060987336641994698086645437832630116577499269193668621250369157920197219178582029828884471452718964812772097546874572033527394671542646355401929719256535187060034049271903214390907212267712855917082748268540394175731654394825612187086880744357888130190568217696431281966939088069108579807779143238808683091975633716739070101918324102966454505602708531936290275590939055643378933516565086697916240209091847439071237370612595431877803573430054723979422375964973217986891401741942010365243954632682093399788692938130806137057464506641828687838627257881086823337019312475371735959219435715315836683884152620282074110183763099049178991980489487468429957103276759093323176480579345501848464549487515652755642471041326796218325275821127473718556889550330768936588318553418125266894287716425320699776670334232170614255971911190659173558371910755422884217833818387604101333595123524872977755235195684563393112071917410972851617626889727683756369720621984468328481180952120413961634181583383924697677383598485687417045176360415692325795346161864751248328263224693559046138162296076052790877978695260023930905184308457376435683858267961875828160266305407823348771797290248172984327885284526067583526655958568261010829797504744055680552640344997779102685752195779404976891887392880262486616498213982640969624397871265538325426797430470576859439529135994508072921613804447889786543746258958150723053576010146428960470338367776182050996263530545126040066462879608500396525273204945834956423306592727267985947994141824327443734588761060376213041335018569449197537220423841822062102692046827304438103135152213897332029069159469256564643594263080033541194824913585378786501193810338962176844076620174999729964949792107120517611425206708688802157745581908088647843491717752286316578578789986815603355646298570292636204084618821569966485933861744819742253917964161181912117821352459046867750621244606624282853349498294635840281072194536345724369294682926043138053771210600603256157144545389166930100651184365218518439360152425217803538800108183497469394997004658485630725885737940949946107552553757128297256338030094256115523689795343348640919904057288475499837405858867832892615741647084148872252289076697599661729063991576501740459701290135196452110323243397102758853513472854805701705744530673628484432050183582728430802898423887075512471297246689573789065307485859514802792610288259502206540632440619937091863267955405497123460681966802513749098072129094844342071560470264250059949501908796722644162148388997567757111659091591615380436186103250903094613595770864084207132382907384743283749204437260341117495443994949149415527157486924397971673916920852613570582135702533395527318280585092799380341821053434644613040722885974162232103621178899485603023707748482941303368765537112715665177243232494831947673330116654052193865853440192660881420491466507326172414647191580081922601959298092434797360666684937009407868407831600004510188383271237052401198267890758000535771764627535728493512232339982764365893973412396361351366706934607160564472042512906143465829951042511347257626793172085998401617749974655825657741824342729937962651575096768544531587180659486666314321968021349310510454200392647311150796970269423482615947395697699177637526355785045334773482755576074101358039613600511622763801123906398823255074555218257693347787122670063167405609106524574106205929289801528660052873905165620746154195879467204693740209001549121104819992328040610666259239224245431790340126770125004682143367122297991440189517147896837520926489396464850405779209557743173792048523887930679933925668507537991930815788906738305452274081170580512329658485675241098874416374944698914478404294637453193589620592176632688595421777012102709537241019699212255282015187818343894779466813255531085195711667748624502864460010546572668073140581955552071287215152806321355617885198856763927948876137631135727531964945196190151477269237020542799254081889500257402214689417897063543946128336043290195599374410649608897536488931400410829870336259115727353104873106415362804371756909639008622307549781712887025049662580621442414478504039326913766656659423739242401997213305667067322308172014539299152852440155151895825762673452538979736631497961749432882740248962150049865975545590239903319108253720135604456608777836973692497563244333384570503125141784207757932829104485021615002584526828197218134825001677664621736520518989615479951028368370036209854996404124366715763527587529728418222379727089974382504304714533191174889656933881621459604223976953407966601937724415172172612645513423661840702864741089602957653816583021931245489206486215743856652614853755893558556603859490108008560274600161526251029168363087962452350899779859860263112610175782526527464173366027158869890829781906988799884908639075061459191145237917384037231230082323524086778319361200269777148865699116002269715601611906054389432075506562648698015225674488252552739668360360135677673376111328535278660156194172528503956766831778338600272080661200236158212554324511908885456142423226981601293668242012759214432404786027265243681077749521760881393178451303813675795392797498007721731896320836212745444715750494910077399104294668720992515941534008997369278385862288596833170432378252212747741351442988911540885897805636751864292337049213257708010636556997431170745772786006853480198386537036073812741716334234128501959147886236860474061960940795338011607081852255504134089166399350314126167305640521080612349265849798157453052625464950255107803150656945927205388202147781154626718191102833867263657468390885037260684215154727055426642621315044298470850266729048663766027481018205031666670309041727941308142998058541752189625578338223354483549225729618958263085818656832398245978708849680100689345370054848271265505539573348717431545452764444326004140643739488479330403955086573555097017221228855072881382255872090696948728935087550276492272555200869932563367831855045783956371318710187575871722557842455025016494190870829200139621057539143816989335730267247978214409321436291578155287017346006121112453469875583788210260531822127092997948082752936291654610347578349479719245745122506940480810606832092585406955721879300355523286337377029733749980873711259146695274520374420136505764985407127567889415820549271797556613418382708274371924263182534273030431532609819392277912933103976532490382202116087502754275603889778985748900976218301335888905706739097722747973822507716021028024253643055359430993905102933491266123560475731765106347339959173946685418014181836853792796125732450279876489938013158805043360456860785444754670780194250252096349840225437680980167951492192608560052785984873868487332726676627649287805050029693121779577437981303959906835863228387823236705491181398056498767771190230947812594846691008770497341536369430123269105253419409519233108642353643524256989981599824200317016880267725483561998044020256918176096423134100991291118010993839102396658741527365265902445554288330532187776101033550590342876597013144159449916553307060089768158493438172495755297587026910022482954827801476194270938042788766745116614895678780996386828210166982706161056269627800514602469245404023759660129320901628684299011129866053814110442182361467072921229622993422104286128821607399845235985692295038006013461908424003093349548501837638373815075975173950850937991271929328594661050968099928513261114980017937378560784511080412847160954404798221141202691708999690384285938490482873663628949879061632144490975242454367330269094295590009561373197218312110365466658417275291141458681069127372028097189545382350013499790400432493372376961449609372665025706885284857486061307948489410202772564454840553126763800615094727819668253043256037610043110567114554434422401470552787742557800907022372563872049567640628499847109411173801063401800307325622478562011724641759727362089216264414509062608402111115292582642339990935742725847694119655898530684214977037757503243567861644957988053227965626765055330120125697133402630370179990100159989767351499422248768627681155085207421908302119728167538653320423408934110194545353936686059374772384636946146196972566284773698531894038089612236271185455993501831086479216918053262017285864058713580455700202350631809339774036741721341777992193549516742871863428260156308663966753016005351978589275713486198478972945136631527974367891950480055099655986140191365119220893357607299063617918998656244926068221268452923380186614746066166864538190198912595931262671440700342679886721312168263776787936916562031501695036059160004159672313590860271724038448937850501610200310298381759656243424374938728289161221317970834973209834108790198337415643702548595202977276717474613229984870628710434068576974711438736246586279897853839144861538391504672360972239766588890070505096829898160539104068781542504074243672258028700750692991267551149792641873839728008166503839493201602007056222746984596096493244587227605375229718252122646740904606849462291645065836412817799941921770069625397780352452096242485225531256595632707375368550584303610890093153376495332844787568611279362781832235306498777592198107495513448299188137706149923600456833144585136887415484802670416215315664951987007491091940548943653344829238204906186746310421918000038558957320722680522546865528075703617219341856329241039309453768287289281798156146629736680346523132338461098980029382692316030266047569174346938210764734617078720831513591599404389854263482338127328095373278480150866377038730506465429990957839751694526883802392727506529323192772149874336778024643614180139169203994685145294434766538238220931110126956613647957697513823768837974383588317922263546923449104424843909670260484838645073588186952831317105298644528267874369345714406957942442695871111884539915987907780203934848426958098029021921786773149971488116693574646986196556544104550272289285711674088266045242053843424620279282939179602771287108992638131860164190847873013160707761145198144611661396589526293118437348069464919126529125605110505951850817577250093950167025626894829859528023847183847131982470160894303901225418192365451494338848506242320719738027401823787349559405472125458127115767154145203292115264963980111762029862824100479151574761276843188714328096852166356218145800880914623680737137403592018917592341595321559446249340571905804404563228323209468420442149370919303375318288551143429032600111330435109740100568955757406045735329819880146327074932621680348460035476061820239452372715034000107282104233673185884275679796364979104351663675749106757686414678752627999533656852980778793785029830015699066795593574047732059704671163730768725021758603732961343427024172288060359679711946737933311137516907122711025298645722489841093146177684344055845369134778522530448602430227841362209496951317650280188810406709454742195389676046697184496743245211340977138432657153937652131818930890836544249436231238318081830205017946296603456769370918054826935831473221674094041807809546385935083076182531897129600265043532730485041759432040805478752892298119175182688398002635384479063403759709411383501596952330942520422439017129196077634838097535423667013292490973131879310263191021509013815189521962917160738873819266719880717934555191357158597613109950154539600606394718584685214780449190068173617467792428761394624821612949281038098397823727405172043174755711549170014959481103414798507376196655345219277076747238620362858680622328599738772684012631120774710586167236922957436362635754885308433598334037580826922353104177228555596802285394998116073000619867823311285412175144379086965667421230264413770453378479738230323452420706166192761631293858832441746745124743616898643432599533739366737376578995757614843042379672853631903859278945728858440712609762341284932101967731690107869932123896748860883166585544510900325680389878635004660813582963449011134028171689043532665153063377992102871648979261459090309889470235306265421620080353146651384538281216129696180702845185018886871179684426833707355596965514863715256728369532755489531647934652734561716711215739595421060070633079460314518833122536475710713075942200680242179116936253454749790974126008078419533374844841463384552573727982461637945090021698527222386272076512107933356133731041020895993054738817745617117619260802464047636302631803721220298815830728327262804907231349068559523897239174122891978742368430713973023508384770756050233328183457577855868066948419456816456297240390917587739684679505078419894543343665509678674199657898205927755003955349595115546167674434543875414426774753544875787522195044021913364834109032005764491941882414433842097081919380478102112515100653814521559567177757622131651398745152048755553445532143295862191456229253488561726217744038748357272882544070428589208298927188716780379272218119583769621409044919980934398665172587695688808902301140209478391318936347770309063066126695726103261169515519191407688899617697445428985088516913883542804507175689259836971157541656576194139784253991041057878229246692080465727067323621495821791608938759382303314065835163957421854686745467947302236004467310326276321692990091694504294385920080533703692994168511243183132589099921682941552038644671213008324834747003590103411727517138661146190501877850909037294806009518194763253096002984651623705603505298154839191804912859818331518106314141457577896920825963896733096076916665896919726095922892152296363178030963254833848358100985970611983215699517849332998403097640620899806011844851102235964852435345612798670473605121866288263344802999092786271050087351599891441917753974910976492444218581866311777462322586371258042358344359925869033537087291543581747445190798159478273640603311655070512071817433979327868803100792388019379897370292038633808120533745191121469389060819609970600657449444516831145069680438530449018664706668831187091133443384724136379010561206462113421840357756323052147174319056295117025621553108300386644187664868039660548931103926793781731444908922617254949276829110689265933397739969331578422869743227289819434738140225845011562309849696992546358018397210611270966462051257136726639264320846247546844379781148580262411463617821579058083834805477298194795489746662537289342304294486824000475651737323147051757131407153251920709869447009557691188922017725256187812869903559934037235684924258547944836265714670267310623353430390266782311895339252965388548492458500147405467521703753662018314107858124737194584368234025125188845766361252423309023314382210047677830278520661080043784312073465807384098453270430486837192039765151245715076001026221134289151883364243282909104409347996672889132033787052312506483571968132505882624917162704706260304260885068388511455027158124371082224898521052020742841296747673442898686583875416511211649251592816374528691608926651339540831846199806432995032248151607373595093260648556102667715592339356374732999731371645873688243565483283431348706183403965937096566615160973927171530576754268192681042128064073150865748261641423432962871448388819911370578881862824885869705097507176357053550434861703176117033573473944625485233387360112872500306991661407818837717263482090173469249908084978290716386423623628038846625242076684315660316394818262608814943396532512658717425435043891240421649432541729230888933559987355810334843000826333886574727348984367503025551816583267617590036710854359660170176927452770644723438149120957805303152595720702263458105542905955686799607735703350171177016725530962956208901788293877598661102597706017306901549368926366800169499888307233567657172414109967976552751247516793475967946228969819651697880791419142179646945669047800135655667050120286582682626531829527505342961431731434961805579400707660599598043238428871935706130521684859029986906456349496334438997654881947839137020302521340942139400689793766042311423862178920718885476455258799786110215902683418839932010151370173514592628106129448802395771793293132773066953590278764873124579901542693916364746617049960922743758017982466405287300502243905381973935064812492301769397005796058388389093892583585771433512972662403787885842384511799020163137363490503622795803360506011407419156620192576083377103469397658742308546359836844033913762652585758786776640487211136011414831712764131162349573815875393956276245020725723090944750735341924172287851075363879854596384682405953926438968643951938085238111983986983924743284622215420068217717482902177388945648431918932688054545625640448124355799637143557301094122310181057480772485148355938725756709110566486460930109611420693421289257438845750536098882720369919157674970772821489023183478171675345598052538529961327913801237703624864491975444439920412656897061272638044926589883613413041042061010948633602620011299492844061502230795134131272607037923972054399555537873429168728105767652615023632828365686667862760866012803576592378119721569287303496060033408848521711079883555659996392424384761881117160277996500720052182200760750213957952084337865146486148601551262667243935242616776094482739720182996025641764139728784569670882368734110117228195260102806388371122960913460027467517545538060800198577354456513368989551401141118894254315578641864221311056251351082156410042908777175038124250644968433888156544407687293762849219245941799940926017637227219803880727326906157006532218636497000369571677206353071790093153982134979962255572921104309666411064972792414669680727341743668014234473597656797484293483962079735930162269385328212378748414254722997265976036539147838758103550116756176686693190555481640079266737380740751390338730780455839607486538529894615753792952517657694857217042918186439155048995160929776250601351216949548117728616936613549883891434648142637520889625058107628334547802652026580134227575936258966992374028712209354856084212033413633191249471245715619284899481642485031624382933673875506051252471109779260682601160012886494701186382753358512059003290566195098585286095702609491417235394627544977074496213546712847417611288115381757620374032215831325379466498160832576645878238655044038384520592905966995979727288220298641450063010522155471498363626355464041597489648886027693230408988982593669181570545914772683462663662276347655088906016844640678984682533457603755231171837950522738557405897394031487514702656262740472950475756741626410678818459977057287010464836869681183593986798348500908010105454825704401695217740482938638553662973206427740278809180882315854711335077280977777410188729910682706591335133559258638155496497690664398470851424452369171210097449869337349246656252524499425049466294736976132147555058186730373500688646688231052734476408157728670546393788644909992281730885405704572240340600270064200741715138021000250411490023028153216735565789876371225051902608814234501833439631876629293712367067116856928570123969211223444314930021515401519430124988641646721822008339624386169674900622139584851892862797547099123959418921089796273607794310012822790432625659991117590873917601310124616843809692554034038767046645043357304201794041036281433208297215318317298619300409174731605668824597083373713415210914388662255531112815519557475677716421776983371493229727668553797846297775470846640480040123525805589737154110047494030670995810518538485705594362923192776281525759094148427347230015336456409859595383264191902497644906666702014344443448977544515875384732089291308637772191745904084825923190737553265935372071286816006697233745081100209100164962681145868370914738996747785938073029071121295236389439392384557114748392328659880263960069156451017631715475922619029539615456014073089239613876993515445106203802093544200909382617554087338424286479523168788852420963035677507819849686929877972299241063483085983192413063776523051704404916020091887931654954972477222892382417640353076404779493384303416407506793477155505258266089877738284317674900545526487920275635383974046394874770888595063799450189253631771017833115158695427246478527281877216009274794190251673521513913117144659432616845156777549374335064557057256121733618812154695652918057495563512633638016919149747709208039034931688021388332516153074200874020779472883608726624764569956113047207755681157119798755977839574353690282610867117346240068085186017666712304101917403445025872973501637369802763974751890558375056293013161890974220040036199668518358741943700800144633345186761772484602945844261071305490829059074102652439709829327014678939133621945848010280987064184586498503151688560608017111332047631317542209686922194389696760171934887466829419919174094630728519825163941372406095900930009350791117664583347238305588760319113329776304682872922078314730084751770994811822477732450212223886575026503729737170468559285895565048913828222807148899405936142600050058726345097309254344274629650736268463233205158286667306805336584216792974339465790366471405587559178478871513608123140874559966025822593659208433239152210681981361818539777549313232066759312569739861856898787494473378730228936017446060476636607592918159185990697851552006624574535803918408751152026077945973704599536343622993282055307294333170051679264196385878231540200531833128653512414132473340185077589708324428192081627372423223417759486709538180954130668770958687734342052922225919741228275259185770738062326370036742386608311264889263917765784751082274901512258031826030948525190395281672449727079481557387362329614216362614267948189563455263065558031789696238320305135769945775774004713327209172831428356106690787696320547762633982866812445422682702499760437460689623694032967142663536147759988663650847003084543225891545783234796624997758063000755472237244875752591364885254293331312516563562255646487821847431363345577114176545747950657688092679099562081352354661842612164420346524487938006075458508484020554923621764850215803711674769493018752091330689507520205470970599012818420799478709050786382874603816980000182957051161860722074372368303940813185838421285221380869264344142115977376301751765123727816173179921161261798719464746958223118426872079427909146168643845357120719709097018223570916936110106993446563198772109521042115953788140427780527596458077589303551650588213695011958668827294412250019328183469537995045094337600800676882937267862935023536274648540358362614202240548381500429070658899802639883762165700939065734476526420136610426867299546685452518862363819497212870308535070347376583994892516696425411838046683745608129857447941992954202982376553177564864084479264293004350931129056830642978222152077719345526318206632140741297799116051687554280011382701902951827645314192348975677047751706515411694885160791460131248137900263843910206970714978678533225819674472853378017022189777184502715011764705626865138812588270522731376996102468837891154118219388553690106162027260358673846870283726506993054989975658585378898332516190453383545880503372981049757276740705822398594617845186119198785808993149728942726310497662258719411667205264963838909826569249828537375726955745514129376740056856349285748123084417320381014787362002885754368287273154656213219986153009288717495825615143333130073862197370134124453365859151805015566715243432824553784729104036594135074156213150320438942617090410250419740057740261190057085881112039606314225377862043582767090995275809990944513677968337187398294036199435784475651798892084080020635311218842772694374013004539813403317183334221731745099480201926331394280335438503899144392297013367903894035932312256317168729875601216569521281202864035331752349148536815000554414806467210921172582260223055671176662090025065044045537913671398273179063557697900892538478384614718352673191286659530715540233476304388725115233077562622256197063743878261344386184231172456306296554048477595311327554058145429478589861117546278002792157019873926869040904262102777842824587896775231329364517812414953950163082357371020151109164943233042067232724894700241944514554628197245065880958762728988749344128284740711694744426963950095196203710854428963548968608603367563997660424576728035347784971127525007432954996269948761544191260756143190199866790727465221429776168735832322577295181251480783532066461388307330248841762451867399024329993324911497057145979754736070198072214371099592354854999690537848669927750134558124033719956934603088531172869393631962225296997530135887503357906504561843988910046707126657082481609877546223208755748847921610141385422548469960542038823592688538919509243283593567314723647422426608929183060079554339546305585378819577495228421453718939875569572635739475583794469096106898147864241371644247110949342261090832652453826747203059873223770565371865445970507689436043560652648860383314215311857800931315775651209996830422203458750099945885013694281488306554407265452534429846839172367517372071313919476861959313558894549964510168722461677923628784705112207343578523670734053360819651358088763428243622432122171894727498706579626880509547087991097393781387776250767848822518807173229380350827099277647811277211944635179911761911747382160322147647629014488132225679672286582090997892282469856626946062624039456245918856102694707542443075286482098412454359479561444977898136455368155585787789301771781626800656673827741604099789303891377162499230754760158487858367147941322806080814463135724045952285585802403828891775914724226224452432571460029045249343682717255199258380426605580551071042839589683853602844261265638221670345864256365085763847681512253194966306056614074496760207309977949671179503435528874643137972700769951961241075536893561852265280216708812624820255033631077302699508179539462048369859166237095630741815654802201159226327568595238412789125606606834257976219916370955881035813768463156304460415152458790116354231797402565029460882500630769495940703942002778571159257471311853782552303490573873942864638921422165896944945412244735871063207700267563225591785727377506504702308432702339593458199460117715470991680326480778281583419417224813342472306542626622008401102489587126655683313329292064676215668394442599444337737264128109078425559840306517371442087031731136554876912739235851793678872445681766670146015110673718753359452309521659100679233213091156383144549515881407298880768813204556204175722481585230864129247130683762343391577179812961940122642310397300289467676879260357583272138607552326576724594337159095490554911716652219117784401366037619950455045524430027944659281243770668137236237451988313071931567313673550562877664080345349537551051440076036439159666702793701650428464871823881855990365889436666788936898270281140195108042002930465925904509059546984554560218932823006828835230514030670809857925550702849372083114438198244189742973851124235160753586718291780868629809790106319394512766370364481830210143372714686642710127020090502346025564470565591341573598437674742424216352753870596994336985856096361012903665952748009166508236365384149988126434656566346009332496517138183498746085189157911998263698196199400092429003962341692546656776252149997148428546947906900101462661799818463316596770400763945742870652200786242562492416865629752328419745262631355681421011063258502750756350752343001801147557899853210768270183766996465776911312144541566937166420796913012938273181921143336294027666393228660300825326014353279540803348810131249789974388204606076320356412566129025629595199163722896721255264422745275507340091988823562841620576293943452125851937819697885819809727903921316908568072419288595368380710306078660500962040832077992267412071925260651587705970100902051564768027783375913943374881921038782671965427483670962053800407494302491038627985101353241367558650790313032923977240293595493787563747461549440043807937791015766050911119587961328342617645133348174615527264508408075052012302738031194137407721605714468545242187251312662355314965968453586125296177010216702074389549301487291908168376575333680859037754264584787644170118273150334524265108453360154492832694314021087426246196319948755636865579419391897016003682952578929182913107776831279543001270075525904020453808738081652482022651061878040670676172449637757260473016427832322761703000359201992341169394180055768857035043111088928412085386613934448574935718147423698346121273206362373475409472469337831897307211602638815597820617205718012910428458384103261639971243404606106311538778014713297930587063586395389818192767323767758804053454186851290690915470593352526610196273076298531269950977409641243784189880457442445277456910960632184510571483590892507171912924908957595803539087529986853431348723099080784850203530342143851396155065738784502691618573014003920498864079298561956354167295893978527443881266334157980283637174114837372458606801596457336785639974004063921649395759681608809732964876637641665764665053624570880244390930835016948615266470818146702121052832385228442147900482634283563719524640602459747932570517249181482316600093308969391465689680939075727160143994001456174412594432691855619528025623080704014905068531411574347376323838232227957438410081338804522779670087227229253682338355228898828240215720817198200604505631152634493562259459349296849135744642153190451639493523879580709431667932226676620048595411420305373213282240941661130371352055136916911228971635332523677773121260339711403638200652965231950623570788485159679651589860716756784566162534327792845762434413644687908923431962585176504963911969032396611129373762333729725006524580184488967349192241473184509823112504589505587573786025377348065231534195735716328438778475500083200368539390340296353878201513050697229042576124816702522992878108519483467192267502295672112138549210611359301687343281316707465638143807420060345133137316639937665610065067688910743729260558758159012847905823153029609044680424241583416323386464582538674275932117351337196633538194310546326829882886864746005536808584852864971117990772702409694910468565707982934258107699446487003676889331185238694218307485512350864861710563780058634008683898993888492506576627111084348888734511688088329783848190017563966332728762178721486296765707483184943667845859015919358695204879304311300125362901069364785749899002969699687606350558192024219750149200195981505775429237803544149092542205583388848371048070368280159340702186904198042573454237372235111201746901842137768410132321740769126011668883499532524968178094523243375879015740042277887326590310316341585901232685995682927182985164263202883794177488594772397831156234594346929222100185466813223229735072385590981602571280702623540030718616166886110531104355761511249525854326043981030750804026563154136147280909125521301717765012513455488613905252684038512386185654615469177817158704461980878644615565189334323924328636600313170916598994460794222006291177242773053886291689005095108522270652797923877861780718500888590367785170190526952088443075688586930194683342475007953169825026904234769982102188394544042867635132902435262149726181846381480646977266076542118842027063237171230651422744141000893297111537507685335533637875281883945202702116806701091673020086127446634958977081765981697436568549120092596210413972517947370952272871086540867943356856120618202590220471360380668644873109937737754203080662445178064701918967608387617051857352062662953739257289719209623389718957410746039323688128250215197828253548584099161081388517747745260761552325012087031381427281785941577511027025263755625406496076339562845408810248037448482117735504937172100283131351632080469851193924234036704890520806103231004239277467396017634744134772978982229870565319604519794089779689165016194217408602657960738310025762084419855951453731498813097466170558547483269882709502332945198020019080150063367634092552408069140141339905477414802816724580942664783748636074115913611923473046429645983687824377043003347166357666434676951505608112269143321651506964753857328201401152785819683068382613381938523027507392728278079043602627465306085933179277237968520988743729217496548899704707698849385658473562996639630642331569988565950785965310610104247105165246973985133500222417153890799266606719074004062621590961906499343455380995909517027310898048545896967676914637061985419621212068566801185533543881391662117492129906008500917045711728029653306255313168754233465456304565162148663778605616598611513479277542921808708511922784634052375576719630887164878620571117445151242180578741308770849486670183679405681169551433977005602766405228135603385821955407366655563430249805112875451138624036097526380356973109441996292945933049644631675396959348180243622604462685837186409923796542190889151146777071404300730267845878672340675556277968192370392442612628164429768349819479041405000315512923451891937587147332512328167355350424757660573639729059616464784651912378042889647152585096480847599814403762263992542148792892504162128448355106194410078617487802041668564985348597888702784147207419501548872706644157716311590744733065846976118385775944333169283970010097018817691199680026454535211084867511872426654973201803900005360628614377801540570864784810491804862120861823103612991348860585373845758297065934813258689804521737442382097215919519134025211994782242085654259719922649112386942639010574465363693384276112932115923733103131394251312154049972430536410267203687254256237698811202797507776741298035835786660486205777108625907008459275732055540112507197907245895390124990666334803516732351743158817114060451791620952985758292400388735353283348603264605261175651627431665767344403915002146784014707122180578389828731297347918572152987879508874541663721798989578314615365487657801881110107065636148224588214128409614976348145506165132437275125104621151817219974022437652533620829046468059760018043519207989490724723534624025875795203158762838832279926967117131136331138730956045445996908287206894120784040467707413269911434705326922665447895770468920349703632556100188593932590682762518862578844170644662002776820770892419976967912434645645615463384059452151241066208019447618380475933424655378786787681211976794626296653687437913637129875124599423339198508528079939518448125875142391950970009449268626647012186294238548660017306724789982249656113951030317456951425315034804712226447303670561647416044460509900811003028969337502506820543750760964212777992721031432296008464489633002341781362459160430403612674746605143328918124916783852297394501502760885393951198184296002346124718144815436985285363699608395654117457110621654469150685844197433670363776460749946835360252771834915291253761037818348162824753784571373091471682453505890299073184980008134089082368710630998440265146387419415870830495932624970836565130652016047504470943071754840714450144155681855027458310459868688062518438725081805474295291627080211885106876339641771084342842710226443404452034337409997233058736838922230028015739402558877536604909026926583453220305399339936294656865572250626238270631704030831569569594364641678885070634815618569790586324449642283261522052849254131066401528828153386260319466121129990648464589271516953066097618030019277527421730593373364463951424701294313532440349630144098187439539212099576138927239580235156562147327066597331611711875369503003973975665126132908699942854705232836729775403606745654693723676158139392776279541003531830182665079865509981807459069149468072616011084597425334949646396739978504573444806090612225592294613135732776737353302214165736896166831790017231691586650771775337360177580919070039894194417061635046226293810821717457923055280823095730403879992552793156894698823065938897438327255152454660986053153110321565428637615837889632545146577088720927681822886508490813653103425778332492745430113078842752993794927010450281123256982852192453726219206019890372422470202761916096447271780443594649212611644484287280462261481875444032510504165392066427596817179517282266799838176504837364900952854277505881980766053216713511825812831926531044062072403760855448336323314692689343354497088452914537841339533680209898668865029492142397327112458410701227304107540659160262309242550967560638537725961408462011848992059564537777648882630723173530902756762341232989549466687184199680344047844855825086847353082515236185333217806900338169517888652458841249122265699283652768330971068322356866408165904531310345506546677659279403364517852339651337592347689646710668581801104033372487809795161343149127608215917019646635728241644400933126982684406955173903362666585742068170130961980700398790529113197499787341380294180733633394705164892272501779623421439028141307096805171901996345778197821827988243462684528072746082405728132729932239976948305307943046032459614631960737749934240088927926255334957083909032307954362517833854486649214233107879809393865624577183020136347874089632374176639506470051029187540618102474084370607460137248591080599550328707324972901041119905930775516181434587482628160999793406145088394193380971379135230696501696827442550478928893725957628630989246471622843617844571929222045242645409611636274623414708830872441251188618730616732019122601989192304794249458093409924637480526944297827666103564698515249041971837598991084880686952292236437683177976901043446720003234865910533505248024051042331214984082145337495596798671433827445601591371590531875564847383103535599050949793187281939406527350140655615482664906169107061701351983589371368011559263409741021275039480512168322048130936471399925078763978795253949778434763797686319573206775515324986512144935553275086311252943928500644721212158061332797816194643779262787788680176247927721298030807303754469841372365796138858215309544600259609111888159762474969106790563825857944586274487049932728375446815488311989595743663399601467198699427421636421645330564507039846751835539629634861294548000963874009241862822071570256513186323094103644973167022581875608169770402283310313350004349518579468992948600070106715167589876844091032407345422260377724464782277972483968067916090191209311937876593901827372470095887571819117495093595951998607891176620608729926078981717657118322744317197823537066833512363007251752383824380359870417743506192988265660687313340530201104067020660761378027788492525364227331774361494803161276175878471326252147492558405714116485040840392897921574322748963367419274945257950346189597888361033229289255066022830262530094844660802118893292541639959370204741935081626770132706628875395293842685627188284217495557852713810827430688989327726256713107556623687798613714374509765722660274271204681779527486132203572395404522995585974377823162592100649228527679042449255510295710176004729661578363220166118041236604623224655536450745621172256228723639556544109765334733663331822891492984233528466502782182689541202585710089021595246685136535710651115435009243965252425825992183939276249998855336373522162715986635682112871443139139810102884282517342061534273062150154282402573610444771291432336857071588874845953800284363533152116722983705830452597932285489422512370479925991713530950494862728172602393290364869499014679484645431097577698942226597784004856062951070080971755153879534847927642102908680326146971011303602011489565718307215554647797452838645573670383871079775391819339950253771454984129060655006126101992673855281644781118895419070404008577990884861702929238937651213327813074084548717431128369905580115258104292263732767033039244102428237010754801213684300297018831019937639480058207789831493857883208759336460796733359834455560001826036491884282426513381165912509637430265463879120257110886305373143913592289739937048616629519911208330277237958662046300698900974998237285011428563314184743380316662947430712850408751749919182461586566552522253901594945380243756907023709410514989371267776980066324008696530148526654027038956527961365927565330863379039880849073144694218073763806741556560834582557225977891197890255541939937862722834535240741550275594753025922228498825972770857412165353289924326796578020364802700238361757151080254868983653167538840522593871025676038800775480153210523711899689967462929408503551356827246378754824588240917945867519935214345628389021819759885786451041255579478289549566247422460079687196244061663587799091096267709028033686350954924401092910744577436521117609264053559074503947512715861571327756050792303664718376304375593073349766726681066906123263667014221538623261560501122007172474378609058136862081735014631955296833899217112595645419278100695813243357496312630518188974323682910677663533031586373177426399582742519058972605183014188131284273651132588624540475821890947612428314966880241592126544486670075270576325857286499752606664326650076664834518541341277690111221024555855906114892306506753040295232332354801447631955648035673663431309943558620792406094705025492977746099249099427164626610603349674916952716156435030895188025413398821088213420955498877529880588918907601060968809753407820808369176621247833947133410465146508897360642957666168131663342796707840117144876712066007040471595715193025256693999590820363473801516873394444906372420745541559426251850064188995079412032766303924424703180326602832219009594184461452402462365051415127863761932455163324729373040012648180634452232996332272586023948979405442027367984335462353651561571958986422313456936617856574897595898359807809778029825996831273598125678013280431511856151212165947872493149293653833940045067475264974128834080613591987605911644581974155621881744421374520828936001534921968231191024101220038061718403081679285906389462738698522304929315571559520696129595340395792549243646336790564346075564867444564637199259381207899015369701352000610920388170727093865471665514452789445963256308326921698437518568914841630597667894033559614205997669053891269678260960860892409431040300569944008495577144621178379925534645820031266929009891767925966769739917592785750630049164564047027727176706917189296852118649525871572812864641155526048508995058777604154100889293281245109271746939515684004632029955544786305299526928980526173943610326162406003521896612896851535976053287266433853765624166575509570567674533418932438248473845065070746710768560516851061181259189517482996403780276509441696020283049103969791896045507025486635829451070559653179465265423923208422363614197814090614276962035169131891888195921827779246781307751889404975906125639940513709310832445420897307642014485166940115251819362266887344316390494390675504272948055784236193065708624038613664845397297387243051616913770214591292471956590825197791833382022768961663295985729069694147071667344843764831458831631518198644860713704587689597199303977180289946676559589074973298450460792580391592217647456513851934287848364373286979832139939136120357911012859994410679686614184983234671230035682841246891560009116354045543222039900489825887186076158180530654360737367237925440337912199493120881525786847186132227010932685245728895068086092727284161787388267656757300418309546561181066916038986653569390909651445643620224458070989122744108604995519550904614292013812124946997149391113639928910600957158662609693742632159644051733495875357717184469765067498227979222233145766968507492680632560497241489756281798953755995614990953286587576687491078950855912164930191512260234440030055627294214016357169389165378827805716109318276567113391625258793352766344927028807757943348946568710691672202908306625547311119565217521281239819130283488465113706350949649487548434551950751287560140242714328061894347324055773059018657935707969512333635241443341265791121021002237854084938862205825432352756808392443855118837614303541754851768389118050748344974009482208945027503890706557486308000149780425358115369126221450673119405972783495643241658355812101012566606121582681242072375768144454498112697536633368574388435917755261704176201912938902814996316593528219520404153184483274824678474219438718278394165198380339804950166264837465730033861375441788367711749484175775926811309786586768713975930409016345521645760679616744489944163827463785646974716884089772503207235450868801913646273645139899630571421880243898645063952348052930365181794106366225201476129823230917380037954262955092123712371381124251547233655793035125479862355384278776796039679255136736411600755860699626075659774452929661020390587575133154549389016683431332769561595191886842037078618547222509088252703302498341939644064805588896142377700753708522321295542497540594229064644746540264069437457436793989317236304653218195173935258576596077515186686665090002254369646793717729082295873253616759509689216060749845397198674674209829503970244683473372887308478030836463004034863643922438177925474866100439427712906553086024739981201968198111796471452367917441036693090248512396319157888944015403483247595322322101055987694314294324735818903895349730232704684436895180611592931578810400114151232355330332824074072789449387675017017340600126877056301382593868082065258153262418876369553134177934317441465378468966666568181949860410290853809142195576375955725400618783339550198471558493215855843640457684234299384755402681000288663862692427787574327712000367673821812497740762224370968422009792164397847954417381861323615947236857627665814431185438538755587097925231077889206605176397425538187694700209288574621030759624161902804112230619536169092365226953957569273209025109170736664420773490747499108295530552017674464327953168952256159029583899942218193309618036595858231064547614627060946446113971437066099000490549614243787299514263086092275731156647220517421323383882775960535649300801357030566794183735195707892898500798294667060039845917503993387203824996957872566990648211314939815356580452750160965176352572498010063940232172415601905801856363862224095532261723045134735971284806372438935608413603343690718284529900931204802608056265316086736083510624335738363884080941354077142645204558692220059634992523522646056906616354622973375960402841490187376817080277789544998829525304752052640516970396331772712232349310190380260399937100805428980836880976171252894237451867154497249834995034716635682604697657498001794217946772673731455487415076673990006713059657971621967024296539897489996571247216291520978978187331445692721277105688000893148948309342559474191189760919570222084809863442604982866298009826425958358174680248881316558287228412888200711229711414734005136945308833589874648501484253073415187551890840279232725717388325357180318383070754002194534777534625365105314778914140974005514782297221065756933198785799871394884315572745869361991394546681636353768452373013155350956146985184970172149762363501757207507801738211528973951547213390241617646148835400363335600639680978016912845927388108086433510015549491911824128636998538930093613631271026433872983935339120248492600947182969663218521131201683435508937359037088028288605582438159076164339097253793518734643138546493506924261469469526164782646809386008402209677633352556363197859692250318312485850073194147164863642528507283468822496766012898850776111127293801117550170307090445630047988105628399245629864206859292594498313626008694471675904060043341599872649289362988252013759963385852840830636252389627160438535431415198248497676916550318884689011213341818827980199430874631445832614581318214303790554841142663169995570619446190682548409246562916546412538595079371407071876721417380865836950061474971458891091610765895922591641490995415153735227641716350907018492551603688511710896700544272895038474655366716871007343660018194694398209238514555923872568045556837127391033307151902613895090708430533628735692966031460033140189487085361972693983249581068623485562804579980441934696798157449840724891309739977741836322940293493745817185542559535332570423252194166183241597396560622654335506188640037487594378074359545581573104681724224947717946409083607423852641661096599219495484915694003948760209413835896702575060370890975090355492880252770748879098913789830300463276615917391608833988232257784768002792381516810971522398844642842408495021854018161482900708833592103045825681718578008834044729883724525142147104457369170059547033021385715063082138490480511017916920469830925895807444337634222243922485490937865715045074339683089250003897284123593164043120087284259163321048825599742049931257187951846850866871657400781168879528589604481288122101107372750587557101905697863283795147684919041924257080896594708491066376989812984796106735624584480643243966649392098759620665340470580169833551572235415617338760441421760589546878200286038132165447613140259005670511687335638194278228573313619736804933657646640257933268142071870888879252282716254759803697409979023290457445498161246910359560772503540295112901020512606358977992257043786737617479212754202750691371029488793753404748381765543171293823243610739455552829022284014558626364175577647755006473923644017444344542836516209283807478807879717347072435047751835391570364670756134751227434273705512249042646437332445242987924296406830189003967474361647212020922716371131780448044115038870679371993600398618802883856049208559795886429813699717419094804225376695108193509453313167084068822345379855323352293723845363066705506097250587314476894392560041776752613431397631776645074945053226084622219032329877326643092264742247455327061348125630159220006452828645022239979169878781337161874474608010186269110771173829626534091034867162106891811665802123510735061395585233181651240115388650663246943607093135991195372958472362422370973157065238851363088847509486810682962642512810857909789022926337208192221266168961693214183348699382113978190584041920949900814250063225853854691723171370079587549257883975738350549665934694863330033762654548977529604643614549805978498530899503582242627061200560500744000678699515678365040409675799900285927168741730028634349329418042180425254527568082305266993420179673380794515474636182907686828256898526419389240391030198012418187925755935302129529055993464030713782432446914804674151678420648745926836520718730198939738710329072179792891472910572997804677832970186876898866421170045174325935201056525968978720928961259582110519232321687946843667118824556820452899047228177041459993783808451695661802637998182539601858784478703046682989384686736661364852712500013925128205994576936216653377612639982429182053521032681385447672551425190291068362487156683970218771931978679468122087446671892665636608122835210761818269719475543535168450064118078403621868198870561174342704308787396831155531029647073992564313421167342955564377537128251134911564283240054780200135423524284844973301446590866075046740383473428761609420360537513820627804557737348829177305327066334100359803547592760381478165306505871031038209610592855343441915521296924711460757291511675179148780222284317909334822985532581969095287894641434050615031218147360265716014573473529362010640829617990732650325061451014087307122482055308478655001568220280894589365003922697049982410803318831207382821917984611223593083381025148480972611976630402348834378814273091939405666161689003036410409231965475180439845827431075860586848453972367514542838284182627506935907132933323071660064952550319780981455004711050237158606398346982227530711432011277193205473803527356767002913428086135748533362038720215543063082978453396513014568709796148135046569584161528803185158350812284444036789711359777899323089671137285094137939051843128337043639957881458036312741575327827754523601112738552810272413255506112073135962905062101110083629709300970473387486919015079222472670899846308768265402012729856963308661012531794666852432449612515386415710280852779711628612219875058082776004856636847172395587731922987704957975738861033658262820043479401520008694946527167925548773004713893407542901214945318953405769203118962303015376560744221608434951307366926391643443663025532973407468582739393632706538465335402511319679792275956629088803498424679383028137075655161128732846953622508535260426165138449235509516639891464599376597047734117453963432071889808222459320126284960215519812918241836571250508421177744382939285158671906120055992767557875906028225219686345728760338662921592863835874534779615091708953649790837196162033091001322148034169627474882465292402580331690543813537059582685341900829371432112753213346002018003314950247233981672655255009790386366360163458159470211191793211721176499995342646270904135723717914514402709539408144947858669009144513512795986562448686463100318015962718992669449161510381362742407308534989231849166251391414506405573350740332769712444438297729563015475486906626357215598266104093098379158396928870973042524904864848108619961471899379127745965871240725866537916671188862770569781267409185368412770839918112334686432598402654312525247775076100982741134316300640663622344163557389945250940326802935986355864681986579015602486248849828947623562046023857838605019576078566716958840263671099929283714450457372029617315107411752630314375666200960350318620627764050257676440167345778850737903428450083871328690128933044545918839888386835146096921679769773974299595700459353536926123854036806905876104383353665487751168841827531088799170583747327200460299747008408687042423377090711417984104445424782671845639318405162211909243910675458742930101495830532280938633531566992236610017503011077310181538683047423172652310032672659692853785473463284625454194421350797088531175374957845293313436774929355877455267507822885119067336283728478106491954152769368455640424954080514174403376549717921432933824072592467883255556778859356414126922308086078598784273317257187370763783456591640124023388316035818161490385886931389756817607093379085547053698652926806602115805541312500032945305864375432304912515603937146941751360172592232422976632475410365347843937303465158802552363401928993130088005755181378821936418187660601937110629634333229956593605736047920405591671771584126614882457525683659194865165341073880229614977233651641671907856955944116331795768740842354183729049036062326887302169912000618769877057452869228864544390319309869969462211618585267862710038349642752580155038383218860570257934609587177931393686124215250887608063614444038290688683185911795172889286008746067410748369210411528175331083582086779742188308128266356380130647116925730602778627373963344742694116747151333594725702363793534896857760127747232017894264299791745327770892621127988857818098219307712079353305837696326044233258345422621013360477468054495811684817907793765268227933193945727410342969925770073285085685704946462281711559966949021385503258877314640192452745198585893695704451228956573826410357835051172466948360579856605501356100934642168939624531362872305504495004113613172553762684802449061497755454280054161402227425781729553725574404324452694547313508453458123522383192015069734059420667381227236595001311152418556219059941207414269654843259681394650219818450329495562037993985950276362848024417732593678703520535335986780454102557348674696407971326631154250286740032689725902636615388957888824198555594179116779108101789768480233145024183138688198957546916714149322842685170959735821195331466394886954747558088273993101179498394430082521331712279408356243949810055549409676669590799038304984299378860282245138591539010074994833021895318035142248878028033570339300025406865401931287497655451518138096143553648255384755006792318992633474800402473811381124971596544605063155542597079032595435193495655394630121353573250019496597875162798136100278092705592724033141366072608600031068938120367741440651772044146694415234286074100097748422025160785718237997585726674552919805880360614974330002904754487132696483476305916376950286804916895204825345608420690444661900071889250569444318762315913916310634131318590534290052755521532849428349341328115132484962264733678943892383522522930823209405185209822117125040631464803493083772741972409402283188118653080786875122121686292260588622405682353988411676333731311510807219911003236106892502190766390142828875869182756724706876626687489591951905690322675395893615052410621708656350018168724438666366476136482427366209213325985626649006781246628965783586425763438380706265351265757846828019417776914336289412806857691612988962013338677343963484870435261834976750259647232306794249359505446515312805560108633664031031587453603900626851438826132370346853410040427379771957903048961680952917241632779724737853936478061155170963866235221138966782159477712290184931627001060573384123385154638785984053008159308174909976923275762958661962955240091413030764807555109531093727125756127251190598067266455916089251969787170962701152263623238730617452676267764915479578334973313617087193031966251576034506973866627603122209067369240198172568266925632682167388744732883003829535671460963092901965253975825893375220063615174470269017833504079535413018458108740773617982533845422721637173878891302840838638975778839295362400728775794123418361626468051821238270312537537179431337027553213058200315517808224209980326888220742134633008977687804025628385178901634424648881342220530872525926412725710691783572571689558139902144871632268778714324651140527176206272232723224405665640535465326267769403078187290723555786697056021856914321150105183404975819534513795752988691502836905590833265632140764759237814304126352618916591474608347289804524207852073418487784857369389046669779635822177577651758066574558352233079752872573753963295555119314221664140234415816276847830590651158744907874646925747961433179085977339620904044065107135421799071412081071612795237841425845629152049294461955532642510195601734627974071405112220056550428221815080327846442553589524750862371598130362010872340938872890373410194976095762794502510126907864959034875516419766385272068431272604075104640575138534638775711458493870284997877545361866754352897256211720106380894174139015599310562394389615711475336168804112188230475789806466349522667204342382337490118586893892578184852902434624453535524138008602359933675378589093043662458546267654450785563586649346752216122268177251138678407208624752939146751497856920547886645397101470646724517477185844216980653699441874155106876405028998966718149342831848648313451734188116417352426000895877034753832292532843583875120689494142206744172978206120494810700712039755161320844535497819490929033781728276643344470405197729766749209893649991973914239525311706525334326842642363061662875703501308439803485924799952144346760102272980938468121872927231148417332282457366284278905098681648489392068194060125122691699723343501936622684566852197682111694651896766113331290869404156451578760398328606540565515654325053340133777672302636894186915936233754823683872041386170387749215875878063484465972315486071151192332950272175983609212110625478029405702426441466332831085309360055380063196434584274706009487222022771055690958714282650573603307549260939124982890251251642954285676162382680090409088482684277260012845989791636122272152613891818493492265117432715354086876152730980323606999437309417378998805340030384585270682732563284615696032984355219159588815744436836856053103666475705873457293183049839447421140767261867583943633042490423928176016410181839376026009470369847269857911720614415917409015223461937654368832800527278183742541192641567520494231085264974745761472756384113760405799873876273582557446688581727529529323151368954508444390069217891742946943803529180033591561010491483455703729252186185212784077691535268355839029630410495250148287219815838741047630356298781878821710404702575573702867123974093437795523583472354719489813163843042612526061274922705223220809446746642387234920878564270015027912304099755771695652119979757143931648436243715366555648931191724955114053006583486234442756097742629023455075015719487708246443344097063562475179556176993078876708802383501496419699916412951676977744082427805343121728296304245305173590646355408995582000355036687501414412705840029580283777600907676547792768751016471689438306578742473175919818179310978046176887985945053115057644101695540006175218811111715147294104835838480343619585795932488817296147069164642543482358803011342941265362911210550041666773234674659359022221133419495672152206042391949017732327637853193604000826844947303552493744010637181959142126100389102829226108413164695391742856309848471126502943538311090211064621283251676932810483366552591313750375912716953863769734070147393493656630373104240518319037517855570322188893857897504477395212433089783630170410674207535167891343904946749521437132161814257424082195323012837704296585703390299239655697735139071994872515543941437337294358866451127708705311580897236469337454323595301390565557981915143448048056163524375102907831960813126721052298315363370728201045568548687540812148678536623855542744811373831665238766598445800333981137428417137096428468122553795991431001226938066420364344785929394667977651663324942575265759174646217183790083083214265491276367383890059958793926754776257088498149894576375073792444541299302878457004738821994775239672508351716967609843004613089524320500950272643583469188005859212692781115744415662498294492267888540428916637308388422788587661885415648928734271394190432756865320245437423838340808645125979756052206267623473237216098846206603378127378044276206813979584987313911183019497267660896813318224890550032893040438971065614134272284793697418944491340822007341476509956227187639154714205638253433605188418032752737333294877919805569003407191398073824861727940166808039649694116268550350435507063337838073203989531904385628368946379751982506394352625600106879162737182925026203483569071246118051478545783237264084996093074366162061394918247212174512683543098602865396102262706339670704596239579710912125498200791068309371465181883775195859781692041707290310895317724595278403630391500669487679803004883737278648707391425583782234763877399063730383984873788257052240193573307629487095527382653574681469857813285436863978886151523901604784430429341734718033577022129995297483943947783447156098840365835759992627232466501761599390357168962830346262579645711903347319483816445321926499445624679132035850500165589698808927373109639428757524329771258200393493616259860314457501636729697456345681806798622837046677404382646302509068836937087691790150552883124585806107823430009133059675191498140258900191208590042342570327326213725512580576479751241216896347669359500706752944425900502285650663195080085745339464046103305215127122343078298002065973662064291179490203111746425687943490340868663269312891135127661489759482598627192844963962824203589827512592080693848119115167676295576214100198133306304490885591331588353204695234762460827711314618333632520821653784474332145489249324964293247529815691789005053635275097577253850927699372128813855919042239628025857175469316999027157300265675160213524237220393024471999392289765365050474072790248718454379261837173681421330640552407297695844667933434880017182480591025666253981000276059545918061510817855007352761256775402012817986460400375354440781558409651934556661615113663039892808968020738868931633331225141515484841790269257209965494255928312362811467811521929593786402972256262903868995025802616975556004814796343202115884044523563674581770297886825159667632739132054518442686945424709745751189525149649250282435808977260844066504394099738646324111444909845829491248254939541016103779715513697842479872528451460328959766873703263369191795075360692052603139215956196261125313591983874646021107166654306063852863251436907446513990913917263542677571823891359619349644559153974225619037184562612011928253277320612053122331352489469573091175244325271375522929475154864663206861909100761578810729971335192154035226519888652389924047419202803324690525752237764948900039715087191195964306554512127533145927558172779115377787013584276868329929807762528730866562715864531138179906529930623026787058740601251463175345536864332514494123541187799825937983372699959684801136700850361265469077685674643827296615109490547656026729756915519251862097717102962317698600558603681194211806517479088056258343777430172377332795105525072435019245139068809649876621546414410414754838138465629611701001060995542402734734321885435747654790289947616763521755802279597459051380982020736257034466813915156593810071300309561695184457273204840243632435429730150424298690675272681394759484327370428075903777897479860204615899213338187294957539401010100938139330142998634269803978038820979228924360262026192136526412993389547042793851828549540494865801346862735136853928801924743577188957276203273616744453301784778887563658888042343599733205205821409272550774801544938726111005364244062507684372607807381192408183491252624972691671119358960370382301674418580720148075994443299672145739796184576996052065609742484321611291112052295683564351567495171916337420074272991108921395625460704462946397735139055483303900747133810258185796356347766728498437058974659283107755857918126912280077945492848838168558592530408099399274864062011956329514376925524358076825064493187760776374349502145149949869995204783080573374753878010072108963399936904494998344247216361887513694794492367375130797844065271669254709235183086001544310734332094823891244939070487074265877733691992368728796916336895051199183379383171723788616330693402350101026848361454859532570942433121925536144198423585686281989691239189253303254184733887900087225581012414157117102768102081093955614519084755230743160143843395635911898598090368252473051467006044353446661893019459579079414338852153110662356580947521339962761820091243383424589985846179671023940669282752656656708685666163572417733098126046267770937510459257199817845557632149264571378060598874738903219385985111013736012802011204658292379463254124891343615620511032697221122827523758881997564685383624754558122820641437376239025704646862232617211384851742686187462188760280415167395740324446109970389124195260168398640480566794461004511062504996905328348071584441643859276414963380129102784915380228123238919701542117012882122548776588645261811342199017643259319205336437294245734658932539386900242287026786338897724819967221941876960531654313473164359925466892200127493087385582416435915992762917479797459260590397024226241428872415843768612169293923887144418961610694371733793673404124368776802936405121390125725026099437815470483324653360813411518943594928365521969365116371629081614278077642863225670580373968917316721855039555788466532885794778648592959323732647858365134449129648115227591222512034687911066126565883668719943726714883994852521675337030668749370490735036371406097384599794244806816013266414548862794210039166865452607487593900257584976998547430400438002028406900738734568698285260722628115263648677675087953325452081092796134171408685915550288367914430319976076492815219842987512181936905988192375794641560760774199340007155885722734988075926594363448331089475150783807388547959136073925596599011717760905290037557366116249343736289116197161865762291825114809271907191478993381430547290011245094957193990182584084822896278391309637964265869195122463140777483411083181256366490341746017164122673545193884265820334864840835756694399289694021687894356803206835773335077338053489006591893761766036158110067571364936083374393265796488257922450007898340751600454495406228777341301612100272643118638005357603556789503318646623581829407385335076521949296151561698710688387023380895828683504725106974342756034798232405161043571379641524908261421266143679611383074194662123066712400357260258267753441791386819911960005338657190396073225538506262690050429056843934770439281413710415984343921473342077701062822074937752969981689581251527730754749202151663074782375606698647768585308290506819559279801477776857921375724330562828703720285037075131266498547670160846428567719925447099713027661191631427542063269600546070338986947977646240404087809952799460743223978552431647116678208534530357530209401278468721980726317415579841849410284865394173570076238603027255462260611210641130586306710005139014027065576222133819416666390419090961402409146248945165970439852250097246544737737624656642462346765799530862917911050286015436561335647125550770399712698496970352475428411698982161179519427308275656005628499791406348629795465010243251217564176004618218058687227104942384898673478378882048984491141942661309193236062556753939827232224292227732827719532460060760991940335701186746133597638667778351633442673458733985590606704536541688455193016259302747937280027504707290196329087368168102239198239842501997791118092229810145696696328463770639512682576964648109450645026368500076052850137073696266932954109984454280112293843409154263850796057437507388327654172245707384266739819974669374792609514925090373288622817141827326397919787843951596535405690183540150996283870655891691843049842537603044504394962251883187362355580182722718903469514169645098637059825384560028695459907564154330676186722087292991567100005565053965234285937518136924770717778931038153476673219704330700510791540235352133376603066531198827352715393365474161504981318329490894436829077860727668597147274336138191426629651975207676667732122133481771450647255511980064215198737241981414952232694843449082246445790810173766767558412374795563030406777123112299879971637666820256333288126018399492436703558866723148014454035731366058044251325044209920315200789812256942020375667545834723855537784053101044547761626870677133739105661625764916558350368425874605159505600981172873124234045869322757283165485164946425917652460575789934551979769761754051407765000787458123777238596230142906614637772066976477267491236901734777488425123314657642890382158815903108845345561709799514635448074620387336177369732872567120793799534744335169620357004373520641098528411435424294718866993779799603221884866625558379582421954310174398956053917899654170625875375103023369636044023924425073382495735296886617040373632329829432419989860984248982599521539243509121516098591428436703503860198627812594774580704475513606518256490608845742609587076128409984928179280403695832484520627829510576800562800103022059170125222306009359299420957635340631837417838265882822903331706331372444481030785368969518548889194799931593495844002965407143425163033447286004898976772210846922831965857045300789450698120220448066547807306102913943365111739139406454123512261307624039044231841458277249317387245571111769529095202250758609310297297354761253162005206847845165152414345697954849363809914693172338673961995060870026217945654288574519406465195058128179786710324674330785559487369527557494791556760484407170583781912720787193974191098046933466280036120055271031295741781745140000130743089341272019175866541761984484713697002404289817907673625064290827576656590866753082969237296432754373010262949436910165818937979569452969722227191732847076021608809559905750264955618036255057069018104477932920934552033634670135175661728930792981013092893172397325918943592161643791356824042328548809241587407328511725816716360005495319351176813222735055946986329601179323190748392522638286634841887972434776664029826574826349722874037036499714220333961383139651983476048745560593176838810651081429166466200775842663741320416302191285921244179826821403100242723493692955438697752301963780816168096598262098802658993511545097555245899832931026482890307117477550336150832730707654618545189206752215112752767893495013944070985460442136700001156049427571340526571240024197046461180126459236699287230600100355231163435715114779537411833988565690815830966228308387982251016646636806257649319768791209195350927632225348314310731807456842373732225932250205408605109401569267578084595586893419388390465639745643560051558230494296500238689338819935650341418605842342456182926572979865547502057410571092292736867804795536197451854552572648872700522920775346917870267832861425552948406817931535331937270037618467911177240861357018540933518216790626772922720787704582045550334253236966167788806286330201254494239463674450361053294103263644783582579229869388233380116687445975017262865362433062393127961624770449702129178044113582845325916192220835396409159573311195053200483963928817231204637987783017618724532617180832629766892437851595234903362648317801111508134748305392215325996677100928698883880943113151531748143840045120399253921180304359561033775295060549844096367153689938620242862339113283290300583188226070503142963133000750364085934090804625816732590652009839050693702710633221811046269731396016969873968408801444239706843659758445638018723149468760762596612021622944196652122301872298461576635922011461751173855827270604873117445997452708853151268737626591798021452433873714588897664013582053514062396698045223746397691489382825644810681986658242944802656568112145338001802013968802026982697331238783888758568779830133418949010671060404210328833286261212506898119222361736545623732644775307610966146971052468972491381529907430114042168098868336923847242562381079801923023520534102991058888106570229197332195860731983709849657110132435959799748753921881688885686792352325891414680959523713090117364214624886129440425056909442749722900591890728040772922966765722451903113123443207417563509082475699536247592680965231860699671314450147385488584700783794932816753290918412975835181348578696118432633056323138829647673330289503974488739674066276739796048891242729971024846884013006414756080449342841064500104482305896105817935629389640959731393070108687363937699259724042233125030874496161715594641963537966275844299902358888855530436074275799283673651431789695675924224797611725416526776156787186502478477666099687417890880560623860674883886305582462609737959900907677167552977842683757877914803370400556916020917005908024341700177756997892668243279407939320338490235129516508173319586162453787414966501978190405527455462602781777382515992976725697168069996027797724699626034351694978398629283475997805987263987734312742320770014148026957743345807973276838025124790068648905500794100501298862827424740163811283022266547644225627300737573919673748969636383130402336012044077597020702556707084654694572612180978140926347622362856452638419628370329121564377182500931843205987537573937722045786445625453770559831264959274680211615810776511416970627480104842768542664979896858393867775361845558027156839064188860890721051650472909845584421093255861274617913863369661008423523672765533241988547734052725261489413496027705610601331393188798992478897166846251902804413483073857476302715532653955689770725529232596021528786431980558664724152306154393295850009350945661338928470724308938965368069735519653208493310657105859161061501839510120700712291987580437802282695503669689515313110653103992076292818626130185958773377769592952076448629955823007448953362007548532701006777088910665240661556198940431732523609381920676936999194630125687571288747683874907119255015883864330399287433530957744756420997211787245832722006945222493949227452200034631111415440134202959365842022826510835679411928662480744849873620044667067588108129574696523587078157459857060738266186945327274006339329476942960007001708552411556026215133019444599116847088547528410450319909201481250481393705229879888774090818553728300190692145680365318402072636882537016838571875173151620540110142098794079763690312827655920401896846241591046846962618385307174667635043216756806692356160598024723468256486262453929597316906603097520106991473652389990308462931002517007654798768366632338286746540991189140220117218852771801761769153636107552211353923881801483855575810369589398984800706073635653856333013937681454625122913683816396070814605798644306539209895992854133632414997996721967111810794834434776479250804828921885061133762128451425361245132955304744222613298092098924267648948209521153652184814244154673745926538709805365862915988632856958258501709612758491296533358675738092468325458163898534154361285562755969618859135776475093121454534627518666812043688094234547486695331872895229239009398683095294259823131021738516833828369262656656419737926517106546762973308566585267812830845466954758743767947911219274922335716219306089764024383690860208923152530188431015502126336568724820857830615309562351332556373070158719082607621922245612393867225608294588945551088494946159852463287627932981805227629552435075829353556355146606634741902518318748388216459779600557842704041629306925425340259997802178772077627729522783184612089079327133785076915163489084842711374334131301042132208028806592078531914505941969794535747973236996645789966984697465270401647730540457715828144236187250800824292009326915728168363708013620202111038102100773886102105108076526493622006990751648054389554324550280693935962245326215567644789655763739978508675771645024498941198826196121095730615962318559963214361571410472595995838941178091008702985736450292537139345820726066335540116653112299346148413672481388719209189629175484659956121742497131283968742882154115568155015572637165246031485506604093692524220736986739935503282803869979621427442337871014723141883359986262154442876480763614860880062484377370781007526742158972265698208337102564903361263123204361673114625072571020052448374350816221164642501912571217040942627147089348903575391664686198522619023046534801578343175379938910345081966149974517086791846489942132142152742071097628238509875072563574617515662001369208598768891038395232649297663709260409634780322244109090332702290076977762812896944637499435838737186056436513445794412542537691007609332718214529150702760899089969381405641026966246238110631229842861798082175180619983258931072232730559595738541056421552947611463009219455233793702335084264843238694697774862718469951962666629864935996709178009232795662764551586513357632628953955653287696685505977138049002055322754965355189062085908415810602348222157990223406262755202209096054204982898829263416777059203907490779346569248973329043298908895770751774138592019648161565787411716040754439155820622944307688203049813449530151973584652483068079494814246493644857888365103714458271870785190972044560248326412935282062399502158188334750516966180753050877418973566405221003528175738715961555010916124491011163363934238339972409899868376704401733020584070413013475866171858512421165667576708439030551627958313202742816018234777593494468368033919897108529245319582451085070987873600633627729774353251896514456398799218472529135358380662150217734625232801505340021928701088166379894059962939989101384360272933276082505619296848481573487756712983322279403496240203106121190516869868701641340188028563977032731052538254501471130942081665564503555536894237887808888064581993240660279671230789719786208924174387269759550522811711372365162236573862216881223680746063647050472102153157918880036719654188797110596546298376278423774065084163211146356093275620080191053843301582507658448129371280563175449275262486490106173996720565124635739892691108313097481419126270030375225770783911000124361761384953742840736103288371736011195844638867576518502149567628436049180553968102342526618774395337494602985941072726187953279706886435534346667965166058403445399645215579280084337469058305850379804438196354635817513227747916638722008487464710328781573354443985414846342812914695851088350879682012871817733050953518709107670729091196751126288603587044519062250416655686576480652721710490808927112215977411649259239472284576745882541547990529328909364559736617213873072708794676402398327548940722789159564933174058515216423758160132391269585555368587139641692203618059527792327198150713870876898197906563192739579268109732008083867878824266588737431221051275689362401846980365918931444026901479093752255382865588233065105472509596330153189840767674471904726643672183242755114706967768692730391813567116203574704241983196823950269840474171314080614458932939800182550476214162407047142616609021076084595896414418087428070174479396692127838786689344008229880961388538135839731676747264306149553177320458593585707102042692394694731528936404314661341973341586578836169065801677287022224435717698320389053344893270500025986290732952489513484208673265189918538535625198805644865756460351956796628460035892051697689437790374638906656874525610651112855647858536152444865911353947618952249697547227555501755874353719787412500667316200523697723174244348285586207631749676624796536867727676335859462546819411504996473733414163442879570091684667997542523914873969670049777868928784881420284776418002090333037766099262855022629110043043692004023270481342266531847428425394349853081822672881992631647931634637663897664532806468745269041908941232244333759021658931027458772576924511961068770727776131406234604766036334975986416037062948175382160310809728903520090808753270248546156972822910965312889067093111705987528800625554552857862955177566583104074073781922528682184668230391596297735171389376192377565606810619124781667297097502708223108396847162126523186586963091836847576361555639384472254630394566289091949616677824686791295657249668243423059771522735771714436130752368784906373994528644907797800331555540080995997527641710708944683874659688913090496716980569825701431422090769724909388769886733066117324918509905890694017754339653454859803485189532604625709204059401911432863752599098743574664962338883750319108143840459118349198048702006879731058127152605129670921903688379850901791248594533557013224430553934389510307207447413835210604594508877329175414243361675599936171009204326924390815691914130440507760639498663785004970463501572585978487822625184283166660300690772735126920347690834495659297679793507550388725057407730984473106058436217452478257447738973648177521346088948623143941074306780163539747185237290928097491862557841287205312700330737650453423900864100012349052440064981396208498494794331349077694337477532908462251162165652907438667758633939570275994927259107764450839810755770545448711400943280982710112562991442164952212589318548534136423641146537850562980714878760118570730269210555226361779891158885409877357961182351623961428931643487685327012228615173381514892645738629586360719782903789932649416460423343539097624591005393233090571781284450982985071185277669301978626770099965506342728507790953977127520297974629005398600583577927362314196438852278937966598116454897508218662769203866103579272727700639932583385724164267900145878992586252046328189444598775967027503591434324078670717192530978378260594487164391827174311510690721579196264957892899181997654818404374695029897303457898851449970387552797921108695368103577087634199034431265153476649211889834821841245154009186100487835017420772628713413827801986045354084780720483989987748384250028171622077179838284059910256688900170117283037139299948980039972119547647200945684187168531646071825850526566769245169828992122005271511028757715966701774125659618926669563940087301157517294090497113661183941111641939593125113959151995715716751439733852964584199207501545740710646027120687281313298969283533813906384582462781038227402840658743412138157453213102439232051057141835082512445464624894821669809695562402099422448163940337538410438020423454333396361851852443964427689313939749114706126539324535530537644876776664599936231432935525016932082226781002154130877886957934933521475469548506497150950716149120976077994200472185372555600148877014545229916291385548506181635199880043839563721933768827185656488234029563262237320114575310727718700823992312160600170016283981140699889757976255338605585330516520078501279487738315208525256377360727395093652055420313213587601382569577042832156499663087239483722459149018172896404248769475599423119928920379993706704825007782526429518821621544733654337002623824361949253178222346236316481175488707420533561487606236537923144675118155755981496675884583764687598062987563506602583659096783651843123467285359597027510179055285350009452065192396905235219335815446318751623889990301384004881803047111723360166465357300787474449672618844213697436902591231836359840942132762602311148757665010076520403766598991419606361297205715335297432418003754548718802119613087398831036698226828293757363883071403014617356794525097404865915355319779060425409249987697458286288758443818571100776957669534508178754612823788995897943493674131021444150310667382264089487183090153251749629084176645999693002978605716857191369912354145429210001626147258545865573242826860089405654271437893946960014834935033754421897813064365529383446566856309610330984818109013115209648120312549168992389652377275833691176796364354767382324975588918501930040283556543617155321722185175405172832436240326703872710673986510169308817651276561074029422513228763084909882429118365406094560974118975636033342972806047914975863666207880252693348224836691711149969786891284653165075728269006298458454568891642376808891199708059386060008702680254288830410493254354298730660369656704848275184149463813068249365215226392018227090137694458189602960101468994526904914345317687778414672609960245871832512236210002386229663068047948971858686905630230143853128370432350808415139137300052445820964876059841303423305868044914047186119241966200566479957550731785542354800640346125766977481617775324810985529941343494775735744789720315979565014039874128634721306443502171095801769938864327943136792404873573770237527412341074870183761515334011982421933784077645097070355376302377821684208976944111795188378260257617523587297016353399155784829699577051824581138894298362487160351790747583289036437840775280816413705668517104677418607489521310846427337618426496137464207767638171429958771005658779620451928846534633414388434334287280042576217779369396274794164734208645213840461107585159485055640598957708988174836595422184385665519963338270881895422424812156565867804319507726214768712948682510825107289362725903480341166496299494483161552752715117085091667928369180811311833838182853473789243476922216243568863743541363558635589927774499727079766789391531166305058821209741599994552814587001271786617651156179325482142323290804433123022874266296933183396223844487119319891990535944057719674612400287855051142286452805622283955825497793816538870214075329218744926603890927646524403236672251686188886038299381688756615164821344704773823789728594767772609064068842897143116345762224135439965595489344696495769749901321264388951173497786482962651281671802795832944251998463598503890487624062140936889552774934103339999366141092621068704703937414353223413068582961336931861896950374895782335844269594989287475337850844415263411548442744392120863134328134394945529191558963176306056437766403999349362263638691901330257276073354912635080525877099845779774474677709347604898751001640197984267227882212835167961100351080740346957588311277593066053083837313313508948317288772792679328216800416110468580132471776796361953047267407206514623776212476862357581551289660597225687168018080824329498584391556071974516315557836702443155039433139058774023241289128706229498699532739749192886817634407214797476969999795908036412659278728482365080417934815732069834770716825963631696253191074983417478497637646280366933193445412720088109644789582349366807894167784407488182419928777699516914366264354934486359249542385970053882809151653115962425351035029453946536679665475543991868796181894260679735211601321041400878019229458146199156621313867818561928464139130972092912744956647652982152993598485329935445150015071223022345417078604826862275146158237871403912077409336641113662864520344445737837058487509676217379983994977128510385025510597168484321347684547263317778142364321418011993631605854892550097674330174784694056858117947816977086785853375500812868976244289583842212998726947887405613587440885466950491978716473115746041677522702744248620791839522122010574121140590465650193999672830581068854310454808020961471288025277054683225140695527196455895158454507777426340852163520809858759761962883933081694962427411412131142946000142309283152127403008613184231945526539082770006153058418963941167764581844896780091001230009893302562173843259777558663909956568793696787239544896701322657568955952336959626797071724497332492184360677897376328814057814253371391994808688803175187391517631166593613537349863011313442095829596493483568398724023072825715551572330873875499167259622222331862057782926565319126292878295780218409059286808237951356011550091008524124313844815008518774615839349513737987009731256250550467368460332672432697919886249001459268526206804029562538607299782700543744099744133630790186190161497598056119809553884378043931014772061474073651207724834157379522283272577659442064318795675108041163827982304206455766402200772185636607917032645137114311659391158040474987249747090592049442881932697992749216717006720238302439824644927600328444648476927496303396410553030574815735530900280281988707678028329050565368729532931351497457346524459950670813286956346712152084070999036189798974670980889057059618110372637179603812488858901819203937419970722919504884777916567669087833224378939387909476462946806554512579723243749965886265512158848988812377919654469617032039096342766720519478040546569147505226809328073572276518442517746348723799520143594237969266014310740247164917433990611654354645824006587691628559256068913522308271025588088554585531480060044852424977909696795411877693715654656794598007101464927803964945340917759833787865476900241981330697975739398600659562177481827051654770483358715525984829717722455291158893885219062504375901061710951898668302844958483550531413771278298053290681354671842229604884012415859052779184462808828694265174361895438693766451893768367894421896450101795211674320011854392654331013122942027954763363042054760878663188003436445860855314895786087818457633334563383396785389137653847325106403063611730952106049657645320717475922049282293608127766818652948758675430115085533637944379044088076220619956378278941557566781079775620406294719297083171533164119982693511785881828462229755440993765185940031680756996988354399514984974516214811538055185559432202097391268115008299602710999918078001095870804150406657973168955898103310409460521538655058896015775649529376747575264773275135888477600614321451042624795180011523114614940408984210365069135154755311585875195185461806078476401645758489020392061217684797453580421446813562834508853455126297550408615579324536765889557511922992855839157621200662704599800926490700636133355229975805278235891270966761234552640293025781466682273659777642987591000669823500753328357741516760382265514918605111781492252129483201142458714087827434818494144754803078144128961030552450484165504142310021110091851454111508746737572372116104284567897819951044912393828309272105079581981848834295497380375247168499518049987114060590855118895551700907975769924251404885690166986949680340932399269858014346750116493505911919594938384120764561479614704523276960020488743313201013746426392180652456985672490353503500579117150683137633919168965471911846693469891450901331918827755452434918090140257119863514991010815106970165724789605040423433576180568376957841706431278480586203711352472066611513053309776612458593223615821417674632550492836606330007417197296453630460790870738737763839198118665068999052453700051715961600005048069039846914824489647940155340564751079473526571394779100902696235756517758505375730916997771336705114698322086178309592254018104773057393639295099306034352597485768046010417444516667935614253250635700076880770344472175382029912602991665391355543981205094783531349001030304309741820863551623751695258549391099529748834786544107594152283003290582158366221892769749259850639453544639558249065785400311605562094968245150706550775435683839778179568703385015799145284003846775727912957521432926440087473441635657671492009502688479250567228316655157347506077188280248697685832415292740847390267633224846594834065556709194908970255888994874893574752326689179083673366373860430078850713917913422936432644550070491344420094437821157838490927284970448268384814878461620481321832656885870870544606073685778669226624650001657244988678744129362771525770721520154482473499649748366312242403884235109116051388683548523479781124532065781704032454841826140894520446405044321133275982005345974819810631693275934449146858144055371230503454772266354188373649842343992741753160160273839574968721201441008268415920923824429006439159813126338358145672513983512098594706475375143973075703406401016336787421505298878978820124588375150114352760247185400237728170328341520332907003180725738304707700056295467645309273947601309069699113968748191567694143839058051210293166091724790594639164798432492025194858915524286747434310049383155592770538383052229520017789939355629774964156392329823783826613156549274885491242937395363666898361711217109008471933967989556645148573057349097868888034607029246457172244716357953153732622886002950816341521449074833344922535001140274816033578663677667403140112936453520964114319530201350343264199485566292389523090154742828167479630690224227124558724759878662061868336943495982742036551334278664096722900803899778241826764542917595570982829737643443528499622227984169975126833397823758679366211859354473549577295154129470834038963666636837078824078557203243819902677822691666305537343691207844218045101533121202178314357168040312042315928899903233105820527055972633559167122561237526587070485574344664205180866915421903381522874040898092065527598454502848541233754945670816344651101567734777059649621058763992415267142994936616791554030590735656140602607061982084951220178905989026927820765103240593399651660713499629192553348054314964034392915473409515998717674025199982621431098066958297617207104439978300331108731143449247164426018150000616817907785627174350485884129053348833472107334936611772486808238014826697158317714062811394871989685654713525714569980634126228218221296414347766404447105970158941465980099831059768376074064872157112568956175773775448108000944247096206938199475479110083495410640637512611037287800651949082115913921242581902772967357946306959411306642555806443757753862816892606845145462479501051410682958720390588319408831518485853874784125846685485200276112398383646519761275060613866352935088006118466805708353247785040992453070239155426594913899769187058009661102020621499375809540990367591438378253640252013461812744541175688127290715724513661317431438747195300201806734706981490552179072835792097707097219642919912930187773382783696979791353631580415808024749199974876646848210080373161001671529378724461918504549721291454813407472969409190276404616635091586603486244336543289254114867117353904956005972766263899599221827124395230908423888247235390714366894885784666608211532336787231702587044538329588897802734275389931327171829677344977619631665309522573951956737758612260980491175081041323806865722873331073519316394461704946962909170313535419801335590917965519872553357462593420026930707633223102662143932604167673944825363365033189268617827906218441781805071974525086737396278146474679756412010727301403174848870316243800458872867041774302645021690059437955592960097913379052568137670904612912682929722664777891408572660126344238306209569934432328327081661598824248947542452881173757516717073575684190703917838595489301815745145281765321141009157628539216666978645212244290555730462521378951160053626257631122070617916154021446752546537502418226992917354241832388951609936284879604657331824344505620996496291298355436887137136412499413597535144644264816004544284833357906115856057392223547528205309132509334010915616527510706089414705518805423064288449433565606707346007886099888132132179349995326053207961861903998551265529087348559510840537904140802285077962195042204928999291032980393822190596819833630749090038341476297726842096663704929724379288858918878854062844016542844143912829722221924212533199074950469489215905019986288264102371678897365013922044674037137186146218923758491254834489970090636057306987404388727188191449544308175497910700503615552723184995010266762659833364362958645163945505226152809510658437621691063855058632814235834766584944968401433379363463289973951698303333051466910793495312090877490851397867401973791174132895261497192983101004528785704599308459833751191669272618074132969263689549460875254299125392095070072105851539505379519057167302680836978967487198118090045830537160468612439404179315535973536363439900610832709804330781485681983648863021408007821460238740409020365153338087425161809433852557591808691446899381664071561701302900103755191843400633531137880874387102283581542853887481116301791493455334184104429165486411346719096819021824455967076112690593307384171081930468255928314182577102631917927992598528974257535353063889726271551593318976902385900095980152925489536551958906107494548919666613633015744359247213045989708752908844626304850573959590799820172176381130978691641358341261151397557276748751855350628805200619945804503926947718313880996452159272876103025149848010027344810411594909948354966417162193506522815804580794927041249170446721101252137179100441044955958511189384083262582736960175355332844579566023691877990497298968770552402389154056190197176476127046094544422054061816137338880748502822437000391990348457040290069186176428004876223400524220311315211343760273474597992784558040345393881667791510212956546830397413191946239923908119608902844902200568288317316916281374471739617226509576152882740944161672237130625324246707671937189644676716688368393895493285364958672864454193357499261748297044130920222844354129826054043419780101111967137816789794474254016432054988176539815971123785111142800872725734053719664458623639164329742430193793997186390697030410517448312749576624486841614874976234738610202727636653281507288366103581558537310863618445754254534856346796150208754356141785729244001327371515918726480523605083720331565570460084144360801777282717391324248154598955822340198402015593593146558396105651021837405226017044440519548898496897866689026499634496060352757528625374505683485414325422404408916719958262258967401434479635736445731132481347057656177234622028977678429096927941003393904687216685213611663233087143644416818872029202949452271809355577072304366767667670036433694021537130369952495382247557035521390459381570845631695634619928536608219112580127270368984637035104329766910512242834550653332459382928633164858775325186808985740691420756984007362297234950028127525447395600760791737754028322193957881520500024254478554900821528727982355665196913932412272419741977120310808026518479456686092850225421245227575923442144773367975889350761097030196013541221489125886921071598113698143433789499790246019041489566315679389859687627799150471797407257548053245865539775600316320044312066293858378725204019593954887851974480532895399205643321816068481498140453535459917685701269493343721201467159236698050318015960950688006698993663729917105614736941662155876412561177318322182435543523344545554952183609930688578751929129466672342933823809080967311845611590956104233905647376042923813107317044568432277798645145632062091665166533719558167549124864249835960958919829772411820917344743262806965725617667265614058547319677852514600953853470313379157470092729551669157693879302302462880758352605803685290346990021072945973438251827856609763253302370281313916572141760629897093725861153575447177303408002128798892313072002637456847151132666461685701500775981462999178677745185612883807409546640733975256016818342143367543668154573918206344134813415704072464791779514657487104767539354471073626324852991568707256199367945840975227035146861340647772531773751739908869894995078487484568119659488910333663334820069824457732264605128673277573425762245882923040427827863628424180204138995403276452989179410259936301836273734478975013003737668744789252683490478426955078303197547702809156351842942849749503500430594457034194136848287966429911376091964362547490779480462907421759555000821560217874386506203658938118428139365424880946021993730865837765129516899501233501460783119544836696031926060998689655553046489828000670868559865116401473365387518230408547196500555616287819846451553863717444334314097768506860298533058185406403561645325610512178867239560707887117832540930997663458134499706634228481608835918464254914349839148184430970060186270618421751607328284891858148258129815169656416268773694225400191278194788680555754384832138688938778646357648859576822480045011124093586896593611698588039769363703379410741904712290206822667196931889175954117015444204839442692745911412160143833153058464198000685041277591596867370774113072184493391046348293340229447258769299498511679427324724907286613933381904797248458709755489264386071395768786712582915266385332610875854922077914557574480379699257133413289847888034060682936936429917206061319942441675861887521154845614288709860743245984755450619889992484506019156115064130310632471943729012900472830681671037048867680818961135552084820711591727058069545131656157500158705516247794175069728493348983839962348595191217702797771710696856479904225041752856658354434386951697992184217619807071944021385179752944823233093493189362825702867285178374114386599844832708105545298281956577413038642320273634716918318684637538026886438240455300509981561805052394987602996970308842705310919667628646160917247551741632221484679462212268711783580560299731756436375825009346210847830275117362952402786110112022961526881160131141633903132772645584254049569457416469551328855568551798744983857259426504548875344939013322459483020611840340688028621944035215156945751996798134485698422021770776252809369482249069748283506926791623997128852560379855884444435701308956079287316139855165609215224602241943322139138287667191815493469008834976992368789265921237359884485736678232217801177594619362346760136389115836715757295542192987901253920885506319271285071748273605863290393978323092410490235944988726034670582536152015303705830317646502054216653289795840306515053517408604298677985697308266731111254179491348057784170400543406953190532071884186231873394049517683209333985555189003207664475836324994381139302677041292637965237492429059603514358260983967965404055496457196580881450372668498516398796859834390259805418007349770693934173253693870203321523736380265253133901504299070369382757689011903930419006557531620298843016777147705708653114239836176056283100296551668611295646424600178427799418638377478185234070323281121632822614664813947316519648791453096357027710651987450595091367725259021151070192464970345362489663487139872543016394320457196247274109153841319810683353724868582916057607905437109685504927102909302069614213873965594310681048875334921786857971107621367832570038084805693490427269078884322207081045320615604138930209438154398329652596852412219021102325101022131695469307340701545544558992390968828973160217627082917386338656887855967248412950080773193317403727901918476334383827486553939939877315591374168610844903298693267471785628389930986174184441578635491311869380014754285503848149785951925435388645446948974360921920624328935037945043463216657951222487854642291925465076377341406828117471352735614286993823109823632839001628483035745882102152050625272310976984156533902867038106228218381821114449849133071364582698598526879732173891787692158382138767977064732390208824568227139280908879882191118963236707347125403256374987828463844629867680624444215677982546029476370857741692364117446802944735588311612980006041227243697578080673389905014211005712645174578355349665023667212437870439049183375191753027612971507409981380019421847558322312388280508577525501461833784036835358104275063083025854225980068642534497641153532071011554573279760771683398721613422717649178854634372723507261260372129050587051151999603498520261376890399529577151952102390068577221225887686451904915827452050107584134370258273851441977511982609720136963940202198379949863697262493546788062340371218770044665487847482189974934159557188950106439404526355490481202443784691319465365326354947641131937424654157661962434925794102768588003129037943929083586301695585153932747639479428691478553587941753475496299497974624118192523184806874860256585278197151737268661218758012413077104575765761861353664139740875009118637376302042208958740080904109448521914238504467976997026415720133954408330270351223167498900978676996222599040842834429770164285393146511254860118801062156745650843543504137267690783909221869055623661637568346729694052631685633373854945898326747282873100080871187458214157613814037418180164449547758651018969013804182907407415996618345841045817382470415516734817172351965039302328388314270480112924319919840114637264825435503313892939459085187738994491027936132035808732076198269299020310308400654143932155017107241894846867284557253624289676825829556572690975094029583870227989653191325581979959724221780463801940637516997622831044233863225000757501481186939589548558587465491026661780136789932779570109336931662323745465356545246236728020950248076932603106779116858854638961594719624245718924886420327454983716713565941723604864044308870375025870158240048868131444224668518647772004944103068003885497685990204980519877063538194704482270049007721987355518030599015767809173764070050093014723237254533754899811038628939134939867440111837586098376119481292040067013628970890515123315411490206856326092881435997132279937259426594402959107539105258791325936305487947783913110191516243824171287870396972546085029692620851518883404931479812997767500105970674836574538143238667660377061557027363572759191493142568022178060269799587164300757165932810548164453536578609486085502370684216222206129057520830125319056151284273623785855332253302723739986088997334752531018266873469356582259510466578403765694579921147664220411274111005156996788596019749908028726208325759898592468911486841762766442658052842722482778567159385925507189288947805987617281194090990380858205809803871683764398055104016189693572845252858281383776182255561238731861238266714778209426392711089000974862724115959797850627241652257266430146311708709138864696692400681937327960575553738094124392450898581255642457180407184883116515050863586120010656622608177690279688860855183112028882939003411821861119590907652157441510597902188406534377361886386060907752049923977110996871870667269414474490868845024907786488132034086626410764587502119686947456770949630125639113993544590493203319060932662141361374492725023296758393404267499922924564820293070996562049222279309963453382449406365734725451124097241387443086284920265031629559780670187396621558058482747590387465768116863904265167266562755250260594479505549970374421371721143644993663212928667354543953234566877971515121500092084112249762190663217719316525848013841066329047623743322679762663085009121498853327099197377241006393208008566940125099484922793848646738852612428885526417686090200851299473745106940292043377556166640781102013926465123315503592008381902561217251057148016276268260475194185137677561638825116072928620186677885162258973358634102912528957242854402702861673434346454275138846142181817446508661293890873823287701339056865682385547061439646311327879431449294000895475560560877194157472410968610877948903721100623472650914148850046998740900064697656891867809143351022897585289768996858718564564872433680799654779821076547868616367927408925520216417455500600401556406655524130234557323323132398005684392955441605758101147674702761196669946828061762574598669436735478904414409804487038332028641965085096125054768477237838498557601688552888532226452057830189080624412074459039388970982250613043085910208845810686451285066503710951315170290217354848240010966579537236146791448215733411167270678344485547983261865573274347669709285436863946588308728735185520160325198735177665130524747154585027260259891094516547047320882322139011843069664484347395305362368250218040373624794966090078707459320958947887560263958470122334442816652258897297905181279005768916144578999204477476871120729712349839590500459934333523227066123432175127189455798699867599252711169826950905686709708600309370527317065068645135910667840126682322772142945722304642043483790025194954890213093636554090070686048009764247291211662149028437975164333770999081743354609162539147780849014505468307289123455397336014765916972575514982701588292451308998177113261875550368336004000536183970537694207371232221124362491501541842204722869288711679812102572438407111615940348326636727898600298299514740684631827423108084006614601866315059709178133016067471818930146698522645106198934344128700473060821611777697429213191766266795221524638288234511402432501234651883887340232438262312224406507468694610858311069213472440455021317794034069411101479551894068168473665238045570647785527955910133451134843773023858746170379474102913961026212308963167434370838066816009339430944983823947089118085523110972643029179030848835145726633842421853867133442825557398547273323946006746157633070261856186793542993624704114313011838057689871236511692543313665898794400350110467117773691331444180336562708482907094979074694811406308157582246473407434120313811246726159962753296393714701271460812429215809831415555330600396891106749100639262436868330533460551306728093292868016216222457372044978591108467272618140268666518403683247898030163194233187004893305327863906947769580422110401808619370813657172194236414627042146834699561109889340224648332692861138355837944617042531950994098137497496184260414563156289326125081272893650907267266727658708736511129212798853762609922101209172446783832372934449660947372686624347793926732881428623888283400195995239166877402785584903816375118707325106845579810806923278194788214206926402375180803949168342499553905073803647873168386221350252815074243986216820202316402594499986876184509895205811644237808330051073777139126547875136944026717910119566145635662051037220877971181221731257522631585470802150346069906068262778244799630276549658024288929958128502313564159379055759009733460772745836240490161132851911967872424191216153907903480673993675787098387312127986907935191795868654742623538029345907118186402683522754040976511643073708657841291062158305665890540129613148049919094595794176164249686892665931620896144244163343971333581271283090595404745080694792866473786853176444359235263903178294242534499300889346741691189277972170299667447690095453553375637172366058693888659925892003176117046994237586848742726988455395708648874707371472649815713123509618353184044336602688277620942322992870296117337946473690217506270939649130713643758132622511173399902753090074577564897648892604263558122926215672205021322054215565323635861348179417181217841905964465428560301145023007530388151894898772726089262238066568892780272333869412557355720433931125114301606453565116760582689061484342185409094278976693407456704125713959231531146622052114700268384589139998850513568476650912263079668597297002106974175382075979402027968810058557930836126677543052798848604282896230673885698024156750588983736450545639724209418925484665918728299951658917097430511147232579633503190866207348719131409345361746332747773566924285045797959678870953351104018706133713366112839031518164871310312802470791033379728722608750163870331677574728563688567685905735505676998939995612680955728409089386586325252324330066170053745421171983654978488324973414753716853867955587057950835955482450267277123620156353192582780872831714766575200124610929228650537891191566705824374907050282578882243334788472219042179988163490891254478761928873671846822464004902029070813117319093330102115897966547711207641069224654597217872403634954851495892779994930361877166473564531989298124755333312523565530519531737809829099305935788461778544137752622333186744099709087644365649681910263176857438658251220759765425925092285346971655353485510450999155717257905521828659539288020640065422044985808553511993605247086673417935812937184182588549603109467871351416514000866505461567639944864559052405127773524206625551950123294464162428382459716743784055250226311221408692052717877856197869274900110293174366480653574001372373476585756995811693026397671405451082725475819823259573674345174725144093441371558157408330419291129201245457841851979459852842500853491962375798101800722231677195090040316927994459120631186337149393144890457711656059569604662962171860178734683752209570334966086148107828548267615683586325322875243674519696423762226067295489282244757699831149758576605207801430254677445554418713165053926177793650386633689795459616000957260480908056240660963146115579062187736463790856805419935475544485741047556048348365936418081978125687413560577615724283712830347160072094097912512589926983570701915978040014389677281150481465046605395688388820419750335588473023777853452721365335061018027802299995212129502968118400403342263571142368776835614138888487832861779720294415079614066920639878516003887257120011228676844514179825619804663320418036553996522358189596053784617815430545478551235449518774023733636634754540812394410924074619015347250903511003884334715882949807328861684230422423870352653374115012278645584252627941012836939586514902508579357114808743172632161695812520789012235410511112057409635468727373117756104717825197197746287640951518106382175396077673709468578959361653351405539907056310834680124406102183973566802646567819332210576517471904510966066946943345483485329327839997006147463385450355986039287501848721869123193735904849083321113581844837500955980312969003375002554170102719426030730191292126824212305684330804725447282589242978215084217339607125245250152846694105004310829471396634445235153009008154750322429611179233138665044954347553795619560583717821740411952157674431206522671709189296515670542819132967073830287979808801588868234959250147521952636374436411480349267703401337340451119126682290708415746010676774371975646697881396920676041444110821666575184592078029217048287561869949059329552907610580180274780687085307025235865276080714030594796831248100136713968824486915211243742895838888415007767813683292030336533684014902912678820011467806957310966703777804733974605740514270623160111905706386604457988405418437681736424656687895958352001222960586924648834463545715053845183647412244414149209978144470040000002892499420384932072471072994515644686988842609126928691019670099834608529424350309444861667857649589823120861785541013581727577191935682528658753305075902694224303985901062474620803565552887562183323001947200404768167884077465488560928205683021546301196940985722296533721347895074928535604995279754597564594790456641905301813120153706942715058994046153855650984516508877923116849575491679857224876236022851051446858486045241649248761259541001011812671555656633040757827030735837496442327664221365706724588758165171375633370096424335363893969026910915881095997115359411079031935877880633773763724848712537111664959519626360831675765416031749903372951399275872365992859468712985948619884678792768905014255722153704765170122621286097210531646403054339499718738588056802379815369354687670371232975421361063980106252861987731953530112010923240837477812643192337280332978202205774930854290172513055650767168403700840328181626524876558393669039076582803810877937550985982712767506534339987943339570502621381262840880679732544055084055734826913484447115074042578554369435930982449275378041574811926157058652877074002313455146418865180039068570267460948662828667467401712144188160938981933842511746015093316035659488493247728735321563824886195943135798966351039161880817720384828691756987616807993940310181466263595738195663817557512681492915033355526430281546570998992244649106608066819195237303553109238684802754716857386978201615331053720625623278386135108444397387344483378147240064243404230880338350532211229479571930944952034634123444446902929868030493903466564251766509764321891485149222474339419781365811038216828604471648198752449968360751531014228168637784528499519177646994133965170783481053038810505872803752759191981997527723311599086787666533747453489875194985935198818782361782420620159023469049899940834181882159757247815781920240608265735709831316400776217806412283014394746404084069922115323434294638872398273459189266507966951803516242150035158786999347415251830445317438414218336177682230152709158709614609012461424563741237571714039048501997190208032433299046482123647997991117371465774374694363769182769112451271097536964919058972377025648671846150684407021581721738033196924710980372185524578015022615836505971657361258092185860240489151659491070214670522309680299110437116120392521559646335500058626728765406974897799098376043863355085519033967975693511946056802028026076229512178816359151106477979869143834667856426633981362921744984337406852130546399370864374294321432123754590658557863358693359902391139904918823571838015034612092187570081338362413718008103175562558660150966388966522898545224079927395490954853008061140149561211192827763902190276596760842151174133793560201408081496498748155118507817382800541805895541625361820631235156079258990947130321428772643090198941242405373411841744156781745939346189890786139256187016465997555877569241529595743767570151660564925951742885108320867455653962107977975124486642497812106193525681014416867067935511574120991571635780503415167779370545771882480124871605915299058042749855338958981233805662644384376766141105443609469301962738233206304818614176207960385584661526515446129051478008351632500811701450263295088988892429519513493377745822402791341498959194424528632993530464673989178065740646242773962612776257378667020709868827975418294402384761086503037766128548132159118329388055490546940822145349512019904469425991081334281716995280797793037768293742068179586107625965037077455913586598408714458621589627723603088697233671819871795417934758968487353026770734357672806875607333205245622229147697452079503644965203923443306853203099252345777053976264963078138589380349946601180795630987367885786539364142041481915593428462316591199326793413438725869749656282014338470219050895287193072151096587447695632548858185914629519946807202008328025041622922148456656015717075859039279587260791582442782425900991497667242595846845420837240670365892646502299623948103750787830865386891116778818621293314584946057362058960990154065348439824079286574358524980720130473957395775619434317050853830253243017448511416314153099755280185228641546776416295465603501710421198751155449946591579176571089803563475832345007443814919742037764832410013898340811654180841797020608281691956704683495508019164032035849977377547979722372642042971597902346855957999957262234742856046502833566181437051732263852918224205050720569721278380701441798337980356876531783116863112773720294043200795559226983939571309609520896200495292157243919502658733815636375377282311730527374528091933137712116919338600196091077457448257542933737975188730865607338931019934809706305531237997776844377022255281545737017317526165417987741652860881281412696030994887087735018543273378892002626023007343282980245826550941486893515217889892073684534604191479205999767133588563063499486709858200857446419855860323933493493479503285244260407714940314730691174817364231551330312615448830358023781403986014341250441958315270184809847454313054327976451875132817595333693760607187918806888002974719472312689175646502294158517094415277254452401743535331869869108913268155320047432835941359615544694732958369047648344976563566501315914986960983555514795554114194109372617745377597874469777356363214476370120241679065445889157035610233131643219749779239929000182516029982109730055803884451877728420289632268107767407327597180401096972226295613425250520846045845972045873100125959571970902829869285173631653706111578197910202708304651655668618494224835132015040596470294057483275735544166061269568535799134459559019164328740592915919362281212744506547144378654766404294534822012106608603844198838863234925164749902358696620304579841191050961495651567777769627193920362289142484039449918998632519746211402236914131377699959386107806733900148085285512953841612350332229876898839992606690106012758897763152460368527878069586679410068939983162672267136468928981743125290898980856951933546328993322452542210952472470922793411056215152430822806624870849747817528555475329495347948215842037400551036812623738345009716527191424839595023659999918353911536155706835459685034211244215929207767252750819077419228723434735091890143408291632474245478827687300615164436318822719558015181887950615866390214105687927257125778850813426100680230744799887206606134586005999112760692651361319793964138623691608684829952110641747648656602222184490258608634107306123491946168050317946003356900766323143772684998022522644666984080353738444484483384308906048937848277222944025791534100376046826192185637193214880337538191087531177016848735191073774374479471387290573889003221389917827307087676885774810013029177470607725894248397158250004409767537028967557541039497800987574078482802104563772475931818780383727619619202953211991822229917727481898449884014264059653658666148221223931967926519461057845204657469254744520227350661954433846326717294201133980819663002052034966952026099916330953791213567839954027218340419159314899759335855022109731876010629921560992873933455411603753374396886027463304134794451797630717473819519137265692980613648128887803386473156050696495096436952387752773892672871321019021797748754835646119130398227501560843426443350223948604243286424608241285382045390293174204394279893186424422501538557444504383414684195827465863446890170279632620165883862106947012738728747423169421687838303486965216903700473272047743228618604127485119512897900356221864864495664973465753391273979127739454364214780123246397672207843497352326339391844324639245365801887774919385160025447958339589724629744108313751876359819772390012985069597620114016424929880039208974912085453541784299161543370456952022774048207801600117888342885010333221263619891892081515398421279101895204842985941748847197929843352369167490332441005250550697264198680756585739994136076223954230182596212000328933104297236581050424407331131753553212607977258209919018597492540712057260550178923441306614284585043286905686220862817168479006052295358938114873963653258963765968130807259743409789204810343528013959227774425382128536741478065557116106739314694745125306132361066310144891554893725560571404012452663920409163211878692282029340259343889194578336901665060820494293142674436003883065077849694749148758377316766620910371192136840060344080252311331912504981467277334972417211098662939370342663230470413246590655253306970053997072597712468565934943854895850854475827730222715960415763746850261215229957350949610925306999801357309096697467965487621158389389714060854304230807192197261898367463123645645168452351249463847850491032890214796684123229168448902883448153249742154926237729865091635222633987456101981506839393118827491503072422296044967484990045361198850340514364447738845528028856202780262295617863386105082778897678321530189938761133064126854985609835536226024309846270864312876842704673949090015558669197293054071277308265112161906544945433121291101043758495110565744941664457531519476543565500291999457487383975593430100295959659786487969608449861695312874685659251457661853262232454425929592068709946346656120385654295478926660747657719871964691715869816388827976302652665614574975879293462796682680558228954872000138132015009553518058150076516240691731859066693143542081013496473217900339872971322472023545392875065179790987041783929000216890946862605756547819896396395168910530504590794908796913835968593925825143638237139890010219773801512763404778240131000147040568475134901950477484303422635314556642188237767639304746665727521666324778546435987697594986942029199523732042952649287947460310046268007608377443689947752002077311289802013082407642189113771383063856986780484172941155446549562092702098672019048974938093248172962885329675263692360233025761862047802714896644138661659886362164101604976024339777496096606176277885069442653776318328796062883892290683391883545074064086641255185454989344777318801525061414395148337019506584291064077316141583561892080344173865282302770419294713818330296911653472597987557993352450445770435932911819980291420552237967450639613802356887041571921008885079130187967018192774232892213147308574447243307466166045592878711591277712173182466245293978765422784279132437318829233765811967733390627819024276764480951685284272446846765827040839901292079459996271068445853542833713787834778124457567437044633448321105917065946850858224649377627368778988030981125172900563075560742982237080123021836614782274510021059608318756279181187342590696391928223545748904188763138843713935057654237456986371482000235480746142950191343059962649314830540857385452141591302575336176718186484305876781787096000569951906869954883598110884472650790473969695859557803300729623335874206422842436844166004812310435194501995160613938473206211075657627564434461486242109453009627766398111088361078343183570558250895247459448584700305424158118089761741880576812852311402722050409674272254950774592607951249802862604291732506101596939495158364560172730610987377766159935400940497392936219515072864576943629751693127825959070971779267468565811712759966671675964975956561644016237176867088929188245930305652336110676846758914003658855516730869937739552345762434193761107787999317602386851852505363526982540388463709036230083806604898778578202267095079122577387742344022288654369856102926464648693877717037051576375270154377818989249431977597601026857250195623685443327582871565669631354338893959330320482824184469975064020498965844375837524502968360981190912693134348085410838445453064020090431219927845841012074158810852976990676765700741108873028815588447113220001251229050259108194789719088157049453390960233592622412000621606779942441072468301367400486006058264026570452133386753518030380296272428475424081100690315586902326950229321325648710230733036238087275441705233051665242144597896825898318265248924330567264161631754935603798211957819163497184387803901410276676852707281996019049065588762570617130788609653469994985522718936836891806626653466660727815800482155165619239603917289085174359126949059659529855108625456456032233743914652141419789732290094656209926395173316540980444731719303550523350938536624719491540235343988870179979895098451556945553059932884850967842356885287469114763768202138991860030239542959341391062878009026016640444554319301082128563307326239776852343869440676609635203777923044931709776825473627387794276641830773399803879983919833430205566816569542285992296319065379541806977290947190143996202775213438195483272269516033495981666739346959549718552526518881925314328147611864694015933055468228110583519745674430176280489989271773761463655708110803506601107625518426823209399440980809012820754538932686519739036237535689247699572555316536982198111234120584352961055586376385038278393140554572036815030020781046836961557656479126522983439822001830340106101039411683789441802610180046432862567148237191358732718268489420772968511265110964172115867597606908518594497279172154258037646578385156567668369844881727551822920555015603335645676046804175686331874680458341937659886752406248860912877751731387512766585975527227259256449654870913381250214332692906211660602627550475090788186847515405846496510907794265631096469428102257535110725340456885142315854838497650319312976391577519230098886222779969500635818567028170015120134194916142633307462487221011525522332173210223801007279910147822211527621707283812771158108648386894512919970163121555342421324794795020471006255876024906942871833975976016436334372014572269011452867643051483297177979609371880346564729962382600737842846319291985912901781732584621135220092306082924099286878561967862033400981366211941274736731281572540983666491738332439036558197837014209770990361224641266932340880812143415587553639713269112226130807656266054497247556914054905147158752839612332407374441166339695524723184553048966177411444446494103327673840481865289159547670335315243345468856793688554773266630408106374875068094696558175118527515822254810174173039150313697983180652015025401365796666485932543950300473469160326117597966426405618500655246479925766879099446466273680219602505768401947630651553988712997973599980874968616892858515798009512584666474196780296852594278636256032920689077055176636519910152824131623988154208421741961693451844865695815023391539613764204927622134556493516065168633868985184856965749954216050016593850581323951509055798381600660525465914574780370178194279697008982108659696402877748214361188903648771887362277081782079908438242885502126129819566119318615281543775486867085686388830419472161522438995639760864905042649090315718872894654066228993894217489658573140629666721496632749204619341043196935743139255514622965463913094533864593138834116461145610976286553159025847410812327229816838909719168950875734821577227651644091276506217944000386683139053324409388604080458150640552285491022629122447458165313211088868144147465727818185584280364222193838264282176963286019957652128566967625946319966568518789770544468988214167906537453604396691738948699490926241447472747853465568051192041763403597485872669979566393841653168401694989212804845671247743802282729401866277467861439196591683167585841094553134941179111428809902735782562918802613261403557726109149406892563084636250129290544131814209568285278297607768729493156974313433460269742582729410514278770015074472222884684559075255857362046870097501068442258358400650150321602674605010434657438274317201273189387994589628260183599718950528729748938498881677817958003193525762952263687328566481249649221673451374253434416425043917818956625988624286700213452399162660699227059539977056059717796374072357808578874088092122600587879433290095482106356470999910012865409750730041047831704537534866447602452324509076825027495526163312039103479017247903461540522066398256871402781873460846305697722237650454601741898304634139287979011199099046782394570091497656482812844454262290638086456529282533974762311824540425479042446656446272162351700962162460703946426736811048056819854599180436155937027824360561400942602699425804385019048254263594466026679512407861108909619632271653388218616927578491376718852733558716238579286491257776251900502918299473207465277445691509552482835850812276085573946427043479520769072684626772881597799549515430442992885419231537851132718777898720423486705729438736141245518476004702589358785652068165429649621500847369023088787494725433001797848478285120996421144425848819142582117543904325225529973795532330121481284149877382224456974912819150305684054605256801951436773639255088497526069540818858171621842901563670377787027133639177447909049985680105415076836872849099358696020675014038427482990188328946887273299754465757989852184665575785205329228668207816800323573882753423642236903711817536258573302109987148796360798567316817349714427978234298562144392165653812869616428242934251400374774872475405892887874956861541464431672990200025628407298869291009813082922728991319334809177683122340049185438133783224875425143659050230824565655102990429471887620725470597509806907286226563611128799479513334547381981159925621180466583073713141008774403333978458498736950448716588731229848708147525980692139773532566051581481204702948261561283521547415469713295859479364551234846644671403544962492829321190298527370715771449926190863011347915104682999412346054022063168568613201917450735693947556150301461776837940773109125790198138611405421897452664871298213234910016640506102397270514573577821651155388763437174900136721241943284778578521071255688030122841593798750677600959786247010216170112403249248820838645473369693068813932082849037761414715325163645486925804159790573580367247921260023736221452827505492890416630961777340818722309762776776099295635626896802779502040351623716329538796561927401207137854842353063464506168301942032636752167720082979735828121187219743013476083989186019711585582514513281262855279834422041421916683363109981854360914256420116986163593175239303483856162137810744823151711509535063586204120014297904039038335653172497981592925682343985763573348669110830189991311108852417068686887690971943640266839946578531037564503190868130798536422372313423393657310525697764607876029916858248995683674657870222803185015991049277138357733848343853212401306843687075922006653583694507420953053084737895926352037352360960369660386590999977789324889628932333141344111391981522115263546430383584729300780966773682932411385332919257537208397959584788728719095696158531467359688633032211841431978072383068779625606010354220414303342282997605478929946804044059278841899925061016746898272880609858287816884217097514734206741962312205685176735190006784623809240370472552678367805149124477222619412654351358740710691194554521080442966263262916196401100484688528008409171991175285481760399772161400913392847275543383579507517709036053215172168163861382866548569823334622742356792243334128853928421808426398411296652479505699154500168242330904189504275238564608268156112838058968870302426870015374296148438365852455456053485944553905693816871811208889691670666709458732606322157479868870668018940706552105500176682646635567129715306381011032328552609854893718455768959651097682321499797969789247960633568858826974807626072213696588836868730828502318952397985356652166600809197258353227111140430814739086133417684115737146159800995716850556347391520053095320370794971654143115256572101190229147228762116885490290577225057456553620868710309725635264010564906119815229147379988676853726469779599199524607605453750584954013281747377790856471782779444079446546469190108994265852581412178783493049282465910173107752948594577164524170271497154126160481123741018861195079051406011906195914750655982969723076926896927319714918610125799188555112238640148027370453753115942458748383026449903268605637519045243924110882401770885773670240439543871328642341066793395234356187760133521429025124663168143115086217026392036856929130988780045079490599017316982815511341943526580675253179379923501198240535195759574419301104951403564161881402672167615873595337404197422734713606017017030265587603474464170006002378026136877177465690990732942138765284889846136926099537868925548043878372618667533634192979184140835929372910594853166741299518782358149116571265263489985398298664606479518718086986469926087502504532199794592320669914241605940461558991949497555687078571015002272503265900011117651750661994728080405414876095388902462110319689705404658179677773864745119824305256351684359219240978949858745888726189675419567875481573827235361402987068705708683304088179193815192798871446324929181403527379131605895366654469321069524330750313322791194836928301593039948285013738956906184336706882731231295485873071400879318624045508038619184828217007108251235679580902924388967544056831311606798935186689500698123594347113846655879143373685379228825831195120761007155793313290442958373373193335501171452322591935668049434349356313523016321143108029031747924595199383118841728703529204067824329731249257951994649024571954583544676715465661959958549038583456253395921216962669937870007044405836414508834919571960634330655434431268203440328049539509949795534946474282061801362184248329091159462119511787095313349936194241874568980694336921500395355299791709752479292324750800744621112928988811200073010539222687022407854105016319348504024932533857772322193857011492374970715543137343921624177639237298694335911753282001015456314567712987559227783158304170931920281642719397572844648843782794691328593067146129218588883142489728689278365882547916284185289447586572415502025340838702657782493582481196385571971606758324591122888887963263419111769384801338405475007725679309776472914790848401173165233740945184635664259593559610346362019693981087696147044474901216525053582227149582575185543269702317469906261648795180569129798180989198981354044697015258091028346379411495892860132334781557299758497655101717170285854158085696437773074624993243519645107751804823843310510700026226009732924283876728994348625002147657041591219986185132323237321991700630766312456997303613046372766623985625511512969608613638307258795733600965309733099511701860356155457409442570132406521743951243218438389376793647959521231759477876534490788235254762466986404944865810486947117777881699654474404381925437343495666639667452832661808363364411299134089861253888891824726655033889914017751542183610973349437302724156099809940492319563237193063157785918362705657523931432282389106499386243893608437537262763093733631906498818564871514547719779419286275762903199194300320454853690883995618779892185441518625747830363796895772335760529216856755000487461017924216259011163783078637229295518906650379421871534692052347403164306860871184535729624236123473650539822092564040121994298441598793176260639248255088880059547116892668662545771274676558697875800948489329006400916314210427007473666640937315430455169126119533209736069004465900284928268252002179520517804529782021858654748700439242345614221478092773453553431395986172597113216126448180139801209038002089336859720592835777630688422545276195431890954926401742119087060329008195766134183675669100560562474543007516332874418455600987380944400016433630860376408572310916876154990788750982713704328673005977665560767421581770160223755695889528160918904950427109381882699789830638832006000862865004621666896157720116606840492725100933823329790960243664371052739617632061678349397214954197453572722611123314529229987580939074595668423898763087906877817960890814244469602046357857559092587521597873192191831454443434012948688455780894539812582286864292506214103806596224077307180335318322516428086108882172162853539031018665172651095408495141673131597517219651657664596967933738453784481985969837379225739007724443786838127727588677641943797064416592741137191735927702055574707110739021292183613201413753408815260784955709462742385571821178810308843404166281707500734886395786596590231347879837367304565441795315770877014126962198989883178853358498280081869186470192973595098421884138794711047704640625347552765968417822594174743323494600222892156819001947250027756141084012802138901232508771174992991882035304844694671072294845075417085785570517799071923787122936842384407139153542366802737706939613980064799642875454513861064374939167580662484213211675558406454253371060749958908002526620397692919195305251044405089754137701904181860436959809999776106947479705714605841364326728445563875054465113457508751008521039533672096418904921080283432308605525574361636397795724581680424946833000089615603295589174537499515284743807276777048356358865566522304969221393713963968056615271290175193541471633049789414372308629646513292224240542983334929483566167922490683920293510149766391244937687458034446313214672883525785734952861527481411269375548604872844940389150573353642876508343923252848379603696479025287609939762782577910539718015553679191011535132745004626200625212085897969785961430135665295445354436303380365491257341551700155609128863781465529679886738741983621047603343326437451020757885693823685741518998306763950919262720146244461722344996939584633309022105850049364270379206487702317938007160199693638580364005510631191420673591309708962772460525132623637234043620848035986364031174493388301003717080237613480287692490723732409388790728913466410020153428146067916831218823336334673509971423536738881559801304607721302993993174401576569544348476457679426625001442456548630438031140740863303030016688989400000193594790806806843253336100017989068043158578789172334478900654856888430067461264408648501221716036478420705506556735049585309308501914095548090505673357723173776634174970463566617861772483957704379220389375304420324524593116578417967221198876054694590411509616610749372835139014224477441506284567199549962279968262106496176588128479708357879003776598521170516126358051707254236607231688657461124879605028697011024709916502986971611817624447260364524294931045112545982013224596833656152882480447018336922477295437439142792681704492542342480803480962049606511308382890799799807943702626447462889679063487714024848175802836104191519109033094333613527601199428467365694332018337667779992436915692151334644233266434804893366809938117071668002609005738952387639351535288831880058589377600950374529990915844028406233689020690565014931372935646161348721548931445851264409503259530118369093124901146906444626752136766989075871153574483930196728219829324233517192190254130471359135014464993559082885472221810368612820540149504265955360742928970349655514222952344804139120447498865030967384645477181050539273168355005725135434555179837305615072713697305195706805209984298498500616560717101115455000288552338051560378810147895394862739534141317556525053076518505637856426581382111565592214109415742230569332610596645104392274535021363693774748854283660777221978901386486226684583947436709314303819540365974030647210588887255039067084505653974115342212806191309188068799439094001493530722304689190619297539422027473259772091517279489608050077468642833649837967325175599832141415316444541586505501387038010460451775008238453050759807246867599446705509587643753627492433280670133280483155130955023368563543050528376568956702939151801584457590628765948063951290054792559513162162327729332273649153999221351718600767999287499196344707007228502623496894671542216525558809718326693737593868609356531172852292070900686487659961303985898450198249942071939474341698640870614117650667538736689542307234624394989956803333547366091114332100501564427076067718365749747396355556210198376240843138464489617730792627666321341660882142007301822418137500836601907491553838715674357747125716279999499305317729119667453531150038563049282675034318299138009404631771910241776697730733812656584002909371812864639158594546552834419747373498827182536399062509321298251496006307254646398471766428850246815170060633391190668809577159970637064229512829514631560350771951832989665472340183283566036675013348805146828667544926041994222636806605777037403712766431702385495942358416612875253390595943904225966563915816968230962268489772390651476268426188967384289098492766720339480445688118537054867558304496718599921050834003648089427908335667118557853531674124790531862517692133403870862226266169579423726026413506677340419783288888241229051596901211010245793990517216513025702789428745659763992328335020896132348593492156059497210332488279939731708657661930417062440200891328744485299601676024156819039703054012486442938944387723504195920168471504708799431227706879527773354370609813563784590582071004009174239966219744785649771615803049265440923315518077225648437442149023550786866986424904169959685400048516488651076923014005186174648244136142489390338443199834263022300669808519158510228683095597821937537371144718599541644964658037305004127640070872637294137828744134351882163022975182655540887744266014946596505236081566433155287071466654801094796700838221765071288262326505631363928447615444552416049579539489821363381361017465921312847360030344454871487389983165357137672148182221025025746449366189905744689519562025271704953242851210884070338454091301466453032134421050605506140559708609771020680045359349051605942194180320824981622819697973240597157507244996927847866094707170840263112166274058271738661507443741991684030500970002907045148294178095864680913938620306439761292395566592011053368191130629017996046674411215799522412783862622884572563123447592883494944189188794025630827127360505684712148048376281707010163411926127868021373389075523612725966627631577445287363765940435712058477178131481573174997338578253085324027808888439793213999349527448443644812670342441106293964991135386732282777831974402944901893048647289513483908086907634925871153081790079260286395578601479307867087988492605285089914202302778669631348021260900546369305009675946766848051055584991641132170854850083245163859764698081569470313803507453412989032809356134517772113077865799954777939093574410453798954339142891723503779304540668630449633120361151700329220620235575655474393882534864795283351865589470772585198547919816046681644498281225722629337219993051518803734506968182635726013978389549678619585619893074543541304480747997752018027378933524148804308630281188766600068267594622373676895944441120972248157943883774050896531542102935795185875476511342176357230487424158996571223618050176869506982451688472714471518239412120949901548220564275525806426593343298968830926343376689363122727255422926131753990923521364790651751001091300042294102924257374371180987580718778942732691920896782524144416282466820111921065374465000375523084766277496696075538724686616248244138979820750694099985233872041346146695549595095916323568654223980022555115363045689208533193960493222129476049620499328322604146262461958452292126829526064898219308125946558030250861164738377261243541698734309043954443145545836743881169847088354624554818514334966310696299430973636446183748779528520526283141617809623812445615121845306538855807364753325241348317993477866372926278638560455408598953771178710657450743659925459558926075431491210041761826731165949248846809770285977229504122881028341912963323450329364736974567241160397701128106012527495099863379214311042107940777828243081368362753043585089851022303497100607746778403696726624730560721149352958749371215659057048776052413365851590848259479079509379400928293972298059813424850234476953891365844862657025844525682515562600790626394249361585224142074719782255560983737777039093898181116469434165775547038769920808265710919163230465035742273142613408401061049301684670424575017703478047596134979844818437782863738229908511250579142136696443257937865739040765745115898937000988216997384875668099373690259478361868147368930053930902303968318071399143191297266686937472847657508288463526237868572634910716827896838308555139024124284893601250818363008187939998018778508267049600547171044777777078958517563273148195889561441948478488212905034682364808859268232119958651780719488206187223096499320298069943896931416565249667501956401097033051572883955767901567528882526886112463765636116422240227364414637635899719204279124635045046427106049438669552255055525026081239796101549808332847921396522498378775519345558328874249696175046752913053664527629658163598650089505341029461283020335987986684975039689491232904774645064018431657245216952253421333682211334490605249096060108557365135181934732049244406228007593475207337896784736314930662446874876511405784345650652638886404479285300426377202397285071420277111110435175741590134778396185674856200696430002205255834529051083057442273507678478242578599101046606229576139113862449905165630019267933745976448401116129029765450145422736402236116911567677954153506869810565158496621389986764933066779367020299733668232722819724815201397965386410851369825987244541705418324722869661388644174968669487980731575549179574172807350279633820317623906104978007372582875010500508250101073125870153053795041021461004805853420521690810236308499846913658965402116347539680248401455209325974880661759125990490230234421781601747446039444437597597615761013672777130105634848587414518663773941661974030486999901400501621462041030427795157051431526501404164050157502845961802405359387000482940660111669312918688868420972764230349846079130010753427699655470031864598554080951449876592040476834719284680051745164645255858450499922341318948632257511623361243618438261376976231593787071352215768083080713704235441828755853386917252357666264372461715725586230196014314709500090304725887640312905116993802848535544185314968399880332200893165853938407071304711841222158088114177252728089957124633379046420309799958278134262895262400537216387118413171500251483345597809134067575796437516697855970079126595103941472897445156622324171767437830735989425642168518704152653003828048262428664924666810714445712762949188741290053160209165784477256682389076157402616909454382416535472889820748882455613676461456913863082641229636318198526044255512411111477317438316109573870294157028623626050112169246631574572079377902243463840903419171379902534796974742109039578436344850714364029029042266001169108835351643320923266817945837939926274337614646301997346856294185567998875102100187478636640617203871255148719003645486617382069516968830261377343232484106185244954176157850627183990617492913130694456491979983335018527839577019585587147200092503425435409236052870152151837471520150483791180533050352023345014178481929658023715298120156761852201420559152249773039794156630518395885078892575964276543399020379322313977955603383667905367995905305443219121643290212691899414659412684444511775989305947595909061359653207680495464909708516634949143830583909067715426814174737087388217419623627123744596351485691597306247749102574729092907952821788431862724789819966802006350670190364336657063976492570921515511881606334325202029023132799584747360486366561591707735960872403890199600337165041993392575656364530920021371308575718247474243338923873210470959270672853532458726393100797269405064207667674561830137687366176950302458210321792653694318357273876801716808680319443021976107033339070642300578279064279734625180281309249498169292805066267092728730631213055816061840177170542179877213355708286912223368316346363802071081604388321279390175688439871775018881151402801974856283694463752856360774760957360562361618665362848736042353782945242834065356654452332848271488013443412336861229437371229187075559374966595683791618978751913173224653006666360164618689790072148687342683317225909278194087307545879332274596791801721035067739734515994874377358850713113513755055765284192781869969684740101838475395368675379222835269209979878478956931893563950832076156049692251847507547706680796240281245196663804532572089293112777779302770568767915527639097281563802582969278608677797818502826135349555627029232304837307482714027833078503609347932894349933461580229548008011559569891979020661046432746266147722120238270111442735683034055634287068908747941089642982862564923562930154493556134655615616196267173428367041019910232135745492755638326663124827145419522809060293732931718371374581979255811877823725625203663840306124406228262270988253629757752881232477065571691389215061465173192646788347272255304818210887537939720300686488576748412713791029438836065947180486847206431632080199538150088564045901845769890870661592697861799425421176592997144318414246168186898269158057371260444803301683894936100829704370523250783416330993751822912373951771036674625188315129144301499435358175701489248902182423354765002683668696500331190937428922336286005423362998897994017950812787887001468260905714881432986769108323331741425823299571463781693852813237888760489971912557289592011379880453872051933568246550814660325554658527618871526010953319224253867752898643891364274121243477652408873585348580698925850458007208212282586402332723389459096872764310451473343901737897075911505989800900834110767106317943712803526835135407823965741298216822196743872499744611052668881945740395195076327905818364923781697441913988170933357159123866470039843748706851994961369514623371121906456920450528210396350002889353510065467423301886734582010982830381932604123708016156203617706100444472816725760118865794862109247289500491880168030078009909631270019144231568866125809815339942595136163689603167004202715549780730991703897901827116204447291313182355111637041514570001927921752606882645892331476189585025662972722501626551272944217744400468344905519087370890116305306518846913811223152198830356655096273960222359932512841799613645782070728482026731903700264700671157201168347355765923768506708334129971410423142893692576596842211327311651619879059479133540170926207137285892110667498320375936139976371961920387442986981588334706914383915037369392096396555022488824655236108305542064111896992850718395691185127180188030533566012286046263451377289464753800905413682291135524832354600972126903240929898771826409672978994305429282768524253961338708062558490697475845232735241234760848402647375184417975456079103351319854214270530601591661329246061728427370546840101557055758592986871416447885105815930515066954876312765711650439795336306873214301575224946234425997379319942181564183309471823370215419022739922376579791357581611311364439156164053779533475078260353624975426181448228403934774223691756827722825955884009979146305224163151563851277427137238407054753931558968723851731661221590357426147215986412341801232956076863762671428468564792907133505739091059693534650574945811022643147152069639298531821792176935004683235688884757446656528143056004519805562538080016690854968442871636884616868622364243698798998906508108093126523895566127193799507675534581951136901135918730746784692336159840533656934644194170662504472890511425836999160777448302263860686162598003493149999536172228608557587833593154137783795470013267479215374749233267719492214242721696896098054022184022180459178281218091430134566582047521421963696710711342421669766652023828692195026821941368553808879799025459235742177812983930360425783057707465862892077881814130603716783955131004594790900287114200257040844112100595772269779445587654464297088104932870480962709898705646456763478255610599555903526887229349304615075471396044953657591128202133290564886626013883854324283279830990942643949307342515293441919091765652708212798344395100439449450884805007728362398087945130606209928245621990115732092387136843519896991847724072079076257637600023510883720951334319989902951916710488379070296138167029288947830125634250651060940307449909048435753022678775310685407140203674274211607005041081040593533749614354912541544349170224752650012972286964564735133889515244137167186435293499997244589334903677375696163936906598699582017169160703913053473058423849851755115058331622193447434441838964218825239140812941595485426312738997900557250957353987125356472079921522555644190738120862962092294650788474966559770591607126288589959352798576148188703051245696373392083718678069247243244474745535966975809490702691291330227574664580457981536273890174916075387023705450622268412836540905804313778750312328276418029120227881946168764811152504018083848714040083154195228303061253997610558816258677291961448062131772131958281846274837889037582897734774016410128519003124369733679829828581554893656299414366876122782188727509958202233611564669985772133167836074657576241888556450153308904219587977995673942876820528955246216708059268752986665213418080604931492610780331299481826580741775783322975477682877951708279003635658887874189333907406717262214678543779902568239963315395964254106446292830175115358460034459448822433104078265709834217999581182660424002908852457630747742234009212608302481301632835706847380447927910249234172596145316028585629170056527811269193013966384794916161909614966573834245157393814956287681686196997703013158756325212439630145903348721255111158331124836616099366815881541798959252120359455169165462902934758809515286658587350165336247077664286155299740957612849841813874095504729019312991058338429465671069580704924090732145254086933093477998429562292515614060959776018715050998836200488596318340537492625501612252755489126390952564982954023829319583713183001081642368147690953960274372801747759138083115143349664040644209164052635402082823071984258956081061078445959234074443190646930571817274658367623197692002835901651313515430600740117777609692712954394951615582740598382050561881255332170033814791886354273672030494371045348459330639355254586883096965423299051162097990162126178950559970089611702148535988952096530969481647512496918977682162270157194051433261155942318038776130756453428748948928354619841270012312098543312469910668605510655144109682328734813635356382425031757820806352505119781166859380925572299946063590807049202225644910692943743151852062858374735258976330340791612859080550657215996764782217590183422153789972603707469146184632402624207951351177980309131600625127910012643996252372422371607290620000258818019527588940497766945547823224281208707070960014862770910623201853981567232395878471114578679186560694223578167834767471094934054138303138607372589535396270470749583552270436575148248293979307103614569162717586857384717866833322214691598157017923487576562258042533554644930949899558363477355268013754736127210073647539256088467722491282974638773205472197010033923628145799435990553041248053608571437470167169672770505660347372612745935628562402336876326570903208754837692200283524671840297017157422067510500747925941683468157413382808751869219544312884023824745234589282142420067199665588406304938505300202380162046573823386292243690397762145713954473528555669413062865128502365137575136212378124714150782860837647965612218389149375614536785866653841307283913569096082352915022539748249085209394951645255354013603182922710188984329053794629166411107996458019050939447274483895705386028664790993994585751959875861719680307697277294965454755832634768383651767778390270511439578840472371086344240490953414527868731944378526129997235769971905856503658685075138869775703076808387363881757541868301149084929553699168977953604396294902838340982081525821132642316522580980581799197462400018140615268178588820535164634722010869497341424608978312959170094794679603057464806975103105622132808918711237551699032961425545102399100797614105282107441210294365179691538130688836104811570059076738756186390716385575442603316423962982176100700834812323625340799454034207725561893827414105325689589768180689649330624747207067831080539543858903547331113613918758759968211271133234789389937254561717640125379206677099213404475941003065286085258836038131594016928979920694845310428100512383796116089727247952102034566743039603427712060672994297266828947391173670748486358594879683832050723504022591206031600485222296821281418779547197477607950509915217125892117931702154519847100714513753164729767689604758914106410744447913348693739475735107436204890759535124373831364085396327107176958051675232261285100566683015979511117793982296868698952553473357547942300743136751682519308547519566468862903200226171012571973771883161364267799805386438961909032631455840102986851073901589178785295459181075316825498550572699633841691814717755456554342246464926422909438751529387578648119488179444646126755427552698127253931359448753785528108530272218914778295794056652887034566409300311881062571450765066968564836703609577388062709396534168441191001492026821142406638541879780125521907565907608929475484338998829499018737099181221356321716035000758668110258543255806440418188400587295521052969494637742663416546604903177157881546910048727258931618975697893563790938920109130106167546381122528442494940889306930223324648475146866293465407793677106884969214081999746239363200970272114587498611646519178492153912542276650683890444624584676122104473368559230293661002590447828570988247042338668635115478156212599173553556591539269629526318407825214745900828155650553642327561480603612150657465941275057967463338629335903744492856266018208364935990389195795861903219160214256970776802335253029489938860961675501620041209536089895278022859789399023582518771417576835738884499398922547834292676540254187237113914133413768233386356386256038666244007695853613113461683018065770554956682266771050689080027905174565283596589756646253683748869313774899126152534975637660498298894007933131217844070729077266008986340884330487067057803745529025313409620007740114374645259493245832739481295989739143453185874124052884206755174356599914062721106628466789760933092377073399597961994902766680085517902823618085145251797655009889278747404030886786617812029108115162600828632423599436701069594721924286430419291743941379485632049757964336912877112868476565493160983171361817170078967869681179539686772135024281591546715915535423625490456334715467716778656938944572067977799226232947018432322261670312623853036197233723439350893946083604721479777528435017702893583118987298525771468462719390442468430834362291362357369844339254521560044575338299051860221031206704192268005882664880937350424288267972169164799344448572173232882991117332976438615589708407801169766437485132990320072860782925362774368639001708172556929549166529425379656079292748854366672520255823482176394115608003498133198481252917267036285168950416598720557125014610568703999886914994410138704967852942770055123150594706755775605275456675696407827927419458944243653357506922241554573077764834597976284339608739855032636287496168548619980164845449969609720151856910494572012574522001879303447064028735324332884908593200886439149819518824878869410744150464949067629275260259203582960811674769262508792626112806453735605641350011368458886306956056532128802615975943599314637888423049465952660784673167419373491634231850082753249609496083978579062738866507155622741071881837812869715772858698654911174038569427557482621904878035491537621607761152579731645318616415431157793008336758043719805386490969929551193352138228424806115402649934170809825580657068224920138207431199060294364475043356460797215990449709663925356815470482611435274238907268956140345279388682525728542257410740538365663098136257666656369104239281612855348617291412422709938130412629077991658067414883140126338604233006241837931517121143182278178524762029533098591325576386653360185998148785865634514929007273719040279598196784805668971896520165709535791416286626913889330654882066735243241480519958774756903578683270642139673555990444033606172817919857261232415412100683341289644165904061522439036527663446050465430806238259798697856036268269803775436075532863221392298659257224882991885689472624830076161797460585266859589582787096778703543791963078302885337083472746166010299319092442381979379766465785922083277515892443854768649598236366615624257909776998403091776956615975610499637779511262653903007199988601402498686045285182616176575561428300163808648456355704585206902976985086763340307834349430442330208773361789789222266702704232795348704734620162297158865572983599935792712126242144031713097365057945794763493306948197786385226672178602181496569118888608673521241639407094580762634653896830392936123919524031226957946641169411889023474309691222136357216248094695924120245747087875770919612404726755507938131401043416550774704591077852104700908592991766225340651564830566538059578384402543871626138898705497140276148951597223369175022191710466637392037933086060321740414590297837544689193319336694321924079532831065100230933858555238701640773198746012946414172576302627077400515708536296319663887409132303020302104636074876358611336168711949335757455983466247008078655978786646943214021795918237099484830376894640572606493512052286177886693585651765452874257819616320363663834697413416286333840116112079670503458979429721785243422982241557049322712724478230634320073291079767743318718626869633195521554834642008992683153043532298039180035691821951982991434659482084026267499925863553263764554704740139550509217015204577027562554255486921259443434885499907039214174666203773056240382440924465696469658560115151294962026935599298012120405555991240943492269429519384867454328790572998767262633636940543560878422333430478288018165855168656289890618763934007592058511566412983468789205347662898058803381792024587991838648548832369495197939279190261778296487378986436964831895254617903533470474305649006015854760686427701720446693059033220257445385666269768363045239444722055470138503291237765155458016691972950421964394290073999498349039847441027759739468694532839473633190141835115930822655108111916645725274483310674658912190725446719039997369069277510407478116246461024803849467309669497865686636799337776964912316648867930735789624115940935731833097112485117612020359018607362630110448367289005302849720686816790218390382987252096962550482213115676044911588102917219193248191280810542349012678995393804632881071928384214589197897207964787913344520537219256891400142191805871167323643757195827747768034209987781871319541126596399948398769480024598051689730810938030392524348816528435407910916955638709826295668521506857838457098091101478953775462988541294714879854861375764852013029915200888012716623579219624046922845376242369652659500145277788526962314346174805408427253732291742837482489146493669187801603897669280588625759280212581288013730625264930289173526149770044379966772209840023906978833943213181423602606326930966416206838948461634847774362094494092938563040365086791343344129349764940623366885070840347973963296728507368856769303231659227020200287680938143336226860346164110787495071552623537725700379844187986875588626510241923969111168776038793008677422300713315151071750984138391707828747268975008865048520392482609921852254561206893541760037050210594651196281980096068845375501561698754259248393549078851812424754976118640273607123920070761267457749947093673614653642434089899633195849813179360656888824905820894246571844765688958935439358832131289342936769149139997943475399917955743648066610400863792799999786020234711444502052972515388991807353658309053810397451754502921102104790504294881021401282841423702551824820394026281687137919755328247394773560667173998126655486931540768023864965817636573383245925352199421333679691682883271050007157094579723792385220361145122463990729938283851308678332814256351742049450382819490513404139637264692553758414823661042572462296981379442770078611226610569914523816876533561066263225429340427912339033261755616985863174934933509495333237234619375018863280053519599830092552766489646998066510830299527288935747395758109373111690227422718766428546902970497264242559899959308356416020995367802259755139026986665041241402190894374642647976192892901100050515594950338201958849025715967396466461119620357719045769146595232691371148031775635227113283865547866621167985274104890071641411808775352031649527732494873465338384188945792126832382365455713993905604504008101619797347278720825305995119202585087553516887018991615736558569975205794105489053745042900510309221976670786488415447907885604960951644985464045330590676576239065381577595188560167247575470529320438169514247303531939712273345601438594556870652315124750629490436921563568211717100223306246103763428185620317730096418137234275296876500775552371825099560796881077199528954356004005091286474236925430837279207039847040534975421726384021095278126100381216924939752024250961196858711369913213774234551867395796885802214176764190197704593092861000115010632896548148481664049136240462468172017555915958755085387083273645405975934545617396108455726285170223502733162655320165910657957029924506036510228950285677701145052928889803337467880785821538710212426176022965160877733597576041796838701440710444406367188865448337883192612739901108720613274059962903949594215233800441090567277219878634036259317115882083971592439008368047555414092492552302105998737577742183152933830944826478747620837254354473273798083371422647287642440157740495467767641535822625842535314080827792316490420086758232939050035309091026822271853751876102776276725039978016618240930289505592917475322631273562870766548900695947257216389486271591969015489540569190726212616421345172647403176085612600535622243164695338614538232458079246179760095810328624471252476525541404013766288537469372299414068970137677956541564842407000630384933293181761885889043373250835011480062481069834126104347772197071095243326621719712782112589864587720342874330401548060228862642937945869183033222656780363412541496341909633497512923024589666180515096216856391391873083187472707277357039210900644817070303964643491247611509120865367586774592714494584907054457180526583202406473385131184828451801691124568971903070711367688065862360992632051624674781107769921783249629383255042921319229927848320117738335655484278443225895580631994934421063111551877379059585468346743954727733781957207983078615725549556060258846105994327906502708071223884870758325926539592193944763497094868715177973912589905445351896744932303370442772253452834671067234793455394925826903561864790210266365564472052754666949911538091726190232291055441107802709788865978519240697287458117848799218928809108058579130424037996638693935776295911843120696684549709287126295026874478437362811338440187813798676180732253347563821644430022015373501325567832635256296972159478665451932536187808743421070955955287774444226905775811335385046926890571548380553165950555101559770495396139125690033017720927831860734784839043501547142976822924178216863944483759638965616524507049159422680327926741014271295945830407566332730849831093874891761012133246008883111103025772097085807080997764272752133482345125627388884811882805906503169395410003026827631620903808446638808437258850604277080268610059188910642924455048462065704038594859945829899317636738090891005862744322102760565580165451664656168345149049101222216964207855411827428025646817478920070521949452155237176095148916738380991262405880208594379601646799584309394137771166892358425508515665039413345864757255732789391549620351620209929904703371308527895511493332623623275378506545646715509102958035637043628980311525899121353814721519810794384831276329902517494300518339544722141877891638277041112818961439637692332632218649453438748686922450872867926137178045679159005268962181772041701620149082569598001786832976059307700833381154355808518145889003790320402230301471930872088061106252026000865725881561339023907470941562971828601072567065913524096920569869973912959061635509978493389326523114992309923197667570285774201376589999498498497688676952251680529955400297915093570938222772095916549749544382686287766950659321798167971342586868863322463809515724638207973064196989624735967107289885894326492722763301622929169159701487421402253993874635148523913329104543872050842764981110840624910375302028554962076447152883377073228435616777554953745537794133215848430231722888320588197180762458877985322933378652547736153854030811741173972286287017179237058797490543424178648340345320916102658546647633495602349260507490784613021923667082189560385939589324272412167786662736235037965025768783400608175285225563153028002471234573869000326710564326158981898583429827344317271923624043664398244823031545495386619789355945052989281703442205844748439648714854541617986368589216438516433999613666936585497976085938235814897531470065264428576069726770190828495055106838209444901202947022444429387588674538026465384216975015594798638919755287719118668233341452453512996931725709697530150310694301674342456160968000187093462791319036637241076582243902142686900012634676139652377717682491451609646805105070891508622070859053850500969999553490833693429348998582518565643801635178996889542734217568580921140237838049542097174894578063875080787913657650056311135327696213351556639588866258536755348592834304926030868064616212439351263594026782293646918776965708369875584830544731769055938914967934356193143290285158977616792929189696127525206769437705738054178496252494143850325457743851134801744283668345262434199565692641144208108831977072246095176502539574570051199942759389486860869978257654373002659490492833646047435994686756926164579846001941884187607783256581211814129708232392205616296021652946895581147074354266201253856268574123891028407717173120007704128710808532793893905787674982229825643102614470734191200919460764073710339117490695389237192964209831365309301906819505493648976370181621376843277768625409638721412173431227142842966068228616669960136128729103089373604317876193533681981809853825561170292733537019664649721477123818448501457626552065304046833168575823759874195817574998100556398250806274620724942461856072172342843175291364409516345699005014239043643948891667545850041611400288614797216860791235530429463580674579984850654073028652841148577896242006618176819586694243533656567647648576426959607910048006986452798404247543277053956853695155645676323078332628558825436074846588670910785576327656444834038261679922858610124544884211929578039947814307780272901990359513119242320531576789892286277119374455624193168969170068324467099871633935873884874315843839059983426856307462989090418814228009465657241251627364369606673725570574608453499667999942080674430666046056830393230737491358477420113212585693306905700048200918770654328127145722744157768530017590656186882105866578473291097370129737414961335447173060880869651628758303751753837645917682516858403777998259071730776688895752443336587448947064512187589805333698853873503219411112475342556840323414574910061476881557522427715326832958321568522582760928964042312783335428413412244289770941384987625369704820494465559187227242957536980952978908058171744312924413688248766485260568450793947950835194173375635072035812345633896289347449576914096948049185656115393355589645404476088602049750065892993478796804633144135636139255780956284950793725506343043959477248328080178717102641900430536361523417720178699143321306349066578360988714493750799397495498988010444427484325899801005748993009821849673569656531665463965318396565683252285655818479465118747630264952828348676296853352857513265121636204377991961250110321628351668261786089671991079162415136855164916493784994252267902039545169806854720368921538291028149434631980416808662991705684369064843112184586689654658370467534788525112972969575479487431777540202196445127804249029782158231878142091131897003594023497596318863045170725044852691893451516772798720746156936123995334685821256851720619435095865738279040924955980674863406725732163536611750949049581618867567529458385718210523843679293496333173348220292974354999759765425528601920151389017513538243368591336034705463857047931628290291422347675064219304061121650472327161367191282346881942311701332854251501030802536025798297729713261594633176077413812339899861134478418322348446492566980482523001799167809648641593467555797280592244867079548380445509139108408600767961898054384750601878987903709795503681630178513552237135190804394568214209227882381351812473064806321099359849152498220264916371769006704328252077664004542397377637622447774125769775674729883579075030711628219884750026791067845418264445903543108573816602246042576243959865340659982861125404419653768841389133619792234025994542419005402004610736459444045821813105467782743579209355053822738658485889806526518529106302162690977219674485537330322989163466838570971994525724366063528789511963192031885164256525815842973956232266790087860936973134460810057206929867381371234897849549869909471543675511436911343914689177435653248576741296274903124413728174288755827034947805686433414480593393029141243111601561528511826646824048604503897485549468996817705859837311986030922488397418578703018647207862521195218991189621546742488001561929536323656702494900486599896762283086073716845255246395658390712256177208631717370693299718291072233489430999819001193256272982736827562072276313812040730099363836113507121632807750069524575500946211102045459622012521912622405316316433307721356181686075151204649479476730414230746481428075118393063735045059968601767184852895833059287476075787930349766683376474535458039176454264942804155582278945445340779632825629270134226095210490960070382651705559934726629865911465522608638808924270900014723273617399660421968834112598159082799912282749190192130966937720668397267949243294839904322727795093479620135311019588433995408115874916958375998752746824943629203055959103434829746919214020961918704196576660449677189581766268534539767152986791568291811850843399709131334270314579088317689940455343823634826015618951503709958669365084470180858949756661700367615865625163571707658749288624139683254834589761671563708550532457708608840947993300450263086759345830201326629360387033085880102883623045079488502441943971518477110389178434997449339180478206066142881382612424006853815404630605774072425023006769311556971432192082522434075715119569408485373618605293269819195919691028088521336797270646911694505806661323818616336153748349299066827832067519708884634355581314657443895763871423786609489550529875936708236192211521295369084584162028037351664555301165179531922569628509347241254819804552927036544448586590778327762468908253896027302518142249505961638236901423571287465013152508672569742622739923478787423399521599748827252341932518113714591073252931763249766790050397775471002510030328093003119113640621131748862157988604275983123977122989230674441144791685367747089313155426271381874224921927765562236310885931420066042455952548645725069027089758213872768773225487747333182332240547461356087303303061370508316573314626254477576281597532648849370800371400190834846250825205680100163090863583812171785885842943579881829796855787958922059225851417123248395232384259253594695746126989936872554529638711161101959305273719502609276369736455892209437630457115433422283188293483060291116514771390954619705313703377431382046262152274387354421972018601438670975514771906790275940458895333449553258378538431662526899801615698542133395811139386484978748624397515612857079007947495336421560021721559188476407521137213501741668308778405555017731563355897037357374569826599949487231714589706938789644853231641347258125530280883530278850464405779606079925113195993697718453326039070096686508854326165868091118988500378625988004253689263721189130412459472886215190526588358104337338092337128998673681925253660376818356719794380865563287925406577637078508324895556669536317301489040054012102281474569112641002005415669099399413699557060432233846549874991917660818363973300913747484636727607462970736661081152583281786125806160938363863331679898025886586989876200645688121027977426110222338359514899119934444227894473545774621760813613901889828097365029570211972412062747552326813183515945134127776302520143814857949094847135690886350334010656277434855130047663370155575553914039905830762557371720780761984357257781504410875134207489415772470046731779174293782503527681671098437832781860809782883337365668841320510608430436670552454426326321276771760513251628940415679645198177377969441286780212377869699425826962000585912483405391513001453289628242480514869594034923029135076818973475684709343998769996067063605278607366634356591352524957378515763380471667651578813644570282084887140890065464361471300508247185090091888738527622470942516867766946463693765874488906915130749145386525616167394812282467442080503970641359727701871073224286861896995915019331280133287387844464595860768966351091280308075323584518163533052593986826772159828284442740699783031465090084737613084460535020866768663365160167251295707313109123326482538308931267571747283577020408248519026703011352562916643178227615622227454353962760647467665792090484853116660317500624611432957766151998021991608866847626963287170743350088956701774495411733068762742002562259902702451963701902359861682175837865302462760588988043047593942676639509989226791317323298847841929245682861398658265088832279616733504306633117283681575482083016172156602330778720614170756822099683132136045940859673616821267922248580023051853653527566250053508122259012793863332734915129306385198411128731264646637515796457491884148576192074923432859172254156019777917257573008031176591738869656421753944097860726687600839993419967362322115774765657273537819904281250081473540712670204304511175883999032312858248776192007912179264292556245926229301055021575700801976138155801412545377341087037892861313112338708221053500780302186798943336820275873753958751385019142592467610603307153142796426208115833012881315944828797568998140581292018468800082715525682695228821222271818339032844936533395436533312473154576019916542342230777029125041227626471762704918404081058437510468206507860102178636556595026446755616346096387752854670890870267913567752100539597498121453703764569481220016448644746141833168826948834960597820757756145120467251691543841979665272203143834568714068899482943879800894608061234155040747068595225492936809556978437764436987155803326885355300543152567774653816853943106600373936074035973707012310504831875355137637507385949122849575374033478142109293288486047375908953502993966123630686044726993562801695726812863833799101003132537029523086173291466493703509533904152701795193062777110934926707777063884977736825310360337496649335556580865553479456025925063570903860723457835656058634529018493857051209936581659121952168789580598027909061674028831741381473394019264983097360554562460712626319396458385826333437535737589595009861798112066662782057707393334793574821592865856103651417229739225999895041339719319677573676352950371201101274052524348312037346265689972463834610286702304804808493692586206826296506186469466140706925924203968599959540488095782070318019413968248182011803417884505976867864190522605441283543808960875108474908737041742241846105650017145274840908998185233856234530772908221248102636488431030542006596268349863706071598510864604888837025241749303875537728309233050586441236900763489948639948830301826472733448645741217785349211774271527639874740265413290229098199019180494093293259701092666750142212391139683375149226592977902932412218151234374794643813631536801567828268795899214583370772034666254407240683507404136221792392489319094965890413357859222733730744893593082787181673156955831746937666316335074360068321775909435986294665288499801406291708132941803291347019881362832643541549893620324681656173534859478580515702389103894311220774763712725796480703825663672775189336319964438760544897334999251868658066565522710706163094998151833318185779971315336615139810674361350739719475910364054495777598873526851293276005663860186465663299980233480402400385404258434823075429181128220818872979792107580622421967878410528430838077045814698559408523081511992952894732762050215784285061581493656676550610155935792851891265069394004230314780390257599729159685946208045089972381363811334552522574209892232297068139057427947627565515565563811659965139291643602821719606064580708854899995973376790435455503448723888018858594693257096795049964596725994778061183196885744398399532912025102963247052506159687830626474398149093165144408309558452430962611834655837772813740673739665281505516357463944124445852837349089819334568984746875157559748622009917142252502951447307425527095946581066800689962652550368614881470752832215645430980421569801239875254836484527051391116491321573504548075455913102341816192257264045722112822581454889028869475237874567346225343867646639187937045227187808262180876278902696600309140591697466703549023470143955797631858168057194358302396161735027648223807246424260378170745185633177229468976450126052005709006141972199922016014216317740002178859284356410968062198328637978283604898267642699636003390371273946101425807814462629486518951384585744666049059003190304518643065587470429929454176466163713759758122351444271328374132484509247493362409551430045471943568884492820343059387425424041805074736891689880849901015677626548561668833033877516009880190127494681195720877372635155641236683636187996757176826837241300288529794442460203772566091434550543198489803674279128444891275556968983088486117991988487904545002323331781963611597700452043577326220246866703877430454475471097515340275093662936227139749518346303461854571785025382463246155576969120484398175843597718031292795013435731873075886125780057344619843805239558098521674679376974450288799839955386864194264143463185181051321907373688900037173693908116320435883791525749076054985554830902129937751432253288625593819406423564660250141458578576853687948866245931710055040270080346286754297504526709772804377242703064597523512258732140716968312385466217539967031093648169903990840931974205337388234229116200117127093043881079924109890573392825317457268104097411168375244124920269203328339867449886715850981085206539613049786509052708168962638347663466038429958100656639305231461864894785983043289038061606244698874357226971337761687049838281313865090344062540106467054750612955245661364887408292887256041049260740995927947128942572976119240568352400363102327865354829579781541307547101915762780047107564656852916828471566437722640949777608188150710637329224331720365709856103678834737718452336258768922964178698351639191368320462309899091456918730650860527624923027508857577638372327390280976696648213801859034379330539300852904588286931582149263903007859830575966775924542174961040699854025751780406505917617476263642437289191917836504948089332775758563087729382988041076836528166011277997932650368227224321326714446587842540731910806985111717234192752599065577607761410028304545395661648497645037877672623626167009973327906819839526255393640579527269245430393091784162337038546029208886446907421775209845965617145143881038014323977843422826425793441162163361130625767889863673265344555348659431297076155817606389606341459978318808098370169776057175251832220383404303940796309156651465811429772236332575776313031432878591647675501667561034483655001608397714458385565818871003050189701128044824486361549045407198713483574180615295784165656338009652338972938344275966439086000568783768783115334594946008713233829530354943585640947242574458193376540213321229162996503460447748847050812848694485604229261589669732518418363862432863921624461416872099753203211157888148654561042787879928310649550885364927707446624013400646499397903366550603244229802085825803784037020580691883778520435082376533106876532229841334157276856161029977858658234743232777462741867718553395218590114295828390815136859033463380606790487296366655709613276051993482114371366102819826762539023490784531670100444083632819759378709459699044717122014171642063904174266799176696999394668943343497644436200611776321517133020038025056865591739815057095948503580984601997354501361677202864108914428048000881988560061057422110077249403067570401762616255326443563762340014066416954013202119825992213419828284947046513627768660283525401657032035357869343751637796594958989651386647775867992234479431051665059982863904200049610844988008627561053779944519718991744676188343377263138501617085663425964988844874149429997163869585426945729158796680598618348184209871659833663552754121887128801322964537922233369073006067664522077897067957568073007308978651272053321393100278450610628515418719258215713046917391046878795525775375248179818572399472139268351346622242807350977876464575489434233627682922996191503094215725523118044067738202216986019604212778895339450363217057910875380500287031485231642383914337855750226806142548727247695952749253610354852354803776476842530133851651665498105159723927283457601188729400427924566669309427032692129332087838207804625087687235992801654684514323963956048432034493795400686998962367479865857078683887682280869332005570894132888754966520267229037588428224916930338374074014044605797169825845793088284105685455025336303166925875538032380397424672873618102778603773578313649398560596956126211397564074354058554820944249531109578682217063141430204363607114659529407164498454114277066284821468735161709583196987128476070885548609037194751914711738220350968986943632405625642649880555580734647154682054696497938502640048192701929392636208400468619621520934153266931442529102685197091177845876121360950487264049569066126256568879275264841120126063027916048417914075417478768128705293933630459095941070514654332222297747332024268696484236592890125589498642819729605681224573529625283430153681766035692818038907338490598727461280642283869743555649345164023505377352528079614161721503187310820598553113182027007330200948410506902665986376397529380450199437113894576153367123595124203193210640907254976201155590216005232282547553859398394338641212208617711607265902732900886211660080154858748721812912736281793878416311494774727290318157354704233717436897063064273113767043041138860056927631583500492082189487104544143727310431357704822157646526251345740096063425125717271464664329662157658538534362943819117071607528946423508926378739780151224383295937131084995820087496111196482633395474220787595886892048515931458746040547538442926539272778651462024004098376547000321755711625377521015346391502368207637955435593296026940532361257508370463652640613515593964400815715654109199192865082820523413604959844938832465307038359722446615174106687421922575708935557053723619247547791977567102220183119512222976228130110063970908732327800548894080719441766088714284828760160708705171086736758591016165420688273550927360083540883991324670864817035638706809477161224470705634189837684581788635851261614014383711249634052243992004880594668159938016377918508833842306334933804190406856243766318359196240444392548903080805184450714335233988715844656056002517746838468014077791468441546944546538283091318490749097670240872459954056694494903339851326055215538467696722932824587976163872078727314995173423923383391920874536064186594460356392658234155543163249886264639409749296582869576866924904004273149268977015159742711281361537508390944391236447480282165646873027899608803030602110775691704278940940126299798037582453134368802828843700111917209181832850476703941356119986272252851108744425078299346654453651509092622650316977239634970765482264766411337163881801508830235326993855397122322939441431196742093012836612178506583084480295602222545738248148965059240867626902080043602112608772732223222084649575548956366895100251273300314573138473485293459888726754974449377564874954658650857153786080968283673349077035920669332745710599866166324003213853381363460272764005658065339685137761785702921340282199215053651891710685209997280077425269216768495687414231381725054268452025292144332080236194154282951476433060204193135704257203644509087740749550398466037815019563233469917851228765963883360811498227466770053628146718620612897251911812232884021553379439102808439861724732139041084981480526533861190538521885544635540719353933781309950434039980602473209070041684964760575783980596400712220472396360684008021368625194684332913977507879334283600236004462227212771691088696119366458086728573449594155227599549890180647451901649234623646415523565918955135482968086159643146976286530834448528867923690312039549971063127237805324497854289222298748519588832833788397535247138047309370155207990048189043255343613768676220862533308549655865752096909794036530657570306529139901189435836795407413548437152415969635300589929279389475109755936397682835406732069216780425614623999793961131152509988078421681450712790697270563446280923089554053253290097336548537618717885182988267258282988877837269409720953977622794180159880314991101351699178565273665602276112590277381112370491246700096260358066157754936689981963362736382267696676737563347314019168934990213927977236002324951606340704988829053649036507138903510864637578167412635027921582139433436344820488590048490009062750970215782481836848739298189947820439818703380938190802809819404723458424841995640937998197277616908080754674528660559762947022465657237321722912974115699176832017439806911529187298578663922141919038346200839739363619893135842416272224182820544408502524070546516103868141790490697606782410258808508776593375870616708517747844985137849295526017346227493027940817430439546890866710038115366707765512672400997046162048761119849221141654811381996183881975847320680471422169623214929880118574454801869589098039046477814920658957397148063494868822158170832699357787116630287381531343701168901142130078634613880253665212358293581135030687998952636232666429702861714376441519638834942359832699245590764313645233014579836517358295940492969278243302369203358014815487110963681541883231421350237149290370917777166329075452857018914463900544473844555673158290719005752999135467849908422496284991926416105360990827767565528733669658619261898153347995620436568596487530418221584429911945273261866185976650699885199498453676919165594922773577685905995371244390230193150143615729242319107129008161277167984208752401988650973841193175013050197819923431524592084613129298870725807824272544486975255393033895094317524781399743504288758851815449813139457555877702966437076018462136627615377154241718137250721162964740627911598235633198919923337538296447897615335719096533115517119681846064521154607909580096775694334067145629691101931873263330582088299757397058940315161964934298087152266076820678119472742874086698847225052120817018064392689370075859541948525205262747766337087185477424079692135588111838614153316276729220574093646148640985956152841511686150034484055497117282570169188920003860053835700921189260231192210398244995122077545483795632895185352371372106167415121183455477867605521599894568735850960508348490150884331377565999049475791993591589067716577478071350540015910258029713559742747107739321802896870025073368825245965042456862658403262624068396047264209077058999314048504577474459738783505922672008995124371848389849626678537547810012581543426109252248517980962272496203915206769927459493990809133165941815770067633385948532644468410219718837769541203864058072783231639878621276786328849190433558713659509382547471651887247238782123606948282415952443551628403977225708645237361800889047708097671420124418967965472814248982561778121667369173577346095016076457600068527847834245426671361590014671859894125372028292818734315509877350359084020630244180445736002619593852329624949232611276392495854445864951530408880219014230314101971875421788754036471516046804510117277644682322783843607728675627762431141439586318151658822142786807385064378526410081024712997936448125650771104640205774615497693209056653939661999573472331375204653219706948869857270749732841340873430733010581295067799661735601930778347013643950198442184243195722223214693960834389616315203457611892648508653028792791486916874952321977688608883834651896150192432047760493559517077129380130811432527860040679574064952004514739568873006617605476371978101235916863997018266790574525871521506649368004641147937815036333941365321256111566936553597261152460431140710938931412972066878852159306420097984683299058683859706027751948724462472675289158379374988578855676517797662202704556259918043874853640775192450978657393253085185633164841979604026861645716401770443004607437544604040995107798287953545885278615522923410970262708419915459071229806731070577305629818503750877676773448172698512978823743490046263691254587266885914900558182375935099624305012724444825227401612215285821531711268078100822897713220233596305623927992115601593364078441377839445974778754291680761375974867672182553717437852349198112225793318730375955383002887542445852487709966135680367285359087582850664375522214618080671833259354946231238358903572207413004626925265958872569092038199206309447292438889289675116155145918678476089934374259389278848549192264058942504595702651730301081851481535645808033340970431900798929546538070361081627413614244429960172352223434680142758310405915532978326860072439405223272800621907127661447571823600681962189696740730037468521539610070042345209449923212079035741204752189344685981579733654917240183655280191175826364989077717978393954713610853831689375261531881336435969656267167217922287342291585729820499379793718282240696902277148053784631508550508914294254748225522587148625980153097276724099877535228373907447486049577571311101870375466683159776100923521386477449479519936107942595429301347340552142028429157957837153290815052723019984110793204606909403807594771604334299120902999887395588581565614792078082647834644871504406287889428581712148443742227952009579775323633872726539059617766770336171836779132800479433797887704077799339484510659186904103590835101835097318347663844828790276385062084397444639292966190939091675673162713608147779427122225114528334833703285610643399131564800523760494767561889692490923211067758863627846411968061252499512920525982494432109058273062523824949898936923396996863224951354099331962296075835362517426814334051512025331372408735120242263793821460356013515137212115030885382442497255636884875527923003378010792315082304386190390399922169520128004700832829205313416292363567599913628311171995001709755736022540244016426596403365184793769153025981762726901427051561625274606591725451539037378037807923826983610181707702303983517836281934163050634626703981108142152447984003883265099678983937195264772073709189114791859838437445171596325107012314788818716976170323261738202930769629322858174458407109057549480077315175791561237754524866249573059208289675070857883605342299436376212576110442451076214584969722152206653140126373912451134954459027591804832980325820019048702702014397485026439827782304234687701439289022247673682010354531696371231761544560556846804678164075888875111940811136226231004671193539120031718543310626292335010486009472073972747143315740752177880413974474732521169863554544309615269904271661438236689105122572149833780791426112999392278110995681215126405588018297932635169319721293442532380960352021669727267004473955809565974852038980229945063038145371175608779333930470975939503412993144219148594144664298276732428384550722572400239880132517766831199503654288131611205088006168470978321875990274985991414932490053565627843010753121961750384310790125131678403371786697734382603219943585981861568395831113046011536525635503403223310326238734335503102880462764814248380282275631628735472547774139559442629858464948607102649143999264337029668721641703972755212683457449801056600866701083475638817722843120029088517165303765566529905598360755823094184516478262572242399847114455104121960268890718142051901308625143017750719415564239158071945903133169779265896987178026155228187678623176491556232908883388094894384865204650477322265070830205925965303607435156137354208110300878651318204056964035276072254321384353105287864027979354378002474928207599691680253844041052780935596238286721675382228126389724727688686368321995234333957952164555094823473723173130816401640585845913881999248116872113671881570852174373488277841687885994030720725909218300253583609156358869794981514714300991768890767185196252906940991837018385956863522505900723857479950282417410755170000601842847254806269874045378267191525601449217957020095896030877466808856671903808058688017900400122077745086290472580155667834396576746835891868410466115098004469702081063393057051995671187228541275074343976447183604396411551802066399217685343197042945176641651578784677779670909205645122425452538689675971763830566861096269709810675827572224786290345462474464284331441457680334235993860381046745591996933955525790578906146875307506755998619127608434974355988200910970032560630819874087376258133471912401953823599690052585051432162098888468640214535726618769517481067580133723573142607863817207964780120460055664724686135583638890494267371903722692519510033867564507152766915336684228208046451191040012518479690009530005496238936984855306288491836517196873055684181384172758395495270661575798815379463022650351766459066205178765090776132940731637982950775395170710062288837023311850439452035491550413417037682893046327347507351023068144518224117110743434065730139445117528008844034231868745547152710475490044683984530647775873017945443815371541932698285566652452376168339280743623732840582838294619345918821921310624955732963241360967493441089485321158906712762881597961757209183362501697811440941522029189552025461496433197897946370620645932949539294434660073447002717824342626928334539952589218062307174602411538443821925122063650932287417220261836478514124521897159883606399738700697177573362994741957371195314783979190050531058277889288549545852284513161340448537050157857125581451576903000881033749195969644923525343168120097895377163332964308506063149783182301017382676068271490666457560378772738910875809884010849483749097190283859945489981559149602666619596477924896247589339661469737437991546893552184061070165105654475137673486812500886808759233531009062240975673041423102642844884716235061192592834615225362982189740867559283272822453289307466868058191832172618904866567051254638439171972493158860228439309153884770795357822174317238814328484418549865901076441706593443503521660984052617237160433873938737960270887515787708432405035424026252859778066538305234586584361504827711349844133282876415582883079507679002948952708295473887192401867279367910023430756247020077001116033445619419350009956639686288827663093274165087976080679656581118423061051086680516114675769840288148278638981872873225759014010295089074320591335123003463101894737425563946485687881596539329891345958767816161778595914734041570016487257669895865930231917377231141136800005055646643078683973334188612435769283958878261952100929978486768424911621912477490898917621052366133008021515532296804638049538650599492564149792032039893414260072333718261164907880052255273705870504483159087871921948011971640159317434089894090024480969289597257500833321572223231167080075042165995603730468096684852425309831755238303453820449197408227805463610553812463078979322608634498463074297430449112634512807935482802389874919167166273453796478362537844563653502460209107281036793000356528659842184513134132047393062364232834727905308534666572172066740803313888894276210844007562295062918310915166025510020086059109804500619460035800461855682386769391743816332030216869982880819534072939821815389000620185504328139369422068100270658854555912231734913900330123003423252967964916123888874517705838623744823448091087955180726175796354627420957228228149223564017668908689861196347493809446425841061448402140971284506776382673024199634275302004266328390834620535029991125672604923454046915848249875607481935266665640824968806608928876008614704470129483977037102290941774600259352870482601930362621454813948470991239546227318552291195911228179211882036423039533926833914845644509074673541705261630811545386586829405512185323214630774529618313733262861861305830335027683533653353741859717577459847994248477774035191990838481234510186617068903688225166263574555659856599671300117274957260952740301884003348454593933430679353269818208069183263555877810565146725188218503139923611283882738299231202037266461571593951425155763477368306290149954083220613700718141883346428350975399948853805419152958802629405939614437852727592225795562033695026072429365360672878531880154236642980693577660653615185284280406060679635748921361881776233435960282649695049843049216597408221086520149687525134187391661041402038801156884276220696425110697743516822318333579436089053939887058129691866483155201178183558082116646099060645560624707252096340121720368249872222035104976907715040280614251523754353507087568103324096926376178904505729367734205836293543613182296161226962022220108350324994781085549530356230710228502417694439667720912530518305038082265860868232259894600847734323602493206673476924880642710236680143265425591737626174757066571902419370174755339721811788952551793098781209070986694654693786896763057465211110829367796048766816068883213650905672846718860904306658879987472873409144663424509444877950150054861636228415503082751792852575142298492909971733561895881189150976168415224146838548653724613535307590903551608660575593306686032314327246888929280522427435094827656042537346926581985591263863327902121989914949380226024514774155700717785924726150389250446807773382733448448489543139708809907102647468822413634432906412475057746819207046851604227654894979089980532362925462427130098345141452776184067434180890884199189749381659103801300843991990125156360890380998955463909142441446781437153283735812204319956480852759615021423745347918079945083303618017778770254287951677739928706963887212741153645292268732578740998296590746285242017078326755857844050718089155293553032924258493598563259330840858762073655354277088716443031688825516653174973266464065169131905163764227972449837878277048561706526941843698624770305409293077527103844472188193680517311262283941123815121919154989851783796997456983621169596640007535494419349976573473230788336466786701541037564749155686233393342344130281872602116174690543691680695405740367678301457701997547795446932156250093557014243354495654147955805109921095583222555704282581506927153767579337558144233969972489376097989777504138448198249588764384710072337112385779757883650893293144781409113889220538387301797291592658598523598588318785603424329255207591033583821268483195352322211481399015711481522129510571788523384206396659234375453884046084970165716655487362855846170506668313233670876647606000055261507450144394622169598995923702488824630209188112978023109799506862097914633385916172220919011230841801150032528853609098521874953464834373500007565812462091651515834495128134613238771990550705220424036606704214275816489744187052944696042076483054305296189833146016692510002956928744961371285240208777366532148840870327325085850026679331875452895656403060633025240799211593614556975297002787217389277321395873898910836206285752063966075682360959084381077522839803854613574055265818640658850001782833331424390476768184699653862062425357903092372335628515002867277931711017469107279105399000324965147160211144658890097881828222362973063777240174178506453789124271614451497367645619952148242159054062067513326912788478364444052540263609007091404804529710557482139093089441090212228685912683645016291339761169276061839334248046645295746305507705684403903522720991386626905074408316039772705022063150429095826104112196655504429203483707292623879735903994812110979202177711711776442036371536854061819417642796204500454697022326339039389546396023968736791172926263277138455774392754852050825611950063591786736283353853566387701726647624804635069433235408366371985524141239878014962340629161481070271832624827228610647826922371024068011777457101881012620747174694786789000825674913932633745471887440934632566513173148794188240216290033390267121124376857694873441655277721273659012224800530715240464745301615799055754795375932349210062624913066591269844962224546840000615682491944399005784550069500049384853529734846334821637829215435697424681987593080935079058850803378030114777879203401645921849715123630806881335190274347677529148661343283919484747074853161540018862854563475109519595205500131679164462889536442919062478871233866757273360792173011093951419714480112421909318775032948773235742179990562186287577201792270864493964055649196082441661526553314673378710487717587283981005722246272473255636524612863264235002139717497820327321237818392809614261426327986843946605584648556983853265507589191367507609756521736155262488141136248796378667894939009564105685919366260594487292603803919640528448263478260965688976734690215836786037274162155778434725046306401396804715954956162939299785006625054043827971692501290680981788762429029829974338008835131332501419155488171337097879304318739426313335189063958345769754110758853158021306892893216565096890218852535769858778173376253779532563670579726297285004622601462045972832828223696607555048692435569590383802042012041579091225648937563267732863589159495683740992664512566083552558906743856846302338169878669367359888243278098126720697566723068151263692520104241657620574951429119761644476370168441601398462566232594406742066937361870904607695635392256814758328497523364623387093967250753849318961911487571076902078715550232987741047812713087968529673662576962588068811061317695034058129001687690639961333993978028746316207328896425418363311696116248428620964269377925180716565105869313141586936966366177695797158353500362264692787601474631300857811013937932169566861126315177949292491492379234676202104377255399768418250066378964566159398612991242702240603687605981034167218446215316423417243391593398382907366319006864537983564557459045266700048808322884268586535861526480096625804716318382995230252901396487326458031286196589352537591779905856018690108005849407819894430289939536811978941896680909821667663654102247754219062097997837689888004874134931166707214390896215276182555421612542735207245936915688547357546244705524300684070469977548831692116380982621586407840744523049266445669239302707356355208050452469203376135722566961187884627779099543247934143376393408813855480949292027464081392023327308679966487723405828261075880770058049498953383595843958521317492206004765676839238233176193351970617524510528451727126146053274898858634884623814540796887898310221978681010453087468664012085844756903041401288331062026903307820175376396802893173338325603697842990042441407955595339959634042981291317035699761435663772224206790348159664671424278779671016159390679116081645458260836830524111420600791603886751160098289625692741151626013287134507333951916124154709491923123637705604955086497815067157288234736921677200679728712390404622214501058117761760626869142684745752269449061352768341423256312506239296898769883797897004758027718019386511658219432877670736054324837046056927381068610516801270996619449205332010059831067876842056437315621709475143937611098921842746271933400814373926155128105688111957457434231736944474443070111465510105511342975765940746150438551827753471775235578342979936275183959826247223152825584252656720898391126413440653489317305502696127759726867685720786243146588021278504038887677238782351563179654901225034001423958033854194328735125603974114679016694285317794185034718245880642360139565044317539644496517903671768815024220802255751855552183632951558544485737081914942415177760096056510887815202307496497651117077897988263359998381624012393202367998530564925575191635568365237402465335935859079670904433643981894334806088837438517564086976159888064982961718692141583266350483107961972593169294279434410200080086950340890161226267689072982384494524895645554981043967437783087871375318406180202101838311656020845282496098114232312472269313744080165548074180269604370176036506223089020706233391868902914261895495139374555597823095789432245431256860189204013242794087871430563537881077564322654208378948439167043889721963037085854223902830935006160308854458369105911061924383491798437344092917410855594923898416657780601047496080236416811358102426877441751895678032055701184154888508582283618200677827684876221799062249757583037156222082808690588197216808415551368186565904700971830840111980691948425246034599200105890577097664042222081948876203850931907381701393204438949702317986290833080039138632530821718432411662429771657507867741772066264270177689033692093914231661859581561133372352791088534365809298729689812238576671663640241930076659337646106321089077093488874031909983174361306716619351240944242839382671885215960302630096818451199225792281483172034357415853362619379258572975082365414446120644089088521438439034796687647114787675964924634977049055659620354796734221099065958802716868549533505155295640488718685090032014397289069454579163053246823566342402127188488471862888606408203476133495184191420368310598629713251398002196104361098021769500181025720374046630676641461434134564255169428684021075270509785970285342981689706935362585950202338905165207080480808820149765420572902913003895848671230697574971040315342318508885203125386187993620813192345022636321444850190211924826150465218069639698435936018252145416987142095866464398914136756673929293394029040015880170502394450154262272178173257434391586082078060413542680951745423102967737841872052755235277025490853117620317745849678137756206272924169451638491222795420081967923698422124943713497441158559089712839297127880412082622830527156176677458510803294486853375229300406094199961084348212846380329725788494000364151586533006571471712881667730292555840724777335105544171863166258190068601475174048160660696024751412148789955337199576657101851725362798779031868333264912154126040529518759175286520031793303764871425746259540632766892170118957945007280760367727781454792379160479336089267730943315263408440318128754653669743152880698051971906566477494990322702317938371752363389730943001217380489207818574141111797696448470634035953859292159718665086272336226081225081088875347758638226293400134564729608485663010457931860199539369956826301166913303614996065628505826531125692298715456153122075900083155675514364751025584512476157152960726785392005683870483016700290775014047065923430969037328015613360256030653944625853174758425625132196525263373399222208142893285418477226101387140478498279121428587276550686513596520868329391713802220850251747927079977519522754561960001014857989334190193573294688427806602932810095857722810551512252727766025185704814576157153344493612571511545506215299161035935151572911560554975029974649375285790593484753651552430830130524138430741227869693615382340434213514055142274071170631379632490816929520304992877237285807852185668237474954192135938952668119784458780936014336398506584906554722900024781716431626875800737986817204767492237771398217655414108914799196657538488503349467780555254246504748310532220436154635376499775544175490477954742205762586035496608749977866475744763793432234411663030395804156935273808188809170255303693334286424108739894650852306652490330824666786011333727884088630579523842638717919085099872662645968963899450155168530028323509356502625606865695980257035791666022833077983529126537414454171700659354042982377280427946644904725991439546396250170461367402263360186793843515546779420229413462462164716530698181355830675711134120470458209885109407235296071900770655113185218160612571463995765998358122470910940527448238713405241301277765567538076300191965480394858113637090669030237284436899863723702500962353917414663767406722827373366956160160827693342497042632414309035222758759258628685803697235501121798461460643976522869383998933758776285055843467092460250577955625448285037518263990888065141009355153224779620873086582561791999500007608209067551575303065504185323731785663215330427522089475939526047076167734452300182504921743552981188174263733404717006309976668645938030700398528307431653613936797290855033794929361144166352208550170772197116632892235826068267893270407406392212902136955788859638807492827479718809318931858919855524715502927658522820299362301321196949943739199503793582953383074476948792471163685206134393214876767732748510143475793906916443901927173437796652714535335341821761738577695138397241865940127298273246873044361016469018203893914985635038251325239480940357769868343207656540346734391646625711611208228455826717538413363984869729227215210427834470605764015779768114694879745416060658212827609346730674399787982846015071764272712337315918347122384599727363669935007917116006735861184978490827142105766155953999896735980500849889045732023631528591350652465851748683758796373109652434341922919001787364882429880865792953126108852078146273276617196550075423418485252578539155646524314248096621971851516829650992393224458073417129548094163466313648716783057994622353486804149042933132943697553687873339075588438414968065547172053489310605191239430993461067944029553162544352645311245660159698269969122166515592140939366228234900024802829279062513079128661801443735911122470109483965578575119235024157889461675694438925361957668630541894768306682602047400838375532329999917494695573710346125310942186463179961525713362260677013847907037159894704918181830989340696667047203688924758406157766156102626136934457306034576163061530561060072637448846276365117480753148238946553457309054853890129024641650027949217130832484228390088724985121437214167335679388221273487784688479603027880169044291033741599204496110874870480690577501740147102119780478871801044575618993927185343621878881737156094965886621132968021528800625872417905533689857776059076293294453737976074501669448408684837145314010015512855582774501317930786677811593454997873894577711403812486448222233080597518090161851878930964774698311803210704719563545528299140061286876073927717352960105195205581890899556971704132271079212256979165855166713769210318298035152062294013017174976991910626519603438814533269196033138082377237560983834765583167579123210429504528212542291883643305496454659302850334658385497869872467598006236582691582862341455290390128587199283767444216856310501198540024956852016232236875063725356745843643001643925438731702285834699817162828323702847684330504289339045846392698621202639126706701143783061464868455385939249577363045376806057456023613295524429632075731193369526710509153863444157794353018469859123087773353718810116750893492526055099275751191301988300719234145616801391930677190275154486464920660915195188017143510243829140966396242361990419197634943496679051916347076672668915493583986599014116582293790472289409078725631470827310885821207966661029479922360043773642438764118197361449422605402073387021190309259180971744168511781855394757387686895929065026514295539267403165211336940953247796711692213268800884923687470276222228436435620092876761202640919759306142520426293699373886557411603003796102642699349517445243520851950206263603761193955877465982885665283751243286748356255564341961777967465438576561576036232253510640340008567284482476935177140832444528499464561132640657643036586891086131288301312076648773940707909436927647616648229555501019875599300156508322480844172455589211014597759389379171894849831363753138327018453181287209477349771754621780515278728114898568281906814728329781824423298629254614747059084497396010993299173464137995543597514472617213583184408297790106494144875382414867777035141008621987714500043033894098193605429767620530077123649382172374670785225018359518798854614610311183037738645321684950935124694671001454733508537166005526503737828466356282231310663783272955737631216416941136129858724030623129870857982705790641894664455581249902650620872783308214687404906681966048297173093482055715427263477540889778119808048510762101612233198796225640265786178616876576952412187402022720046004215594581306204462595787830273001754731421352235488162786712918607122365802898952861366813079461815096031438435013689019672900411477980201492582741810801781830199132439632891760763854431561260028813230401015052724613058106392268908470768958157475485954596136043136965451353372218078441643050979198064814127033769005199896997583143954563733535597577018296210569955023521076757818912701486123533554941998299176985688170404084716457988888011627927037751814617645698232481107469960937976270891521154629062502608177381763422061831054235623879108254276863030872849512665853134160630741263382224388490210361470905303770725459289723498102928261387917330311016875613714905632906634804225126396509057812521207516660734874846890816706942559122426356595287879461413451283844613256007200443288583273019937062324992147287448706223630673165151271218318814673178500854101154422300165901113966175682208212503828875312161615991613967413378441962998009069750651279352919143147843320566089913382091204760780123339205823510894206018623608667560697007777332351181624441755640004216356511020150762841555737682005634803158432473356855064858295313411989869565215920393693080362144782661876124747877931528579263666942450466648603002768504016727212440655302977706548037031441381100654051888149397422606341314217295267087991263054722646327324043407551692208857153577264861222428252893021511399931297349379229086432316807348103734311381312679375400840004319456222745943346413624323905995126402039248714969716171841204525450448386377608569256212390532948380243931322527241390248650025215055652233821647996672799084321141169581303189709921815879490046870000803387210265209988045741355775888263377803690175636581446101541700154799859450272691398371073830304209802790911590288131723984603035023906799217983631149448299837770789386421009505351152617788608755779160900834902775754194958099770711303716641885641000058077914380462963681021479374662562826691492099932120239707634505265518537084668094028674885091803007214205726797944540398231569137276783532395908413233226246786667062874044162079618485620185838257800139710269358456678710305361989925063896078119186865059130321932900876370957489970902050063754011489038441181178309643972182388158791084451107437910435907800609929105442350071545829699199966524758213907023917375260177275504530101331398363015178896059394761290255981926912870981215368133232368585578749736094846758600941645375637199965301767118181501362294438833006176059148671819695511495766272951461340993631122078527855810158598119462447928138246551999353205748652915189805744956199042757949417976777196863850648711721425790163136232792558119676771097688620502315835347225155089532426121655730719143315366872786868303310375799846983264671768063762167969381401781406763613738755832091776414570457933679291676948037805693469643046759768708960237452577236147610642803617556011315143659570684754850411090437973507367272124618459855997905307739040455501101773657666085883626756703346109538366904583055198718925696647615446533381229137991591601230843733682621498353542752027727055630612420105272511278091062559688149576454920542373232244658265059478749836000002260453969456398060470148259368984360435104240496175490489648714728550737534551075771634572816865658616007835639018266834449244464764625953396158636106191169562425535049393075801746399243992448876784030235017824946452033977692892833105715715102694374729602064540402314577028742059533189769988206926351863978790190734616961255286974480784853422010640308158762332063127943469576698496857018348488027277773758567522806225534806128626070467366016647587911562033212097872935261334555768660853765067520871331115353947691676306046436588059011350668087051622377122168634909882783511641779836190692462319153652327097899981227308908735394790307190306466402899312059931066016112196891829569384693401104830282877866340548974892117691929694731578821562122258408530945056129061300798331695689586329702154310113681431934684773418727319748229452952621737987454460460331443352188109559829757358870054691048742789132714503784266919719169079852620431971724924272881016141043901537293904605128065058096770796080343852734515868104025196840963596902607659533680161824978682283720782511782846593582384208883665155994128815887023525885698752765616567077825630541178608321063989459506757330237565952644616783778796817881213714667201462157442299388863962317171148128716761350222303663707674681868678996066851160084440300234393548022400787037203288777792292837180306279205127156664327133452292616361345156691882084701992695726388355315335065072504573596526862644832751291738837585415880184507114077118254760383039915938467087587495028119915099029841440245380776845546253849046324199030563260116991753074125319761853163906714766000093404037509700264123637784923844184449036086314504649003363680378490731499281123770070810363906467481214813719569187497730489949213730028892519823414501202920134056208949707349134306999127731080355851818383491538259463451975119587546604940265417746855844965021410102948216924344254404901137157263364479824840247970962058014213950895724973727777680679628511499019182975471007168158438977356154784964706043197232041883869941806439926419288008525174423594560197629133528148197268850728676183241256876671615480333654883206076727356266927245335513052554111968660777377939129017125505822173895495071325619029540718184311463774687533269058434737150504443496338788375761427968350129429026797955920558334288422614567940678851284109243822096982984743550501028874263618658213487334434320926576460741388944200067932753176739080364666609904537154367411467821078843794083703462529856333841308604527963773097479743771006290782545296136370765068835961302727683062548255146999209789001133154421942076577151761856101100261004023338468774162611532837463021651988594257241059910119328274311343295773355478333272857605125851152859866056748478832471429342878419015342674281713225040206564558922392933423487295209450182414102821933844213328807967984133904808401832894568619325859107685354612262124228180687659889144783517774304430648856805840789085364473568100622663635680464650467452249637827141629945624859504403809465388647787100564904107013204017245286386832813560576876859914385691316945502641476692509134343479498661777939169163597213946451052257222413808294028755587169461313785437287486441743851030151672050414867462453219164638593456291485100002778529328797724747843094438008315578786601414204926291751391234786538250818721938690554590580475079120782850222637758564458896681985630595126730433572937014041993412983628286720462481525342922846078398014683592973267227401235328279710276850093587482583890546918683377595616926706910340755050255520421204259798522802794665138946509284340809687596774868092160841482461795199732826309762166001500177489762236053954394940970070756367739719720831333348815819148693933235958424475755046096716889536372964574356363494203924775718355635305014754928904572111120579416588814845478635809975570242739946056965875885288852690196586858335212056155913492468208345921795325405625903692038984496958916666758381355714427841780240443757208231038995348203595039839324451349038067929357907960836986736004250013359632339453412534147826180287490012221974536082212579528510093014526917261909360812796834568247318201758109246707903187955154369315586474012433420846695855368594286713271529412535484059536837220784159265999162390618043041341274681950433525603494457729211601886026091277029944536329344170282282614680013191318941386395690762471383423222585379895924390339474132242109736179669772108720991465172897329691227021554366183230217016486150103802100759103277470335920110261843185724075217971311630064439618669500980611055759024301868721365313784915765568974656568158771258679643627296297262407060617005149991977720974938274552174317661870595178378872697456940850075829370384433870653167841406429757396815582912298946995165976903833707682335405686171552584827776603835604150333412773170352589752847101408776001087998131995729226624541569870981402975541261712293080891777373345010401288456364570820366058351306955976431114974420157003901063346500999297866318594419720583997336751499076174072361861864902996888990666122061070275440006945287937591468266608925385302760504479731529223654206547793482659386478848495786664835807152887392925674177465090428210814842941452300760923090830879038347093358456227072667153094478814196364021147268231921925419265991141132029730874183128026004777509517277623028914147645921981501005675774971091338637643112829352931607247037309708460734127648452218985679578085878409808370038299486855453851600563481093380564950062271724731198610110525661630565547555132650557992963277691900015153863728371748492800197162817360028649107457075219050216625530299020216602141059611908705371795588950283255184734359861589506358765619639917747411836778219936805177313654702434153722409025315717964866516010252538303809931463411706324330427812220661789820961213823711583627838992877930987856131292079215183357784189388521863103906237849877627520855742885002326492463402205607156590363576998834207558084725188932957084214301611803478350496451629867186593344436002231721236813490863124976146935261387616448344600622405597110174922439401732405575851474475819193462986518254434025766947356569537459298544619315891928349668603000814412509768818192147971843694543187913812794637880890869616279263198504719726855055803585867313108014014289914078520365137432586199489372859727881533185912333853450045025520196266890214448553498629670512426965250710821362693562761537081710045416733374739515348153236313766327996481305254219575183232433806684310736930455051417207732297872293906470664535368460035253962409260930589503593402566254754068816691963070935870286023149756443055103879249764598643383752027179782143064231269176103008948995410824464170083145449266597285605195336894699669952278679802950472684212737590926727682547755272516805867351856092690553376674878294307971582455280199957035710787489854905851240222367675371040650571118984435615687578510750759373853662607015002586019644691413564564795116539180634238188109723584040322524800164369384796344997630952765049535081694052159976598714568202302908264695098338640730039282823980813622232431156044089433321010199257974904863100284759906539888560449893893894202445791241178613709143850769189786292186719696576754145736070050975012049627630481593962390254146516845570197195179659864498864494665697039860630494801760414022868844611918651191226184067786961293272322816169062591039519872102721084736303836223979083211301251908529779498669652438097394781965174455715725173047375356430832146440762106440552783193368346070609613636173076213562297414698573994104063894392305972990075985752698125004129707947073511610798452796501172409370856407584161620875021439786598152399622959615105473697952439632997814716853265311284980456525679431020196117104623510261052700528391538668713348653882647625203159124607628247587241954999525515095821283751759847027878223734393717733202577752071516960159522467832091972334487972041939126687347310951575316174737794233033343410492439709729073080091997210385674180687015901187750372175634087110564843927833353217028811402225944597812410221660115832592208699207113307839075264794380249929672964944935101080655556796522954727375684075102998407551090388171046658318943409124983821232783567379672356477151711022365428066127866871427932380590850648039258503536232547821818037009205127266941117672495629199031922080011209116598957465264326369808933210057383034579582566901229322784697798473333358497359612161844064536335642026346926032026727456030050448410821577528755490972527833969706280792529526119342903240044824771252637070891426456969618354694727821261791341022619062033669655096446617372933910921363073490005463683761770837000933813467980329007710991223105548556228372636320681694720621790150462131066589942262012432646109587274964886076834213198134351919805322307830214067059185864895887751768331803376597838800287546136258396765908516676323686429902483697745726459378519331895445707076603640443445546630645613804490402628973204167134385084257182724749695873703641342286977991572970446688814438464198136073092364322896742094770202919939635154991488807631986219684015111919956087001356617916172200206142379625437994239804519381516007402974389322864959051750628582872024004007979467707054657968311919927110528971423423342314063995170569315694086234092628213635677538752797056976976269558989627337294989285012270716856302245528854196918244213899389524583465404869803765646215372407753065453627922415501427659032116914574744024697033319499328837643821876059947207882237031864294891131717931732748383793104582256313462500710842986667083680300128594315265085509864628236961322008046476042357927123565581621376623399543995284454636023325333915340237622409492442061948102039587448877166042301704293238978186364278477622275169722154319326971616212636671276407285739870788051422115968321532280960183195051722813974206375308654370359543608420555027237504812251612764747445198670328308640545048855599620854281514730452552366802540369250084662214802034059485623915317722197766817107081893869556145972432571212744782054768758386392338853984660986243218686035089722321122471859761487715389523967264399802789931740336610072684619974213120636315494351982684578325446564195615090992864159553964437351171668802881267544362836916850257206183282895018035201370305100260980590081609071548089387816828299696430382935603120786981528499800312134318921890706157627436086494247118349076280562232129493004849263325195245847116079134158506218680249409502623023694058890471557646704402109544580593211422565292476691410714492289621557940618525471249976143195644903444327767533221392489418478566810704286311170452896315614012896975004779561937211851520509456745251700028946420277513916779295701794322256570463638865518715631456897573291188633255513131558264749869298926502034697702773776631797202973533050798524574606182046123359763184087426889388129284762422248048512210246859618011701792460550809564479515237856835543562992057503344798267337117458989473004380467712507594985563241321250035629919058138173417292036396871086861984821782909909877782570428950004377950470373804740150957767246359361768442813358510232192359084522767017979883154813544084513461354087801397859908442891563462871560176153846605694819331486829460860257308546793200145297523161640256513203753120465340288644893833219070117446741780915467213371977251174578841873518558931934614310878603048437184469035542211273338412451132234055842588804388561748326634888467960300228101352946133372815295535432886463970416518186957725510775089785619422644998962561435519306166170945117389843957921072704877740133261279185098758416318287801884382124965805787317608830888065658396131713619910214315669468460727339898806124468040785977363099676163055161621355155000348532625911582487123805479101602531118609689437312868005441697031010092541509650688522543264278554724757594391554063852364433984196603520624122275661941573823684160384162197007093525750158753564766929049920028625199487428251429956672682912366297240131715061960278356484691652657149870338896775892115795188214888727370042620379299675361061515942253028184164583527903295888016398817588783571317444615556486007822561802367696291879455164000741987699810490241183572456846261847329717319098542424582566647055633673212054926700627436732710592260278763307641853541564082648844648200191565522270316001608196824891125484217026272291831168886643721737935586463202180558433507331162091248979500951215410358781316289457701125185606722064169494436413829157233309238024957254796474124560376273454084104962700815174747396337839058759071357088003795106137517910092150858285502172443317792009787543915711177132925367976914157035589041975141820540602218116913041753178781827048561597290250975700499456028028485380146278659771843167632427304011890508491990062467394908942811182303104767568883683876964080291727246108490954157001275499182403415661721011711864699481464802733521668246675750356919473845517144161143277254900836396910211199553249837669493225211032511145139421411106963649951350019211039375500954615534442051216681387059960771787637960128135636708767324930893214142782762036880834053632962096664016024670404026104424276733859594859798226615528214133272380415005909125790741883763707556977535400258140564499106585706532092500722061261931175205782731680152727753242870739241793019082850470376884114397197746448327486823148773867304825894783089114686073910810873881972892052395460766480168323882228463213018866066048963816540638176442068684437142507616635345033154505025455575176419039394279954743437589765206333940475991960729478954766826791729458448919066066481419536198794912414912798058112933828015464991532320926288270443352258187730948498328234251418806720660560515380548173860311608352008845483088772203581082002009899078663012840421994544343219253254924544166583419363772356701318227198904932687808430176376104859625483140322528732857460986004051370673509762830749256327379338976332234266859265860030737128117533249643874251689648479986617377565355302931300621541439696178362793642068368624921244358197610713716523620421014525124294999956845706710534096161789480444158001405285133429266886154698841079347801376686032142217092191678130152266305601223793014800385077038645602452818458026596985601671342025908399697177946929625636414941999070520773201524956354974561507626307479238226295015388630302515540328581059859343026099849033041913954927251568210506935918602017918632581379380283865447283808962557320167327267037174583634854515149047016133254755434881826109717488811649420133209115592277703793748588081494759206064859202619591652695062058194717359598617065780976199473093624236906127190873406024264339233060951694600962598651964549921357578827423311912864966238388348764827456362468451181192573926599799898507755306821243989665550648125615218756288660717578869921876962576521866443885113781916374400209275803981315963521858696965021792301210662805348226633931197158124762539064123248064127209605561453995639660558306549517158286759837685233616179404468287271198065959998719630278741319682090420934624831786918685816055445013602905062614096888496195337293326776581120923476890464697713228123918175915506496874769827170491288435557596521852240870890224953525509622512793016261038648343607935773454185002616804827264879237647930997774942508399145296877738603931296613500520291198774884143792476967591575675850254241494692803049856197526320595296683327981189818188233254198112149311294952702240150620453556686020407830036009106122521254006566340110289251010021972866875076275686773268513406995599606244999656496768172804107538419005632377075083157359963490037192243666812376824149959468248325607701817505979355108470939213822742130094089607013460031280448248916512872744661033466973714636302949451492615559180034751514663930499093970435491311218171156709706282049351968748923513918480395597327166420152358309096242937601034423633110074759954944001739395190330265051454533495782864171689953671586162354601324175623401791552499779671129729295788011686264593672696608256786266373237290128580443088367884543498030948892892645531504959099223056200221370611096171539751028493365484736515655745378452220140155127833182365072124770158791987084512558717071327281058914064054290787458656898953789556488724191315650585160467679969395908086713065240569497829240372441610247867341312848184757955258957716464637496982064270408626267687581896147215950290064752812733762426259983379590310040550592025950913025190449490240856132673774808165614144526829817728214933136265502337446562436633599541646963635065649719592985620386266090794650539835423585841061249161538779709067697978760000135145342676338263472332754738562544022359651214909616315444973869264772307241896899661371992499127614883578693358075469908440341928023746368221107077790181137237636636522737496014135496355568954041008667229381605430926549301841325293812418230745407754497074674109892583272929794378426926032965992038296786278960098651776229092569062437049936335996486137451453875097958413486692340136058182261543548512541367377272300683897620842341276617848508643850048381108145854952421718623925248001932699184987173478197268174289550749047892757731861671193940552719574702134118425320938766781142053077003164964921648632318845193590194799850585418051156382206301391982345816795403278028943961831209420645710069034515541065409278943294543404325539674464184639139308705900442846061552680905881776733697373144569352751121969032967000963120195285612405999609110953883712732555797309255891325881416788306398839971948034636085515379242751358939190064821098395708247402059017119449830860824301265931993972351075423841512710036384148283095250646145283930587240531507171621226827667182877891909430319981901439577082052351981407859006852790353618555183079051418869073759729812797644187471749844929318083289681855761498196878809314211389567134217487350135505496719928956948741490917878958774503718770030894467498014999127903849815970293450486724297879329327592068804981970000274263245870458226740686485610312771720494921133444686941610839414822403393167113238073954942757721024546108306805685803658438003967806357456703425759114121569971762432515943348145457177284869181687513486597299455604377626529431700963216176582108738992339283830977968103641961708817702893100960178949832100616107655388743031367685145669717754678811292555612534910086117195401680438500850889461535262415970542233824830995856590954670440249583477762371523768419391859161846209074300515447529296416210671344986077962499246096438366680107711435960996748558398151578960374642666836858157316040380917548324051314155865176726184663246930020635465621392139327191436475174250448190261856934977612183517531926018193914176768940877670458427724661570121361502619494950346811530957798605746098431529068823737263105782549797360721544161484942839830163559254994338041374431447850148930510641798243599736273258195764648561788419764802665714674778432900741121754651201363376156775083809665505562447021898502530993906528127016957863627640796503464336852902008442561792999469785191494160248195028771962567207810619222275361229080584114892118628054644564966835219834522596532373300081329290364435574492210181072652277917687939569123648855318402719210140852171163461749259190726481088724641732893789623425024294702903811539050875684717353342138279908076889623901440105108838595126019932127074687167614660285454280614954516578941110354759403974236611728211081372929096144112191257350823844777942438312263454332322572208362341163295602909251768807958402065496937365100600512936287179349573056920478548592323006024622026216982084278977587941950963486311711050973693462522412754364092099354343824466623150961291176037025147865326963977697462810038387762373210979977702012599344142496213447907968103884248768157776250291463629390446574624180123871981625349100006704026917137617763824894060397986530204202373499436204736587484319856062777981145808757740198903782994804554589530488675215335001000361769401136564902689311316192068934002279219619731613036271567106493700796589700765175076651040980841770277482702803385011475426935587090369075103346661776081585199978067262297967384200874276520577685644481354961636057238406378982709986670987251548134297628093737166717782660974940445043280079476899324982951608774352099361776758518367764219384316780086073508111967480219094604975467495315495152167334767259038042685041014719312510709194402352697065487205420407396798811753097387549862901737544064564546361052115238628871121623374152290045862216741231197877658642425401891660521129022730285251006337160772742187288003801401356568664280052168416513648056886079937851838520633949762762409845195145452370865905760297330607550719083655824343690167610962109033941025014178297984779876965346141383205995069853859485272964616464218668457548388211452232126606692140476484419370054085407420165726715071852674615837658254389932882706081393450743202196646891203124943730771148497078478373854388725016224271530300669122864589888448214115899073518494336037304424696533598049082144088057180253143680828331545632810603322844017645196857536376591669340074825401099879274917710522305650930506138502182677296146262297104359186927049413241512474150840559650967236118258782293330240967231219813383083199656643079428926496346685434389112184815294196791061189256519924281100704173373257328600579830296746389353094886134987217637473117110709576862827901643522049719375802193904253624992638544902382737775859642234489016839751683925290711842455708954534100053485170203135759196714924523258183121915939182828159339400088857274441680113220217730263087647676368113857833956453693449280005798264046964125108463239142159915619067179014252396975559364645509136120589368976667784434160169576228920480128886854563174561697545196628581467840643480317095463882701950911171079590039679471540306283003881787075544847679310222603194726561937020425609555363507128282520747440018084190964860477526316031883690551222213196137604982294192769751774044978402423559076121691159715438163526516676938060172635717835355844667905360178654783198668807897937701528134824202086774692052771451328417568965714988328754550746626326888157749631697181705661168731157094706682520078711037814279316116113231064195744413893481600902149447344670938769205106563285821886611881410310025583139745635538189308784015879386153598112058453491110674671038240462976334007079321055894048319982892988030170855561712946991603531817563113287443545588929753798083499740161250050936597406564997596424266485001962549482510650168135316356511126440739374169533856745546874173129931463419426440337840188234221657214792718987814267994640169208515714831744826219382865734432623146569571362854242980690909599157243140154246000223232910346163903747182107690601956427243427861080525106021382252554132790313674421011915042567481697595485486004941586597252009526045298838901803120860168776001968331635628174982885076133215430853622857047398241667030430158890872904837484007645775015453614818594301753221057814105509437246615544701212787286387002663513717230484510661003618466695711016783300779897474499074641148831716985862163604252217427002773849337461832403722782846000348702249775202127253775568410575279726683192348077756117391160272805066150091139994033965932890193822065249456665624481986962607815937355244515470722398175391942102727723047041173294596942855214177189495243873305466812392826488671338534930960017450438404303799554317095204896173677832932227040741401526990987337544659815662240556547898845339615447873167930770540553639463167529092695896865902667068876456726536161561978460515382810923891442819131328506061575613782630904132363424854818406530643855741691426333793071098725237835784639620982387561615395374438113802941531045855587473374884183383292835317868477792010100910037695150722712522779788842109810749532565013514317692118805200499873352887573487504172253866371994666482734969866642059611839258569797913356744132370652820729665411251927099019334007078351781213089412917231138695612397730927429355961394196861906342898668273130690890619653006542456965073947130220029664069504630925866913300044929642404813161841370199570143699739024305337531006452665742041942552169242245714357495368431909542639143340755931294112139253700087135191155559329245265712970831189287182621765322859200384349918126078408522798117513114497989878198589821361699524628929764547312546337099274225906371021294752454397673440612583277036804673314962843855862942013604387222169873334642737880506003257405089570387212864403222645224543429903262554443255679340635100456783725572579579259479749258665298879103243816021268916701245071267201867289967466504824671325313855992749165410661135867230553506087820016125284245313196754836453019725921406672377971460937134702973141246185995512282420899757505341955616015847508595507825729895741524910232207918168295878127901596713069664898841030950356760373635937290664045509713054138060157509049502477242981819634360505280353391892838490426315356310710796634340523347916386973641947082892942969488130956358504309240120186784860808275351047371680698874506631763431447161698293657119116901240604473203891277301482191956864280430782827091711202492146239089971248984693568531550199488466190717978599345294235492277468435357905215560038328049582614163741477152649964387615068475282695954921214884236893790650562780450667558546900973523030428892016508371038387276205019662579302438276073894367947792207501319155400284399560426185082423024428693359793920189602829108535010262106099898526064471860572317504738801797943370154841461649321746638599709641035393339373069107964413282744825961751573456911313311029824842073861683995236383022557386769709393345806351343682343382326929553791871638493159553777711356010941981821615107215051147559659514194376962083810125564691221957096376805971244755513715089224978275031731346994975244400554646944469846931872300122443215858910342093187806180659411978496470623167404734020059137102407629719390957751293600459140045619096706518782212964605578728570022025580416290390721957332797642826760817904916878059679336902421228041259790038088229087102531798973869716157774386940685838061203216121449925249720720683949027195895534596929930178303712359673495789666407298078086467414486753900348682809133042577274547919233680986743983489412443436185389828980723869098181377930934395169822584599128531212055269374100559152256333850470142781279294519259022601501956717724543694488820015527897340132230184401456207385980363841256926164436768968156391539072532245554945920329219642940252195465942975516290514717549449791888392750842663639504901123676106120289020786064477341264922101695944092662395455746554685689857971097143474710089565866653237292993619683389822000172544190288074191634797916494303837683858709011863737086738154601639850331764104339908524800753078993794878442076115147139126668312781060857794592946903431016075086036303831088464923436449367868952792622343672962566893249821610959316926622554311374700829374228692409343680833759500569513868842925818604023752327189895676526003225258749789466057951301148644379650859401729900828656282406267026679038390439549956989674656339322244545521303044077939481700807391596568291872767246011403688859993292259200436909629071963351127144127017745164565843207819521145951957783597733856178205459975747438682237298978526026795625520503894218342195942144617637677829584311041543649565038876602048830359985069064326877136012052523333745349162054198316068389496349746808504906467997599944595177328634004082501479950718996970590043448925238763203672408927760140755811661773575889068152028120800012956555207643015898224253596069907436435493076811186124668084765203703246408226161441287028193194024566106381903481572785839255176801636099814372535858561648881101364597932593062366235435472281713520451702194718357255383830419665288722758402832289778294904776055683002611933992608176642209170451199206521466856218807765826083382094033495550101201925007045163826058792312674594327529837009380137985472723416276691065408006463971618515290165939556135103249799539125799245984578767999176912487276215499353347502235792369433999494634218582425436875078597270442825583546074928756637918143339608761835871658833970763997033838416370256030420233457876145528970595280346702159897604258988621033296397403240091602426007549133869575656920755906494778117517165796788570084634954780803450306730421006537696198454290267111084804896755642195727436444741330278478507404920189076755345062449961642939989855098505075188615620671116933720635012029550792795538719060023882705651562812708916354502843640361831067394945297339159128364371558715053716923433975103320595102843540315947799887518918904902313071967470719591730165474184509835493252417416066978823347893196354980661042119562234400689473228939073570532636572346756331714921112390323614479913797521276654782956433210560218123226067904305199596352656605720853408405516505493485371552393888886300534772941474547514791869341869780524058169407511328758966425619887664806530861759926671680528134247832171120770828188542266684884108927492404992425031741726214131704985439583014555678267240542310849549778648371597178482987969808206443103831269903176369022443893126871446648114366808523653186564470171925337468328008702814277695925192427972895696134334781999853643468004442654563212912203013959339229574012569423002801481633312257981291807844289544743088035010213950909358325635755848669593416603900614159034907229827735625727880218822313146981402811180612687189696285599711602957171887906682499740193852798960698658859881445833502154898947459072143156252207292387992107479996943704590073051863509337052310811914069701238409300728708267768912606473466274167714462858338243434372251540064316751543081076598426419692322004035738889781977673529374323560400765275079690301419492292436085383626645154304989065187658700547846693648482299568826617703112127288281164051964305059935728210522007708771945018140013727124907391947553694892415329567548410426868641966665895214278183437562132338034246530787818455154237628661025719619401132499069983870248066262430111130189748475158245124478601553818425356702023649785230951379963554044266164370242422959283857653410651631295214637350640177050427848474924795298453019267105544560411150931397444486206155445881180403038316445205198046652412019529312600795278620008238365430178260732738576023179107911800379826349712295736059392161735472838055172959839578128960683735527988099241230380871828747802191434546877031538054802631311737098795508559258317251463554316095211621210131264375432921317120157924673684848859611557284737070420644006045551811631826860693346131501801871696958645132313624032192947293407965535167446939298140667336047082909109582293577788961202947372670891004831413455631006458051892804536646769615600719811498641684670475733730015277879833828837814994264821851732451290123324149112729999872655789304820141232418215278448124364210327866192236639601866822734482197367341177562932262386128358273587633881293492388652100736424673588898329703024266830346330472771381109870398049486568264558467039695781088084494156772990120649116560306310582865509640156960492253868424546680253936340320123436339785943628304648956970462251605562762619550443284338156126324769546799967033175639071037760173871675671849617592664697856078662189289608366449191162343444712904277593618250466745456218214614197662048496604973267592745087263856881917794870251829893626661794379813011619394355743819342360264072467265903820493102773891728132062669171251982964259714182509499550076894164887351410251569800668489469072547154730396260460933896677670306400036328281327505399165696974229228144950000347055136624942873850750711316668869095112786820721552443851735210686603017202683056611811721531502348579748643113967559432717901821307212576862660059096925349057776836169729134246031024521964357040699319493744931329991031117833022455022139653409752610936103687371067654317817140536099689275658008189481009073112810074832948756266129526320611158590944443651835015545181401669341407641109591996434247417463715880911910458077476354980983957173176175905315966880807665254078488347772048451804460953968763239143434789537902754170466414433255867761698830321834520800756660684890605423123082695949376430035413803154199872892069788877083678616247546228217815266206160697397692570716522493292116956304292212403095284326395639950416679137145552506740546222110090714188288819350316793141871427816201226361418808481990479481259503749443679782872599538742987616408138496131604803868562997719429373582959264918522253661928820696781654153876412839845909017588768427994608566240971548781095161277943952633492820285981453951924253220161817764664493167548420621907215385078854026981177269026371056395727938007844713893311887994078470253656739453193250026554297453715594168797176767173582161509220406117629413129311598292581101901051830715660951716352285254693168790210514923304007275488020807261608381833658039821370369676277854934416293576842916359088695998498148234030459255258568978319389395266719684455943154048052999231085061291318561212882974311075579796499321399713171006670964906718300649253673927073692906986944540046557344074530834469097304707961642460871518937260941708844476213504044556941950336950605781275263543961457495965803914749688424672786029534384689937019655950604459574471402440474161902981566206051084122240638310324513566175530017046917789714699030264402850639432819243586051665880012602668869212892579747883974744951493998079793368638929308072210907117315369103079193322717278502407734185481839675387579165890271253804105465939806653852609950024126001402071939233491165168288636277669199443499651051267079506031678414801887250307074507770956442677256320468053354186465895136596039193842613513421110093893907474778843434076326853181565729253477732689944336566262101055974664727232920527590582292355655801375641409374131458814984303184729141239903825178052587701898668716780123431661181946394024143101102632546751464485087019265848944570579933081554958740734466747941724231344066584467437206728027164982634569698866821945437845850545612308452519075940533318715504494099992629356127403092315254886084691054314898955725417746279004386853942973131056435299918730393210636233408167738069282643701840168703574846888899230777159953064798777969216821701388890545232863751075232647700704444079436146770079186568289323752556244184620594944042250719687496163315812566735291919043581562872569774078084780102343295835337935735548234963813882619851222489189648845736909632125289056016863419818265833818558216298228990657197357642533766187243021236798557070899568299833440431908676702538569988815044596772323815470265169951409149731605617893746513152370662263437243483289835526770498967870107833540057407269775378707340850729654471931123415932491543427528516912845694975213060939694575304729104766442128831192845624959656795238014795692879087202779554947715725678176818519824974870953100675380365604661896888600454305707944565183670952583734869471487293856349618384170284497428688738260563939359315240908069365964587596591122273256508985045829348896043241636856651139319277213081184938240710290789625554419010143135888540275629749734374747438199018959956475306902758807959120274741436264928379665793555370538202837167904193437127826549205163429038343624573442334305087957445925558791067674934787674526103240986045755473576276714272842469766618695844965923950460856867154348865600851592318764438947305872706145155490060987878017398400913552199265368266333973391513539258082013262891763673824657735222993432207318933290956559362588699517454193505968310099599551004835035287877910775184185622202908131553406523296940519412715774684957691770102552720662767413693441585800437693618059866650907677333844913476300449015613020735928040352677567902729073420997056253041426910397638169674813677367250496015365978424567642243969449198820652752745478215413691209003547152012698736304411453944971401378225034876536051355554686099722206245647600701057293538012527531797379273675820973206983336135808293554472914770687126713858542776740014140411306287886736219112270005099251562461119886526929417828573382987527120737913416357624327666162454117534990619340552988486923668266989669771569541345470899406792921535241045575420061561758535486295752032474713992724161380052658377504213002618155711346592019568056507233979349184680094076936282247885625900280757079400679313084132997073487212360783610992636222162500950117861916538729481304362556050398355302286504618328109603136397537131305397000926435938258654103577704668746118950482265670874169625903603792389319035625815228563966817352247065042463386491900403545836332362893223389988360812732746047455204135226512999888679204829035251479601228665039296978242001460937288331250877001120504998752222828248840193556779805878366777101995186754657810174638460413929396930863535319148879537138489844076012183354793577008863728729768845896876015012425706497074606255609369238346589736443780598086264985169622743444935703308048901633056756663537996686237581715673170441487537134898157160347270346655184131826165235365774494922539852138177321918270359997709155438793521256011881502460496144702172807674015761324703273037804995082567122992034506936568282469318426963365855894593656418935508117897926113483586667293511317013430710013305410327264952283871220010152803073371853909118425638074066565089793966990119528217682696966118687149049744637179224535578370054865596553099184287481961711627002317037425041384149244189665245976335828100601372302610776909143215038729663000594878513100053100842368106252532043851206049480994987008457314737213024540456577133192703950210553405518888956344564623306227926243069161698791401147275502899442225682474024497667525102308724119995393918266979115735600890960798008786600927258773241748371627578227257837027596389192645012471113481743470886352161118172805635585942625837293218263084160937638511075047243860780374812592724408240691966853975402722278809071447651724952154539733476520372873818894379514570750792313987918373916814998600647862789122584648880846928075430636683725392918541879108011765496263042253275608325808312528463894364134820624729974883937150999127432441311151758642620272061962775831608227388940626771744410232360660631716335949763804811672815959639362693596811403129022854963677938532096725307866479218518536936315077695416090091158535051106780806055829824207854520558704721018492291806380854996154189563541769917842110222422843628253128018877258196147884928533941715300880910048333553062787260554341558592438696524125663845626281195804548444457928301995120550726423671934223667676133763222159102997745085903492908110063013310254760623773028178605568579260928213897911235863685674858886112660250010814478166119407237746472185077012493590843945208546353183968378281805745876396968214383528937292684012327676542261984917174007436138849088345740855176288935832943965243140800940248281089160827110907131801345345881556748266793213967981103827612556945793702588611223203605802603671174145593361045745659524425467634417243005601404690167617893804930291688852323511332544100357254020689261497106618738025206414307952407935029005159250950121748812833046067430817344602482127185027093289584518961623803044533650907467253039808728125273848414474458638389216503108946208689303959419705738951327418331759648546427219765084059781057473709621525731410483285958725963190438760848262529640312673051463626991119662182946982414167057089827274045821004317275273089453441025482106899607675892034826339668760016901673914077415402948999698558871917053918721126034261483458817591689729995406306114955002085556328716114892017978566292488656115077438375472464479078449676772594310396977785307167436390653491067700033318683429547746287783788881312365466506598901951121416159991136286998807565624031902367461644772625732032382245850213171391113271764367904854721139368881064034483983651351916678389579695673114219116032862311699894846148522536446286253197821094663225559507624464784718795323657847200761845497232012265113585397315041245869746774289179520212291731491843666733597001134652712943650883742140373939393720881312936042148494352313289292676004002862735494922888381425225393361424585167143050114020714254046636576347298535628868959432982554844192869295404963445829446212047112415289112856251208432571868094581490690511889558245432923963870582226426993214567069678783475552764683619353375356285300277435414495588743988870393641613165969627059483147477200030329349830535484949183406002605714890139864092852469706910508995601725863532298083348130835121567011462670151779534757479743985563805558897725748619927853351184801523067282822756998812588536776978668863360781799032180356555358123883392831081069920415396321291131483138641822827561647397216833912477151994261488523257986851437524774861109213083940247264391727846414467903226355379836020059495659849769583532585397032201557581652671372660248589840736799654203845602568775529797349094764555106986647049845856755566840824405732378719145802953056679067909758926875119345770930103973428305684841029695172575992709433379489018576747358304563059172870272879210928633035981834169700584493100136214469619941930815296228184772366018784463569009237963191281096860037913637701541580638151402997879096485262283305449937818425272823542391898255761050189554866403011279250817775471641069815258634791107552717907588733221825794152008423370388806774105036503854314712220441868676779673887925222548053462184602870311674492185164334285426589808923936619227547104467496447414443546221627386668772518282293696124688656356231753528879802029008208570859887654878489018800867334079130602294478277907543097904593864366468675143321027783103789432535751566852093487608424800226604488335163353168019795534387898861065221282876931332539803432765824739202779678984895123517989903424513917126880058937964186432191948697992049450693570331725796374715393520492036239940128294931590182205695947876922999854527904888029286729280392591723274319046682765477238206689716366989635661992745432509542600855513403945388911271371920642963264695944069517079787411274558090857867023582165117006647240838763518145670481005789987200929793953841024487779814661407447600306066922081683985722104051254639582672782163483972418633303799404967216187593457916435225756391663001796291151681222287091327913899397152861885595392066060821851173462351409849427254060422726840006624208121867410879742031166627499319783470067221148353461332128488843309193274120313676177699153887028689372317014197917253323598917899341332292366159128394722573286460610612974579808281949569025578406973762404492035597017590635174854685258601642809233749818448462764284252144876753203139556785363445592113380734180349620450697835527520018718298686340605113862371538412956340766585772061925175947010315672780668450049666556219322870691577936824095005644587247085149838781075781129555970750621037637445526497175339046757784895960072192186023758863028996893672070304949328787005250016503514565352010772942091848280433312287532512566750314764571850545319886608133612421428794667803795339148456762779237974332027998487389145277640190551845931476548474471512667836721373037717817571103297248871420666113417606465621519181414375860685219581387559336531317227710966432782858947265382824740486133166197181893342008760252390901077116718367513694133468505375744709093657465947409239191463926915254413346044387984778017548734973971705545800524939958519266352958658901251647252711077673518648407492719506643271598737460346366590282506387328584192631392845595243414647505704406717481249525796877554852288119407987518664858262095203025901347435169553037661487808621401775174782158759512972332398937099548827314794134439008510065373245632131237604229269537543355731281892776370858968451640149705172000485938210041861829549570460373483773926236375809859721007308703801511375061943668651909452328815599531849823971722825369939339175403753169719454420693885509185576066344036072307861807508585539591402040860562637135016739650251470549775104979718839252511567110989582732971609907141168558036197659886753721928231211843029180659473993055185597991992541297667781453064964459936317103833032889067139833576782052761713175100990507537608223565631463271552989795318091322322004617215624515779205491860669449546378348448895738255516695164811308761207051887070375579095051935127624359932946703050152129499303959281146882769158260365184446009958954803145304589605786082781413461001822146623583882921683191244197739580205672006570799960129475983912795293184456160834469016242962372926214251328479492033195304404517626021462616385444151362845302507237797534317488842459506774291747776416529477540538756133711916955000556003639850859522383273114368133305876909134985478615204053568177946627532501403027739721977502532728036833671031029685132693847417405155701543343955112620098961230319745541811240821988748652514227304877409404090107297497814872453194195495858737886269527386434733712795938983038198970423200332895952023596038107272213532225588995862027629457835954622520843092110823320927563154053032684873552286837086304908805424686097902459519645722217441866868315442010121611311039363883988533165144166607766408679445654350232649183884763912731540596451272922126404352928802311228807616669140501378327377519835347470711820459613940609455525258548308560591970815435607298574913387693614797726999136355283947541572497694260643059573883665012054092478818287694444114799592509691310152709879198161486057678261284584561663726096742396744000445732663194659989502618249499913435798219958876861661183882908477159159645461431340465900254925029682462292915768319201287848769831777046523674971951283612378845834263222617610376941873251298633303965185031863230668633968925514636826477401831306986776534046953755651831187410450642515933097429986804082832697702200941142769006373154219389982899989518487572196007398784035638553001162367532797835988657731426497570082386187193584553416280597552636090926577628141597349964931085288673112961233610718008603928603173801740379239680315205867030332529901317090112913958276957011792988013757514572672815212255576231150411526808824361200101966039548985796602875261613611042541934099836149482160663782826810800040668530647134089185908930881103879394399464404232656496164405035962886740218524134840907825834622583812621673010377697310831727807050841124778007100654663218930784950102465595520903488014671675758850862669508482250004884136131983568087698063880374797292590865243167253253211832530440023390243774485890832850843136244602191935220477525404702186535257343741091502547508631570386983600779313900433608889454648033888721231289295768328671999295416478865919891048644539750747806569102329993681170462669363797366601437054731978460700327026029701178458988831778580291021872170855699832387811884637056469438707633042999601530291955871702465632670086465464288442703358069776635409089693459233725584253690371933438316354287874618804033603270519350809942923743086344544559608670572437117856600638312991930501583324201841700544781277444866937689926747625297301651182548807690212937506332699534801238724072101869167088297742106164805212718662748951081642687453989638400932611038273301967368068533643935283267847422861926412489031098153930287107813800600835246842088690302878630864968823163624758383747261536655854033103086671069046337559293510231110890276634656411594904045417768127798984761163677050399763202408152925180619621394097419385695645005964451412261889784189172836211182576358035786536544299115953485833976565150162270828516963017323002437984258577069019997803791763003650966299503018979862682378243645846253459320267350320054773716372128669088509026301507009857213241178299662454433621953987255057079493436163817861833688503770897657231077471721616349644782258493360592725902981759602621871571232495249209847610229379393906159696133392946340949200456888404879608894195671155025898014433103625096335689260317858673425238837172217337215084917919997393503000408480728404905658001111793923629242189931131868842177587544824027266218293673839527796289090544827800297989991688876640246635856005866557042638235379960649028278680507599589814628137931830282328845036495754418055805953557918858021950227398775702666007799045560486367872590593523887995631954982303633294798283624723202573524186054041854420494472310403057899001739281345697770184558166116814344189325516814113200729171167898394570080505910538049751430313798644606530727994374757736708374746291494990679402919434690877512083879495004157307590972510132649343068396308039251566117149163801769607488270121116444631128123818795104076933587268642559837268479712984206448031374791461938734714180614918815251029454821769969301407779928133471415464481629798435834513289563592674414444360613958905599594672317919893633342098036149263712160839449659219376689602550267020193635577734761950607950570143799316103812856091375633650906836214898418769709053801722635177864274945733944541858334072792069926923234245409792075185229840335189621425593531171217756625918956615153055933866645491277034367473825820036234619130996485460588828792643310215601045268280453658173347634314540761774837377545809893023931120450483331059801450436753731636523790882532354070300274079173565645652760247374907756289461589259043235554257487680093951298414133989490614901505335674879864540373945145469608410673113749530383694236314675958153365792876614009521946028206761076949833273708803064950224454812592507095198596871663830426600097002018489123982342524736674810735850636228298480310755457560697308880699673721304512335427593100381331351419341341703812169749353534163425224705085472844565623218022269803498526672330856337416918019048338798145514217818116241010298921128669354327862742401476625374277624763816152524433344203190491093007913358647665587129833095784356461457820973416847363001066220308985036779684711116413419603854397683091069604522671456921061138015304830328974096372724040631260818029492161720588269348618476362872391908423041213845633148730478445495597779901255679050700301276981189725846845930527678073664340912247568422720088159403712490374500201304660280165603078532163051826270330302198573909408597537586969944411072658843054903303015883912578830363920372032700863304168104029928396727433612743428792816569521769045832640927000618024602882033849232593114215726500394088802791882210189419558030811838408607045543507285421699978642873444311655405201723049336113822212160546424763356558918523657994457704921726925362358409092202859455512627910376265456970312785191905937221495746297735432729387077474012827344544525079503595392398068869492825982414741631265728767873349002906818678083636395873389257091789821199717632626742062875331208557071321231495716380718104127651078116838575370473105220496251869293688226341223376354080192519708734007962847768813997748039149805794698054081682471349947973187227104651677560662259027143328723259918692595893675962617248369498322123771768214496734100625039666922371865370822660107609223656324616040853012515253884328768760713473781975322237732897200970377308477298207100991963978770896581082896805451803626460601902716013915331354356708012289101940180312781258380102352020981991850798870620673940357124490855272564115103933227348408147606321011549172091912319394932527475093665671721536498693995429748473939567976492368614239956519440866322825705434183840815206085787343244919002425978972736737264366172549855071137051698170457229529427764216362438948796460405984494706507422929954489615603163876880674445158602411353381283867291688794184802454273509988675393063113087679078305562789620874584751412787189642839694583124663844352213179372421984950837805146349917893425397698954503207064693400025583314944189343978513241350008595933054372447722958889789672961522108775884512136866152622115003841272233877851479346410892638695632739668184863815476247835607766442803977320025448450551933905812690002765179188107617715052653443251756231730298996936191598791550701453541567743172474234608594121336506301610620434030280827435453131005561686018506726380478401304612493985769005894619271259423429557727367775668551768464132110945207191167480562980123917695577548161228196980385673346284635359106996585874939679922181022778493378808940052124669927397200756042535321984718806806861580568023794422118625715227513591789111532736024552343395267713983183958940971027579345496497599465408652537058522979591354066336485495711350527913818704548472994624312200638620191155667375412113832753392689947954055865751511037076651771437041245810682845602178946983281165419089239109273233304036131697716400501454053680956039600595160979570035146138718939836538319697334630607367607433792874074978453052321056693289215288274030959178244909486226059149208016686118218268846965160094255163536196150793571679279282738000684810870599528767151749809450399508739316667782269098617783196995281426772698811122106928286857552019307181102636030512035586313300887190646905794381569674848686413229849002514448266521332697643487025606229444382582975769809141155963778422498996982402683942548036174931641808121655583010356130803579488333756921663991331897756815467237817942093085139713736184583595086637116578818425765780259139471636548942842164288013620685790257038005481279749199974821016772280691896439333781374997410072074347167303333651568763913552067144320821283143902443554325492455695029015961430555135009000709009179144079152781339981816673181846294776531349888974819699933833168487117629440138625879164687850534462782170676231940238521345534804063324631759479088853240717756025773447625562606216279834063079849732376930674989869167663999719153837171081093264115149246915715617438946960223400225479393106230303729138398336448674985178867696987645971006235448354616833436828987243584964143959992333541213782476379330362692409044535807452304216455893846441813747324674370574707996727819412875438086792856622499405007724537032845752638884122637086717243039381815429477942526393133897950402053860560833591653763339387642480461427042155011251420656634570009105295824024694883858087235139287406740047106742843776475103137617368050108889657615254219651339134710878982215071703177027698054883052202594853637751085704873898581588585088495475681131188223609757456981814316520583027288985676074260700029955532327875414392073132864013279102059782526254659669820964554677012631882048778018916431544294253629999497163739077519677392883589978296977584074634490865396164088542196562934012360958703000226769914821142850864353483447515292725419890764964911245668916318661330091191375444849697863897693013188548144795255713815416405432368471552562087617738190335794187682421598941698231815398285212622892313314167488043978338505060759493333168711447078469422354087051050800996749210121993553120958554414660794040985077670852079024763832003354390226584464680589453274119293509648246318215746440821865679444850072051211155434241684252740687868182736368317595165982754284604788975468504542163981675225090288052369894353604379368108841860644370693932002569819251077722450755198422185952095098141717049680074864383329834850217760234114702199495716931366910138281498817973835616156109928063023943099191644683076419029492238086562054491932683957502297739544520586766057692421834609636863490301895641178754595583596977412447629868505042238028661532572422478111066905224745736895979015626130321243043839763729568205938360495725627163408795117366321276934879865922544974388529463575173752365808822011693280389236169853905582165657333009390631698542843896804911979921361620354727575544995722972506415146140811760927590391519986610088295353716068950435657446660766366759469348370038174318692176931788747932397874117724718316602317941734068845119653490447930561899161140130767480919873722419403450829837299695810395111966362701009800590855767835996532479025090317013119542768096314156976581212040962965392412793091182332838347538589187731173645486055862402617281456279892229151742666414371668360153099449078291520623015704970054827606336997954591235562880869928768969241378498534351466974604484038651102773810210660322963813215778558332197787425111758060876030756232132854753375318034815609433094827977827614882914645574782921419050185137502667341339443966596038750193558852713023201471336325293883991115883465729556619062221016226829810873857632994343840417725961811155070633638885277319259552221682678057482437213211257848672104725529889314026874195692873665596941188640005679662720170655110286167948591201843602828149346130466923139763800362173142560696455200521724834246346665155838190516360985906638976643563251740638374315624154594853755034387423824516045548686068754560044748250551018464844317830013032993182126323463021297085538402260864661093182378388380798332007787979937903670654653556407514359481744460830914251813155550239762353351205699224637321259187127288886050000515461828132095917931407867755638316929018761759133821950997715179300897701627673445585782458810296692430239583400053119617725720724182749617303353825344130695677845978634100108874438573732479386398388853119296624572665476612899089037922288969322913396523401293060837392080188267079805515143527504102948397597105576223143447850153253081374092655974386405532184137017104669407312633434181129970381842737620129309541095515823205969319090563676858226685707283399611912004040100112787143254283418018879117540763813709723231258717128864033057612158861730634210352902063223521335661467724229425872172547888409622118875314208403178012981235452649918662483784221983157552783126704443408158586994135955529297630009340804581138169206275751942272352061347585765981533487481207031768647607532061396573926248664864530108824517963137176947802202524541261016311620552729967885357668716216183110983001472400619121391248592110742710169348690342051808883878339163123768532141714185423098744740977470567940034385538815774034225572583620713286982148499861667640619826314058457389889693271821746752481837570626421588497613729335003799976436063102802508518792211788371171494394718699869197473148646252116751626119761146639673741795415162175800940310871626478251547834054100416881992040199261735037632412873067911539387817317404509331416475230350649973435972632127668093190909767985898936883687902514555719833021853202202085993937757315192873050990427946702069147553819616286400144479159615532836269885102013215733563256820870510792133519583796671141455876313223084576722510300078434808767975188356231659253106204407142700365428316765621358077542357262151991546848169794833397636649005754957004517361201192511952772109386749152510535658308446111048471584454938883078526973369765072401732174343128015846511984454710787914528609318523208434045492108340729019242488199552761765509833280850315539841618689787364815206509098115593757084260143781661186782103355463874399548937389791078660044750275917530189667888885933256413325909447344490549136116640746610378601442317161381299149103738876923609454754977764210692954198309839384258925496197797102943312655236311640485100983536693007653174715785894033042331561052813909430103433047984079393558992179294426903357598189004032955399061253487588059293143018620396933542922169251240576906543055128663560128030995072592230721895113512994439762620069449241001796179573977067954201091247132555254251219692705790941761334067105518164415915688004501512846178266416529025333921738529712631854073896523211947647104604780460630663010078352724898019525329498752515284507746892751384030195754758058374401217356684163485027440623594284012879052556124041201393417238007385224727933730159677267944920101900832835574785718216921078065118102523770227292345000832400102538254864022311348851141153202495458319703129540736533226251789369326069166976918753888936528462488657140726628845958600809607337454231108229432335511423312175423199423851683407937333485844539632304652842938696427947684312958148469558477402578312707593554874401348601928468786368988578360460441631365385666257967780225359338265060772762921049173897959634960967825818670343841784602525911879076404129377616996374269594386166081484092501960811875193569386119989361644514906684852208333037296447913349667013987208897835405125810455337957011615376832453840780721746425116767376555630164180821411806088656352626662914502089256921822871030419778195187265294309905748308476425987624059663223868415819464309114048528165279083849133138804149620522472743676930101612661430413932507896743716543142508562632524310992736156776917080886368391886132553906686962831418276016884650912642312523725988997893370229620265699195147713474657417327072277909328909413772407423399639497330532551642894602722857025932475404138271471386694097165966020283324878299636582963822258904539372740018562709849345875146759975295691006798675805987988811389258278520171692478581871976379368756811835019944208807849896713214361035065317568286905136419483135980896507111751087164358824576458902960348158098194497315182235221371949834610677362815744540469171727927347924043238113111743780863748747489648445120775168253560419269813303652443337591559736824220553717109670518120930160912346710774557230255737586235060127980694086825420024806054263278354692196238213143777064132314065757175467846505059444055832517423729518180236819334135664897742526162141244047704858848934069471141726949403635548596232898082475481996510229901000974989333406982833480451835364271460801567081330981903248936186454372579505805338374299003171136111902103823179187226518085535479026660589506838860049756156992443163543717049385391197322669892092686923038961766899770469431040756981046132033904817267980018965404803808093443118543580947883741478118351467254279533144811242022514348018344740904103413249013189112979328735090362834971328320652632077843199329438896886530042626139220805763202131671085569109425207300109828555447630011696268255853056096254135940536369550858272252986971392201671050164811241853365958946241099844012092709456039336348842495616278458115026455465388896176199603204280023160219665489581587493302906796023040485711638664727703799593391464891278622148125697868229805076075682723489540570041844212544212889021596553520315034155238630557677531193537546696598809406408519818150892645447569335115219956277121755545786539755009723108673468563063701674497901298103329037107153447329937144565175474611310158083747257475940012538393202480885575825988119434206902053307865133816449040389823376578892507442237776142209524769581525230367516683946822785598475825528775144682274753530336966858055790700484843095609043804097571681124892539709753610851120649585843692752106314918035514858502657605419337439179007540453913260970629413176017436817928846350214722337298939585934624599112222079871960152558494332841305760374201392628715681729502620806792643157264316125133686285666554870057908566382063114936749141023191724388234622966235029282716680501122672306744257719478135940066795389441222612370874724313307704468492747779444504647255451631961682430198875020325033766307793664519632744888700664817790167217210935353050928794256417165553024588777676182787998765323879591460386832139544229090043774736673880141406018414840171875781261675031194200757964676768872909012027465604983179808376002279255480997008279444795017343430995437068731563528293444633936096034773307339745277715016515424602753875594667578464455820908648298008118650058820331718445289798740980749925528362040206041049827365263700717905432541417694626250099104924348941719626887163329407455893606532108781771931509645950373074147152467514519835839824170877385531340656467970427552188581341282499823313965714934748305794755373962625482703687088744369786567849972736991561333877075410996065984963525828312244124606776438122093287737569349694294448886289057350779469223660550834190742078442361719701525325550070418667254653928373054030170523182935362770152484177954662174090165580098641944164028546734292041282361714748344365684666953296263655816158376191922849591119245354487395031745020763196310884518823778062325714665318467066874790473480240172778586465770601796251141273989193983074962460463518796043336337265321188916686466774540068195163777546676028472233356942141502225195365844651382092077777757240710657033361842361842579466964092519157580362957702209074090932378782724157179190641183722302322949300822188119714752527700627244788339026687281259555884374129420175147455557121827085946768405026113058230237013519061205551513577083786407728187819542084866491666799527750720180707735544680128518994893886668854651229913459509097066461143574694316750407939241826992289727086972592149478602640049217174973978573433668764906674904921177210760227073244821032278881964950382695394717990510294172047809857525572005620650113719961862555817500896125673167995046023888133938974234744746863756315677330410720367050906992104516374927265139891494584231801128972143221852009724829181514786782195829454394565583679999791109060693550273859360426591770963328731665531139122705770572019747210429431500806988914563444838205172194111566003199084229416374617280024200688932911612200214030621837882331089700338859801407691449282856355663315716469529415946601857168619501516400110555181649436000487407517085356451715292189453204967359412220811538238804996420829063541476988468360050762393187338382019854692856437467592209924892352290185736862072996299997616917278178857712867761514673347162616593485148482168474612614121157233016132890581126942752839399973007399208472337101979778341497686747335775331113602281249717069792890002607372735399862531931713612898270865004227890051998068028699016505061652230363982223262046286071637729470378914166381494417575463388956574586879644019047096245467518283108896483365803610193038276805377648735267275667357430574892547604872578795125024647453940814948702855867322260912043880205952463622884808673148924181626148911978346578193665870249412650410311815471767677754111178019216867884476343348488137192320270991274312544182261966996615337590473629840660626244991909659664326920814865604196629052011754482609247434710651503943203222429059331280443797741033701797487338781508062776243678903339650686409638112322520827988297277919894882031241492722387936900955772891075910178497439796815901203866297323481865546421503023111419963655425049479843537438358549543112249053963003836913938916523627205201088235190641874349395481033827450823716555557369902623620826665522723872523092444794667768802621373746899501712896536637204093582755948701213322080162208975108638115296070296709996410201271901651518951372685805495800196132795776631226950413526547744356290863760032983413696923427436626127189352457287325289861284907448166361324378288374415926573687978700469165956065261306402378154432454467666078877513931801496446251095008665205883085808461376402984475609897152488089250814174352418250011277417820610544086750342825637072063381841906198986243994855725051173068320091696205384406406853072901017831786418694724687451199804796427464153666621343023804579467715872631931993719879516058096169870035132349831884548117548506038085297517350284045118434985645896263155964363929807047904876874512404876541570409500295895207490716742764068906419529021936505684508502601536954402842740549754745292045745247756228197711796282342064087230406433713185637536810247442812969781560690493935041764955489903753342542566033146625575304733567698684274249461481458989451024338611764309653359376444997713428934887642878173177321606195725266905494695613160146564416672780212060998449320043912104793237123527111813270085302692936949787218897633722582969973843624721008388003134826280029239066819827749066941454522145577461779065704194798184125063786157030654490678709985598570209886145978188518507214166391775558353255874586359433163478771291026782247417203721546784529895250015013703669542541270885516269194729563162707026509956987453342604966404142086916491552353522812291042604418359288856344214839460111772493102396948476010283147394407929514725061223369705346935097400712816131662985607810639053420935004681384644296510674017947425994813721720360300480105755001799575319291493950593167789425125942610614524734805849845424571781046479243994600109924655882198871129247827189923101289473292396479079788710379229282844999149240893021776801261355732050158274897004234590376858572120635072074649490575605222373602966098660385109881741059579468096644990510786416286557838281276101449069415106918519677530942650635978166579997016294927702170660514369790207751203973460844169030597481410776219669408767519774098130544693096144592274453899791103747005643912603865560131404350378743404513531336698064893887848602856919507596747998144591691069135830503850507316048089718738547115803563295813947448216415122112408860789079465479407988445355905153538719374519242838791297256912393204051344240561777600374634891624705726530280458674727194459273791547591737480785902265730999213117207822942122905044660730844469323294629634140929396632078527836142031773593020203923170715933878389171664699959428795669590162022788098492202426877474746042813582427669922973454830869611642061165748921980212852782415868871710903670225246389353122412193555432268060320708055619190303501015425091198677934894896466348787387332911936302173928257231708278253033029388276461090448016632124964287924381127869556524624167847842366287837128794650929313249787378522091126985410831358200160338317632732986406974293626970606613112979779764480756689068338802436968576715873062279827331310556687889022167831758257931042991749239741301700369268142056964871894485385514086948061877197189096417783137225670246265710026484511783316149365682219425888656450660269243916083723981340320815748321376325422810864995500336693253924020054659640382034426267826261034670339951200051840284256558661744860328057275002853508223030155242839563194285704360478423323402305658710064613256637461258380364040235650851618228823137008941732082404683355511008752691184705267082214374768199730632739706185065271650930512901014938980951905831835901103511096808313394678798851606882345894781048453190977902161369689500379243259472633737211380045303408602001359780922875310099095510377435584461311869128202670987554759326723114122104066070135501883296378794120779927884863071463064863462014511122086588531312485530025041873951644609066702627106864034708591956600568194058670039821506578010456208107046621923638404783448882564431501358888993655856642837138630710192474469698888094463760731502999341215567381257514452294839666372591373951004460992306431333713268332048766913079767611791940243169018966254655404977446171012223461281075876619011916409123943215955020615786640085009514449070412676705162739922291340195784438241040800562807815855553924043939904806361908635041097999431583852949556309273970909198562898455986623121535919222333486474166959363648576556953450833910741865450776644852856764321397250940370664303868661078808969625550928509744831177817938102415381107447491761027524652728100669862255597243091609190774734363238136141932154655458659370407892446126680671005524868222687217425794348015985479667822278841042565968372441725080317854705371203676558244381290890507267546651616053853123791313047808542398958539922689559976247627602939360782712674004910177420554048104669565041833132061151209063130599949121879343292131951310910838975711840796029289187026921377895437154333367641245510679227806196639858961344135482793626149507842202596297800952222422596916229602340962712132251490948620089284570457772947072105690800299429689466626797309696358607198391534208319109721202396052571102550548070308127082109751337415494082182278742081442585186086701748146999024051977219752369139454849369072457580083656104364325908943266616773245701707622421246495095055983610872768971466854797193022630731113003797174581998732986176360506322395342365454377175325612613077713252881136988194856035901989395698536013411810026976576835674792826210243014387946607076426918206220557598961466327601933035263058722849573091666493910735298155551988084830593891924742900001755289483663873112701171613893688747071558631136389864460429745841785924403829381632272369089281337507437767682052359839017394537579600285163929248584283722898266463803685310589886573963653999527340630565635437040079920105132259612593557843218369428934404566284019343384432995760055228544090548941842252839812396024078944449693618875983468070823824277433318713935763500742455724954762629582309696201199818521817563716555040115461421116712646613565882157264408303203575379611968232007039198624749161147064264944604121695233219189441090614518845331398501167498948562222868816119429479030532032124595131653860825486167317075712464609009895774984123063463203720405114622200037380445565371298996102696238107403136224326235082364023291211220498188261615183406253160445155198541746670697766365047154677365318616826785809788086960224897789817242277576911152649046932052508643663847370665190825165424196423500534326380779254604876277281485417781450889065800737431689800114536927485303883057982823190412624682818872307750508264476919629514633064017154074084417864803510759798811060480628369714294214398340189844331398674547658881128099676037423725834431125626583893866472066840884965858711531477400272627070625682438540733487356203680275402542833569723259405247659808907919917656650863714318278770358531313322701494115858455220723532133754407945405159203666714449723530756868832758444891621267798830169202933344005593834664714096084903779229928180395303768451160316745708086085731150056098861477804962522518578776896595494868213413825847225438290438974205588998680698672185786228987695912504031775797534947867007660531485968416226664500589218385517973638933087464277518543966591594475996929090830912512441301098957637770230664042865033463452308477039090474780684535060116817422090419973657472504654056285437664487926968026506580104711841491634554763998357497597418636695033352669281411109337488632115840538155051793565789534565686344184416760387667012634146410526513676562254093889568239769341402874263413331596449863908050853825525797926033297448374718716687945447416386672036858628577188385874323663073277987731174786014090677427164872450694809192975495407790392739229944696707690934282111031725731808124286608788124087100229669932537177405198078650738898965378664938497535577307059969539593261694283421580713500010234972871447689944056531811525553279281976820295769798671349229648782107654416269110924303582639242229023294528458230913133799408613561830467065363780297561026751923570506677716907949655166486613743892227925678004989285869625600766190409902438057313087943618313129811340142618406875135157450797383666207773817779367513117894262947544280915965133129992568384570882159836662283872567560335165979067712607945431236279550621018941313556097107883031709353965083981399155374466211920414258566119368214956198311401525515718555988164487141763188275481063764775656262013628144845683974236824766643875548986884847243035378395454517632229331157438007498006845915437412311214854898543098831152777754438324023111663745926490921581708210618878205562756891406308198062268027788807272015076899619382226803091748818293129853211929091763517607907119146490912326765412197703445213768480680316659882935969424202892885281040832115058134404332849969087138060305899854610942091057134755452833226545197756980557462936258402333826091006922997841270113035654438586686295309060748522971559863904523103661293612425254932872952066930884152851101330060971821022040330130776169676231161968721501568024555002482654150517788749427735657179381605142375177348650533714528377120302511593614689390424053092720022007778179053102822941521780020098407145869660692219490442835047244545282633281992883037197638658429255634295536405942210375725250480868622304565232568433321467796081504108919365215244293577711058842568172034192609887391960500436862689618051081910162818785047713956112534651579223818540149495953139161799650370564597149013753109863216310185945689141085917188912878828708385140985666262616077862916139169799296624043697803205370867955091863842567856985513688721671157251471907617971881536560340650376343200883695220406500209546342835368577156618401559340314018531974931401719947240639044641552614954513121943816577243881662784882919345620783976810290995288953887296987111185896272920263038815306427281956791556994558650669542131452820997664141956796442172531138183533090611685219834568854485773440203054389866077123959917952420267224065362897948209748303955167163213935312491853912627698711924129935364384735565418591216560096285442237431607347903168966443524993341186572514300993612686735379987036418187460352942113574918867129646401972655834393100657285474849631602432749647670672263941111655905934830656170403692930518270739550986590308972046412512098622329624123330897770740235365865765470853778831670236333594357104740852042467615360622927311904904921468654193201994998947650045643875094109420750484893869036065826015346755375826318642275992582998562559778442720510693178651146511157276360002625468797669473109466180486968150239406528656167294902329202192513365055334870536744740905911394633798606827710088387594904424483295022129143497460164124813223643026635240648327158403972723321186521417591506427833761492236210970104116236101618897799598703820184098276320593792291310916365795853607269771336359729442783224312333706592830562217739309954339185101880339890287783269074531001510392848992043065742680908798692742764283189210511375975165915962094639097748855119274873776728060059693995545960301862703352437503440406174473201086259560582618028218105016258666205233402421692677533552868746948993250734527464962366469733189239481646965286984632030810625763759787828661658837291471278533077903501044435080289406458748269199836801000140990110053296951144314238851962374642533476334925016206669427220287053459068700770458160609655048318626381788694962720560247018969322811303315817654759705013399657320533393774417634911566974912835894544153131362080904906709500299726073842228587709962991626885835820638958368298618904301188961855402944145649701346914432206926897549162483310619073074159549905713084454441641355243092232472057088852519983976893913696040324011412134500131972439345638914412822042379715128591796558555486350520535649459840943491859002552911753649071200197939085696189272895752510031752261858874883063108411849909673122064975727941081249943513097661570628729488707730564510800920371018183290792256622721494949054626744151194349540583522161499228417091019933645599659998998243622233945295664590640814395136965273711411834384112443434690521947307495961567493118417937670520468998435091077349573151328362994218877921251091828060777841203394919453957917094615477975270507173450124033728731079960858173084122882969285167808697123458462314325116690224152524997770768760708235468809786829821768641001810118746003691632008438482701745656219847291461261350967827137496412339516348845611734389899658537500342909971716373402801640416096548429851115961929992690629125623252771725389215548215849331984795540743593467671546967197996654022651477146869991989659733171295922349227177566084685884153970136964370847240769149544771973622058434256441338916505006096621948089374782779020214938657989546518982961703007151297486445057252070947052192002031084436290112435828506434961940259542213062581147755390914398318634859112025829297924042356174426607671728631942621777080711410824508268916523780262115490208138155697012736102009503636775040747946673184208460689970657189703677871382193265630698953412961705680376479412334834444737279678944429220569104472025530774510450657608749253863487946538510736925156517128520021303709870867401859514627522824634132050502339193039849234882897005197234097662822245286964442661896303742601269975828188322489417414454462145922908528897756645235195015500614493327325222014000729506874978138113456826002195675995875483028672432222921466846421471556994756274518470047618712319038350921070553871198790535240868949843224811636437565704800915641814201258201029498013742644247669410747476156032214184449117823189130404486513441440875196897960613158326792403893876394851640215904610164592408838301660885944001834645466526128074479742775123865415837168091819457409392138749832393992819796028275649841790765357370995766044444557811667363470789656883631195436858892287721694036636374425450592219105684979846852313059624797361940458013007434298948354347681677129861155959648197893900709417151305583543760125803283955665497845067349444535885351018359720599942000670657025511459267420466360755779060903346893814369112881847334903435162313930716391395548067640917245908691446442473559857236086770535280846868320342812778620055107015980158310000062775057011420287090544896649295910791753252197881839422865403596308319218080839147172927293392748067251739654747742659999577303764550333768753065371188701225498480770694942178463210260608203201567823915574679958121546672136597798015914288387951372285004040403710807772813448807839858358917418070901177966191179067820927275425835866982405010393322628976257776233849159064005351635572821158188591613305220359327572645459343570720415034594343753178104085204635652253934403201144216235726765836360244137397644421669450420599693270619956775284792696912243886890807552209339062866712864388154934378400216143059399661963840096467763408619725958582479333620046791220734781011616814434491536170079140320403350938738352520874080454795148243686345476046796274687962350652805688392709183702360053526100915624776810753097015274092351512812180277337313618151728286506813277287822623178496865473584998673857184550897855138024828294175679359989200805349769032365181702912603302672114785192896991149840319859827975971313927973497674493356866871106270495768783859425232684135684200679837737004612437251883929624883120369610924385128001138496136088425814513723653592697847874808656934859300477010909736227487840391190204598186502199189491973227327722403417457424330941378912204226891494538835034269831532828050973710678327862814899666552409579712374095459622949206152649893843161793389907703330351568528723051451229574108925051099247645686705259521026154424298463913955310011204880819847786915721843785469884016402360262866885018626765556623223523400604961290471347295800846370370813670610717891031386594560539354392970011371836701080320861804645575517559248747483214746997286729364620035760673168927347837601296779382639885200071583737987969348227765435586198618980131995205866504061822780478020543048972431919709896967942081529411098495731164482400466553094158277219897784907107099055419770826352713822948093862765435824901036264658077718514966847855422058323804197299555641970015370475627758736292072951753955494226285163741998158057386744111169760209272911568869625397070836618856034179431966134898064908726282280838526907771252001595597299632823112299013785337185381583269272973735756610833021151929908496123270358706440384980583953342666460816129627596528306306111873693171483571769211167465880577684280151417524388903917895988237871457132286034213522755475946366352310054929400590152616949133349818448471805760161374756992896048418891751196954705824776375722757637993522586602518513953793107880237985130851551699095723918102386060618712900225234482195840568966626519564136244424870081002126272654123461223612794879884143606678730249199658624538961286975116531141844944188325368203607753891259681408057506704522493087416736307828589955518583488079633118026344473492871554843243599991361958925857550158031470509956431611817153678073939577469984520209634361054728761794517861583746972104383494938773894377741716120428511626093723793613517455843152631567310469827560991992351507312026485476100055440087565768833692210489285610682019531583613330161911992380900522117179124306615202042302096390552569563420363457557523946614529147107981199260306689710130446850148961851756999753288616086431025767488305991060611601811990296255038108543719822730228682534118615702774216280966298451529519412163440934680525793608189372495001458524369372042241742116090325229844215084275791462037205559683414312034874937578058273944193502511269982157431645040195506611053726417053331059302617131071782822706622559131175774535787585133192218560840910020415695007733845989811950401335829412765107528190364100884046209611375012186269396099101624857300460078415742195471424181525283097028208657712504057349529945641101957444039241088289721698959228489418887105305397094219537749244901304738875062380337620379667071443549387845631595805797175886565975390133482699596792535391814640496116064773642333863651997057198210759265530848797164490060454499807239273781961421003630990176142532667379809119539011844025776205787007964214242924359569129289931875048990396634842897774311972333903776842801957125722187547782731053405625359790410083270707064591085196538633417547909955419855483701300387687174059149479017170741814553908107335604197844221073843643364959294318118867885186643558058578832028904170855142339213419993526798382118979120688217660002317530250653407931195271100110682930275922066293695023237555508627219153029437845615467763688885359384154951394944152813005611913954339418349930428439240497066153142236677100309228522876269141457920160028371859667472796242775087249460877940709880358244537565361281851073709307413380506358749996860203953757304721671351562022198557990364079798257662530828895900278575432676922995893904523853289440579371759662018298630027681554572256908305870277369782128261381144885476495236951846899485347363770835261741248992495004782348596427249844724113149832559766072570844221651424422090926633066069851990676943447366863099778427885337135320659642535521378836657111689432859260905628344019406883737244644102242163990057052491957531095468282694274652701228687889955311876301395531034987357002145454694075267616642016609210291254715468728616882053970974126478375948898687199019019684952637974336670300052291420643716796915227491893587778280654869040235373527672313445291055066658625967880450306893772203189362990739265116862664467565748825129040694546513672854578983215483592889843569207921086790682623225187687498565962068207654254830078302473969576032168180187101343990277969925898243615925137270349319995337019569604989855997952191389713715923555739856380175352543439909649145712070732516671158617767722434837999462158929970881061610382036803621526909026528618504513577442718699966190876869717318127942904714671536990991568249577196172880907819433410091820251373101961398390505766308699243388123851511147658772452747064101384639572868663903057610510614110439032416976013402491323775888220085274578871331926095519571509696722486033283971303532524274830181870234355374745638674004305869890147274205219443022467502453862809951642967940619360612603728813638014645604563327954777705124872345621383569770322975793046192563959159018484863004624057665696578220549847990411009443602278428772196484239059397883968916087556391677697081249043826332537736427272749365779852259051606031302190042289374844738184770221262634869619225283831493763693923521271308123216872803679376611810589573042864575745478213564640996424456072516482009137163840554550986156548083112118655537730818812910133019612351915453189857292550806451875990214875325663293096259366155720604409144781794668444204735118769049657232015727648000498446804222711655641369679964902568999237948360198347079803193241231996216070977903842006991749242390158798500727382293150036688519066576966455038300616843082838016968484139762078227463170088907994144107572511355965924958743958971322634431098075378753112118469897057768678827409791312295746090885174390146846105506736188764647940915891911393803795587113037488289524851678716493036059715193537641412936901845903130932370644839098500626694121679789464731258881354535944914909612368720498796417230727978969243702073217452939128587982293633533475792261568708494050076922730932763438062440421037548672653262111494458296829817208531622027660905585661921718824283570308192336398946145580111313278916711469665728566508622496674967493202173392045554078360828399805204299723760355789292140439817123056460308052546129667328770816427588845053934589033064829615346378566792602986241040312004850223148071581361361774168623083546143771479420691253105591187475212397283798266427788469112760964221639157436463393279008176838312873591705542814578531391530481326983207167963753034556976844358141295223021362641681184001461729221711721850154880631625206191403382818716374539674786279718238987886282640348292003487939543431883746402015394133463058048719461138705682159231756978870373295204426941796109414387200913466584477465846768640329008833135032309891449769195477786747072482666835849490402292514302761597899815803611733231488987044889475852250573517163451704838113614912238935564387352059715485601695694404348004458113104218747294023641074468214587841424189004437541253024230378537710928024027121548504577940615159571547046994718198292473330142706774341512145978581893464733957458300315126653892956683093549256551164186987689281831097633603404351879880219811820180529466279999110567662252030644721406803549341054002484470957267036751675979690018887627210274205055723227982571991473149481083764583581503804147353383145050462802879636952329406791031285760695891932287783898071771245146872514904654007609949992555872469068555760011137092249421926325232854462904443212727731744408469499058621417566621553081833412799666062959783358954492609512572687951760761440406520802778244652627986380007652500267468994647736481511134148042282524007433689102555365631899547089935194432120536381507385202035660476586251569467196852434262334118171732803887649537398172102111804889494609185255483776192072779956101619210993976945013250395445323451262241441762854431529281577527512953514741466604988907228738597144963629292936443402927482554196584561967447170406155824643483790178302458361663643730791982101713538187858313540678873117223123722929500558868322170269755698335617817283200941605252358456847409867196780751421874841121655508355633062960759970509991113801274156936079636312563105865635352715342283457157717492977877433917373086345908948584493452398253138204220293821913687318850461764042034085707950596834688691852354304126990384348400444681112667223009656003714639830637626777325626801080163193090167577833395096508310842917467402736615005869449503828232677046030638601768780709520894577980256911183388642876130470403219707644969259005311816513973589340546756375527661916230551255147489113232744243054476280091178375038912826687467685221171277587888741719817558237054596393121865453361128959050640495803292962519176250151617466405312486292645344877615050392187480528798580940731109684352454140334222717462411800098481260501012439188740268748377520348588192729273837508854019141478715479732418276913672757930304637863489912119880490772400904006387288562698059822248640196705654042010774335294147535217835560848857385968772363813147866638869149151769612956094324171807470140329565304051244701541584449813982337807704824650555788504187961063520307693040953185310270431066046096838578022346661399598453016798415691259144946154387731457980435389654489875050071897492981127766943318796359718991264542754429523339910995100723961920539089906659122489979502566218702930917025348386156863817972046730619800092745211107061071337788724731864369180866263557596342536266960131065716959301264785057428121068685749034047808207655021540387147018489287755694309133930977123624504583511186251171077109414774041343882409184035337960420190232070374986000320527014301039808044860678277790411496955353777657163494381270388570678064173750625613073606924017469177322416996821225536911060252925871570139382493593831235228687063637573580275694868901521488056153144235945716339093509029698547417129831821838777203423445385802121360479542492353678108098402896412009128738616773812341932217583097579663489767206230603567835860089058186823370079526375268816750415298242712744016452500040231451555049558505568792006429970068817818300830810089304398923207906315131680538855012779574657954331905854389169320147468539499754316567724806295008379056920346033690943021933641469697929320853832210752803984254718626117355108501643147062898879441001182954292977559090427209569907567235764302834710863500194995517107984703890045743790456286724617358716291590199991746936102591949338891370604473594018109859677777623556575482376545906351689332960068259422587274637451412461195766477118176218463005203543370930792388149544100812602177513549174657129593353132032760587886023577660958030474370824503075792581615668339765781718706875294957312521622973132578026624174765744259845453415532224977558082239661911389470499333553060366013755481345631999183954168579755155158412387584512526239034804387486626885270600864946285381135370996636127714228147751255526819106271404937514407756641427028495021336890577339953171744766742927236180490240788591635717330861309052568439149963684554316618323945318485268311047520055527112515802027121333953065722950964503725945465935467616840767841249050636886987830459242618754389292067266810676424744946564500015515625570345033901686995156533719263406034171291704590671774089295402140674569343245144905804232607454202477319249677478624761154342834836212002581079370835869831665064551096094774473100495829639779569884244601357033100034921795502411330851621897592901714432142012832347532277898103740363924730427099379375487796716264545976130503729511738268783951127939486072339356383267297266807016676649515320488443184428437717544180673820338644360950835319012962871034548330912281085036800776075452640344915477688729556259048061640075397270961365092252023110860475789652803766275864948858435293237258887902949672828591658005682447439855088301558538609936077021297867028841757777460714645892438285686444655278254031860698059509546286173914324592257020557903610178534127188930224407468180735833276003900840828891936025420912151343328712103372819711781222616954999470185172011116159033404628243705915200325614382072471922497669605826466956457772412345656116866346307839290210333285284153653704345888856733475946521182868085808147182899854028529838772384304837486892483909907336128548621644046300423657942424335196443658699414559674186529793349288551688811440093097072229172477822539050105777420102418008446563331207439181394619830085743137223650240801016405359575655916720783831601767239173354624887259337617191816103524594662768401666632027381073770232751111483962923524318454924220418084219080493599061452184759482570058329729226665667929862645891299659007949439586857754908729125622994203976110598470202963823685369609224197776315637955718334447889476100621344009198975032600939292808098520095860928183609463616206121682156995786868877541597565653276515898921781548342204575083482422296754123855200343808962795440324119052717793509228307995451674056184576880756858637482624503749990006889309005829128725943494450177372157847191086115340756316567132692760048710215070430446434310957279887133899929939567428875358935732905413733624887322870055987769959807141508757492580788905204911830385142089358916355708924825059957509330972553717220616904008058183094637725338041260966242910880745865939232493905424076617310028611804143907867184314482288462762932997610018015624012832820677146170166911216022217060987644680730398079084971896154787618704226417804869260266682125838550862271741508714986230866556880474805623551931861367212656325644005224847230870642947619632755465495253321382987371950300505488274122398110811029406216203397722994755383532741873237632247343676143695692224197952152459625265983799782129245347435219517838055830994798362399602994507541333397971133199843609482161593068873816941973926674094514454564492527172073956169879609231663306191368030103904341526097490431077693874164184960786584562121441228077112849688796757539346119277134202584014930339151491307903636625994814930464892250039241148019081450005846835060538112760521914721329266727695301467540131320999842352366603572077760615820641782712679395417059264572417526296380664003268844741429827071530778752486708278612799981943891187370692773888978129369771941901808455268966925376268525148312883569513159953194520487650300619155338147604493101133058965538261720225277519939758705824516552405921050168198735602437218518621272853715630196659883604460046021929050033104495718722559281496671752801616131577785404680575500831603647018339857673386194687016936080113022896971507336104662723361640555719833871768274283521301048345919712389827157056068159222933012657564091461828231685080675500619131471310828560374660557041254608270171591427637164877935712332921882837678750968091515259792075315029743095082417802262814877915233229742129084245098113544207092895283832228684324670938742727527430954032837422584075874103584886151878499337719738599811610304532081475922969005046544971181925574159674564040709454854231717524457069991585148236126338405513383933721016275292098102322094995178244944607589912237658299729935072322830467187484122227211139992398488050798486654930922351147247347755615142189493468920997212103658730724918266303798445871543034596291063367160523670134880643839976342691359867576812260311200479050754769766137357645470308224723218519337549777229040167934290571600964914816377507778840408290957225179166486585815995274541152291888181004360163321747649885762017304420701159933128627155328019834388360544931373663817022363147759114898724349462937113719291021661477474382721790182203196694820957642081696901226544901296782017374872616989888312249851633838497808801479670619152249607744342651845682343690727735396359751350279490189747972062424658699923121186853998881248227327783561610075066113192973154688510620329717804668096415331904068079098762856317094702334762510604077517959721156576452420237238835725890209687353651757865750436645371223165959524909379548887670437042907250039271492754249688149244556393924217175777122061349825318951519092001783851205162817086973611529809622902119472558261786203540158926880667797903671026864521485927607302231319569598302968570273535663323254934805659074830521731827117359172221386065363726464859014265493050477874309472162366926802309502279622963585235943005391989046185529881358839538669615790755315509515749544333977183348330322731139717350933882101022377732808937346430936476591915524167596005833441669898096715751014664691595100562347008820932022617535329993255108557283531987642115485135228245178696645116697715016037935798228183831150383962350160550373167950230290842683010629753091452533146858293410472940047295068571355942422143258755795631330840143244799637573410275874578764419567898987249035837511659297831553743342786672429630211034875858205973450206061005913797358294430436544471859480125256831569905352025793471944088523094347111796244868637635344280791074556149999842446059981116466829396191796490595293874854067410067316319553103219547716114311046408842954719497414973430661189299689746920457428294341261014703598470045700249989846618345110209798687429304530873571550491791221745948593721489425163190572728964126825502740554235625570869677019573274895757594644496174501309895537966525950171886736660213905121274176436052510877646378665606100524866426459670955791384471186380913235059444797828374465037592645768081426588713857392904266324985434116737170271397838760401301872288205692765336402966886715952017666350647661935249529560831344409110886565544856912346000466250939239095768998534503692252587638387723646606017027777355952317110325858634598423531026996383316747334481620536830914981587675696991539006946805719502227515279725603290975718983098461531260612667836490205080263080766522876093890583777601669885982227286582643256300515090590672299352670734078997765393669108043304902575494969885783671906357722004464944980145960033900266371697115579016954467936984161620476819697430969180303983797808064318997019176193889360298323425279952175701549920033149182942530744467042534784715237486166287833036401932961139803731662827111001447734607856661654284596950539942710272964304795194214191092530489523014269388205547069365248768622912083883914791670494799611141907650210260677390998268236783362871168395260017796585516499997109037017114581352340779370387073306054827465349850207691737337260512479356806987759459774892591126692470357532709009273261967759155603005755623563635256727679924447011908493108218833033859890798349291054577653873933663050735545543902853962617512694649466820449124996267162905849344770097749765019725610560568378480118664962669899231014730957970312609867638263262620735982267519238914742284694605193396606855701072108523103163922647379719023284726145834934183124366067396251609824649521735056316922221869863145869928600116991730313433223395511399058656884698125605456969132812473666366072003530319196351570924056144222973374063396571087107346461188483685463566307963799157165431677529599276634994320171941631826483597762992188906714159593599106400343978292332211666805522715675786319478376284711999250997064059476966640922098556779614125022221642074656600047895066393680830695978624485274733614215068161247241233515687538291092610484978525552334726787513817925195683847593338907964370750971722258842765572396886618843769711321787560615827268921583825889230380670422957941057224228158123438641264331999377437673949705757416564572230812352435753514342012086078617467380857872583755615012456283865895752438293522225714493478192479105650123787916259167209720946181906384819455938001531154531683703343362644880229698223002650781924278268531639322549784979132420662428499340609055509499195929937109278272599300797603942586439446012388096930012688956935157966945895747815064170943866370741031785655780348159448899819312550853851844569359551462412737347824232577532591160335386602445777138672935325159570017072095696543988063366713980524428622623731773623037751882288314394517539097485717890978403301189421940772208289675346454324079530395419021440989453741235461810924396322663398643062163314904124093740015276878690865887834440293290092953190156896408233835963408653051024389520769579585356738234202879887429533325631009739979499541338711408492391013156455066973331930789410529172734906750565006525455665355520700782861995959236294530040012941463957237216763809135384044578137324033366451234088303674649149485696719617239106143574718569360094981307664260058460461528152782953986528672965617655163775988218314505611416277979771992240956499133050222540946169310314755661784736116222319078506329710848887248993447303583886189610603925413659665219919304966752923129909031565466886789607309033705553000548262923935418706646476964073888125405642972635210760010001673945112598184025977857080286339104158566801825526762731116830611489821114194193090384762900794371171387049991556395982001831771492270307123502362556455847676859136705976158877853532376802320365282592493696681102077469031323175828604382191739464878819883780525740623814872650704077977961771099859904504070246645792725704025547893139204040015873403774946866821958851020369210599769798608193058519903780015570337171702733417559724186728900631001776926820425129130579774314810771550839580377041923898421662746655965167871545815045170219576875612788318717978546729704537731175752540701469344004522399246042429060083502936794662921585116536648656722982414018667073788199957248562421006712744786313272522627932109167005360184268260027568268915142261733507475627269862147630856126860369094778078959089673768453262559838090554416478083433228160839758746832974391685001509602534017787383953279466530661346244563419103924266242289808641634450327882525954972019389530314118585102547995530998567287237103776304346421667163680032952549541481828549720947288336974604693507174911215650929175195451505709272116191771346406879377518787104539026182139842192253369126896243656793784990476635515362781680288867127682844371121255055632542001718152801373225157828682052778549509077491537640088666997795792590337204846623079147606395164385413340327477545306472279862538761042027187447700377908725616446232094580752099969001002037749055099816720929764537084036941231169233741918905917646353486376672357417482166189749596765790953435750890247141353607882231115044179859285163454627186440779379596770205292781163948748895529179139748660719856069216273212828327984857014349659625462500549367081665779334832081076351623254300491169968913920069567686099661477884212410255889962565703371963745446177862829888873018260315571123802717948023380020152329347460061233424649106499541357180868035170741851644090083592299212177006786610703100490175884459965727169360994693772853499606181923624161699778321779704253435794598411086285231389870053087559785285664087310179813722290233153743010676938792030757803074709971892307174580537335522329372597749074483991445054877612432031512397051994538778379368310259928240604471732536158262817371335835741629958704014754255469387868745811279708421386896549828259603921137903029748719772377559169014052250036478170447661293170094020795528425111036530191390822500257766056077490902367790658493448132398012157168215288238885443585287434597261076062013407174470791234252667612771960982478923369117810792646528460830562700566659135701984197280965786689329585710367661836651915727640774434440224483371205165328581871599016488133258769721438099150367649191158727706838686427705690853427057122978795106640539845169368044748876770429837652280153115894495278306117496765133131319357898214628213106730795873824634463693037526797938854044454901417825483919727098046841266232496862710052274878302461718677973843275207157406159158306523967355417901096093699478949794886100999284007545060363469464951880140458011436877959035344113716464530945091575735474507368077753362461033717361624940214831135345083580019505172785271862043737931144800212091289258730362971000174339229013323109523125917023078404594696139908377848600693496269354413132297734314452867678560339619380090650518676896972108374420719320341583689310775670569213475726708002610377212955001811751466530055834611246632140007044966516454533207841561693716821158490151063134932354548775650292500526699517835458386482880072460475106906343636904592669361237306580173467614389638194475964015455179449319448946158832305684754210420689357917413731867973885361996072726876542356198782236152721257695799464268586620233958728640606685805532812273014325207245908491676216056917107131212477192159999758985810028790067483793249377932166341537014825456103706999012615399606673663472958332358701233862871656280300553444841304663071283489741298625857055558944901726653922670835022880209319562668815826501760594038247493365560099529305304023544758781930220173478229909111787203855917793020479064125967003790097184526903124280635239657753139725205163898912304822002396915303661226420914517941920881811156335709576590111207295225798760444720045176760560168368228469077818497610853717838218518215179279182341957632055543699152827309797954830775913054372798287463805077964642029135291058886789628866019552996124983617666529775389200669167263604456049616198599103041320437618459957995273229244149417137463923843947141575514851186994061366289803963300751068309611573141993527768674358351322684023524510305979376491481950898633008464273597769124520769426706485139524587583485237240187085131870846530559623152878710357266955531853887467180411576247880369242435468651027567153311189544052229713614392874943546328147816128600679816751475749437183626706845668817506200371024634996603701156104993596206988497964247968455822643594332329903131823140016455588120588008750167235079274866047411494959560281142434019661230155751726161088159659366641906474111823477642255966564314535134951866391511546532163738953451766733284016431675829876858096451427406739139617626246794330205713749059639199076672719989501347330869035586905292995885860096435465218917374040880724575493054503774232976513209075177335459991870249308012593269203706226305949141003373651383047515549590802157082563451488591227988445189670590223510419250507758923052333652075464983611188897204590435599754986495704498779327855797369431749845901609136278927067485621051540073222201200736983953889753064973825132461284505388193977376605270530968904486042093934286705442341858976538192028229815745095933498962112068169479459590455640452993977840406981167605084666123604896110779589676207627749198990036152321156564252537205819870384048438987562634466385046085077550449524720498422976543487800944618072612819274691403748706763060481206598222832267700782512681486624575751593519218762883499329551253754794651761784617844470978045131574118847333393975521273220301184478674962973075481927149028886697836790381151289362763800709729102021727586017280196170890519579303416391226940318651850668605271175795020263080237025222421684557808004355162311848396080547789429857830498639560248374645182739377727720324759218657144241341730844898841300183331640578192318560511942041216258724240354262740696809947545054531298165496196129534781467464687410633955978145294520121829983211753958611572225827132016038279881346090923327060130125862127252012554178218245199713453750731612802173828166483474825829093265459707814471427710014761826412774342203837839831070390848333958862607601958486677386297248496635617002363540603284476386938192143751011649531704454415011380228600220505708097765509373876660339417348797113956669868095764879551642189700467854405827913784943546465561026811992623866215594702493650662237674286888879606499381818204069840599236008366214998795863728992011640539730936766057089336703047372520400337994881124769956386905681133302429360716009809822862064891154379957688682157729091286012513399514140233848484547940858866981753274865874838535279753168504641939199567960108529521739307925279797489634412516865007428123427678944024937367024860927337521374444250984505825618891322250610924063450361325786309445645802632223631082468533409859847653486599315573723683257300769565497387615188037560216553232748758029887533134943250105636934152843274012734651523641047326784567065446324819460809821905366756074047511824452325584335452197472561784199100350601326269230846882421540303335018934157296773780385294749502098440544181106549752412483786802418264234420476174823423765379329269946773259556755765637781735441960976486691438804577170925120341044190997335906058660467133671925421863914162444812854056284118893770168583372817483730560430080214436349889962861373617293024149136742540069333827669078323617553720992849795634972218643753191762272983806919205411595615095195977490613339428896105601232819680970169550951935920531652138086953647503977788965280325025238305631104174365371793812814194812085148127998761765516894377542137391936173978117559858084118522529537930006696756528856317280303287590395925011156942778406330204021808840034588269305432026536420635693093971829126733441052536366011911007014750184902892161023606477698412549162046566091902722338148329166471305124491476160595191076675674843597564257511976062723987775120481262380621058249040678407244029092230862416485176809335751382967929334798166447116095814414421450618235484422254652637632577224148554615591975218461299259335860479183486562937028288296272796344418498844246794055692283058036239671911033338111913001911711212602530022699251409879669717813674329789223951452310257030154524860915061822808810349718482482625000575846723446136720829535018936789860544597290791881132169875323304359335421844195331007386231186088554112467534307247352913051182466222592499849951591170909419361244848864916921632335916291072503244804004687714571794378082280811983154863641723499809327598916895483544926584497603286792428074861940045461715536756563817579967168420448403656471500472203564346672950842430774750896275352884844677159831721650673052493609265068775368751617789446228630513346129824610269171757719026209524660771673341875300091614854253508485787732478703124349137183139367849219235896101305489264693092710172888534515578467923085013285653491936816078045299783750130341144987196914710631683242424987171796837808354639353925419203888007661059473965734103507829635595582998226514139181128834204567204566691577467040291796276861749434747288374910675524622384407079031125121796482024852915702029094050945024720473324507580322902074165668496459177809731700060785207417278125054725236181429131452591191592226467835731686658651084879796626431198544247233553936653887710105679547354730365719517360976337496216207708415845661046537512517138954787203918213496031901648571232785350045172307596027395396868973200405630693623297258057988551012714569563990688507449576145224901580103283157311493413804536446034895383879524800953060096639463789569700112474809901171373053270467494529986620303673528480072830811588414572822115885203870322766070531851341993923717817519371766017618368031641549847574333324936499633575057942942336390804765235548421249668447151413125402599485195439955212953779019443424093110651087649003389539403068331505493796387096146784886895671899196647268403404066755423029703479163183107192089425210661296180502407510865579144965973618159677716193177107629989442306030088827807564022858957096627315731707781378126231853963077260772233855020891702972109318869650144880988302830300109464961441662558466181245106654298369503725502962011295925188008965568869125855327364511208818910220318989690720852675213225413830109547909449073488701716575040210340587645630264400778458751714620007668519536194289056431461825856776174985355038117422560165982971530996479521531082458952910903582873549752165651313825401054095959209442985268038341977034491786711480750591164874387475084703466036753532206704814602501114168074417993820120496799857413956932693119748921496190521213221851848291417671302612096305081282446757315212455433234167058041112769019870574991058379769392860616093980787725669236332558058486066145610621671508843983397672719713145734778640242675790823656233185007543535284168906999370482073517105716304134996958335768301322499633889476155700094991454028008805760948079796117336212236793750481957175853340705999045170974787167146560307989553455075660842585288731547527515064192338634831553034185020010314742625230260529985725350059969019253548472731529333273133945274968711116296354165608868499157799395326309771876914169636097325295227731678011504143636284967057599476622533886833663600646354181282767776562128331510943744687056603649006361496047772714065751987116817336545905392384614711081211258713654002764657029859657534989804913155594761994315954995804941467758702183635998862858972133126510960061674493210113906232717614485421504387960698783249330454994780335978331818703891725949178969509601078329836208064757688543834067723277153595379487057161472172694793809258539178365584407604008706150409461028237359698483515676430613866675628460969836955914345810071814459925299880517824238442015216870851301893898500464523341108175981364989978253416782981678726550207360513534557987201273906879728764306785880443545462793362434233165037382685706850543157414409445154011863187677118593322280579292651058635263658321117522463923905558914120800084602662473157870756163636467227654775567201027156385800944218678140943400432138276801669413169332913229619871227806243632979160856859830379353722456018120219929502508275136182790591808746037618178439559070131381192806873656787261122578911767824145690367379844455513249419767634525303860948767552364976410651632998110015128913014694301709899414285083970229273780959350633269223869293892024668832199194116677687635048757741455579840736990136129720419518637695387036364496183209441912580342477447650038488355457663151208000896732240435150339744638368472704779529405319886542244702580855804104360189075578380267106405831780972458441184250433284429568476773977877077201542973174963577402188770880493960489272225678829141952421365712631709049257438293274026658235507310590420385163585691567099430529719597014059858127149332767875967431916660992573863021144895795809548087981393746764006852533369347725457243653894782521986476810371811123657426699668537010113371803469386237296301394373771788908313377918406763768392459696624803273035873611668886659745031623060784802464412389137347952653925292241815034057335992086733822681518131841692689860931571655865223981173116624712979162307576620073682757201665094485736379529304762054026095083544276547741795749747327470181130190932159186091398151057692501488810966971800194644350198128422872793998320822207051548524439254747500408895751921507148706917694536918354842107974638655161123177662590753489137244724811660976086040731321781576135055285151881989713845339019459660320384465275211666991681339829454004760235092380264851194262851283164248580292744812007415220029623066926168720882255016386907136950410517418308855193698437997841757520108548984336670637670173004107388133267596023030758933494459136216978740651926999941665159071208990467856632029316810848365356899419071643812060750577909001107326745514313028676347310338444816682604673413961002049873818426030018500261769250620237740637449991944681145212186368337202967555556192243170650251958033709875658496214346966473627185110279674932414138325345302303539104242994246972646397078296963172178286576106698239933479677110226150247748576317461352140291300594742861488036109515529754457119881442357268906633276876808527068057525782705620912289010026258885165717420618339497651035015813630637399760753836292020407764403406525308358609548890410013766344100425336616016888403268865156212103753647456683792134516842157164227802486553844932385418816265435628289077929430362395036579715885378095934165770915684913303526808925590600199094164727710816208870398907913294972263933365462151494922659048997477593530086321844782036914329041887467320978349648125270238832013786625216879126377208253072518860498152626801159536868387986046141949612233355078081077534567136287549592564716237091440935968990408356629558196188644109543448883498199566045274953468697476249419459726416533251152310281797360866383597246328788357301518001768748211900524200070971008825627636918822525849557441038302167954621698259761336058779297960426085043762471727990636391624820761658081659334432071480206409355738174682101180798259876927956775771870642916938100116324501847899322369677412534969358511062712905985614753327775142569964946503523069965249248390792030053765630989897092225001354632216666945534300773687013776330443127045325292239447392609857318002942494275102739583911893074688010774361191981685785480972020274995962602467914768209193464361349357331037860855983633738889445186950029899574834728027728457441626425024221738249526443521940382980731931721177512415412608868250037938555223616131921568784543777765611793547353973951373161005804790019980082245777743274646946301436401137723394103858490741015847398848247989180421669998033141034477328193848809610776665146139200508287011426443714475989548090571943807909822410558679062860092771139608348450132486356627487976366869715199132630446504358767374749072802708074862989283222935699914903616562404505950490473238979877457172709354782097385527034308429456181343158670903263086344384662016814160639180093603969417371600106290287911700392290577961552076956741893769817762966724966489842095817681818698336617220622312738643461244288246288633433923295618740157588645328817330150465624681767567362547887842579034900039480500951538194124899549559814591002962131756106099161783016026281510000957322542691520017243845342630198328428086104467919165112257379294111703027225571179365979943617674321693595957868371944668965616098135750298534045253888921642497661305951008499969158051445040960958334571117912472024310692352659763831374187541218851243454311060119573307380638378835529238955452994813767782879322535827842913002131696059233046877226339579230657559804122601027375471616338189113488906446853977461659149460070665639068620371798865819800597818069514040488716741573642923272727049499942129605804483023439834515119639765072009931202905427568824852570358947222340481724473567628533238343283034920990426248511129657016052887692316592142155960154783902634856104544956002763274676418965169597969592677211845097327185973736796263524949396344878527445937374218827546492639228094421121017655875806858006268544922438427356360801092081091648956557936422599966247439475812752975429606278753969769186596809886609514694665548053712308557667064440368552583447520388506546565211946130611149162194020715016340224944242981673525810261594506766721914130797368466654326022662580122087244217107421568224695237179690830516764562990992164992320698832688432891225352952320554154866378690179644111451273242485756658601068728023958741342104874346493858177780546224897739047765559194848563077099955756872390121714880920993306785838420870321144900886259101785236902606318433645646875457850007476001356060329570884686105745204596954819747982065437507484470960787713908172874998735258057183875927891528461625177550250740684942166664558229214600151808069589208362495431879238339598564866956497390742840351447474072241340375202709524195455762426870054398676701938637632874872903519055083236359618535859168126192715361438409393114259697906675323556009902851398547588541858788703128508259907064188817465662006658892505838668458955165601516871100677529402829999981977235246409330759410230269394539849567937220610435353490025790994482751256980776440132050992208405322457011910306500022120378513550306165277889009517438808024451946726505985934962334562789634320761952426302149604251080813336871504862431527674588840419605074512474766144050694403978609331168329733251045759151549658023042259772389512261282022899117382183984825797146977890798157662477798171955891178402843288096568246805020591035856577574009056481454676070855274866373153519212064943123735265718315039450998933786886154494897874265145713879347108221033078287348106285424411332134873210285026112190640889667525830257494761382279611326749410538706399282681532669026993797960639344339395091619170371779825373291316831878497407462740813358477092572708502882423946156510108556582187081515218344508453777987454276655655211797805607538582915296781391469895072984118949729166349985600370930755096277112846985963838233397858015851865293108621089488643675281884978523234025984222194709742664745870220165075855366441765666621295088587105620600197398467865973066329695987703198257234182049531937375568326939143379980217950874374526082185554909192201574418739398740021546733600027897291898706055056486327332808560164333649402883413189437290011672085170471223403545322105238619848876772406873176244580304068987475045254365970197043472201054260247448361467941484433167706047491897755785414306596448646796507719043447883020903163918452332996966390776585085028215017546961720898170363564342049600982533139959710610792357907082783176182655123620272063809841819890369333590185007872194085659121322320389767345936019105153231253267771371750561477996294578473449368547473783741718330319128722444492543679300614411482370583055555773743346482831658886579066306172169023832825032122098349175209181313452664071401320722500063768945036651868894574227633832680289716839688618154947623674888987024397086894489833039706520385034917712708193644751678047127779675521168934681596575755784134004682777436342294812676267181917037507456528129007054512389300604966457127730522701172631643682573988214430633187643170974491183044369072047626680788213811581657796340583118897399432270930083520707763912774898949276287201974125296366946723375122711610294081256461768480853024526099686517968294307595864822023141638929659711731833101900906138807500452470231940923908570372101477709435056348638049805271583953052501471485755401582109057902316453850033650166400228662089661093393034071981261803146333215404836850180989437752256083776202170362051859629936336531338373328054003629762764980705603883838044976034380336832163262322851319224556417649781134294096326304520197616677120078817310656234780662869599810689179421735630905379380242117311066195902874774967246927515186083471756040232917913439857119164872899052088911543593383097768339063775162740733651933308960557978075420139440951895581858300335773797437350339407191928213085261163788986503141616457330878044809068770109968724249996278507603777975153420276179189093013368370788644120728952552494975644913528241947761462296197511948514423514534444731795848568482236663962900364077117152512172532910179352338128657198203058276020485330636513006861892094035317199276474132073125790784936833770125839770924644950561415509866758910315066079457568023487563972834880893420801057020132331706472935436387103689692654860858493610001088409808090211627507109805400972793293492647294927421271524957611129024180748925949903423822362336779370511438976359178127684506869499605739957538899129250767172250784812090574211216321374538158978464489287286576403236202611297897911083676293403665829735587968093616347287844640303708730774050095178495488381242110831415116890887230505843593523812502444615067528992313202510027990401712149267317377531684850131329544577598319459039535644777176678498935792232819204674305461676724852402599311245090907583127709494856904487543095476204922078544766308059852511970331031585236795342904612691810456699282983756833432463625987894458906266015504411748220123063432003342311275067444241040082875223269907197424636927838497433340891634934843079250197301217449487537912788028745634574856685744802476072182232872048401695678207467734810140096091455479613032674132194901291277165092552576671415842705769783512541574991716468587304358899358482900542731885982956963960691817871593838439552423575192089032292738486821626735670448410227741711915679723378105538130064953500817966136708475617516801004469259510915222787278279262737413666905386547406439663206984191979214309597411546266909954275390062093879678963831811026990497983984189526544315993694493371077956669012907670351771460593039823701134365635928092636346140255732184057739134299547501240502584213943179297283252446084943402534782741804540160059153100875960970383359908265863562308420006769210789681550438595535341500567024951598332245130396676608020836618366168380982363009660223240290952577720396750559461554424024306883378746959198574202738774990325281904891014527896094670771914102374814999207091076615206666157463567222270643423978842113515504306410152769570815463205027602898863943603549233471170879531475437356968677731584626582291862736398017013062153757972575550046231187937720678111543779622427287408794908993994328523276265196010023758719394401435810423065982496655819017243481265154312926272503330026926291179261552126700782480712539398243162251368515926412203537405040109000314377951526514471925084199134133270209038887074513889624527283024116277762021600366120520300147279257004450686587057476786878298849910533001834112229822471046460392145423359047319755555522169151196360878812004666353186630694544906309500839001853436136626617358702150658914127815299025189022683683638640131664659468896371629200067317012747113234927657365435929752734476092266178867773211943183815806367237351004899217030455709511957527179399982342679325595950019791208333889773965763612369008680949643679195120142978425985756130338571675782984517321794233559372436117036211981441932094631900354164217783919437955634419879824853172746223376326341745292123606027303715577277154486277431801076268286204187777603771724978599243693925327530616052633350515255833267254352740713442598867314711224473737988493307627647221423891942183000629488661531179354360453426391808609807480296230457087428422137019714359356619574545673818650747142855886717071084073755274876769166067904011592962946505911895120819249755358622826147840083171291366845128787622008762185971792651212042854749014544171529965073343736048250504887362254301006274938162184122253849069548813858287357383531467031658088620927820095639749176486094347420098104777637107590921362037230489404737220170792781672032905221488989670389950071820537303514705480423043339123527376787646866927138322412368237052563597164773470160484705908901566687504176489820416011587722693518691475221244111955119236081198381437335869002093805833383486113175478880458003148951234822236480138914567790222689636707698752681188313043582786996557028070326203325968883414977430948566724071853110357925757266069970857483671588643807723084737385941087043064168569159134378486737746459345064147046620934828353442842032818010425584987729472900738130628978596481512531668780096582308580710561965984864044683016608653409615453326885986834764134587134516120444902626161405052948339302980763300945033658656703661582391905677192781504835131169539763554752095237985863617441727003867396557051013192577091125436315695243968946807323248641305529497692958429155669417278060312000029019387685261554926850565899839556153441672578718951393647093838709950077136322131917320882937709755858005460204441072389238402969773280128497486077227922127767968255751587898657048214499572379632773186579779591923069070667607604011327878567473308265079515148968001846373586299331939903897666099627705498411494301431967723144829490852476861913671265022239459076164525203229165237733445179509451743983573845019086489425091780279655484823584124528239490850893260294769984923879968011049537533540389923101983219709769584820472608147954141425616601937693805725460462025543578880054910157605971185901081436688302742877071809513845174883319080056809335232069973328494233550883886013870139837663652297278783831888867619625820197367748721895742397884361488826868321050620300444842273991414496280738316947591478593622012477977329585932744702101735953560056535557669875777546552446168752838271463942184546561719265145751368527494957077573997659692547264791309609784155593688659186067250816374890430789614187776700524097675274086645460578022873050622979396564216353151516969560268714879269047263138112900627776950371455318603502516490821900497222176105814758477196228344714989675191111113849409694619965213778282272324098871961848076358353185953359538153727883289790699155144442886026956200677963552930861507965466933946465967907867984397532030725553276310000236307789077198349275208216103980338822919108607597468141508719739632920779497721145384673406353682627739017374909594324818469898769079754858013287670332680432852921307414513799041107485475773543444899897665901725428222760005075840159948641676054486751274921377443802295769084791460979650094272311767383182544473971351228981946016779415255854450388376684034459948546573517995862835074439187733412799513097729172890105582986643722302327788433053403399252610835749828897593005180225490521773839525390431620507147640755733304531651353258494843100222566330735003381795910297420116908892082423644759399832907118581062385128056467335167940879543897108604306214847637932731534988994411903370654219681223903197630657810742213841855125052984267681775980454389221501905698896161894535191728574720164911037613487728957862691653169745728354028014669680194169887085892131155418791578199116767433453390334012854876833832262877050826536610242778406052176606313009199824086775236344724645001828020165887982488187486333596791740857688197829020539609720606028104125572397332311653432051384583147149041106328550070485129009426810701864999444738278105232180978536953166213850478236566232264981576326727559276051945167041169292550021051498445396526588739686165730998973695603030186045420335472136324085264386530569637014898268257764224664418706841895099552620426049931393238700437352013903672127320843904042764354438485407075707929764346997558726021469454156697987253973612505689899607140454891223204647093096964975408257744855611036116039837829022556050324895922921456431610257260363864395406130838928748487652182323757651099085836105661089196615336185126089040033254764093265221407515783645548255035853479801198167541240457299541407695881670435665451409928433836120207338535561122320529158069062449514569996565683219057473020046575399004055055387128391189077356353598578403000004134608398095296052917616601389985512284723228815074529325682608335583674761280052918675737817096756498419481022656954695207522905897757799071047510512208433246561389171742178262387262610183218056987578027437786735842109777044147745663328106772242613033385703130187990980009801772609212448887751488085362280442474552840097186746836704927472175391642187594984909745746276094717569086483957432971929366778739316404151845991461232366068420337434731275290270625228381031855873234766579514289264399551795628500810989417787662565507984848921059660748329708987723514040644815455803300342426449948297497266996020200955450566650247340488764706075268120268179096825894237536818199763986213651793018598119809219505301340060882595823316598002518551852220645225528924967461897483252699700579389878746691279890692625330413190338807733425820407468502285836643539374355643747349728953525441390737519759707056180332738146936987507318538644782714595178488803750937648203527023905131173491586190701728590306921435321139256730841081705647543344699382207754804889562431708941814090531149487189359545582272490415511662715039944752084917890661894025088868376178712630411431779038120897224026307719696237354047855464006629648608733101709998206218112101431004451615925010432200491031408346155300629536595812506378630309157644078457890221280015341296893300300739497791935052690963194105804555753529075481409825399167266277603776411023507131434145852374783251992809884646230296594847001773459676080054975853506809726281830635063313067007643306443008866719008670692764574965543236166377625626716507550692151079491490977549845921432437021712629717246446669157152654697324256645778416067286858840283109812925049155118728959988086593198693587205616490524624977547155386125841685577024434087116983242876976286335936045049745753484163574597446652468237942648449936187774429130868695776975785242884892949505426843520301222896825796719589559698874316562328748815983906106833693900365096260849971516046972650751814929996107885058881051366671643234659880760413315011882146530857921814816652973789700345741960652877518337624231579604459629797828563392715238015142088358501031831363325876052062327840198686177435700982946477750685265598612343210450706594376631208229192610926554439955711798290663846633651515025848764297889702331032212332045533666807353832561705412425835829289761026954257524941701688023096997663996229461364530554821978858203127853533877830576714222912239609744050129646146083737235343838359858648783962376757058663867659318999817621317725866360539271987900568263990318847932078369456274732758344409975456126741483361173193144257750952302298578746056098397451659155193810080310070612628693913384667042890852940200449728651442085675067931626177801494672838874123198388218260679969821069813847771447741889963838791479593049318273750901635536928772184785389389905015525961664197148885897673155433340722133414185132513750281906166785875852541392620898538162651553792955634191584991212064842649852798398711053943437452886028839168524381658927325584239693290835276761904630178141561149538039528033342180588635222540493518533205718176047739848117567857672460208392809294028034305602043316298854838050226047243009507577119410527915367345444707342608677622305491248885387817331735492575762449827655799931594235599375476390165199668480266375825401062013661123791463864933274282922800684460226266075442484235165662922640074871042902653478828945850316448267917283582595631975724652050991733842369944191283175902942676332255651926955276208005658292085316121808069633996656102956037525928876791115857101073231188824242574965738290085011983676069916161241746819658358792850462332599247640677193665404067614095412869468883792049021519527386585643100597763261951958560269875390486328401747697259049213649934386678235546227005805908002423405563218938274832956789993276752734974477382772329640563295759704569450223512025053302800413026600757225891368257913428342747150429575345350678557087362009972931054537700623551216041734297968827788400289722279023217910271742539370217938026777001306777726530722361268394084260907935560292014921167099563552966112464904207196461568729575754173710927066332565198782761272847017783734354611942342746929661758880062538045542848396610565928913763669093980916865987480624133892225941856051982326268991743226487079404516930059973981053205026881753429583455260052608486362101618735517118952078308533363219601060700081819756470024184911843369629134863138898361537288320244950899560110287451207099817623168109183548113412006683695348977211797910367389254351652886031944417038662785000679768418703109877705036339142270777329584462051140428363628406589443451735062890800030979608173888852651430521082862184100772908531299349262431344499497249971309081376479755525518226055182986829526980120058813842953656338555960081393803309050996548250237542115204860348321241921576957025783725474223574381163258481239914064995311507192152448009934333983917931682197796836900364710444440026922781470865494955718040117721487700677942857798846488453888371153999870629107095657585597568652052386759468309129536341244548818801019506602604346718947770676884390861349066531486277578261417264794644498819613566000283878898092045074879750025055449458688593231138729731466311463346244425273341931406898713848886253577363603997973372693959115428853783167275429493913135456503173045513179737480599866073598508790824359651601209909036548115258064411688976626171521671382355217310369358302013377611712374623434895327012471804341757986273395152046786713849305611152432261769497609766676929981613842576877286734908010418158684927836282741992536994939787452082845371487863746065005965285875810938189509137002747539486797628588935516495709959794205315851968701440699914930271393761683540781238672034403751681111682676292664013507149892772537409076311357518728123598869363974943473145226144601165978850235689996620750169429699589823784107314508204399569765604444222885653213936707803273340763500033830006833335591389401889223267933237989506056277498242355156941180105306240033539183660642452220400344269125714622087935385813357374327457787294958167639407079593356716100938829008165399389451138589815966696050895115755994369819352414027419634435022271453519967256328759609316256273108023496993300037228841024426448324070398887977142139467834590494436623969452048507869820334976770354706419132552556637201159932064020710681880347040939648607725652153193686348779626625486597140162069174448916335264917905601273025281994562103619881706240306385253831800088537382791534948369674742532905534452904551003922670550735155077275298923042807733099398926882314620655570006320702660723484190779622126999228501017340113135206105665364986506920007015177068454964812021620899039377889767262729094247664839050038128621995133529967411433961882544205725386519386131644921215512475420274661842929662000084411143489228019206344798700278114475202744871820163946763917410790413313028547076034868083783607500398171427468776950553043010002083312677797597073191092771830204846125098360355801537423255911027712318900655467335628874829477608838475226774025718901067394435068974949199197261872163341684108721301655656426511029863096529062900223128631905365470977262317512598538549939775394361506905402480914504875509051244587795466982005713457073002616600166500459290210086632900211256755196829880190743697850157273373292304572153425022802701004736956923402236052665828936134134642687804439441186452014100602928212678965092799068123597048078590778050553363960513411673098163158667630565399709439142201807336624698714259323095685375287893211329337254335139479444250381215678526748811804151066669258709310800382291460619086277214319192737950760238074050055606843376112138547796486738665866641302207421595823986858189142838865849620604990854889600629973139759016451609344744541827383428935791799865444324466315192233647689386334825522564075727987904931904700768972432625584316011236556178913105954527360549329552688679062981655420383607706197189655157290639155354594510087200831090443840290835949136504162275148022793037542201099630499255563618068707471183616649537808474627375334715412963825249107842733668165041295833879478446339097413515369614482751766170978390786388154528316177331077055491618467333057260128425320171009242096559459400723570638571518273177148244151841443135676429817982333936846899298459109138655852426577473495174316642796917894945497307301777887202738901482830105322629587628604523112925568682050871665862170632698436520374684134788440684290139872556483792971314362612794851761658551641325522130492748326561919901936031461630070283652609619897081470359032921238898611269045937733211617802191124609028368243711033885647996794144060418315614829250311931870674136751828793117133317769833583214776739357136812390597206473672580881005786441036607180637242479515144735396743012937936720084170041743295181639270483928350514190946120369012717848759487301040238143877420170755737126639026794325711401253578501629356232485016249276347427732560209641969257869727609847245337688194942468760887617825219750891164265667383633850708717115641585619946391903291446134963263040167262346125867284712544927374877369122258249275502919550279147086766411851447367725525157083536418738920404035281060388880817047724664701558017039732937746554901996016894651269351005844343538771003706238651672184364793881106594423479923539620079972051116734025092011600425252812155279385551261518103281997207820248003450533980722573654896131340030201644609195664381645448458146870789381846551798007713958880953087610039426524961588291060811686562592761449894563547697424468505101346871165713604546493190991991565636473422003413086664653673496780421000011989649981371378367347010955918464287906677026268398625716088084983121627427949655230235454933047903734258758709228970204891849140544246778495213390602003821508694061064682613392177818792417129173808831817156000458857545484644241398056465537106333230821052739067441316277037898143936355433682453013647751286769456839606230590808294363237277983414352563527217805655177035911099598483508185860116226788360862034428454076373426415965058194517845490812521218180494178458811275387903501484506246284869442135525439620479689080589486288028595200097024109135700207731506873304365700556378402135183335613777747135199871036915301968882713209850404342593973298858575454531761217450359433577982258521924291510597760054120442691383200412155878315821308033625994291676130238264323155439229408362773279496681571125219914063499927171773084364745266124171078270797726692894447152283797837638140347792463275135128746095010266301764783422516913340266739761522253885317950930165842221402434932546240741284613021773429525933568120443917521265912418319218998620017457974498047178636411781549153361047058533538879039305782009193186538506495124687641485057746763138675566436234719790637750726365315659795215803500314516799508059286966372999131025613869153905127918478948440493375239957288949756894765273089638704050201974307090047611244349513444140822488373507643457945945530947127067698866961439821501903979297216611865501150342223503383882493701855203415457791824321107866673902941358757038194744684740283747893939289076951892943001008395286639567112232546633252998602917332752075544294348983979164404157655997288941416917161512242603014557362821580636029042011373993712681530387024702335827974340678294496270063046349690657946758552526647200736222264779177959240099505522283220694193314185958267309815445128033091640149534790002476115652634092840680315979914688204896453607820507598266199972882371869163947324039269406358445429096424198470045803194012591024045455224580971502551115188146387138262032728866648175317998317583744490216552682136843106709881282608550983649985741573874993480822342294500860834265148735363845218703229996515246803878361851361588434609194568275106168506981525706235185489873094100350381062956681459924200107580697434648917953035318555436294598964319850477221843649068023901737509288310312165270948596213866378260858346565986459414016696464378036946810448810606755310591545471150212909719653928385717973277087615845746332245106978154523543795505573111618001472035421257445929003662308446388203031752112484256798203569121316695286737968740973214109327417752857960876151356180146761261545577944901438531191728515009774473663787340716818809516342146014833058314726745353846761048822031302514290441749227253984333830858411707683770897278349245887075269275660784320208043508696060717781552400786448202835905877266691994864579965122791504403791751670592117823678405917350422213121198681487687936039224610749741604919761982502240124198879671318784575115522307658852128205523323631750603080226604253258249753708591414873842423122271029084542220668446551470979845627721989036829830636654113606748823294006900986868342491116700533877270276112414382220535735001413020397417503855915585597585995512478755593156767241937826730446128285344552241573372165049157039347784145323255769593340474072989697160734742210823313743084291724653784163679845198779840595389385906579478313546052240675881347134601759943318317614868989726773853205278690568979261274232418492243320202546711330689915408516655019755083671389242028002273534667441868708946196947287874616333319455762090769290832051952745742986302595463077947947243739715904666135772558343158732757237655273783875124854339723087114745596201589031448926731825163839479686124795636480607187799241728785230980047953631304558696699107380735084705373666331711576557646922855334756789456365212539429055407352004066449741404469243374155928867776578170892310769468191460043033225182028101888849465126990201431235863587446526424437412055306396589215406170480440351468382126156228574788827049176054318589397764408906697953630087417988073513928034481687467011760042010238649000890760736663990957348094694766103603383903545620309332371326462717506276692989875385157012471474572017945686249460004759093533503547956913597882491518985533269345350872101262032959063817059412285615431471663262435116551022149451266401145054298641971164193339935119089549688888597445300896571166433645431472421912803021517613530227081779016365444659147655045992765265090992160566054766910991988313937985866767608468787338324189405203598145038132554690566091867811841653161036013667142062055782592611790632522498391490916754065295277765723477427738545903589336480859721543258061954938732046422396420739515163732260942033438665872827054055862348266787106457348957040234435087707393470545012868859820989481144481152815690366493841234677370037496488376112872107174321577219188876071390246924439323322111071575430359301661625422850025435902803320411192666583790911645895556207634585656083802513887681007667451332734994198326873966983991467878128314123202616588350915367725229806556803956863670707685189945846743654716216864268782337585950802980559482222233126745355174185078871534867127516329251612775639754487185296773397302585472470180903458225600858425230254763071699135949186420277141555856992066187954259362441866807243810335198185289794240901671475269782309461939762911901250237937601799245598820651810688366956827686015468527349882609726387745876016954643330574478709814882971847034064079473353778363487165532507947702855700187752782037730311923936850200822370735174192817915679919305977003885395918422969618230904500739830788128754820435425378486368863797279057465949148892268701268186908766544253496117212341709707433785333153223002653731344579056642148406423946696304877043293877369865639089025460240160952568736390094297240260917921102409948012844245610862208577428581993020106848547565735007554752673667482561680875500767896142603257763590537656938732543890244557176021909264102598571391360221179282260806653036661073194259222582006299583393697086453446806061874730844494929803913356177965027995390477552985283710765724703546621493609918968849510040479213509080183703619306701698308936072629573908384836605495663367875489551601198112286637721128950057506789853256916324350497971115587700134630617884079090285382130459010363571471383938695453923292191502900632688345899570630277634390032791048558205381289177375281059532169719269331944919966427615847831033298065867884389787343205296095214039196312027743440576333624341652600289546749240888906114654820366746928336414396159842403971992437781036322817327529510771395538566910738404129603391482672685089314455652455873131052209213862935966232707053945860799955045901961549894089171886618101502635917413240896991648445280384857156491392063273450209890676292229423600274255155902145632615120408380830879766859476740835208368396860467353851407214506030604804243926431478281974043608215449836222225513990320110567417345078172478209040220713652386260991194519705726283817387259395121355008877780079565417536072781880760384096577815717834845564887559356903311881638387018584665132898046316275565317677122408179442866422487697304020768313426516232395596636173117710122727597423206740479595572951555920024482072979925983384345914614087501465567024619866768514096563931431955471619509488121134166544368417422953088590898796521765030755174388300041923155108851318230683328723357930280728566289171593388874694232969313154659353305571476068534207564401581897668284764943708555948880528902512555708861400413153941557458819284934523868743366829148102710048014096150738885290603278424251847862074560863463083192573782781400261774052323022660094991839223705205865488676599276132528336975654047476780219529515571772765720159300465078927359907283066204483382173237071812169613349880282414462857467693217035906835094844344817054418712515241425843141312049397586592615897631560072063654365157316953330620416000229597282527279661482151607133191813039967654485288513084306198064160271210052717454868497668823484435747548239102041774072419038972542559310593142672644660397198417269533221740082066976200360184624696515816605662382126851950440999178514371446942445352321524653496243806738729627387711055229012864374942780965832358645191440219849534789692896703467122063825865541539207034570752906148768979844244967307292015849916289084495472975368668183668380642765287387802803113511821375579713718339114044520251955229850294044778311100472188240050743602865960956486394976252978538054738627902029893043505258315600433275730318312925400006491540596354814161787793351006815733717288535098620556008068233435335051907075957008532434002206710807474798755873264170433032677754832105759725967000183822679041368260814510929226006614850597188540085132838898381761517791223491299896783673832417922140044559450108887940829737800702314463164160648179319572635116655882637592998199842459378711325390657039543417087934690345847362119772286338611799599594875610562696850477441809827923936465931047681407701875123602990357358316820187764235697562264997201664145550947538694540444653016476454006912611534562622161058148457965845131884071838434245307474331904002197883164703801730159498485868577857056716665280540985004313737426527771000054636613458339154555559425248791286205787168028781444563959977975628655934180368764169080712385105291684661836587650327720286960227877056272112348041963868880238772210839065174336808016532965046564980127704373024153627595818350425574833331276445089893436294274521216509129766509912524370226886321411441030000829093230349324651721124081259459509864487145739374056267966812531454240536614315319594868437799184103598790865150526618786251045688920282183726308908087102072606197462702860721652835033751445247651802781445627168435681407141530340365784900574408650682092130410273926218097555552822018586921262650394971224344210565611491999181613937352068907467723878177755842155553535318685750140674040222533243281898760765167520150350233320975349456310062366816336805908430173870979766550261654512648435877777349273829320570073547018536254473293497284918366444522377804767701497135294519016267757270519852605895430254451708420768021195961939771806832168649661320117720359372969726391412335388258691493384499091087591316952855856792321788635810848816530722997126519251161450794123406525896444190633344393944718498137711568593714917951509171970435487215561513262624432985083651860933993869179839109610713369247601056610179733462611161060143577752331872637395880506365135151037397036948815115844599108287815399871234844434441998151035585782168937928157956365527585392581294218178104057132327133141201637447579491541826920768724961505631930778206709446428610047969923082056846486831663187013402870428165941201757525196649948394469984209503978439740389842716687578012553547237027166715799192296172755349194502286255547423728951289311356029316346076492762667020145588120593213707182996120701129695734251182076071629768420799946112801754589593928466317642359066824804311390439670991570675663151432194105516170608418027850195931095906131188654556416573145002131769042427604877599998516006519264210697885380045806471068767713229947406161896711830967137386277715385315275848647775465664486153235359533467912515306026976996162778091293281872028232815392787041387365156847185854728883513204427782992035385032696005520272716571789078583001361031234104541347430803845804789320086883912876050575640921285255011329190914658785945859167437696492260216173750060346270427592606121761178137282886558245172197280165207732584192063262319261983622004298848897715610062132346749587524880412940895169490055280639112679058047521823608889159060928139198347887107517831581113624588059518973188004180334804097136928899147737022658774880185584490401653147467083579364695910726550287043876093963786565624554111059360328916677694067620561397966977942851362901168191603108470276968689958661410681348454115767102106970926857454179091956454881480969221146957787886380601456129021911636907890807450458643506046744012002035091495761166699784960091610894053106515640659698605927248720951788081286044849302932540630964051347465338240962753948350433208517003420555674697215171861610447906322164259861535657067962946878527448641201232946315429936094685739620806409030890390988704991605772609111351759689231439029970474524492904312851145016926746098050292924443728301873870997436149173464147389522129212830267311200578716018428319159816971969583330172741252570518507540153544466906646657093024154859495758735299841592919989212757002028462301106293395116531121075813313745262915524200447282593658748530552470618212564457485118982320674728124906189708204808756657422294391527638676159504523569805068817914936915035075943752384285697678833555433064588983739380870481737892540489776274513980086998264018469262808527053260963253934586389834213214358308625168377727623639628401492956620875763312743880427668826729124436921187105467068420321033002706203838583400805139272912896488544166066915838828812568678236666821159882214849805425411671437320940408765466766532907771113215986099348254580390553569664891566978493968782305083729048327247249268305727119502754405764048585408655053554770430284080172329886685636035704122250241311431105265498804053204010002164964166035050009974115141579330031177038305084069800085771491045941641537196527198819781312173862595980328325467068735274561664154215273559596173015554597196047120080039408435472178903489294414011534296058318861299752702436180371100088629812206615159868977124916915228831880154640839947435268789877818259788185678728701185294783830278864154532216177588057447146407270583848416540967788303294092083550619819859035485454538755884204081013839580281943229062259489959349527170412965038963625866013642908878805411872688152309293569393866138261378476960472465826321971935641815848872556627781489285767128407432895726864503935344102849079283804360231610412421208585353100423053512102933263387368237294991077055103506429611964840029927093703391199927156664146271762272642571778315515116007590703414358093861921923990411146936090371999394060955856014029432782880875214968023455538930107158051292103159646565813315704935462184690720512734467492129366339401412996968535518838172541715660480148876512584728198101617981599014545555508710610918369003230271937485143551491689567516018561010823589998797651745344699422115546284655132023938955689248287779138975088330402692606012416882167712326400255996183195457847201391827190581602484255265969424223863110189609745594933790318247144610238872255033540749703920617782433712331456842216810819916186265292553469038472016536888543984085969649367430823769104370322214309736665186978688092106379925648816832874721810073440678291619871880748362282215318795349713452638711002685246254816473600686073520130265708001702538908635955145724775592230214268613912659228541070858749888243927570449341406852962237920476860049545435444257799202122385675866450855377250415819435775401933779289470208581303597607137047968414249942567182130215063477627126775402072340155990381507583028218072581207331330737600102138751346222246757799792258756530747988567337814540779762943289617196124974854130909663069080415262131237789261998019191710613944091814413967777872728405050368458263009636446771217959622204680732583384794555096051388672365681728532411585888395292091730175705195560086434694895248061858518373505694013661719901864410184170325947701953350273179788050688179813548667526112482278591251946089592483281864205646929343382982383405998063964534038162368578163151441156552757689845736286960088454418037193134916765106846017452708709276827593382758635005560176806894924987158240493482813321390200452527000973230969467777763769100796946523158289179333059259821173829000281572324383150591997577220147113462186526199258354440704068646593365924466578265655904659326812444138994582576247516483303081744508069517193339362948079442888979106123677237962447962545975800093259176780632900506820405965552010971913432358582254300250636133625138347705757880487978486697597073950555835211524458934471551223532930251008399294327325304723106493754047114526451721021728986528392550731372995992205619653424128554705048066412236609466322292816355877159291238668719780368246599810289818351491686572588915117235970883435258222970246670298305923791856395135989577878797228399032204649821893773213691595439626662146141455313735850480909520268884176917931556396784081711601473236505433406958310359720147056454783937937926254207314696494136713681408367492152977376635142274169378436460646136649440816486235505691911135016080882950414843674637871586181291231301534105643523202413650966737967081836765608007933951785635179387337916694365394657363602747959409626490078475662930552965392905400545124272442808848550329355528180927158582583141808636146335725370779495337776185216688962733405688883329928581352851822138293183372296843767512716012288209191346282020495773611388687867117968878480928300082247641549115372399911377232009810411719514419879307312762792164872290073784197789519010726595894817237582915651380041104589847335923165055168649603529901967584863492351610882147048899379952869017508657707984962988313300997566239344388212307437798389275612221520546855626847249959304254271941404708312106611433419362693837965038267192167547558862827677089956939843631973135982354957829160746083493244771832928223161104390846215046546543267551903517924543771264275837845520323252483932196917035549322970209535486915300820910255193268780047230267734516392907337135555487049048063684842025182668227303633950218513233925063149894106235374784508915462377223294073215672048396801648893261815643285483645466441959116903668667320788708226559070845581242679796497713727497244520774292806045603226425408612601328890710615254242548920123202969469339848464535270150502255093225818634063513942336891597142046511150753995653268574513265260315879158964760059123194784519742297902571377521135662861293316690009178189464514557664190550890205230140385118062467206804434672271427995801066124261113368546162467332978219469974324600992453391881505673174643082710966830516729159771314079904526250605023272682984024171995522544580605957120094853935548427743926582302476451265405166679536403110162944950237965954949709037931692635036508601046236668320261744770903226856016865436351309615463984431077237174209220778756868651484693982964820589647417717339387174520262646680276684840798526914349510528173016426461806655785128308670286626120704568577725473972824257246069043251821485999514710926439561873118112638497260847101531107855898220687236152511400252267989758462851219445505132538335876627123251192775746730982529947707409577343205458619116319141899958052238296396380183842576241079782327551380901099860601768293317664201945086063356115839869824813874705181769545605185697189263689694986564245334713502711648813316073808931023336030313550581580390087686813288053642222648985599591430242422654370036318731718695092415578619273512699467736572050484457324119197371563297506327558678429890004082022763991964676705831457124015500907530958681484037833665529709374373309017111128632018845280562563151923006566367267871055496384205430505461155365487770561022003749739414879365478436888343700725953561392780773238247581732709292848428984708793561208784550959490689030629433010472941829177441176188716614711443749150016122636911647530035702842697524150661341784009519278962368376217895676878425534787524675146889259492375463521348356330289632130458405707793711907530132221331720598730439212400405525404199726570351990363077657119978723462037309341319344394325124820126692363934733581007717786924946838947474360172101787940966307711449203466041358687742173025016045457697437055985735422948836047559884954213007741375804859567150368030106314231711941921420596188842357366412525564822232131216039718440677796844868014930228996432196005588364425654155374907274635802805703501045944802979623969572173030788265073076862270760367570213656464418502913790223953408318907069124397345004306841210196482759455621641605192752367814242566219247012740817932113297658750940366522327551930984795621089013546615193305449267002327436995977020375703929843501218308652812681013285735432264987901077052876370625852293608077691774921496926209516594192166649645837135145506247709779216440179716499617007469405127344364263357842541197487865168005543750584312216112381662933475952567959842621062301841193729417991881794759775585602484785305692098405156086536252567234801462603396362240890420520093558762182069873425430221592672912496010278980814645772515330716327189580389064455617490258306833162612140249146610839628293433490896106697159326026958687143842228888309694110278079449272726573368331925564890328551587833656895538288617256308105604939657028772755472531183391381023115291163553139019050907980499626789248283029417053325746998275521252156603550417838144956542035417056253023748171564357395422848657370903990356355075911629262696783957357040197109383081933207512359535533480806467031727942745583363387312835268644824124481559089182709210581193362672622862963704647283284493980645272027448220052982823510053526127899732213065077823143939060242600395823809656133422442937324517771249513068919042016940469990837579844638337975866761054330723285931963151119796514769268775610478369422512643425519763450379153247469677284621175659764243301787438210043021310004139878045269654330362373553573040052904774546358716050231430952065410891853945267391519022940946499281561823137288071520677903599959317879476766212951356316585265433385159182296468608467818773965601111492548410593803397336458493912036885110220769796727990177040890729599698223516386814608502694930003784599522397971421720971365533709764600720085599423393123506281961567857709724106675149953055987464751434108715705082079756132900950861340014570362806525327310932816104131585408246331874796382319108129326517670054048621082029103771851396207138689036554590343566292055368496267747421366792202923599789921522735458514498147802854553709600047133709873556790804295129040726096230535325965715297008343831561585797737459322068766668698329866681595261836578631578559835889536187607474328569230918206777424185869747350590260368406655402865741093302419457847263340952818099910146416091630164038275519918236151864696235996589855591835745845476158527288554198856969275790845357878238254547150963698242023993461974410759109275598354116251648979439225073426385552244578840668976208431649188798242274293057139481442097488894919673616903342923710714081979346106493195433728756660553946296686049803701542308574553598977140751228217655108081460355813268024254342878618436773505325117503220573159427581750652613042740639391980697629593797020781950322690838266254498066197853059662200947607247201904703187696298519094968236581946350079059346148898691869597541393940958787371061348734966299029721025850390278793602366878546340201046040224652720055651078179539114057071554186560172679861703937282725081466727215647404262551857511598356347181841603131591762761096142936418220223433321423111804067228818639901258420750190089553541392984902770229319719157341939463481487800899030795117669318288813049723071918416546994950028703099988305431157665592651541722091834705439171363130678586442736168245056028938698727339522351601267861433772356156885909247257719900769687254466106347511967910403790317717699127487045417834875633166888102714929235809450218758557756811729452947189347776375016265508118611744064146622721952805197549143937664098854608498401574570608460376191018169357937420103161759492266356270544128493763503588163648497870053602102531482264800311600124575077879633900500749584175918122950337989881557928272404857445961386733588532977959711675585443859039595444102719995736813300901505410012208628369221253855376763780531619463669964657987618339503491577455208938719885600200968865765338216912869232436697575162046894963583214370775376223538733369742146074318397380052254401417604884549169915368533884258713240556547741158766897675145874761638569996696699908430824132995202081422488839302774332837178992679961144319665782115869402742290845987646626931300739963075246587088853400909036385240685983972686408255405484327979854994512695770514624366224012610853212257797312822069039043104639115812497673130602869722345956987637163559886316953729731154075931212966079997935111931635100166581455136372708377592543008111647416733900002299582380202218933586828612159748119047139714251200033606876369131584514245106899267033485296264286749679678577565188356018283595097828494489609248537920599596126024614615656821327541722681017682189093110285917355460385047485191140864073742296129425643928472629309420604955005959952826198760867636712155920803391734623449055157061672510124598804681924089486689386840913435438806842783518943375280208914331613015912008075127199532860053946626581523846371515190556530291436169405772154552883525731853140660800177422306873614668193103218296539063611560937572717984220225853044954607300732767736422858203938466259611154475010924553111064380981798513701346835457250093099047085882764412027423626533305833119210184648404325266435855750587483783051775274917249914958211689791708749720593221561954064372063677420064250799139654098945147079133138534689802557786232368590538488746034393823115281557205487757578937625548478697295105017785012795678351747887734351752848471491222677100173439950924426138468794757156304367013133837621965994130284905988390460102016476155410044650907806744072505432726517255145560005418407736862416805565105708271314898003415431383270881370205474850939000396629825080033585537641556239601305308521629143405555983968616997442044484337971784366560132030643004154116794524042298373498743236163639673214143432590744619204032491912465115390631581053217226310045720275017881272817303331515876023290819660559574621971453011131029622416617917736493855146012155745695117726502916693006301929291595816752215822749376931426674255217525736182909898619709409092307191971139522878764075427766211617506432826158702093427457439833362434202268223055593068238843915044176959039226950594941180982652385605324472042707726681977735279458997384191489773661835835827636079983282064724713321931209351203408789560480437966748926572113419880653018446548209870441293135111520555675713624098573636084628134488513953305635296945448990342091616614275149390098876162279604573701958121231493744221284142849220516131226929935615355969604748471033612995219963283703571271568988168361430667075325527282646526909587642592881870319531062710964327927090732945971997522273478660824523313284892190083049269132269157674815355784386387405698916092135881940215173889985879045675754130272867171388223897585729368218111383149204716023721960191051451284312833241241547789068400853492134793638818726925088820143734320228699534118909322919866580478914060246130220297712727005564689494899352275921116039521770445815667309376128643637181088200023644474826515934987482362116317727694337957925499803254508744406752988004391094125990851941205677575464924214478399379858050898586578580445108158791230547832187497586287952194596436849911985937571142539430608647934473592266970611218137803323129461483763674457817589440836519125521260233114723040554205593838403983471285693875574543680817435295209450179196162792130492393804073609428920350238584620141824686043148936409325350998889843119889280207428451827904404403093612135906793574400793088413759419288186127809253276284157200799802252633302366627253091025178208945922724204958370721848036801272794307140997518773668418123038412181606246870739666032562190934963636180994252855745718925862964042969300727664765376123580487989061662358043888973389485072916974318779313601032601654527997683974846156563630870590222457005026800807317522553840172207886533871195341354760323182827718285018896439970626487648091544468096982056893905252693653797689460050446724334512281048951512290450954754331180093319448085937874130531572295390662252970312615584879353916532326244706336486764066615933360210775021166718444850737661891625400992022233938716842156201725416725952651815388867911900892022943234215712589106108147923526676718808576186983860118101700386343141231349653955036412416706299857567766086709252228245192372985525552054385385442359266869154864093481714656143547653469543958954103748957656880658856754289766198683585508922907915136294780931552047855121366828326874067312675609019111623772102729710136722541394826807938886190527242774467958413235608519543572923185721401394789359191273560687987901002862584681106739199702024610329409921815097894844745314955856678183270172116036439100740128649008968372719813215664075811430682101548672177019524393729091090266123416763426058895255083265710039241307850252934662820404113238650012182465661056635071058266728891740294024597513820055903121934536557215273018657703294233808944476243882617433509396437041880016723070897959935010058562462520261210962076884443561969809813225873433665276038260780220119571038497883540753328026402494721182301768218302342637527211709373449598998409822006243080208010343850540391583904193366074109550908633929251459800327907376627923533900273223746818838061188691966592429082979214423773003284497581159095868981377551263305235040914358381046507453992981820483343429051730151211391044210012757499090193752643009268708843857771550254314953197720718096559810477434741994242732478126329724296403726768406449567752814268142232997488893155839587748920375545186730670793008698898463618069018383914365691331382201180193834143271296584210530473841356777824254282141250457707054446717292329126590372074471263367273541729267762607256244024743703993281208353194280279390739350544431565076759584838253248269024422940901257636553956935176339177246345183611277782260819572774734228149379086082523731570690486257279460225319356713972098641900799382315659869080665969349538577904172690838258523192893095909812159503191124979426710003356437899988991964466181338581258296744959904278738926481834474880028413475488088573018460582088718897171550824819169396070864475464336865238075479446457080006935175504258076218949761166574819229254485010918125183909751887127086885111011847405854723753419149781299304682842580379293388381406855086591962162583443789191060043525806931103096940680501226051489331037020069406773168861590118249463276639639915725343488705914142668932299647884762749693994835818944676565905231468174032867365063718922956023984169171162888450583868852502923076661817556318060058219049448229877179371057180301511788165273823092202467495632163151386078012577297716196879854720597603014563005208704420242483497809568590666174184625459911818535559420520262992451552095156399802471293217033783220804691404408172055857981352457745524268973527437213895825423274641398125688999074511910303814244275046757947442046825887468189983108983695158516079389332742845514018429064487124637719862437574045105853889886488819051149083447204616428433655512094378389266515752636997127826754225887465570566657393200589864296079717106057143486236827607397974256784115738592640342964391926459186702020168953446511080608300002001569204937778339235148371416961666657076413330734776312956741106408657926097217138051489754351696046413282902690341632549542454701508106351633113195573939398708114569331839714361728873375225496663820803371290415080273549487984998635578676203131789640432982204063897060378187440126190864358665113111327179570365878404500799618161104144997965839497927535709829886503930947315498214142328219748256007893808852523074761429238682008895255665433422336229861145235736256180028186995447800576283829666090978431998441070702659230181474865045683981473309769688145583663599309515632097976099305542777804250445906182851588052423868340812627871986888290847256028450528876622830216035357466151204159637182335917207717008807300276500273670994705591142528381113797711020312174221183784065496439538083051047844363151014613704155950209408166713263879958781680802201563973560686504291684548448998679058352107246483596382299054892104119825459882247517204156326305289567632402511397161629997056280472872008914043822330271173884160274332368960698769176695688730929778917957414915527749987538600838805294384308978149368059703222391142093711067381109571304042958499921725902293406096167761060679827185365212007102084247129781556489029947251374910627440737148019824881162654512996619562372702644617283033086876426478103843844356645909558551699942840523411525436098997673959202359173434663874584849759199149901240129859308289839742985715506336386198694799827402783734658214698800966487233882764128353940086710188274915559045674887496765008114750207792557486602239019492435859313688246588108862972761099294247702540026878443799146304931608503913389253575038919051047779735468118816235601574184842471873605548622637487414114606518707699616935081298404691549736108979554564407880048825825743162755119780148994162198317105870505983749922718010627308210488924461438604993759395999112784531657667112949890211311538454867939318308964363930929076186524739145055407347937091478157540371025670415069531154746948001816322659130995333052818920451532295993015584695656038173534459185116589478837152504974732800488564892986331953901869089028534079619685484425259759462291335579900586535110855199560981504600803448596189339513836377445097588224978401597155892722084529829963551084019516066453266794219599418176249545230346537327563556887871849482756541919812546887372073039624212106163079858360424731605078898753482537778174433113577708050815886000549878096941091688303017996888397732667477512321896891374616922187300041861941685582278415578262046761844491814876317519607119318536274413214964033445714887108269031772801014370016787293117144594357706604721025997922449839321301891525590637486497529692088181195194416814006019302236438411732353918326780925263061005172311999072142562749199748418108720507118456973268034014453455603820558387099094544526999763280528503093356608028669063411261063562324517832888825444411130350023875638598408836465486052196340984125953216166267046840468163154258856780215323771835657354331206137467846306965024994563908802491604362298232101565535742984495088906356939359370517310381408061443088870921308252149283476892841303191359489350175033669103818529203038845633674011845193449082315735671594141523855343829386973461066110023658391750859709061005255947506527033785921838406989583283204927898969117161201632511288461232438540697396363214361223289532251232602264660981963662371274974782861649590263287144100525610929342769927713973574357548065550701118456381810444384563291986515005078944727078433826818831326740168663498518475454353085749975420404711026778189834332011374796443074363299800368656689389081151661751738185383633369333440485477938219700199156111342142958945682030478490625864179618898039272386210278099404034328442376877706353101028863185399550351053695142404703860961769220452234297906514367716819270991220816717701471412917335347939250986572979088984372136059960236693584187082762932472881407092288845311245869513515016113837030116927197227063988278528578486901316284894438919951810362102319288926665295436527590574019536316796617723799624607457709672569688046429453832222432939417059913514551689252419402230953163723777644730367032803530279790992545269731169036358565963929149173660921563012414099480111439459800657995027811091753466669088189891272400279117420069635925560924913945467012615253505112142598735359868101601350008755565289220205742973217218584435584099267827825074654394155928657297278648150929516534358422131625175982083408126964981540047332783272270901723078303405354979563110367764635392623843480946676673181198140030040233562485892557404629330946025056279701887462969923587918307541152250524994237160169332798323937656459620625646847649793276154695149256395526048388688225976998419796206756611565810350258386190293495585339092506728218536090139801058859095888987459730024531925268052873069460846144938785839425643237197820211752840192376084977001404840660211289838509070665301996321435402002801779287923998990322797134117606911202054999216855481911175514254697756347733236590299185658949864067960789432841221264081364383086386890085878498394948552634585300560840351982728737428991434761475860617851572888199923327032533992041555364898311667297544019062214038836691065883652264574384545771116124006431951257735713344167465356495334242708052121664017126792686700125783235448426981976981475736996833545245896745617665383771551138296845166949784480930491073133016289244623034686476604404744235596872288189341612177730193988070585707372391803288458359949041717392281215663304720197367357583579652313633760473197186702008240563911688976927203857442200920061393159992827019783125010778464925883081395094208000149267175941059766910950482230264934548360983475631459176212273817272486964030135327011209273560352199829596387971852336571521910135524095174915508090955514906340765798681006456172787688179090794393451502081622955206601916853346721269533558614596145545252872759639124814964746865541772689328708015651663168980409578912893660648296980616123256171762666552613201367048200012777354407646790061578321563201128369345440916866851163067855236812318726049112747318305478525102795705971685568149227480715404451563077825474380419559648257103857786399339126027731686586344287282592323982293241099574804073394952840830720524172670329130757330217680164176833043883658202799163514296302397451681829086778791874513610422229508419087306855005424040988301895619855822922061636262676580122079370775520869508357185158846590225449743738259339530042369107451268235386332705021367126628863455589693360803438883359020089148812003624019813189954989794314662640271996840220786376727486681609815073927006177038422503621379917865255619877119409517740430106380254642562933214378125578522663316408252841186074379209816023169327560377731321141708917733276212269302639242312937555005084453036941595323567444220035696371246277923776287832367849213449740584342963471657473340545945237339789787654533312583262969028749599645403690869264170101647849178784039950891027735805680134527175012804467636554280395376364019139295885478259508300947496354237008612397842815204746068768686528111639797355363307036758943997705830405307601021116806093808183238505350457578816346045692706774123011521353845024856996002992122127907931322390024886718346017462821807728540768677049594335820161621679275896141147934442822748451056675064341065169349676296022228556377165736107447031950498522454038100529938011284371625586209804030067018631589010176789008570968198393833031039084204729126002854543095016697983918846689548112251125352711649615958413267837442932003733655456075112788124731459490015137677218293953960184474594471041028960564774193260997384674165866092761156696015391093215686661225058023745253835632279216309397564041326819927739208640295834938679483408985767966601473096893567937692045259398609440954407445358813183057160307953453821717037142224300112928748726286525392340011974544734797131278322927120182332548418895807392444687173886737533966641962318314880865215167797867088541988285197838523464024154434288466693464660025602805589374502798340433728861645643900212364209816043567640377738073294233421423573204986446307934192490432361270198407237162772482557571980452587983772966273376159611082860501632835431620246826223926078374722334791335656301358505399533805976286491631072239379951441185398132958445018278010581329821817807251108557187433211362497822690404184248928648098133680461984591777385307765475698828702715245262177153234206559611418820491539889255779628674192565979332416984092558601510281581264296296768734497297137001541275781501785136654905781413207786420393424132156501425831217001065252304180907766404362656946385859593287965557711299328783343718179487583423769194044994200122926697912637468796997782648779108210660171918826823841244394402574925586562865634825977155613848327515790631685810933612711974493590597611868099006911321676996266225780993363395250336120362127200562131811337968355790567293878577709442730629488349285438449417353902978152651235374990847334951792261470565105208407014457528571166773395492479147138994100479992745837846223116477663357128321874638539491766081641453333726453586060021188220346763745835855143618263366705617864573891624401345013096927744049341355518927351404337150744408933323015130992014633921286353550725246279873235021783099660108726103869480376899450896207653022681453497360623540742147747703336100511338687182518800807005573177300633311578034967013945174013803428589359920151021761236601443844014871713010451923241422996202485611951659284206988044756730148864546281159139388035318794470309204171976898056669779069380899313421703137135103852608209339627024461387349519989732394954120286439816724453897157827514900083492067152549934556886546222059409278748084677015602877815011864221834289871864096721357690660040691599511028988391263999796955632653855592727288768265939454410731194258299139217955487454624802683175034592688626028446146148947818198034685284353576236806448074322505427820097462442076245193549265275583184130285667284450691006835253310015383865329797316559035273647616416011699621066181019699949075208663864987631342010263344001175847627382403213153675779721853307556830532353988041851058078787942906372903629956207700458365036374592152748942364696024172226424219998994304081331472845674296195912800542062743595780739839518354036508468280015513299312094809085261666290553280472184795227552203594675729392263789412780513283908455213531532522604223800030918288109101802206312335077807120301510485606779192172022706783906799841453378031969917548794930883790148184201958349953087632875300288728365423813819148264254826314439594243202150691759802328793482061546001001223371488144578300526514301453982148205325630019539874272708298973875287589591633756882918314982547271098610370643106390746358172347007861040593355434160178865716828604935347424000653766108387040863180735835832139353922440525976732119166474966687613689209878276452094986344365480626509482274543764854525275109923447977718821570028190968162096309124572650650783448549282373082696550872675360676185917715000557068320207235038102180260277326393693904273671257201640896051523682731004697791140200211714912462900803226159137412133565227088073856121695774923466311668004522508238115560054978746591086438562341305428499644394521550196709311670868067873662208720005903987516660685052829916217138521946437394180398887985682175910266749737836749895180336224494523584741107182952735666733647423444150088305291459308542667451087410522316476981805074245434912093514935049676395283119398656057628161893663550130989464508498906307209881713642692392016566348279078676309847928968780882879545080768859992341897521363795027067157259877337402888462744814142787641832515401663507898786228367756440759419228949220843947391657362559004118962302845761296474913203562927108610146755314347197476386475285000741738812889366021524224438840728635446409239580628592899500752970424406082096083147065393693383203436064490285492962731334923411951360013626359524397311301251402227719844728836854020759430421063116132917935874262368946212895813712185072923607521881277040794417828005659124457001931695555459308484583967817489231050216850722303799290292013095047760365602715734538339103930156877642011783774254985922169599057827591405780621825486446543318702037649337087903232587693664270099963693725832576537799411046138938707319050744774600041489347157744308472960602680014318298968725002065905830760984408655575074686620068791069971625292131564240671127221104541250270762417710093685062523147749305726176871940111403560304749126611208041763668635825904707818470132947023963077581164557141397528156582242240517086857984135086118316530447193216342893976358584058691373731971783618952914520998600735765292953314555389037436490015281277954931497125202034266505398657410025746396179691351675851519405758054209957984663156607411998019622548244805565582795729339490632552902446511934478080137190483851349281723377733067124769512906471537236439296418375996741276429485098653561948279620198620325827174280178411090556386764712822547944191112228136118493951630921616521765654449490784405918183925514980187520273066445296734266836902950658704553215151097877540510038953339366301342021575608699286818065064382951513322435958835016845881685655666846543427048851229316156040881489734364201897301096627269792788335521797050449904915602487155755112316284053387621407657132547275585547792394304185201162220943432404529915493256360840816846487898575422026413888719972717403914500027293024469660388017218559984132661242797585566375061211516828408440282801238629829492205696251090423379940810519993755329428171104690876068587822427023584510902930906510975111159325814925111263396264605960823866605502574108970715623559817521612662187413879649139109751353201482002526516858582942450098282332704419263373198418344418895875982270048992677903984806735384532320448550102307454499238420314306830290717543467322280018921890526440192194274945355168598781065752164057279058695588320027884976783705416427536813263208430626582948235494635280241828189327841042921920998378609482965472272013157294067369758884349430086321742887742750461486366229633965685810601665209402519371397662218585020834067604860598359397499585524134136070195316224314057821791290592835557817714018432420143718393089454925756546330701444000292338389443804693583069782200834906884679182732191961196601836709870000777305327940807652023337795378517962639170571546856558718539331250011161583001938598757422738469424673024635907594863718046244450460511481931318814459512971012960456491597308819233661402761763145454878934517024445305204654889560920481883675616813345080885303548053359082970305708800618048897013251607557761769721542093174390697874882513233362074111029023807676695364475263636505463674949732929697463559601414938457986352358332826995862082442160395583111665045019853316929123520744457933525616227816410641077255801040988363526168787181107796615883888034899861293489796113743385226839738041975079427859258521455372408302596001290639191132792812485715149018661000407695986722616415188300377229983220558316199843944815686341010442942932507879062609435867227020556548191434651992664177107598172789570723633923662572258864345800215820476871460898104257585448377148897511036962096756544738808910961685546829985832646072001965391133738971850918595891078286585686476932453598042892545027549490620687721565439608139534863192111290617269439988241793840754425682535782601825007375871626197877942178065606239613861505057106969825384297925077703879070625141197965269695383259508618233462900598604118611447181936368804734957944263497862261390597017329729568894740708988065985561651148653903028693308893299629793549004468068417905979454570082138281865822381476047974927775980210108931412011214897431118724851359970503164745217493914755561552000039890424073534159328652070512223745079917976341195723625033463429063018299226765987861679032071756619714640785735678335196615964950536357061513228968467596159851627752001846769641848619416519319472578305661408980605800734054338724836634037066821206562746234234788217234322424078644065482236652520915808018060792460879100236107814988803362015495797950737557947978944951634753562615998531708674235649904880777524961540757148440280439292997167459061283439992085180742044103869671394114302943770392601629236229298207158814538412792679548317918290980271475723127576683245534456455052925516085207002007462342548557756042911091665257293935189615884591837237274372414654221709614121118116843074594962766719098278144926342850568409406496688203742937627169134582228740315940467943594685810088483689823280854563534668380665266740361207890126520405427512370607851617373377658664935502768290717694338962698298161339238003079828690087873234709812523044506802599067953739026444390870698969051372439609669491761261990100095572612568136238031125497993463363371548461586035032875521979132382159175730258640153523839018478637953928969669909493991362354119246062521165495527235451827343038150167669915055811496945706275227516637962662807435944923941924786906919870314260547816252789523568862252920704039765484769079443264530775858463089722463143652605462131561231280269073475620658007458011292831081242456973925876744338720220307068889435379859928849584499084729484992283435091397325115499933736942687332836953822884226309374165462969610191328065894518496260387553560745213107959577386561743655359361555236397619288051927916446443178208027478873600522294061633994826008425594234852132987907985674519115760094677572541685170912799979747548393988460426981076464120276689730516453891763138595531676934165380408695165138974828780779939075660699585110632667210540721465567706669912278618270122680681953780398679795573953268379105583451356235233572792945665481068068253181451674948153384838325125119372081929393564822747682512336080496942671953550744186237767726388374283617022707052057753982275568455578637515720479444634944853922935708416366128907518195172011764827119274778493945173071719810429510641169881102037349771237068833841462064528785431089286155071021437228433437660159551374342810804415772671454548634755760187688215446126748265278146863176998000117516675188681443684573415483130274128896169324083085131202183402840584024450303053955577649231115324827999937006124958758136810178056861536148111150526557246460628229754693320980531328291099079555473802493287704462228405611042062436135335940585199758194585908497172561135173487259843721978532656797117369726053897346170414851583607212050566406289659328987028495328631120772366056780593114821528589439685530367495930772635945578555660719052673372628855648968711418641072232885421175558811176181548832199109617650829622029327741332416251158119695031956586326693157173284966487345756808576167325882514640688573140595004581368152002979375897779891859469561252520330570711570967569282630923458661898268652406051277129532359835867094693097734050894162142563230447906423953820547862765029626185768631383266038501527731606749485758453180887528628300544441052067663688692889193953525734127421087327501175218834995133129913363753612826308409280414890030555522098076619350807092731563362433896389152293245749467965188635900128322590628637546154296400638786838199312075036741931910338412051882104307761104468471274661085141034804680686490319927866570194584307027608071111818178120557810574999381157876316081624388796833315028383365278368233828794153531349015671601037058002108221057488665676700365267327122638571322701851610234904168986788534132056746539033401530587330489616206332723286276547656995820357833533470348778427987992132340278356455722565345504054420712603926737522806994832142397800718109366980604944063670968919300866928889217874189090352170549107028796677039716705624392513794183804884622928363633044984924329899794741289946561969351237456164752124773201220778194422738644712188516716418283056519883228448564224124304630451537707521473976331984395070687414766993864970099504547282115574285159043049999438261033650133971834962422815209673739395540462675071238708728797405893889503789211923705624156445415506024807395899113172494906648515463348635864717158436207629839307500597432785883228532937741408438130337487947632410793189879288485367199919279591265450693590397870148837582732226102018390359628800159228021657557244223018172419143134904484099867420464659703460503103499705197949241615875673283683876723092650822254626115184144150269103654553374245582508895792990637617400328650273717689748390094779900925258451052842897451064157108343327588918840432558627055289199838935059573848881391651330165437395011619187506309063527260987532239945178957980762546590916724874172260344840207797827937984982280020455889513799336303035943186837267300197215296048931841348190773252899837015217671542229589912762996095030509702017295984265400966593770074741579236370646290490528025651198539891704089437746045958057418394098340579139379082258773418089481224346622697701127956399304111896750670426333906715390384587692932754412614262204529097240377962263220359636699013731488643158137005452577028659245824412237984759505562285872553946052377471359359260768341244510416114810899571946611077766003552420834633024391995463900303110211673870772673283937415883062264649960819504976590340130835423815791165370568738922375510732881477432918701630134939368281353620553071489642149171685006416060240713136282524142547172391650363945948441531814346790966055012791832475244302656164165463776631365322495038905161971938019360538664059625699085971022258069011582237596869584881130978863445211152278269341262533865370763225725296215783366826722519273347596833592318353846629417120411090108210042257490371933614078445255946948042333012499906946404857919311955324535136876184726721669309548391774178059325441776119986929032634910268079349646925963302328971369975840879876443901502809076249621860247583671459729371074701185129791014971707786344218609249412302511817015705964459722409172927066098691351788942446360375877547746723949215883538448900579748604293950234150828297536985524401289612523713220053322388268603261113448097509000308233439195720410744446347231323076387314068294943552259465422540567693720271927778407676111531289320187762586872285702299070102750409302150393941288153709918764077656492941765261259107004885888047381555543532646912491429101535683816157917017705669686171878233293841697533811781534790356667591525116849295585257327493210703551208279532665239509219746472347865601045712865850218256652133880816623068834144665857501771111629489461425168327613828063051187745057700018077283356283180760648972510259787992050907113371243045887360890036660142874238621352736381690967746866227148952442806895414970691738688443538924053891010882559989320933440567488845189803779307754995094035929232589998381606462917345101498658094643876484503337599957250552616848482504520810303978937453244101618064860708568286483299602535391663184757229038199769279557559186152673056481873659185010612945583766582644270261217889822451482752752474611555300719577620507117373490848287518578940750167311157938668603059568410074477921570674009893960758015412640117851257151399116707933572487145530526850364356412046188219372379327336418852842685317477316469174367592310584544075839671944514581194563563035260027700280275433641947810645147170864305880715048030299758419892514095598612663572065195627581048878557208625124606836025368727675352677612644485206454708519265584296145524547097680606254884596333451131010111106296775092661168977606110152069569429049293370063300141286188283526718870780226767363571009241935942891071487120113107320984817197468362125197623176666972226006186152536492171923786186284347916601479083313695949608942366952898546991376889782164077607269703772215295272142318133921812806010904536148984358841026428891832484397885847000450716556822457529872734971421169120538792934757755974261617299437564716790810462322067069793275200883021824600075068064651395813785827274931675353563205225370521525146337258797162534222452915114333562426722171240249922005949498462055442718763665532082922628362389237300380850252079012735802957348370674254319433411015547390451107993089230284814323151042277063538231437366217171039790979683703882318847145660188184708248802334641606521430267309349032798146524271204542044931951545030813686672531567222862196193035915622628620449177658349955591756889985290175763445326569887065402580463600149727785978033382658969947171137365367085162033185870342450415424513658989511342821545143783449453908769016810580449050524279419263656297549285919451843659735438458823084308730022179282699542793933213937495680902382423264396321118223638117007467240635203129267531769868662910087637898466965254246658055517298081201074063611575690880546372387753002050986178487696296555707712668620134082137381837590602145823366662752126707407790345799057674314496066638784286974707670422238087239730068062092883233649491903080589660297660567606146900923847438737232442584804211909943588411143246056853200345308999380894629833965992933209706999940578522302747446476996983399499716926825589233884853136527754216120561542421701523772630162755113331457604346946503805733924031783655927753271749738785836539597508894404071108864413558479916730517243692296150041611386416294730069878783180110834054369087694733156824362631871292943235114340671292823326542059830982383193368747638773452272326941248247759981109110099273337257775542827014152594684620580733091968622029511993509588353584003187527607264515261578137959003285711079218891200075188288970495988785710059187839290339793786498318490448063935378455419914124436212322662326993725453453659938306625145559826751968277116713246922835000768059947680810644669610313430048471039822340951644382345491799140900824714579891789635131356709957972539119144601911937117926428687286793958417674694413622927016890831783702413427645093099272258240800216729848777456134845824344978906741356654879589115898339774671643160913767274339597845924576672103699171412132466117787009915078195009930970397367692447165847101063004441561811571205327474467974076254967176332894293171427967137095682943792743526051362152405371212169156557339251841100939338346347611202543576447501990522234044160574924549653113794766676788614222987230298621075188815771118324183422475217428262154854076307880718920183136673884524999311835911070316127108937226178686859743143037665180774200590925950286231361382488208133765924386086188381117190341165494161615774778303796563765181479616425300801268586543544148546511057836154062352128448935307384512320767951622398430004677584982933291487842066189284647829506126262989800852013184551868789858523600757515951381091414963329654811356823731855574479372809399466815879712581945009463900045119616920456024450444047472251174703563499824359888668942079520187522880575463573480348137683091171191913328788697393351248513717999527640470188173959488714944376500354933967690894839449085648656419456723929693424320788154592842488772349878336460807620041243539797814177465280623126217897865374582242669178801945460359856546409126969718126131617976540145792494463531504338735868701045364189196342475947248050380220588296892642228469662853665521296572744309411782455464865541224775543041454169665295474458481673128219044601524440948610670192992808422644997561514153576274805601483680468952852992888599697461242061392100572020807289915829002440622282307474262223488123485566426705524993709707419724863605605139639535319039833511833247560754279318634819265269817126882435768850407912671534369445336521289876493489250169003250660426667977212583941256129833627876620132503357271560188526133393833898474270699761762993489128112370359106328064800510910098105075325134768429865171303069354249183121205469243259843178940886174187829218128270820423057626451936702477767007916870131814059684319483223416051783726396848431099205612056380149564915837955693028333921391870709704676184868707093063381550076252445275497117627665935834854870878875873026869450189742535619368175727895654119316589497174701987282773494963190557947786684907804239695829549651460489806555531409309187572049431752896264717872179364585586380466071634655655300812295559125022972742100090224520402138359209284603236190551310476269314608317223819108343257752079115713765117079304272117262361271768655781079355200847114911671652321175815578381990163956439831545010235648966805227231896294088079820492777526813522624566781879651107485655059904340305927410940362149446357588232348809716670310193069674080706981863269533936489323891597357863933430930397004307596892907286421246261095040185970366991002137923589375150022109395267210456929613974030429232117413531869481130372393545059497436868943598998124138134410721408140858086442518010043886416279845221633114055854426867987843141057095376872887221356975149180953623400207926211972958276712636819240474191762768929901131796834256751929859668499206260515472513709175160799711960907926309938035392560948511118995443250534361941155623799333213472807700255809356015377225147718756832292180256705611972623310238877971804024300083750046537215291244795611856647583255885526497698945103014234150925702130466580705451446540490005251636100961097839074278058391016491029888832432539847642810065217386610852429518562306668448193516645651023246678097186049607218047825577802318679047398793115297473815603529189819757045736906080685401390311962429012136613114217329492788026627426938139616706297911007915386251132485650354398451739864580944678977476916764379701117224784592929147240045605908137311865653353274927385228230173317190579950813453251732245880159402302217901493337111558304820814830852197869915108293356671348072022447649337246973907770597205496365910749172224369844191604725346128431372383212160172161537882360845452463198510654599334244420281474338247908789420332960964130437759651203338172073899845567890035632719789811696331242808417878689680673315365303261477243124348470924335031391277999355764411705717726888547504850189321374981330356173251166279258203590006490985538850121441514940132453556568404529818802039500695613283463892918516305307965588994239809802872296545733949375296955185166565026121915341761491324924697245634584011911737106434516362700158376480130223744246765126813079175810140895103189429842713343143569966445757650803848745957993570049527718149722411628162018304433033575450912345975159790512416605117973043822539202063007239755656679758383837814068256786175034891082735553668284074292394167884390310667019400177415748284456104604947362526741332793619615159986262728525820906204478190198390865296264623778617552228741136085037990668605758895632255896644937367693354065788297413175241657478216378046117148412910943650326587229378161187796441381430819463522715844437407415607662062935685166836884340964032341077659241473992118217563846871450876762390403254545909708572000548056211972242620329118079206119626469876543232188501183189220155311421947194986225353893563910674100490159145938798148287301681148980794282781980026652402694447722163375022462072377861216023799606598568177777448196024375833144121501546603164243618532738043318475578571811919782483914945149751481682983705591411536514881413307209609454022691416245948923707891895763779584931980829049416999032426859994435382187289780855591332091806591778290385935085887395524216259850628345877529621468056764631360515721915606486251346781720331623480910426069193455101612135739707165099824486544049963656648410304703325440122305990960582193731855088875757055157531580711756167219947005387946944666699151700503349598119827886123450869241773327240771029223279543822141489521405351571572235543570001537626223234674528053200575762315308905599253479005229020845068689129169289372652687465121392258447916126803923739662119927660608245141114610289705624933868910533507868751324001408069093531617908025068885202034836314618981396921403271352563097889172488243765513789667005835750015075141875451233798468245466634204543756520651743284658679315785137387167092675410192378585187132608605249116926788600236186128636790005984392637561455582806537867657778944273152414583503817194858741866779147559313288012124994027143252034232835995059452097667206575267034850478738771787980190060838339727028814232937795000556802211215139081906050139041029859228052268398477735558664188548313949683413875192034660095022120673285129056687694211302298032913706566297081224018320491184365304766937345984240156262266969867772232526118863997721004261952728040110987154786395192673185581271952324751739005751795188842606399849267307281153618858655005973579732510911724458945641589461704279585976268833076462274128535460798400942526942670467063532479394669838369645504871384023274417545267982244885135350025007604891514391167505254248618544292332575973220402975734795721357286685720199460363005579785267330194675223920416899326107854236964592241978815475715201513686849270181672027765429716411286119547788602064848022011779646783298785625286446758836709046803762213260524752809250041002029353586473783322627770445914036300779392528927933432691171736979042429814748901966771839366452830000480868974647996213202452152299963118608659089277110286091845290686671227866666387619151281854082701256898875984314602307849063310878322249904521436960551158182286918076786274477419117990463930072122147935060175098273166746314689831410325542070498456490791769270645954909293229555510721416178609294362086948580249465104885249926697826810284163778390122442959415639597979040504402507263562795092472909186288357148820394817062469717074227367882984995379976587345491314608726272984538673156772138265276613157756052836645020663565136137485402809455574588378307672771577776669493114658817490078211871207387190000259188257851674131759143872712045762948007978855781568932233908808233701219136833037378736606482440249400189730022167651172499336051374710950355706790075062728848496350972213009696853341364772842899475773877970682540045173013859047307479502720528615664795831738152023144663847591194672860361712799794804485851224962037273090970307191309989738141832946932832712387498735517172949055954644267231372731267528299987428238045011243532322178558566242026569554927209068867293035154345393970219974221909589309900782216278263484133597890143264507275761856548078561363378031253617399561373932307778408278425381614966513633969862255744034094395146594491948222390696718490199662448343170747827991232318861615559695314909376403983287291141763941006130951257754992941496319405799841406424479321807239957223439121990148856481833230773303717884696560070962610476611786056695391267064614491113902647698616602737855313733269557552636819764034601781178736886567043305314188198831998891082255750344392746036251149921059757033786152313301534951493996835141060184962899845690873886254357365929870633194880885169890376280273077961830789926647049595398395844466198159030454540769616536356345869478418294268360336490216873053232123895668677763024631461732435677322007221910733761018363067699538741626487846933745488427829249511217388264826466014407524465089213682077968752481224995725795834822536411379713573187594826354595114274149675144962043613993305740254510884696169884321474649824135175819328081353375607615890592065428988472584624771646394521106508570244849026204493890609703798399902136937897881967756243527312339837022333134570287829665347537324881188021870702366413320635436239081512385310878324650298299415863507596257858930718055870191593095406189190581280362920460362684276093151509182638048455573255878925525447695213863529377340665353536899816245955865991546996815830657698562925004820933900427137605993013070368328557083532382460230780091470549611100367339106083097372425348427126320728274877438142982669144384038609592413621539137359017156804165744833701370980354638682006436150875798437378191073586688095547361810498726643099850878989111594983620961541359187404535906696905844850959301531071319859952118759200314868524777289091735261605504290680861911996333535009672646918343294382299927489861740414664285109397949956627959977718530216501346973089865439993396420770427405580795281700144396215607029009993483014043235266814326886885714720419286935380096199498265411611566809607570966639398787868173855296186107795105180069086877760937203800103323927824007646330757297060653532577967791713466694135800471890133413413864958266525764096471166475551709674903782547711056198956184808009858795011929600733601605855543602507080098013525075851765325443533868497893218132467321141352788663749883912815009871074048124449887793974340367806678876309955383866276246373305617560870329657903708629682290070352650706743508624871096574271618007709376065526793138982771259636437697398978170859224573300032925707741974567775093254834351935517508073972387094490122662162750254939758196046646696623941157978146390547133103938704023335061453078859070013707436249882521774649600750323201034882066300253649063794414872432677816302706554858194452693705742795641416879042735045008126033783264193581760705349377195537397447925418441852526681112508778077451539346233096857338484211285950828669895099733556309464302093391570323151571648562894300540413463069612983375445727940291373966585585039412757226664156477195449538323105863295739320823922638251509598308332187153858534941252056834770391277442381869776750800937988035921847847044925567881101410806916711466195106626335900989215034373133096257175958538083904310375707802069273328547901853795442369567225386439289950005892189910980355533187074161766728951866142853307434646746061158942285850145987462645023360622460175454776974924774917892187454119905306309268458657268086888603006073519625969827164652338323380579167648446084881896591073508056652237360081632616596250375224311758378183509070359509318936251576713054581758645351838087301815378605790898074499519034629360242940131865948762479205635662451454506844020471148938255352137969992675959393295945943376041226307778860476071119301519947726956396265779500105054698978945237490202666751805797194818204583505175066505139210189430006849512702265945845343382950590258864388792493194262392773440348034976437032602051767771710555068425673815938831877952175969118933001997977841768219519480889161078344770053415536880815095752013206278165944418858938248534619216358554579774214015549726773691220978977213934936633316404108451897704682636249145874189226431698798301626839101387435244054442313243227033866454360234514632315127812213438705243878198949150169329699587544527356730275467489607372850048851541145394459700452881630006596783954320246277721190677557242767791454232552440724058133011960307187973052918164521904725620310426750117627060442562293007473277027852332863468113278073135657277750447612350805798929194314095632575403823469646016774865354188386140599581468551645443191554477905910963864975999339830897751332865379707430810196838366858178009812102397009480945608767594779886097908702183725192304195401420138880539491046758672342896291569876030611217342345183267244870915365647694117648225685402108520089103461758738938412335268353378041856786197646738957983024807411190326953636668787355400573610993124838669003524072575146729336024052667516893399153342338689212233357603062538428188929154482234667560875118250790564577686062307330349707274335651952549489788561588475837636435658632809574066023242985568953724285112965665902614385353372425170588907013331786274749435236771888364574579443068565310815971653283125435922280782813179868923903764673206807235212328569722889897277992414549373590208589886891029567673327200438423869284375324437790324375557441700271862160212207735567548949741288175985902292457832037114469429957004308430957560813221976016232967674877816219061232878285625139802663358446582096060007452435163891892681591033430597675687443178502771432081993048286832346892935196722480283060576605662554917867870301606707383822067041083532749223253941002589945033586610057754431194174470677099030102498213567623618099657005275214051338537666099557532111017715033306154759386334639439650692897705823108993918034848196071804903522673003302356291194033972820692390914798738604514372406345165343129571087500443474001270839266077862536817737906520912905848756085390467867430462379990163767885105529483967591943869777866984431586355637290755848256478592193394389634796699328362379808475992479196929975134190107702795056748640903207571956885057222429767090883669863796866427006074597521201072397683664041626886636503046285591042136387126641923363414182664392803592253879148454269418118861460048536429746844556490622278117738855457027148428289437322319592274166914256788631605339609743116368906819619497224582971030593040555438541802521777823569754604672600800034620114728433274098760753311858658513171973471643982144437815490371224156127839945558858807314092615682911619464179890983320149651495280815462189478409231434614257055800524960650484886584670263732264856572152020607693416834752220358022745702330719344302773654015116809180927026749741973858737886453387310724735062140311624366795866001439452816554805783908602563481217489550315512209576136500660916301022264720196912730979412696356807031478219074724100208004436276612992701339029788650436755507524676872363849915621606819774585042245893450349312777671890441755178269408296350413639379999994006231262953137357452736914085288004074508753514841378391383938377494555440379986930262768954265528925480407968548089861263376440345966301379445330994480658737808401049563037649410670421057096706716495206992601247330769659449920431204913257694348157059397830656592692733086906757504957405851026336758424686130617676292877083063050163554677455783028122965436168247033473556306231595671406461064869477865941002558322337388420776565397162519064346160359624250772846148745762436570408121506015993546936001851952825818582676369627334498289012100525871741574090745341043725610598930303084747426321668350805541207784893099156611517907433894462005191859679212777331114699099439911665512538115444916621413296748821089391606475156341990850849452562805081308948811600760761045223864626731040106013997485121923715370863614690958800603549941942487089119565013177382312485310369472634652726374717002672796950705155076485917004376969428841854532444229165623898325215841370744105608849710997612509493683493393345620484055133754965222286240314924063676381934664924085930748428902278988681722678996632648538401919851095061733664779695038444614974169075048449281812598176688088574164271382487434860643697222088344023553809429297495271462130114965569439147747639688378206691056821440516887256868981996421679699004188396782439627734080913698085210724648390111899035466068728280859318052465258639538116707025920931164556001544286089606376839254196179080241977677908934480182719401997928079163791087027072504707983211151959793959586731285041555692175544861018387392809323004912118953525380513768936806773089816328365731992229063783642048101931051103562368874962409571286848641784141529651340811817159837781810502322267164227631729716902190788444734964605997698469963808272966624873128357299431568893735102814969643497870146690060134015400375276238179515410904458091734341495855588505736965034155176956257551396800073869615234876812448088164655267720451129239674718475594700755337631990999328414442450462316134285882950079670752632462060944569463615073339837520770783550793000649215463041806302579322530161211746741658838919568573832977629153616460631665497507283144094168748388444830621631109871323939876436621353246651350384953295623513289168318517346350867598276701943238735821771539076207817458774336935386301698285584072182086500826095982928499989943675238646476673050081818257890372149297024010238058535182540575931420614511933797377585013647175431804009797456369333077816302363430699933259465100722815282920162562271904964794625328916390067892225837331566300634074747625850813966649785566630366535165119998529005577872316632640757829141263588708360769929817654567795252990476320795282809166108146868679002208067807172104089207913749033523377218329447256502145734780131924808391724261341543624461021872541615837131672317860999990816417983493968196397950908876717041390956399342090988901566142183055536712210235260002552691227017337178239877872273499226742106022398213956434610690611231767860867963935188463177630309001755179274509075132303192854830063577678118925172063763929369384732603910104459122283952214713707373774900118093266248229985292166637572854706761682857568613584885852691705822377318963456469665610584214539154829426650464434816665581272234809398358192377676476482122699617081971724430479403746493252067613825858276284804037868634141679750745217473094722758994423059363789631536138647283092862960164120558573139603082946357094883357596651786669119252316824105326438880278610392961047586453579764747817844790899151765526416264267206449130522831395836379741993444397694094837255201580791580115841798815460438378427689361726223428714492129743420035020626687866644307944931580382813143756653419877003892607566657048310043222379080530269934864645982789895350169849913073735990010285451502513608464879054136545596140673833572062983569195503160961460324998446346766611490079386951801816764050080249037074722527703967830994812217141708175817173650592058053004581828099494018100088869525567711862998481578685184423031044163140890149355920489479320801709010493980133540928845266510859526969043698393205998213960694121198213595860550577100495464641462250170510635955515630904799250056299889702535759559317704831243003112764667385468205010578158118900436144025738253068954245334634356102195660661529852423444455322874955295175201158276652983421786334965395266642846988536176355404407343583521949808284864675715555954264070482427465239593869563239393257954113443142641284137805125193323679532442617640306237188310045116631459558898404645185398829209651503877936256585862424981652050504487942138711985180445449986484761619396616869589164097433775981033622346595190345275226908142865855126017825377665287737306118170743752300375367208659256144369951453208729582558645544210232110415354591605191475016644069641098427356118977761296248037035458319279596518097204151873406757273855808446615073298978050765545297555721133090967371924205267803013964597708831301459681462145809267997074766432780257031237804301636548977270511922199238758414671769485120764161106119052754275664243325535836914094053099499086477079905281352393216214604209317157480222396958244736326939157399721463828337463790484925277146284901166590711115021539677487184572356059613119295384826754226580333859894585183364694471216587335858388041594331361682210602245814867609644196340842949128063943110278557985848125861931709283201621243312047403453973518008953918193770986696827113714484513890068922627007981311090452056931695173921291299243279164797429510781547033197229903345798309293275746091897381613380469603713141437127450415943895275175235456994818028313012938266456039817942351389841989566162098942149960328046269721004694776154855951285623142139851674717046467146040321990465598780219525516735668901837783718221334635400404941425809171420426098314751790243647920137108257469860141064557580864230663799757809255923294509782224113188861549192988361606465673142196219381952476388256257339732317407419762896182752264372158216526309217781651697876280526797270911512726998407004801134309748153397168164180758519522370572294642779923094898603948123041289075938512721413054863458282138200555018841959135891487927677952484228808831206469431784795554121680445395696253011345057001935445231364175306836136833794314117252598922016011922470325896137923084233337526839204932690525001524187277716065060285397484398394222464562504167774202673136874271642023244202245524072741798820164261743881926906463236302671516082120211705705169294937716093236127230555114628196188068292192605678769713996721747416873220867344927416855146528129009605995281294698398551892787936499505281110657116732755959239686083626717943303548981575180954938160227530003037661414377733926338666884462971522642441521746618106990496589296001831142112167209742614463601887126720778806967001771347070251958846450209197183199749180793338070713611161168707831693261736950113538004550486110466311799598384644017205019662060719444985385165109892302431492389165016590425869551046858796867829144448832750410137882420897159155413673779350399322381352816303361574388716791171324466667569190420817298520752627612769873671268404445837877555918750762972971452950942104850164635056169930840752854647731147641625467118824403423582519567199658170289534304820855096540325700400909264495063950362079881958588037845234757659650597128613773011829314483662566110360159702420058854767891531470334233083554546973574042984047550397332387300607970056740672031429039499443702000165268590941050172716321859867093999260423520852415243206367271791703193184765274034338819017042613529803875618803360715072405369412770737865992704334699638270168302315533066486590137120027206651397679957542770574101223806515892528056131911741069684206681735972342917961722104093706078703651424737242095861747627872828030052907547364310928734031255236348936440184941719839855264026146376890815781522999364121373899170208953273341176338807222959263310501439406912980391811741474724189330659990293625297698523540620925281444020448171923221480017571396430470116970071843757818427232609421707647000503375189137967852332589415049366608398712652768027283883014388071972969346514621615478581277815490628497654711996657646718997910867047507223562803255996322273364124492800202423462916921958432889604023561345937187373752953064358244915664483545306762933679396467460547660498054447525710488298824116037070206438663039015242442319279368197340210256152201970154979869786745101558708204548487939034835884724418855711809918143752382466627868414873018047634562052653396216322917267630745400296667655964937699926970969296767894306394309157423513131223908257032780271016957850342479053256860190058135152505408931020400599854836535080801877399791628657253192148691105950224708648467315405059430510771665220440283635878138742589478169412780219631392491107081728538817008393843410826767182940444519893318646963412324818402824960988930393005521383151319456673767766624101396651415446506822597895759526872011939262364190918131361424043083987437581108948598963549503222894596621464059202755238584645676998829348163670940649807408862476064656014362108165167856490761161179417508533711187473804840334639777747424966560649598686947852373587912854124155188673710390132799103864520578096169536757766941840010205382436739602789592605955438040807711079038254523273811448799970811839073611088739728797422390222504907896304195354159572656504161691012030424071281151163803820193827285922837435083521190684303850328797888118214366234361216586311818921428656659276167392618941807695405476786292725999393554926665472521717603620662142437074234835094629779414838965408584326507815279902510340392301418099695514696977408263739262364225987158375219652377838433945032258189072777743983181993492316116553665051186516589306573661064493513675251065587187623933318300338135118856051910334197778208305728709778257080099611349089009997255129717852051726737624935369796431405037892029263513877804003749569052187675526398324606394462531339654078393044952359632965715199900806739760061363992006387791126559780524994501715130647418679186244195571126760531728306625048505387065527514670827466722999965933359921915943259172353424473762308996612555895873478536663280079557663845958510662374676554226248484775695785221846471600475756135738014267421571171413004695458422170718068892241840532997661629847034334492336021948803985263415409254572370671693243245323596070679250379336706159624535293676412817940929269016788809362359712732610730965380993434421365493257903512104126752416394627764195113108089138852742230111708867130915337698525779489651725200356668648819681805210604475842221291309314443489611954084977239169556758857682312638041737549803520874235123409876881295530096564615464698718139667619145406636385080557291262029547425241364319194555806409935848648228333687743896667163744357725040329090691998646323083685122183551276498109605172947339561461007219032971653095784542091060615031392023043672365076168365330132971716955785185564248747854395501878746401009028531402440899743042639057818863334945927856255690996475537080653788656073425225236996984654122797571501714724215748576859727176000177115179419302088202400477880234371832912930973218536508677714814719003422743079781351816081579142335724601279440889432188531248744069539340212710776378355777998713941597741042775673255701246366680303876832351424389897622836506016776754492909733686851357714130527181428832403634751464496714380503547827576453791948827772982805670024983313848868098204297607816821616963586117490948581862968354181194092932942629686457422464565063774356936856571110307358629122820830026202335732137960619263615075120740885287981937394806156467093199536711727660940254557671565449507003146092658620646438697543091491691848239450057951136033223846450787673849986125786598247909538296560451294386050793605633271909864494308747359982001680420484430552668580975026741902809059436492073041503709382026062125571062985846548795828633083439821823190355588566042387985415216966547326773849444875142724996351668301515146858029294315689014641257295867195173303553181819906763087700710029463445156527272435641744528329691133335175740796962450165494401447818909447142500881335913706019980241270096622894717211389757472656651237725572041423838796110609815906466403434719855095595664949339490840840497068132432058933389411601072706781394802983473172233579017619526757687653686991522731541453886024829009713637532391410340132415066554274528667660101830585927764246260764632514963607828016950140894820465109187037261777710293597928104829768071789468950085977591808170975308856758890954644948154724457309061054547669046966331458756255744404781864723128004634495437637717027802698773941771363324879758944102544256753326169734203479111323133823378902532358248420872696947172886854754419769230900110980807207865462062218444156120062239885833180917986823727735217578805323358707619689044302827225094408496256880043598518973136284631515523514836435506499549203794978692946155782725731915684062342414732352580553918519456879493779531333930403437333307448479143450349169402802036113092995956244729169700108842763269156764859390667483902381452675318658372184582372640539373345925774735812323268196263932625118752432768588662787419577586006206252040951790209096890173262784197798379222278403929303544212722441533554466585532409752718024739107234018138818278769984689177621390753091375372585003536729562349152639980230592665994134928322305410336508896973573577880498772093674345006703462694695843835672908048249363525884857873942462389638865609652043173530023176029632545143695843097740335583139876467430842476570831617194595170562386620947386145725582823123080601126969024189139652684231403016297342567680005766824541585350782667157555121698798454636842081617086458999841056238424938276488061062615237070223517781600277411862106478190032561822589816013282463181605227923936903184390088093507307918114802868528922163185602833370466201651306312862829489404056830286041684450201969928681982484252666476922452639451188574755704647831946109739533628233510657898986789269739391494387542980981129888618673184011776345253659845647415562377428745373505284147784702754608890515665184903879262548583820573236894517761910974492567945835932143803713791957921330847585008489991123630818666996784622553138129280337812427975408512788106920303303958679008291561500110714622095805291142379426556183665753164923422121121166815798491116246820566406358096829170305144792861675322664251284174146532947794843523499284874854245055566837696060981304500673175247225948665966848711845963506194583950765219598120235910877582273918122400064339824803724212714738889390268792467754089315296579692001565426794941855959391066480046379937821378023061286056275101361902294710446216407021412084959451478305203069441728865144178312690831934414234002636344175687134751751027015465255756111144513902893384332889560353323873741876693916260543776294320217399467765583381504002267832471205902445407002268476545914681006915697197536148615464372819140589144502143378043980007768980678045861567478214484315309409319317067781223898441331671097351061393906273966976451249991195357603509198701119586078563241044705968959434323311173766741216329171970791128338923746769520566085805406108425082267736283462472007105242219742685838779455282266165817532438778177205939405025911215177393337726731170651962218176707722968154401663138485695048411312423515535291685424070982340460508793561894608140856387228103979401681979012514804057680507949236554658696848610560646582512406792952024546107584981837564861824403293341657189746970679518840889807012958190383011005514368383788316429250178505660782739176800150666088605726884735094002638129125395833377540332587309261656010270577843849045405721752191610400840077712378084741511232316299085420376447273171141727289396430241117221576464991290637181340910655384068755968012575303909390462127962339592927876527136337454927309589387001038142122674019696002234038775493723619837460697427327800858115649475774384539793575282082670186909498296257267754065449239805382513367425390069508512420228608442165944868963194694667431260777774961926329399665615887070644368049600042150068122806078889956672950098075061557397091137991697326725203621931608399744404844375471572073510196424963973385141614066224514596008846645242457064322908247480937037056944308582051462444385773264330614861897943150464391163806857040236608408903822836890008313721197424607317709254931427043345930656053172230462461703618459949281483364103354577362391304005641700937233474413176302530120879692970324027561230759658928212928612065913083264641616857792242782807715729828020183259357462171081591382456688711456888519135008968963267495637273018486805090658980500300657113018535208204955793017298739113415757708877163345663049194234092814437191260697596871553757043214466691580871618383881577547238848207037049721009739389333923633000614249264189209373455650125599870300877366423674302833934265700974521830861029508235857589663121751548175240834177590419232975302973169265950595460027399954923488921359714607666159576885055557111342417394848571320204557691165540862421606864142197296345420047710467109558870443041280844513451194715735037523701769017916221450874646472383615539044507453861116329019070962126339516426678156424212128134597058625647264417609478566079966152410706377190872845703864158231169797756537339140643206849878991181207447031489152337930699392231400294974890918334483835674706310494757305780407333147943185056043673364537950229881639766462725187169644951041915490325226639143491206522322447496810615859757131183480545230231597448899031228687821608312700000424417814590299087330832661351512180956465627176701356839120671111289376522556362443098929228949313671912877646129824474506744340557212683320270285853098918389688742176123452898315929194553344475791346056083106797266619742124348317084115156142585013487274430265978731501227706795494449491710658773926676637460196918366390806226126041494967422339902650024931204549155900056980975078219395658359130498307928037923645077382247080803690377578385796510676083724066672769948436612322034524627137695872811501131575583734293546923519714247196358911011996449011762734701438639761787184881160187811555680959651137940409260692887248158095996414773195440275437299306363747731845580406824475010116326430138471521077422026834143137463718250122472573267345831323596043472492309463424405106714491933821109816456075854975549779884014637776155394916959433728797773342758368722823138910638574088894303868308825338713423181506564122023919207334735576286076166558423288045164090915356058044647328656539182483492121909785484704810043276544883259097438981950654833631469248268846645745357078019840881295882085947411917792730272192954730088282009126040067031763864840460941641941227419415435557494594489026891464974150774027206946819888361463796195808733765799249322256737114372661168842774849729637256529845343285958937939042359041313384534850113910280660675272931526338019462581520155801228320708439779055623341038632723083602472973604569281773536243819672494902109249603616307529061519500114021213220292090462082562208019946230936225714030433023923449663205103869543914279237682341460224823895116747381003720262529698018113584859532018763788026687165825839027670885830964130472146593436867743680552077673307630379316958231645639652740568770692309863238006491432113508223549257369143419538854835508097737643740670638270536816385671834699926085430993106230015745730862491110784405779385058461368274323166679140336142596117128416202777898168378165562884799661344919070311974416249486930000177772432208924473676897802388398797095343887749568300407376323866631114236684962681161083306368664693676943601683081984011478951920932550246440054205719762884306612907899510920833350169234156967724894740404067018815927334806997281406397267457848905010743006186576526165784885962569065823964969781868526023078764566100121815021417577099185480362174732734070670238318577279028025019754624320919587648467722384389843333211910838054114055201632455863161935749643597118830504262830415779471151285511371619218139236372989283300583873071612538684714161552664819317012934420972695213842548520066630464235706298230686996671934057543458146305909044421802786240969135772071525529361510246553975071771924569483185047058653392886235332019004616977719657347489587155068085959594126577896711091086492523247678441304166234299558879013579529793389796354337289697767634914701562159261376401562363340751923949451302992233575853433464398189257601903455433086895569335610412408642782486648159404083103463492146261508163472662088863987735485768586240567246938437699497285349253989522901130153810031614445565863366569213912640530065336527616174633748754074880443702683389698068586302553420962891795543334023497194205646922381630896699192576922963429458442587913126920500136750308512997136399259932899761277377939778875082473038669173798705690696713647218337816155902800500661944474856178758362033098539791943381689938572058327552211579406788033833166441384379532700631687719991832946502334909250926754203300239798661861870093448153425236145027153790962993416235441503508904614894121241417733844538611433847339733455542819804644044620878852255539353721453351299559058697702022583182638239324847258664613369010978187910521165997141389110996985467374293251986647755378375215066668530633780874869562651008675530437000516488364660750623071477441842086642087233944531629948101112068993599267146064161126556107167218532717556696548615186349174695277336020694410923273120216728894903913848071126457075599553775875758719109820713879645305840376532189742887452548220080669707872705096197675153147812178799131558364970557231626422199608090675578321278394615562975216481522143331371882946604052309311262203054979180192794142421987121131787415996873854142203451417687945815527885830049030413467385610708258923897158211184239584227035671919821004233299714017299833068447556680416250582849203945584933431933975424404029312665021366711996763936319221986203261720982654493160575048030028926570077783011467571977082645061145133851852504657418214841066138300794782835971917739554214814314193753634165488268528170772277361430351479970823436797821280084871320854862414849771964881481484474166200956660598216862884928694423491104177781961172166092478090545526466356403928174510164811834985686161677913312939298684042251476123276422110331056457068756098960274615206635523007613712478919456983784676338769839098395839580209752259062880544854177872282739997415250082293813488235616357227206017996715970057841494202825565709023696867562844307022579021541884310301183867928046456271579576724938275880305688012605084983378829117122897726119067641799729714495841793052650554189770694274346684241177505974389616275566361211544097103061860777093581836740729561019017673883397499602103927766861828436737230063281315436096409432271592585106478201359551482628891175017353802371926300396338360999344935299441834997663372507982320988049855602973615568368764921326383460189078949989487453537872355491881853052902228342338669530232609671754564826544276119503030405210771298168032375519182304741365966523806632912203205366022114612462002714012973947595899048666927876548753117142947492070609293499459692761654848192461243272316961694591011832080700421500560038342336613285409740284804142226633350608820881578134959420607885637339794053461099439051933431052225484572631462927118529331281236141072164415033131009302766733033614223448193322543624434061948825831250522875450213035420016124395903527127405420593152103778048197780903582765931282582225754460125797946788434170494758389396227535683884040562712427620068082377956704389636767001701587960285474468004079503609542188708137898558059096004026966851604012026157957776710116134967587595495099605274319442306290167135834824341870517448445559038495392720066831923340417740103573415804134592773361664649324278779486237992803085276732355414811323106179430031707479685325548661360480959839593726224976849954251559116161556681332375781356287797435441854878638842132439259404399054206713665082202072287591715062024850337171550745548868218798658914456602701921442976255900609428953672102652730235684904157218589265400814062535626434086078259065361576049419770778256704389192693062622727187396311101857297381360761211993498720019040969205973713989325748216560216166306230287608040771614911390892357755555246753041875388693202576023622338942101751241658040554191704518555211704618073835966915363725704237571755858619862479245362552964152844873630614821289506021589189325209903106581265254039240287824081957026243406549759013601941151101069202267636211128418182938812027989154581984228661620687050591205173547159321294630227655923250737201860433725938964565986405176351713771968966736427466012920163983649300695175891399709397828355293502321338115573303676428896394294689967857723072727807837903455213881002416528369258554620368575210490901576643899421506990420172975299187345484710322743209824358041181713248529857718343796506342289745021668300882632080614891806424855601613947049910725214423971589182948440372826230362433687197294877183287861382605883703672617257052084449651284482161358674793299604757360821275415394452920677139359141509611786920851131567324473821972549556779838002979179022801674248600151968508781496653538828770490463325387142936901111002468084576020816144818285557298282072217897842728120021877910688829309411910612855773603199002262478057071693793879773794459359869714272164543296337817270636946031165327540598198039374966661687624299729950579066523950236734379953352256488715442182392025668656101066852270612697223951501694772276954901020930362385270712151610059792745083591130723993121780873626448973988712140585350105251480778968529585310857860023431847604363481467417215940891482505655205659332354283582990347679866712084482067249177876445916065276017272395197241825831794064062291080007500181215304863376751300764118084529636471239913040004078852164816127121660072806261254070131699007633319244900865382078963567137669608794433711867696902056327656296011974145214325585866221369810655469704692901116793566266137703225209123577581892202872386954032071032881765463116764587255466112520842945992567378391877442562375441661756140112883086005707414822515067422747770232064656025319188214439136975774277262194016984740503301042569237466344183826647124828742417530089470234737140307264799900255664843146763031213235662646013459744350592046133672036578199374029066760718862608440026452608761845537116864953343953330310601189222393593300247508898713947500865024548284988196183634436027086487336432288828705285320405860019201352492302939455983602104338275326734837126249340164377213504408718353143543362919489486050538652385950303590406138279236015475983504205445143565709384019825678995382981008145269411085492436175045788624390184096195941272259219495940159777423332015291009036048561310421281854760787629290050058885167472779879447523221402952176864943937368743624046600290120022611887940757934077353975819008877404905886914324473772461419952645791600624849945600599574275445973217768873174438676505132633490465778199043766537075827861052638054376598325406480277735733080267489287532065152614984978040449994919108875282361464165099790803962902412050952243478876555864888793444981263695878380083759092595005200008447262706214239292752912471047507401655512642195703529978456440371432944486945607912910451060426552031735592496516060306215787301785466776518913509789029545187983402490064077013040898973110818234925623481223861673075012013011013207160368954507806139866527098481905328901253630853557936968989019214059568750317115672830822145658405082445634047025124390596949839869545888991164736425150762719992304018971942336200483314551671830521717482910717848864872941092929252952867792777425588914700059180723342296815412541849463642618857328688695913397189505530786958440089400523829284650422880676356613724711032170012464868461776921365543541345705322207104255835303120987732405124446593532906268314083701871813245784458671926535139041290556138226594127644418092547104815259920892862561745656164583385996860159683933499622261571727362985825860445497405786261206065246108351448514220844985123453372910469919867046824854144467731384442152454909017654955151133959427132189553921132144412360525442679688400439964242643614808260760325776080288112923459156362873598184798867027658756526173102602527811444857821779075297069986779981643011413572937217558353562082238779633223690721096293622385004361872921579728390024403527182468657797771068429575461199145132589927408488766155127970328863750485632001274745231100699921675722128035322193198334054521570851354368617235835261387683291704837192681916899453549808570492835883655576458630061724140955714756876717158843161016473689886638778190182758079652004081936382091383414375298247335652798402790909345018710459934537276905361719318093075354252703423417295204687477917790270496781120320052392560495906007045728606414122601043311833192550725422083449590295901667199833638187507061923135506854308883561180708903160315710162551029586147558330088853337535035099688866968653263491125277346767736623474782193636345565309564519439798026751922098048331328764556979777831447274608938491874700928277833475998213083865550397390423315726292230730049272858640836313682387571825851323680481078580248813864966015154000302470741260693898188427289966116429105296776765998093928971320160553036205843261235225372019354772641879165538795620487666508976535579486255127084127383628867355887280714677547924692700589045198329311500934011479774571935230904190778413233311986871078365741127220737843057074255040941393916959724439744999553794734844071664253194003415739533520290774335362981725257632132809291066861411476043490102119196373330683611865774367211664870030734127366331251038195965849502004515421379187442931942963824342740530539059821154630290758964147442282948480300921929817798968533560871948507961682006678982877506878725384556179830635684680748817862869348395417513355989867199546433476607433715625655099878580698845067025634563925412130602504493194553707379712647865940485521296483894156769985516967224498101383084144777810798946878595629529847363317134637254422082535585744350228275460290651124823196433085687822387060668638476190872876442798308513121709113012245209917103259854705144678140050260423703225791456235182276872574940153865181835526117938066734408898129851491886173814105740930908362943921740597742376156068354427208890710567702793011802231806420789421706737085119591030385157614797958955054069950149086836553848607562731735565303491809026148071948316064498270666286158673046282890901403237832833816570671160244135310420790358052836931965598503275989146819403661723892169796330006521870794529166820850934046715488187007383605510372555797604232397660832095101763422011684719824237552712858401158012510149645091980798654681452398389794724001239458372145049840700612687108432919747972930022567887472437290067912537779386057001812773559765055382642112771189953306817996291769519511926404171067556333589255331215578790360682143387767775782349067943213075560584108049915019778104623462806666310240505216174770284858171575858922171427446348224196221043500797841425292707395967219255565439983000869923130112132992548390733837274625451373439669724467928503809483683127647923566336419507130438079586961639697829678568939956378572027751583337589955499664891899460110808855144515283006195679314818092430555722000426527811055058698821632012839154228952462609858040139316323773480399356578500193298884942776458619371135906596250942499946222036923869861984991463352108508065479821740190913211722690403978532459697988676318868134194630073733648202075120125892202453765337239077028707369624922105808224338021673155524560281915781486866825541687934037483349438281531493121558129616436636330391955688312551926399946839087147921553332920538573413086134464550595663798614132337137621327768095584591243239925349289449654720124292782381725642947396622524264841954472476576166699050018831220113524288418536805230741159720292293413853136474165820516227787471655272650708492984965675441021237349648627603728076860686404442744928806266840266757110155470900985054928388944417223665375014119861795648387403288891835376439654216027486172560742154211872129802366301802225379551034973592033594692545062999101467612165490531817011347775035647355213647230931995880848020542123618450788938520832159713239668947731206626765421172610328322922424108597244280033210461305477753947301814965785885361749977783129547667687413308541730217628400197568289586002547198496195921752923115532254082604050694812809296715972151025138521764936208097408819486685718696680515883713130331423681538833548616791613839449762539492390976072748558520728460284019102449842923521039336406472055886056168744635378333221834240225951060543543142333102512094626456408380683282713640549411607881893276079927488204553711538818935953653153248478145595688478278086080451015918851848137610793869755117077607192990788851693493042031516071655578863868651542085400942793291793302199567052648644920945387966073089038410614215566581260888818777240837783664454962845154663039213321549822337567763532239143171519504745204942037785415205937611069003183810635789973243574586796957004141231988771737023419650153991146258147591551555057019581318289836954084000038479092671926816091565741116417470232357137175970077079753392314084630253003561372798093141567356846324426511320057668332869373260833318347562395558591633459666503575782492550871326453187510161047319413042781687627314620952029565733007625112835673367400911746332728408434491763282604660782946798963407029746590143528114481494797411680022486770810709190902954849231031711344701069191562068951303471812462053527248154666516219638859946456521725110989185748620140769388035302076511995605896237911968551272828040159310974859981717515522725621292839165496417992477792099005110599551866461581168655815767233205577905832444103768711280600657884311213270272381912687802464891387234512432518295164230421888940927928406422057427461972678159756671574940570965485756225607019694034927544174068095800661658226819006102159442463993541126070411137807973038705365763852573227366864586534286670896032693505972445261650765468515508501127900595889854162549248096395425397440127605155905861870073117175207858927582143111148377362451880627705908055218252133155166288481115529055752919059260917633353666126852131693192441201764999530329637870743807145213739384605723300865928145525873091215130013068033439251227258940630423376657454953519904789247299728878406230676382793959836238585494302735498968565906996160909389805558921821985202700289247635445983313280887998701312823566841159749392492607443261350640449144215414601429861189454655631554172283191118361382570368612115574819906132057784324479641675295470223306377696299901376337051652583585619409549713233593095629964000748497541362227445012688773257754169726395270341047059760116089646100829681180023388376420748704451353765601783003861337799915216543487477192818876858391821736610794514348438653577196488151823276883603769058799100554950404610487051773795127689548839924491749428670392955832937314334759833097670520204948497550945033928303878821673275007510245806698960017188316400304618715260234063430149922743892553644370716755593881594331409414188016727830502447486625833031143145828519427100220641840059452620006902598015814242075237256342117080920462938056114488996971012723171263324248743176002731544323506939802662785245401512835151468005582093591429678704159335286999309322606570757656834659002893890115295279302903831001970420775979747031890452426032773927486184320932133765066127014890097985372236680216247975969347287697564766164740338734327057773104367399374495379702484182451495619442148132771737794169071428495082939679473443153811768955244524007521354408005914658262342712871139012641174795816981199178978064272596649040085520951710246141815272132074700586020719231992550136249743696229908846147724562465251478958530315535878309787557646212317119812262247566777951977504647389045593163100340600386690309944398830687928995912800210075528046216560574680106464181309551988516787138843103371176397231080143025370231733109425808906673378799948628508720341657987863869202994799173492304609211683375270341966277544945566645286193098505640023023578535002283054431668119597697357434407700287487924469486839353401449440894985513969392391861478578981381571654687182443026867885626452831905400374264839368329715558698427391666421940450582088237695176178491262084302334923395992336243957050148393118385555638133999750913372610527519504274491771891230540139001349680972931969187646867684184915726655827285536265296748444291524879544240711256232529419076211558113774782787964145641599326114725763494553221355299624759305511663928173325117410075869611131166508257414601444076619379799809640916462008676328672093014854544696241569098325691163897033699420413287756595059046509518610884781293018818372876785951686000579053273281311656800441240337695556410899850516769062005576697407615458221192732333732970719394685301698074387286868926990767431895739196780413537410056776704971385575645515886589216894282371212995836636641711795577697168410664545098195516350763939259933807647385178978208665654458696023477498378360985579334502729982427650234877309757033268564199832973252339243148050628874518842659118388992457377846658411277335273956457511052394615144505032605038363132369518917073899312838545133125840927024798696193461513711740915795412329671064935075578216576688839225839134349342905457195691670062485208349235114811363128611509833034390722500855616987977138873304410563645947680048739694387473218366542646993295643737726276278465409132195761630865189380190375550248630043870074684949665560598250410777444974560463148817645782605508000889148658812890764662557464340140299693029072396902658061699672723979672994319410785716225716168362481745752289259613481367178594206787203888171081997753639729238541439964259188023845914484871711009777330243031851887857638303796706868136840051376581199201786213763023641352726391052932380261286230717222724461617728979534293478787100652680547980843374149371616409942022453633482043838735389793931622748130432868352004963864062925928141642169848014642934254118830655346052390113931470411159138088325845540940669010139950970481944108533446156747266684192490386924506172861190945478913545449171145841015566129987729696793187047908433942371010893813192257512978248405616837020278605723615986167182678708178451390374532790151393111058503790919324265877334471985051419107466122653327570111707467957123348380419614551257624221664699899957956308654289476792154186956419415900704551008388903167807806597373050502025976894060763979140209918583525368890600396142331630573593920278679241252871411495657922561699044667262302844373486788531965117300664262452740855803765131572609403029998157281322267136940098763417646842862883238716324279400297559381277145502594571614397073995114726405616746410139523109925994441734501755365041050055270808320512910928450955958227720746518325271527733040097597860159006209859763283967424250808223008962457126862914681557242837752648158699291292930091385071384204513075127024273588883195916409281360647932966558498721406053665101581565964756902260183347588240451195036579557643693011456355801444366461131070303961588680309603661037804520238670674531140730449607604406065476868733948433899804164120824608203759726487628649192343185849368269533271203427003813146819609835414635845045546293029578250833889712794993087337125007538406896981677802533183007497145566221742611877726690164231596654747623727542180739156903867374386678431050585463494941045255113386727309537801457998272920151784518287532293367718019247033368410549005805278949631001218437686952110215380105141397436404009179609872148253900234031809103369893291958844261882102869697131899983731186060278263516465423884028705762655062020087529746864400629625332299051359056257210776302953934794900892272358498840601753080365372965050854099746117179278916236609511858316962895454471307924973461793939671999722754932307458016844195994517008582177388267597385110111237045522463285086465562066727408017054222907606163645753146184838245087577849980369925572777010910567756221680961279130158821080902048224739646263563721605775149595407974275191034372376680341769658097205982316127074667304807410379387617267839894799801496080171259949411968283263650489519849832179018179205541780496452430887327642226091300260538044808501115397315299934030627795895699001239611099314987985518563053515480972106808782114190751807819466458639467742469781873048471166151694566939886275146410036147191294913843308471719438494972186425193280931912923126990449458015542284828967987092642373541500776728119551844986825199805933722474444761297846185372390386959543164704155842787328765390484202117086115771818360703504272530420993396229327717130383749257985129479218703597175738756806837660721077494464790685335367077163080516514900271645637000566485740947296258235585031342965744508350109145210598639559600453136791394782112978689399697443465353469473659444408760782619753906018294206765289564296695352944474216501408019232048653668823757402625068795491070343225336158935249793530206693670645577274643824836706811775502115600414764255013247582741321758363080433913699545808966532054784462608522910967040777312244705655035190408423790109779216287425077033966832154133306855373525751349410643223382269237975318749283642300166123341548256751167111039592364883510884276727623933348336339660843602047623856224358407375471412501976715615692059900790209390446702690037892774510236641504522672256564275605000847655602367308564462586839378810883203351022476020582432534728055583988118212802208512072339713136958839377893886455655248060960407435861888632160397243486496654691147243802069015798295856699090432632642131742363517860622171892079129006936799358512247969421059887289318486699433695985503306752436207870792992001733618038073904741797842501771914622701524190731554945955889830106439351655700518258209595653454958051105884170790588801941998972270474420107250598709470223583184822528715495251048998038813796527851090483244900732225742853555232002441876049664797232911829277106591730743335313460047975004437352816616809432873370526018376822069468082613651681277640545096214044729934151736399058807896686716851145331595312026200864507730598581935380059036722577481300023314234870596087081482696394870849440660664770310165010241873054561492411710196678264764370439007603323535961367439154112704528448829283373039922629196127598532404552763737802341682925589932773471181951911482811147307982246170295811140654334208321413207820476910487116252133070826768169513529789728204631578502025792716086068071887312146162570974265554288687676037509755979657308620909930372692229490074600515524958917594755360181070620790587046636553229867807666559080925764713865881111970412863607406725244766198748711969761931091128333191814734392257539742717619666725470140076365219466663794088583036011760613858764717330923464629738356338183048363567599708480469251094145757770798127778414420089819097114944586990287320617390522426673317513460582705222777500138960513877488975500932202932403332554751516942679841783559802596506354977364239111032123951187962583080910182120136364353515879417266706355007537022823159234036714353461854598167682836129882138445329227666655839738950941707656631893632206215587678174819019308014475847188140973747837687087473567525982689515244174897448193262207075201610280320693909333501881182197094484997693458493915747978834485674101638533802272822370761435887955032531142715271130545642533476096155847977628927351763492689476901185516965543314452760067702927480622817271584102054347589628574066356609768483219756324229530900615927756658031915350259077092550239039926319681323447384720344659090757059014274848745506874572772633946732101656622534975392667545842667646670122147354824556282674205971723176894566654563088683950326718523213918210777505760265263288709418310066689265260778551318596545174232094036706508427525680642828683816180234874346763147321512809570398676303154263017427811287091559804782147922591083752218503429266028773059827204842953942003198735157233289658259024141863291303399151397401405393494536693982101248546219941868118094247055564449498773927491843503613379735886504001635006120469556032544552931501867073516945878120594429171324512069712354223216861605305420097536592988670215971092894407593604298093285345916840142605865585171606239790283166558010246283978201786572478386806727217534378804438539699462927812213608268942212763033785083407061347932827017230210142046468100400212165410872741808790738871834678186644822482665509472768852491036017210457625965810317124739652856144350398615446976323300746300421285395994052086784121306384312238055032995719338145159864479781898994231336028950098622017788891981087686271238489014607206205888836970450419568826411148235184959079899648630061389212021676112286205699106157255677293531444796176192582738061917045392753518287243306426161389611070069961431349251629431839087075185184453078192891966358826911710690681922862337036638326969626682924078078706921571291590935083767663834162801555501640597123077650134072379819893835890844225040293753890428713377822202062786853748903168103917767380113917031204285038786447134413856738754621857719453663828129956675724816364045290233209151186851936194570426451279760462907622317241669598174036487263775296974898045163462985038875118498348606993637755437483483396760085857554042200621198190977032535352263154150666388612260435131258522047268325703878596970447534453363624363256691608507441887388544301289049451001762021840695760231706506865977518765120556964502885659679668079563261982828024733528282666723867617740503813905349178548794003198116037505931306781290791801204321488770018180645693028898512851197096396438164830125455319088687562866240307299906206748636453804500874578298798257025130034818100778441996656711423696559216959848525620284516824416920183673500202776315710674673897316141706837893832595325347400633954738506258666676962050595821309966702752065561750838866419419195782935362585986869376745959263860598148141005875202243896637958930430902014910116824920799243892982131744047739966738351761457337214996038626057831707521205076719646386750508049969821501309805720983249685582250882339806274818424634317524945617678836301346884174177323154714441372954742688518262817515539194445875104301794217354987774425910257145506517334161777421190826394633419402967883876904020677164032183123649662702569594929649391423551750342582722786375775341803287448423008798670644050663561098062484704642916198367850472020510654453201808316306358632460182867284160278628555893726567420000932209707722529759820806441257112387456612589537548594175052597676191172661395038978052832243660919746744224716015732528009483875696453736584749524494562484025180400008117147375782067865146675386241723944503316250706453277230289321484921255507857354753443301401301995775522619777710485339679185680966022205056402412348703584728787894873000079725352762251407022465812233968198016507877037022105080469487635648429576288085850780833126091178223001611137989476367837048626759674956006093628080393948598639246256670601586046082419313403343988169572073372685976487663513412671732890093659825369851729040995287072739088440916445327556833542805579836377331995576560238240613951024347992197624649406439763021508272710096960504219099317050013801255488737865280643773163696896732940507957338941433320298079329274468648905869707889584259157912399926327594788751695925931838414283429951054361917262686641436069679502677074016176239239758984948477868480337845946171955070989665141904254309444576832501781364740589560662044662825530973833344341022582646308154321998279316651494552049795349779702677562288693042906830610876534971751338141230524804420035733218263064378327035752090276062184813263903508980010883952819228856001430946922964206345571154612849058507597875932416787455845401826637564392637309797067000092042542099846477008935946135335172052331138434816366294442737616643306539476145036005584212706744619271286168563093271992655895312412790417428736206028695003899971001960466593343961179843824467110150525445188205307300738424916497170032759377307495544412596528824830176272303274232922304046954632726551415517500191050408958663547860104054913423524809621011103826804196806629679057894039512049791128468765573007487369152796157773964977446545726989597341373422138811834195813919675606778033039564728371849443771651222460944153543805511836042787119006517206306191656427688913367761266991888896736213171452905436739405448905306482578119010214047162736692487555216514080407542226425047104026523231744854801480579175546116828028912064674737114045910784716549048008619260197712537832706652737245674255504003023922915750939954169829848029046295921295285363642788388340452621109749867773300529216832219508417487832334800120146457350393471284880389741614821272630923940582360553900310431765953400181116839464025614410167405938748529822428804603104029592174426413205097716657835707215830852667862980241574017978054664014299677923813115969910666581842887973646466520976609198767105322352953824885916626829053834668290821974138925290961882345207405443962414792560966060530690258760457953156160036029088819842491874335428212358287023266170546623320542962453914012909504959629819184740648380208080686525514744967455940105728368913519885019073035437863403389565039396625482701116667467853714676196264522361529291251670911500844057418457889391077898567044730718785148277254131970494170637366205495653871293723551870418445749778233947621951938146098231001902619966057450949341893507359035511872684094722708430036904958212576071699949713925905538170777399592417355472543779056849211113569236939157676721364758103176420603898643863935311725865127912857302178466896217182687603339403817435067380570094160510033394613205086287271192937606022927667756194111304541496381472711708958187620001407210369954268869257273012698422090028866007595276302130655113104832223804765833115306344472661546713627908341869851929435705160733436896993313864302938015385359855373353416970507125728674558711921263080548012033760255886976495895176533216088371493717134869998800403694639644030239908137354043445105779884175262815904964297510884645454339537891008627686911151046141314197352403522405299540893287941625861687344873557595581279754297749725426062928633404235298619945959173383515813997813836126778948795322862717248126615698953631127692931120453263584230329752926041580509963544762126419399165418261857157960429593818203859937830268789172788510125300208646083941141210153013031651775220066412269216183138734775633457079377155243449512231664799675374709701620467049122235942163658625840856700429863750532252656394553266754040155117376648731607749755294206832423913885601892889637097275801614716763521900527235132032802740718572208335035023888405986578876347922761072875313543384117086674619029311819970018041907238766964521000092017691494930580381263257757915596359297150752976900788139924115072400783450762246945010266140979383827192518196996444611379503331533484502154862230509075244888467107716997859308762638856301633823822000610814935758983609090060219977525321750211061037886110546727550863700046071159793624778794228283004690462434213921238102251120524529099288306576327196076230932530161920508330308201324938044573105499581051105538035359799557332989040750929465335893267436770377937561117419602723908196073824431258460780743878697699550261486778626266101737893710707618324341140963473535321842504253596938865281729221975279895232180279915658974462606061959911865789015647639537700626373572200599723924457394153157763330677759384991399406329799289748497588153248653425777893358285458002025978188193517808559260973028023849462957455620424077569263894810301533441352638430349300993550857844352006635949174713968852550883477657588175248689456677638951600513854895999886812937479388522173060847359947942970293897084200825141056243604707514938608722682777805561803198383401502519056211669767791467979529242722330064238037559218878640159875378807041291026812479397439117005301745234512755488363182821051596129856883107477594440192627587654060394708935188613279620835873046037338450691958938079237127680044371126544324160221355048523158483432053562513142642799736605387603841778819761535167524260587023984275551164948478279307891187674190236211245829187796511780468692192925361073766585212379932805462038278553900001780807390919615434637557514713569270721741191573624152553193920765292720827839067590194615972066028070315803695519811774466887599502908482319882659436421734644425444020032134422165878769212967793742606903305781355417477150366352260929164983358424581266670313822586563691589082138230225406431931944981731832810373158539057260533817054271256454611255355643841813964865950290493220036323766689868809118383204329279430916934534199874757687134222672876058344987912537545131444520125464192129590268006034262854204660829911461008490160844915460516040008866325929714360759453458270903728900358934693276855636321782463818315291022216206173008265539104292420622663375497342974741121411857121505293394755690909839075388583190925641833388486827902817697972299732774967394893395917288865129604621864738821740737081744867742390938138146912217121125362376479639873035738692797394055246893634964562413073583168997974835642911982284114953857811219390863478640482012309463157884523022195276134117646414292441107577328381826243017463806212123228084772913553512585856036880744980966165851027025420568803079895285587299464418226068956750855959487610403440779014047013283381623309386722924392019635987677210112415023620406672263784259671193916062375386932061697210766636824609594950043385194910637691024821940446061842110060920061443164997684216842473297835658067069280147632239596407715564777704411409142952811434534172924771465363559956628920322977272902744688035158390656337568034447778543105708385528868830191996416099220767293758425668054138104613674502681921422612985327258291299442628907959840441286842843726742106132290851731430540692140426942707081657791598010847046382132354926837915286481345901124081468751147831801570203214449840891081126459344365887797350452564970109802667533731998871748519640590140655482387497718427586466311902282022864201226591848791794923867544776659047219009508324066614117156067428080824242865835764402179549202224011155300511084158415337094589312649632903250567972689627754208066299510393021433962466605390841126856970628926649531691307271807748846403984877693840112428852737181950558458054385347956690396978718806807117472796038602696588638067983381295268052515207183652112043420383453871241832460357548447441997511438064594908154913470955272651349633902248646823929448684964736618288148269823256550454498945542696295254789742877039572878155907097532519313577830954759001613989548786091508890122880697457047831234016314506562282134261036434064516901579075197504631972825064017776048556722730100068549162662661976720929580472659254655253768826464628220744316984413706834851532701090154634441775378006455038951451388303803095333814844878714862483949621556827361849554242772759550797662680537529215373208361569106814465920635800919283304764444588420329107720724105915524163737324678929452519331672703727398950846944646688854765194371597986965992853238173175663065640003748923496174787462983985335661784942973009812661356038639703503663473374899911110538749472643032911784656636657066857043778775574255720263697797221523015275852651935108567453284811001522128161825321153800047234023990889815206717522431383800339688623825214545331431120292739298269456669184188191951030646394858248377397335366361806772963278911486385638932562094206747212097521723071729857537932342793292813020935057272976428891459733501829511583165455951026299446535228978287813804647715753762186799749105869312584331062656972223350914960969932251318949107515959180508693305103918192802005060826996520575968804910550693861691754168530565743081854015907141393542503851275007194225382218610904869365380894443132302732056731011973748005595951377023016290052885891126403090688887416067674496804137804347242129770162535057697018995168255904657190562209550548082353181197345542938249578925567543874883019819573287778010224196983088381067025786308285711092960681352029990104250023807445263319240622382143273432272887675917250460481057610611753773957900701624209191272597651832838735715756947881446297292225417102054172691325441141991080385427158795226863480257596160065316297103820815476765330610958310744968082840898957886995289321297286691904308500986910241540280620021296599812342212208433007738580067153042185137925761797621550963098895851376539283025702581229181547657504125763783509531655497675022687897803827154692612802442300133252689632026078082631683838834274948104778904100625504101278099023714994267617315105377742102498368399086307223129490940815980933704307426173542737140151569218073299327296557452618932754010533207238037488265229459841708342731139356372308276047266767088483825217424334740408914451169511465729989045121314071996411972237263845315114405130842510817598660527623812782932546513850248354323479268938217491583721924495443957033231391138862294399059751570822837036599985706782771494761088966036773231027959217802578243545672722717480984342266598619179875761167442102668654736866021068623622366097738027753843675333915301256748004869483631533725903604322422955230389156422723773229357688977144725950178323184837340573500017578035236993833242999982161427697024932478638047905136855840418234201255967854337477398774086771197867495306773386674212632509623547021222307412705570048216074720236922070619156942947180143816048145738742713616844654192586488251751839350750680856130298823625391155453445322543431350196354938030119514886937753466201589310839018516094194458703998657580193725907981163099376734283010740261134158411709681981202867234211223284379877421967312729102963667475372653253261392061213965234280009810026156524389216387061998914185799517922054003957190898715567339310218984671505126435860061435281715176728344960518589622156427904333994551199081374050625305442835772829464138520063625868319249419053156132961728830189986445399292658334752433866065343998210526002733520656938840338097493954113174233030736907787893653455139676927093334531516333056935341476114560286745353248870020445002038797845890225119645667157859550889221549051061679608416408774886053246679661292159656000265653058783591282752618734128000733128350382524428378756318283970687921833479208340103733604794851546415378554762585438318592366427952372100519693085278354812752261283608221651241453275725767982127096759849287096127056815659945602474651283157017964768273842481594039203695779163084615133113393653808896961448938227803177796411064895073323467864397560790988390718151543066762014371307273738556961890971011349297972758024412060955266297828154575533900936882430212627660972641258094483731853143399555737594952005311435496899319846730775037085122601386386290911247356467025456495319495694900186153627576419012282339322034986681932502998010385655830586418160745813628694675069462746795139890016191533280887797966085694626922619132768379491516744500463077310083549824635227988298753688706959980710395515602382979879363643039818023332854668962479118956838993693692862816823257609825561386535388734658673965906750903111211281774347618343167318752611552805597771570543655728590831559697379754677107036487981700955078688934768506803533072004419868095191409349695913849020782832794943685823911737934860061242880468099291250133041370966179732810147083736584774531195875171978096193524046281286798307601547363103005446857948693872518423990693275706962407862091749108468817375622495065719222773205783947742244830159135260303829251934034293159806052901383852585914725057788027587425675875833736257187986297184829553679806426457974415090475428299464585872542280096711125845316168213393925402544487874702345718658869157580091124557805916859814132515296216292855134544990448841934008826255205866603242497230674846441079463876999325626133256392774008937002391831527211904257929968877890201576890184639865820111986343388038135453748937961391959797599866468733802413055693669657279458632602417645162461434236741335338942990333475665550062932481833308043578850667752809065783843186693529902869015826423067014480226937717956522338370743890780348733885868076825293230379665169448055461254206623598506323442986726156034117317748103027604681444981777315351554099563227289746695439976864726217757329072943206655322796668978094316656748938723931775872310721824894785906522316412916744384619078744251994556188768782823354676576562184554820605462781688549562058313681782703280381178316987919674236927851785786998345439618243544418468831998438897189262729072314931691017065430281759624895524800583790443472900719975266466356380430664789068142754821289522289812262838446316600439133884464571762629644691551564783585875616421108026260519426065547673853721048153294799524586425118104864552229614840120286260327638041765645986246003070170655533093025725138985344868815077484859571669036691258257841696900829297527033322532715996581637061466470905402851478578186022757714804064486437776181181009275216898126091213929795391288389981308343036737837407840822669533542267455383866088430683560036344176172196863625430396399749348474962742257810418462159055279915704056254114873290233365876137087060210393268164045669990169818837224985706522439789030274486102032184627293254328160923189825726177852305176065293181935563570688509234505563522791719805282704794745286061960944457983075583251706448056573387599953799049238591384788650006622612187159473542971988235228193148353168059646113684939938013825347342703086762448800445094028992035405423822161622281559118362948070664357319571414098626854773184801147729238546269751470944677090973299567944091536225614447456427157448271767389969467074662090475542147471564400795436992332471616776943779767103764347865820413153905936711053200339661290645738133114618683352641422050520486429196248486927346373304421463264429537577461388595293693203179996647992294568653423835365746966017156840576396349743374454518268586151864470164309039348804282646744778647529797345202926070827010132370626846698986453244435489697063912795002101551881664413577999824314699469012937484287587716326783144190466331162353425557394376113592156889425505684324805922553692713268011121459684384988120740232781211355292411245882038862924768166642877911052038047475801814939287415956595629378624033595438465546916432274340054582752938827512968984329831353290396615350587933276566422388438716721671489203907924577053673748687992249094374932633967782433310462502572747646441722203407490262141249934454103299763277844270187228766788337617885311135423464741831458158613433276503813932209977716311533962024147281671772939906187424983542118177152480010106080597063733424068854745295887532536431844428220344357196223081619599926240838241806960882777504816381295619055559340843646059430436037397722686092543710151472343474653278414307808921739204036065428110532994979532464730361938689096414910524447124127355654357310831866790533152440409974226940595259418409615103754884600979082985465848885995079848150686708474392229420253254885620172428089275469640022400242434236551225885010225592918475970799648221250346219142362137350266351705279674409415169762782795530398520623064143349911888432396931861946538308644841886840166117166638179572217938320879620866514254796495581200918310170900394790504124723435021931285217750787407581878908748607883657885731717049483368885376148230490033618128445010394120308506545573644469350947949391116914821219969340387967936236484254495646803465556350000500701554960741691633984507489225908395614816627264298932918352557618707047522322364863944912588690322248626793437176849646740512335214849008558173256736682067034063886389380488742741515633314707697868739032322954063889806824597099572794129411682344744143928002814134815910282494331127954508508676530324724879343835407217942943762617163955301106493082414634753017250197165502267371706236882943573958989211291113113197700461995408410853668688435093563051681716516668913784836769136248243215647653616153492916442663887694082979424459589553583231994862063222564145172916661827427843019009576226757259787102503912017825582456956696975892826525416099836359833130382829101385889451343645777383336589527068080255127052387279369246977573593422913341509137216675843755474215874431067836474067582228581275030027732924736388492213877015559932491340770756331559987679866145351170620570914078733396380156501098739637283593489253319221511356115156340220651825505549152678020001671893894694631715249263679545727525718635392790828061170986547831744841684378786981958547341660214285126164352844354461249022153124969971006000025049021750541071783696935167091253960662841794281273468754038838382968550184879099545352611298184219461376632536405943014935746996841010487818283494666591533208408908423856693815996713928711854471249391152641762307836518958108611802475194162478947307019499532117947720267836861461038866102944975087591836037618907670678101620076478871762651746229393357199841557991519424293371634641366163375485594324202926663683094788172927452758241486605878483132857240483661948977793074913775112921065044473834869014703390556181494377175532998979079328381601539203587269760346214281921347208852161019269972894988645327862129118874911704748884874285662472097503160310372128090955512345463789236475944827292996212935997265344232889633350835166646493926069902609351656921581742499152488514834758582399148553893348141909725028273032804412203393035166823201460114371435630961424076109858626416684778911815475803350642768178821144713979659571061153231026558621622495279548265720095770517298627952166704899935458547779097234396267122814795792175337306013870817204516989686426103193546083684726147132507143984109573932285819356824147669244907102704226032248081097876237899704807686774154228437920045778983835925049918109347857552697997449098199929364000372582458414862590544332987785380024224571887754074704739191494363933518665487672813021648072129526494219775127475716666913218965195430216539597028834611632342898410568617236772988269975242386540233883147473840410542810342387165054092389496284370787110942701851628836520492364717308635520805174425975407025208354782365572617946554119299419856155951401120181362875444447190384602175332199302729004776567940112633000236506301016188876485770194366716901772438769237156868059646463104651539285267968826505002783376352629291705599386679042954272213732212930814254992023888806012044082718086746593076920782358379449499225682580242278848019037945229890370009064598147443943038982308204139817508165348654521647715897964780872514527169942693334624323815374667329355089822046817169648930404642110196924635227250135905002275345791215447336309646333572248182455908991839072189426782734472030293589464104867049854790832270807824715600744806989809591340630659933268591140391511529839679445810913760869807176790775390685312634915413209052268249073657549198154546293072417514987086479587198827311164406961849619658332371728740297070426318128854994235434234681505449184392646362287746651541721657473372153021105341085134157447495790883650581646035621011530773770992266190651049059932853892400606966892243109426779013576851652362351891853430293188239504492926211469901850960513862799479537197449653373553888376148952008155046468736502561479270870810889344720594744694595895964442575685514103057108918050004859433509486184825601618891286679067065226862488816854581352806795380776290427283155431410876222917669533755730838794471256742530867844286950038703883386795594971644822806513087487665786827900665405415505733454433028650868399930760413190563145860130219394917226538885532562703584767810895730808430075416467611773398900612349704464440375042943354273805710760375978612556826464276488667017435969394671078211614070051906144449022373975145736962150587522125487190546858651613785066547989489914269207461733014136005101143457167362472003573057888116427804442805665954437633209719701076960012827056527772951860417305301492771787400669922558190384269888026901029968932533674237750073128607366334134068964578656379484094140352328305141296493161150592739756188098893524209764723997287773168575129647391454730699461518097688252375139242341525874882980721359701141195686874102052288648081456446988709788101717732500276419516724994696951169585186061805483474088255962581006073829364193361306756108394505682306481653977650869433660131834568277036284906789051088188928082069803145902986578087907547073136666000075266842013065993667405701815787363704873495757707360923109670166243198528046705319139899867339090113649306946017376527098669526908611517682439666573690703200640595193679686144320362339350170018905932724286666009542038938984248929721017269611230416557453442285312586883921109509130085409702879410087767051660746665737114571698938203478183191607546739687188851592850314018905872146934018395576025673355874393402755195181893562525802159764270636512248396119336055532187458796718141465141625849721988266561842562757994710765571855104998567731222194806647402172618807760127698911484890499934573679452027547560710264883162232140311287031052072558844223838061176096489653819282413353026235586934533387552620488085538921823079988860132930829731383530028145749860670781988621327011360421912465284343244759486467011220948014876953749788325814849788480349651286672413063465893735852857977589930498602305422074224307192066775579671992117994116406681497340146041504719357423972807695004510647469592044323973726806218284271946468046846597959548326617388836658538883560508563405453284355664827506751162420852750273627202107885602597249543386426574544296366338946028244828622334754980957084846898281923352320296398435717782774037210050620385352396822882461287468611559550704083826328711407892716268264124793446633419094171289106951186235906455232568617793095502287737684550842097761016238275902291243503859719687972671294362797915703604540264398784625101707463524027059332835707089851537032483238735012220865692389641668615321917312270977645125643033080528740662055310397205959238786735633067733992853814053848330382543874156162963993051703419152387941701741228302863251177814713251618527103654574859579821256915295151555991585626940572989952518949748969823620015675453933238190100728102545396683993343188600411985290662083060848446179180073989548193006566178349482699185247231287908581312390219319431651277550562212154722995024821294328128411156364954025995634565001420168449611756552792256906180402278290733930125054520864481254540104690775134294850256516069549915691208796376512741107559350598318223664305581206933150096848470919997690317186349273767379911267171713154939792770724151021686525315715888780876806635439640130838231651667605177951436736235817724742970189140192385381597403739755390421882255096403709828718369228688367524346401295104272170938947539970153126315187985248982711623664528120394083017443769447509790676759844871725253965646635271144912575100280377111436687185303179212995416679540042645252322532804538349032191353378428241552357855613301620734876527522088132341278462808639634064991089956966351618846446312144887771521555940227037634574620160015894704216715477965870704872384203190509166062733220374160435761014462136601650884342963687535695136374397562216086192778152769340648960521283126201639946405933124999155646637313735326602659928995694094005898258982740633177832349216053544861984032280723676147849564547956518469096081554503780772934969607187908222705542138567352093009934626238085439473360139520801321867969587703047080359726794978575343440516796928463899129081324707439078990712526352059484683840805716009438048426600472801437787655420060081075096435002350383238912603015614161145905598439985942109697029477468068143320508074887016055748442204989135682765000958327419908460677758416781155565119357248680764198983244126167652074373481777534429064799545395109667109235061673452412165158814822983905607449193890748104756526495392508639288995429553042132958826591293684190098301589722604349716913380480881858400429997616680516984814670979163561797463707811387869622623048761311710516298775600026011874579525835632756897885506900899746386590971624353679863836529728505700180790931918470954374624541785602859964739027028485340643548043314167880822352889354133132651909468048879733811392194405641925743652610250001836955291053228634806039492794350436333364287954831176039667910927540864073343322216059619523068600657540945399417900586397927777865791060145375565288637832960386307267224873903131287721857841217141616504334934227821912072522322126134737072657765784671698946752431170288384218454645493570616601509033605274062556217145533250928553667009445454482491811885347347535293225084709520054983617104332038602132416932459781324114505371625075411769531430398842980737575142006472047838142221479280723420286947379599438500924505685330962329761008596752243040946257641788392729651511261248170882253273481544265833358327575599618233504491340263846758155160001730368804576288743604461153104513220463165136816508568150850130308886611639860178683638779441813771894099698558834118506931353762153121607725878504308048623777134521845157478671354828644956186013593284201749903889078441456295413464152829606691173253267978147823827295124684360549952888808324269605669190768295258653783130315985357112680040746122103785521769288032364747079402086266296582578250639147864258737180749041338947497720133324140572965273816136176565929914634753020486039000253904421389276106544740856493422447301879973418322766411914382492341647926646830901661513353957596240186478543684398264166327583149055747415290037011973567977243940928610052183825769742454279322189525681692988112563635945905439310600929302965723345274944473851942055377100959154662526204844718915386662535534009707366779671402191403368330678881676305308800415697937183077456834130542308051217943003318524003774295786169677842276436799929193025483330679773343045061458304002597940420469058652100012782160420376293251213377117629375748769288578832529253591598123060063287794808854242715744198018482616794085271221681913150155783807661279223544506446856992708496110313886573147580408004264344907117875047879642153588426324995499788313515799935681940275592298713277207065537582667136650104037297693868984238196385296652202125422750507299244090267230465667017862372601607307992313782004270174455720082052981319874753809256698155168761020910852603903559280311875219689390612443605113335015960218032760066722978314979655262853231516483612299645192450497390491889132621126345249309277933599128456134884774380605287289554715295824719177501941242793569647497676269492374950688094547923409057105554824449799232628673864980237687462537040614021038071626552865830990804503450497000975057904049783562394071341481346371320586487577490496233156058820731413565497757275312438628122382215246298387037552625089953699272731118240929031351811384006953663580149006451527298950860630662540751210495543754996468420631460536411600378694759702957932193381620427866510331913231855240499275974259980971547974053454572590102421635548836842695287900935983196465073655419498152734783956235662758823784519077893830366075091935582415048483880523013128873877672301336426956466262723167257347805720778832977717714860932864043303293536918941765090362518120915244727730154993006761734327636753668111575671026433734420128295310667397246355164351428051581780796417849825066330199869639636817996289431670858163558679326494104108976761633430589690131590908984400353389653407569386236498128134820221811420050401147466035377000708674172581957358489234922602764745230128398481148884803198840280594146921268440230593045400047502181043725633531952409325631031977884050317017180446076139738024844525594410038897848283068263110875320543827639929474554265376131469506416747397338102288147842056613562175241225621279124153135593629731341835518041421024827486024781686283455954162569003683278930375379142838033599287855266141522580767282023269330020677368107848233843651535710162697575635128563214006460397550989242706962812527692599933222448933975277554957733282471890083807727100980184661628347670058279694716513229185589604765594440247193595013864804926352020464391550374286167985428402968161402720977523804742562270685752730657459218396211791460391328810652926076696478202015881719660577407099616311889809639099259297764317501350133990112988802343148862176648736932911652877675096448324528001390453754083878199943245991556036110855211307148023484488620907492105915146525585103077372493385880800073100659662051967845528635013758910264433790966601910736005823006503893136573985249608893709080076594444107619245359206859144629247715979934783734390504813074181249361498370538613481213819434405066662562324366901101494513939411161722752390979817230050834281348313701674531623219582497833058850309207532674997890326784892432886232436301953277572512419598170993165786879294939268272892600190852234891019249097930865020079247433480971910774608016060127760359537020729081385787326663135580172433896683950613771776238818141919719728089595856514484604442690256388491606680742087232838726548612883615865693872767976789004076909331514973906421473136658158076161124600837751260524051402408172338189814014192045860232764862775773570661319786816068746425715994433653379175265238440702474138809593283003404238628693779134952621119051094719557009052064841206604402801616294555568497653408806214913763741282179821321070065170968249556199351048389023965453575273044583800041011099330205594738018569086135480991511621318068261119791260230878866487900805285336136091728284000474072553367921711023348148947753714846263648462510911756949176204404745452620157463432886510236524356909395960471841846098731299610352668282708991127158691603490888005075333508439232935311351597972297129125894153313589760387545180291282779717172791782504350970029642098274087345975521444701630728227559173911898447470810151131368357092504719925683512841792659760484923857821802243130581483208394913414114234125189729978037211433860904887925485744422575678255343665761570249616947246086657730979213842473448959986817550443064123655632471128254215739698298430523064424169521927526050221383474910591528665994801417350851148594960019032456845886236253375542459814757827238093231927241233047254131271671143077807209479434881559008532299129934287722540696884194609726062341055399037025278158309501766378186898858550611719089495533700634682509062927102453884483223510297059796222301336163083613150584156191636068397400376642750579270255415120799578102960058359255822204913790109782001230474402344724035636669276192480625621720367026386157075574425580325042070031640684961577635315280422597761709973054596975440524969460085961656153757033645800607999417259671621693409398673380660933900325451135491543617993200095143502868500327757913218955149745400987534529444904483501409178277340671716223598749484462166468884637525752654538271023855037710268896639671516840409824575987803972733454374172840094172098246328704168641805506851545719703349405367149525579905999044067827900980568130982189927263189089154420224669053027902696260302514026679094303313105311392577015692625316730844500165648570524621554912003081257410707721156912522246225512112532255439050429958070280574665708770477912543088156735991315239041424060395045358895592549438751910487724757416113260943597255632593908643949146909538639566296362832895930932130801601836563027739019821689976606599395644073125489802294371557614832584040766487195599693258525531678506837366038323331966490050945482031741031715677487546451954218535850317770494573144215173573342238955769178068008029179985253017666758383188114857520615217564960909461886443306042952437533646802585057715911561348415908664102368171047634785772614216427383640661268960715238973253592559861169276816282708685817399293329482411990952778612373529663819730528259247122460061841067565373750942491558095916150698676160436016567600758738126175391209161009722497176308109935328073502686367775422107471516545746572776158664999129753835010501939299421783203164052277363270800467002026720420999488730465977307470689113202396751420530487685165456927221315553600004147326198067393961032079964220774917304990729160802371677427794440602758843860824925903963203234774010893053299469007940958559698096572991122012376938171162082196106972235989729044292072840772955563151125898464413469073606738763877087634104106075242157302327952848515243162498552088711555548924015590333373420414584047081577607616158179687072162158797576112024386423290639279563605626118155456062945266183550040348975373984275479632594039214731285518496061601868903578218925003502112902151042293879140443413415547326235738957393704691236213737071424484774441604808266906725720146231888921402916264544469569890389820949338918534950461561947302512487162220792489377008662085211429103936544557819529771824790278233445460754250641759712606612577109137499894726766628304529607947841760175461880358610597025217131143310264374812096291941817029300386880742806066358227989608102683478663934368368570866620195876069169847509398438126247421827471291900946428960341450238285322132487970729334180446922289655508486638923438538781050744179913247266384752571565382038913186449302701004063116124342765414181307752545089158806616817528164817642059471049077687490150501264254718511951488461508026850299886590024093257702153648316728444316800589604548514630389871868583902950542259054346740410520893434431803689965130461668886585174943489633572516807779966683540276433040792758883870344169367698421960966002573592873568327144528560017486983622519643069814322133848950172366930216905032465957452090629189027976643805797279978888063703211293326068880050578340984011888911593259348812928087922846503539018489195157730573956015560574461987751751259615577618112367459580822105416021771493733019611395200932747843658581216385115275347773580403255872469299992854033585125656308584295542530790335944984471536691383877574127306587300977305007086196417489038963391613229925254031759641419764960517455714034678837299402521315184216008821735721816592507873496845883810885175745999371338216111166678281679395885289251544045039584100869077562025697963065879924698357986494880157403235523550028442971997910918812551941365096863362114309680440773274863265992960481680231378130841789631728669005014600624949084828292698713853206125111281247516670913912111137598738681352512584041271310993041696298037883283235846742572141288279707966636659065777725263610076483831964316975815838401429470733041523956475114466704713039327825312597898693562579097087079430939016617889166951059684158187241181883425799557531732620679812397000354125107656916015085325301214709913934142296111748375213893958735865148229907638039194133425321311042201071370194406631799257146487600489010522787780138535012129451493133085165896023785835343028903548684496970005838393114613505663244416213797598964661678949007774683751671453819147713936517733775601247547092130764536176705599218696945205458721376440813236275490123186037882859632108173391494789215734558729639127972649668828391925370633620815728425955217455939469212980317326990629303628449055880090528209411071604993074696937708972819671677947555702986421596099477454876329943610981080082795440026144398332181571220668449606162388120076622319254692293911252525322489741604270425518484413302133480346381420936975809994250483588534084769742033935551634955731645816432962617244579333461635017542363457164008452453602668135833767710419428047281893762123652331947108215424337256846108458146462104928152901295114968127336227063639623953185769851498409109408315209805120615448974242575825186958544593066197950107509336385734895217653759427785740591564684144071312338760738828633350080428991174987738643087330391498241831181263342448466368360176418755001861360389455289577553133098440070573506249300104814597923090200995976773964965307167296255601972208957855352230684288844566716026733116556635111388751823105966585273156254944771319159165148846672183199915411823550665159628472871298355108907773882630320254637510451162663960588481304064157854144002533662917738865691201346530498572563878787639527109591586345054941388463183125811636093556806004773883143550638372906417448218365203776065551254912258707482208606446248555576596700341048177370327762715557880099738360668171071915004526602612256624143333948608288799204557130409090868712583017485636597612305544393315158140619287286195472556777345152037613836450407413497834769209633377311847233317067355241256470372742989424293664943852834006292781006663842451201360515449311988072974835042717744150053791037449982132025632585337144269696437731388946106357648663401002607938125827963932113074880903778656950515494594828472749385029872804334603674950115879427762272533399739873239385160367598972206670424804718680591756977525807088493665699665812423675629832810052569815572756931596510798639441741748596381040467087377330225188703389194195491518094382706215778039310980930866245078320671692543335758939995673827253651465659850866027899193054302402067341855080637907752010510799606293518068617487785938482530085515211024013922954443692155189845598776479699377143742426995748585593089429888507883955237559796082949404801232540127479113654314402397745147264509592867074841173117626502920321020029615273626607448561326242137410642845955443073508262085800874859572059575700517800237407531345852124443056465817735787415868057643386236824622817264194696048528436974709829786536358176783707288897220968572339222124047374948768049721413461317654728689480465113735620224386986820754666221065898721842254004087802373017240320972338978284226311606600425871489531373013916824842643171140470600528656736078885886545048393106550416751986207222580081760207768249724532732028618440007610474570058499196590919077482098727614697419398283198054361144186597770457414235945109747417207522415409924675145120261949966681138581856336482245767048106600317247996080142301566831383161511092645933276767204395784294792957256544567804763998579616705611018354563419080322005328734888991575350068445090715533588962393237624845417054529372619468775480648136924489443392395719590521408256378317994438141096270752107708724951540321837134115614229210103097187426578390971994512875109767055499089371139965456745663678016377913474453402709379565217001000916493349076297025686266614971292041647124444733563080363225314981557943347554064825384932735347329095069089748579585598854018824891197562155132301925817009177663879134669242758060717985549441578686255603036079012685969340979414021007216463456996850249937174787812644061850475124100943579316754317162680885331318448419134192504963380126058109570079470269554875087079534510635644222126485923462573450332844171219504888821910393053635056937286870070257229716392490492020759101959638277787952916607167109650648824098494148669871284531155269056662618148217654129349333285446193363413971540811023322338585755392110761614015862498918115602396606183861787619196287562822523228693647917547107509258833211768102726737316541925365458216949937448681552777719386198316741696414671692352458674939432158389304196499961600448518577342423009009564998682282136451569348383847659343529491031463268955725318094028161501859602393939131803224736706737606588743461344042517398030379312564722567090389934528618071200551121398486722412804177839998925132937281073936187073104820757577286455543277537991774718684963117765770438222064563546323451047751338550344967737698251675067212236199368198190822876727585986377928448897003925758110502865247777779056144028483105287652460482120646324730457639642211653438381163433725349728048345089914704359609773566863290595086685488127471728715377571001190501510483847870525827017700560376350827379956548856443368728178275082771831076715399420082473442813516556090046274575763247587860468732952114636409931276498144099321219971755917189653190306250230633223769372490499863309095082488321126826249030877946741109525261902060905235292950825095352549046531676673643866860303776239268736199392406790607705084637991451843764248777279002634858631287133759741138406220104060075472025793797789772188604327078112913939537699477185956187720406026038274268313301800380079311108125802053235793748107556242771614280599805057579152291222152930430157093555513303462244200769274397785118606681297720175376396072208482429035897080383591051942156748893022977785982266024510035472271495708723380090728176772311831148673828156837809959063032494905081182237188665804392096660764227421965316891591410716970131576416502143149982645042150358281335110831312234431353414096302013466463628622929154095637173714996295430090965447625869713906616326394896527676488785401337559155719425216196527672151925022864171824751629113888263568217987794666755426673062279522750892913154086304837964779312304324264166803797457253310749755753468228304374087725118130937099592968308467046291004144406450567073831472659539153510986363657982679936766267145937462367936066041210370504771347111621814456488687984214445788497047926300289326815416731106547418769214770613303833882630386631042285656279497608898031059123874587705863916582584443210551492567350999889238168381462686479278639490578108523030056481955053053541433277904303912273897525141691882178243231488782883530256049396996761332404048477184786992585623471064636663504825286292037547309332610217497511118073542470021360680957259461428932101129176448164719931757054040500069682131525693257637008810151187250656801832725999134046420614085613430239133532369971381557908749080718184524766233828625777036452886347727935956820309382839473821721335658443612144643769350409947484080004735243781630547116049384541250872624755848862041380694116253960531794602640453118117752233590229641844311709012132351672700629462217681926739201067285011378656218199437610736709050163275986505577234056803158284904313687263120309499629084852215288392122083827822639905983906024747419982385840689243724814254414059274102379216767853621576006098553829015049110559480554942783911938755856679551768452025373045944184417575925889192115329420013113898168033685745149411298022555168529145360568740443414956312465992270452624539506385184309268813882349221977335003388912251987123353467899608463124041933810092980715092684529454417863325908393614977099805971190586391767875593991128833602664375153910868387550674071096365915760220650106082419656613148048106833810344277852990559112987688903539817703670598871237203933750891536541231075006308936775682387254281794386686478177159203944595148619030581309646323268633857019766979112006979006306872146001560969404429312791429543814584502370265710942135055850647056557035654632071287509362111953020434543326797428900489926128752970545505143237164701399978273910478245633151988850632229477790250484736364621821633338736735707401155938933715540535903784596655424350734951255098307849984869299332332556491248991655151014672492662006125297748597660851042743033665963592392758468284109649813949777508405170719805099955722213177973456581604722288060696401859649104211298818129547215615619603610192446026104997216809007523146300067374381206069791935037879408731006858295550857874253892489779965204219819010601249510375055857487679567166488980830982979907622087456966244521311895076196666054658552260640220145378203472634021753153747728428467814719362562408432715078807613773128142485247608998475708191903636538093869460253613849882197346767412760015753856651455562903687764907080074836316907595938181239190372838493231768486097552330707771273918766261914891473854292868617730066724181453902574257735811202447294724641444407715897458805530472988924371621988118790780567112325461145641939992161054041932469386259173791948265232284167181008499374665460816352695081798156159936201661492911956657468998433644957857557813759280615766779265573813351411761305869673150131162871407579411485596629117586142003051056937672864237295015676871469224076019053105287365190155796870097044747020294612089789784802136261281524966459979546410592337329132875976902930868455137691967855515042090939614481237157511544643968799067347994701676878605117883421820849399909883960000573241544335039494008151508826525687327126155252498054058501629248697914853157945576965804008455857466486828009681596332067486539649855893995815908260397360519247950400788907177421037081115113599892540979249914708754120440936888538407845199297765178088753776195389267983898300193645292039969564274348620461837203464588152798078627214175743188767577216185820438951630165008612421106238852032045997746420965959097179475703933397917401016003709903868811030256974708838388984112730152501949594106570336357489787358019793599136869809847971050496835487438043064283902712662264236502235023807592680765860541397013308222389607020443069801423326249199135432146091700711080137123864486005801776654816703650508067947333593735303248797381774320270015204280358671993433746089031884482714973860027395402883097406041801642561192963024221912532137096478249369134700785501845342453555123793579665195462067951089896135689202152617170184847348548079893272514487860026554835317201130413231485702182154816640643095524416735456559383542345740621232790376105340441059059139046616822512841821129940065947746393606829228394083808690629256807367189344250221077675915057457812004407307477588879699859464551463147822270699190811977732686350109014963296729114630304667656286152364248353779174399465294418005637792629969845216711151911168915642489180378123086438589157258433254283887242567740942626139142430510332579853606598929546964174046331534959792739316531673347091984836796927451496224382824000441284140527787303621053006822954036299456243678411676824384118851367828638165722390739040962796073706540686892941770068669523366353133336299459705612895008139003476058983600422234339177758598724905509882011579060992423407643547481888448243300736943599097309634709299508243854541663303207864568191344173150736764937329370720278224523684604465803329963852998096811620676131735942919823218627539265062713471592689895287931040899789053080101831412752439824717161503664113672206147079151555386181267554958347585172869305258232793799836403320858335766936406617413116779229285176509847769698723847358679067849335819131956450127916462823353577975198936223661651449934652156004314752076134236454616999900096145449838231685061979687469615883887434527208416301721720886407416429364845025378163181719760086451434272331117952970049240134949937068998818136260621014436085546921236189633943537421797186371920683287998108258326590518205456032509046785717294223637210356083752647958632084061127823995141801079027548139692913502249435186101173953843139857281172350205676672636000770721537874512102055330818587317688515218381651257561643280983381640193279019754526967285153821080140144577390846743799062815522481745996940215037039357067370609213659640017836309035971120815635052427769863660746496213141947079651825919228173002254529118691333748367339508676994029107457760275721574215131699686668021574146422014452115366467186533177078442213960873281884806061791449445313948853572953993476405834096765879201501917244384881421087312409539703009368801619506360053478925359293763555274766900733313807671374448632492646541647456584806350000194825935647261489559730230219152629721873489367554384090993050792387677141042035238843747384058576355011738541423244656334004125207980475305537980647444739366996539957137668749734792268811634822345435665520685318906927716564619614195065938846553959821597643157275440563490597101726110337921108719740775958229027643839597848443148007990718885485485881386470582551142808542597330263750106897922404660003608154958713914267836407416841739960259386205764211608757744137520922605722591748915230436354058803172768455389602655990538382707864647865636778393312469278720913704195205818017938777541553821358309220183327404522620872209425294180833061466540354415578754752865491291664361493745074132141615464876962518007375313454181672763288840812802617975577751297945871864066242222371117983486023956512519733476282111231214358900365023519590364807996370842415289032504678344684097856286725004287649195817113595567341116345712853590964304772842654968090848671119403635932210517433820891636473212360050218651193800175025286033713164218246222405497628073071590594499511519912875344879871649553384895709597720001292151086261402201870204044438951189518676757427437440046649040686388564157409997424191446805406334626487967738202781201872684723610844935466772941642484543047314991988061085773619358534920332286007058824056361964976189956209648218157402639735998885812553735587050943308998732801010859035524919578330688704335012268693182441539195260792314215305558785832634386762604170901538247295651849057086158604732537951265238765131831641969313256666339302089951646915064144809419448177100327195397302465197732458343432911269688353094231448411483416523611313066011026734287556883777266465710409358559101632367032459544290515588832343737649306439889869565060776588118358022118366384264004008945339234362300347230647189818619902042864897645887990306965278773975289714777839070491776166810806789628790814216044292405828755664923902587857992499000557971901600581608107032503712948894453099151134618674073135232021266660483165295302356353232492254968258717685339580538106313547906279224505269242177432914348555572571050483504653633020728451007160850704071762957486514033844032931144992455134034433988752844956689059201697656374271510451355829751445025566557633134016378246526876146225792967318870293001628556117707623654526880104198556274105784238001568555306974543616620931784119732492862567636365047788989894457470644164648363497677224702616120511715558569611059479614656016596463346933982188140573390407819918658169078448153432874559220961792007582890403810811184364993500276092363872157280893044712109885661120975726839484079483177882190256418993652997900592871601803746869675884712420533064019840483054782092664532430471964337017531426967023849304027609483405156882423030473548432097855570013833263396339566770088313572236833414146590059312364890852150863380947727945701524014642508621980578551239034861577770310267094136675403667016309730884117093027244338746801889877285058580542558069351869444573980532829877093227578403024860240008623007439818410793339096089010767476552065567810636680807545093923095829511450434795822409376613644757294318833091924064660030690344119358870097661135825628370488393102006447666022257828390427973266792315819349786550607731694792563980634184385668205138480767823020143448795432606278392064501173285485962550389880959182692756684212994548376917916775922587138164626919108261433153757288921046973992043891275974921817352642354040830545707488276129427047194033361427470635838654453293166018729688586029076141735869981275406956097276175770995269597782277801539598482761968178150868790299041856525824229068103247818634604264948481107232672185508723368926084686961919797371454927784712748855624775178904254652885630364714762352968829295372621806695355800485114925625032430590377570382820170678440148931106459912384926993424066188124447386520187704863580423486238553712002588919659261383126422374519496383990333911114161911711806971506316822566100309105809134915653461091574557967948522748832283282802272496669697897910509381802848623540657401140105012657999996250394378123845068553307117481787286338119316871809290249064093167952048847737144350606476406915749411592305027883414010675796154228311869436813199835152656010224580836180942950520123455625556811408937789058278245770222222125179684381805695881344101933276915100869205114893626273764976821394728476955261510255850152227307067529329173117681424893026908695560498823441965088054772456144263064392523741776922952934802231944424274111924795896340868024026818441793263963165292517549009126280072553898779854901577248124011833485696707333448856160320105606052610604665438725674507139969090667599410391362506066454735825867080149374997936401876172918370161764100788644138707892299998817749487018234373683722365739271978706693782545311611304370140672571450835422675276424345009816874593501818813198603403921083085989562649460300459984222196871446224741147955214238528900525464173146403945259195339641475075373528364697038260054602883185775865552753592558974440916212983552201171939458264569807605313264598980079872413014170792809377069720948940638212683731210570194687175402894584130171286156423773151910535865925217553791208845722641424749864936808156332124037160957798259401213190577412428265869626510939862582174207175386216913828498807685985570717390211980503630568728198323249411532996486668515382374257562638945778477814325636607399760433549058818488801007006527496445789816297324179384067085517897864657408356099648028097669515527117279311417490814624410895026405425700756277165207709133304501878131875541330950172925617316743448262321641753226691063473215130104295317467710283521224626067523481452044948788360752274033826544992432157506092884381184316068333051367135038096698172649681705806912214768896310536087208483707768253856037154627768513644645770531849985385667196991504743393063151314721185618080991941588315037865997641152508215015615482097570654287207226664865719434241366317956658544341485301226721130386264478679403658445501038732963183366215373974585314985249398010052197102195149605426641366171399948223071376713721679272895677396073958013548422158603131048541042695819455962960365321701942603649738303711708368713839386544005144230993580330935810510829866828110546373177620872367037339675377750054544360482223004832822489638969290927769795068948401254721017014522423013984190184578489409499881944370851676860437373495971155369184056141356186562498577048684083736292710128645461449797507108857836376688989094971849517472697635015531403584755480816608306245838643179424656413297326626010675087197271022437728976594429588546617186965553244909135158266254116958553751486214196844590146837323825614861564625808576109553772137570622283972270649151609453408295119657097239237240823989607294705066470339603724075100691858945569477633738344958632224298978534645505575921377293285635160952934898667255626124785746172907489594681005759081240068934794806446659340320623324274356931766534655581467826111760243239340684032465789579835082751205050105032501099378387679251979084213053801126062622501521387868545596571099935370764235304559877818331204758458688541501585767610889725322871033842284419567260126418518496121392851138844247637660097906019126200908425684251252615938976151055507161646561502588279889158584277773839771271063026362650288820261721041808318841313016799040264474701661845144438109073242750984767155877912058492768493055331572372180001873278121823165242999068432467673263586404916457718166859487107124786178838761071630380638318133429767461954875432514272752063189047829994413462595426483540627966151134728171477776860285365549566895467891788589207143791234072043106125947198750685575559591198677824190881104784547641392832165326994488914105461861705842991036517791885189614662594798979198008191437816583011310179485397075824080469896409394028962244243385986665060259183382601267785288155719067903377463789657981302233963112914120018607415608879451391605626845392489020956206665767691255348579795588467372061056182897641349433490129116497108128637055718796009860711868272479465006389702055524026905989633090708357694941825153156448291461463443923967346665116484886010422067339931728795742872840225066714765401456456468960439149468135228003879379016528055721626107847308810090528124733217269143168874181934672535087731150054624702750128270273397849169669335695253856465493898093082865326104669313255785954490532310508449196327651831829574899970333116944498186469192480092649508881995620559509924426356851780038204487592818852458203727418311857821783340276232893040027466980151055672623723174416347770148751472189412146794910490670370343504662016184055103338417603364845682373892660314957400259511483952044362013662665206876396282136023732083402602855188306153483032777611692507399544859243856266870104555203919737991037998214708584768373593087442284947354408696254122786000450637198589154748349898795216956821167692592332154410142152458354784927546941883367292492261741776878049325901813132086644038319731993288721030671817123907030786209396087659477971544507939929171770675529776568808602196252559484741727758049597088104265943197352725653733016434430935443069934944998592443167022153808968945864751417642285594091550971201217885542778430024145188224536779968974857783192416167774955371584772063332661132455537677032602789528262213233527524947428108971037130801265023410064343251628226687481789635185895163596435937819527205998529133242184494311029285643339937118063929624901027087013202519417956038029498683047146678950932123751131181363425818251075900749297911512828406913752153413578443582791838083767031151943799913766896576123199546419941234097392630755899559067014539240578532220548153489552858023614488855631871246848907212919342178994236008202547342571829951598694809979337560523648283223430005954328228562857440374403951303583744317483446337221113791409384929438965035976077785043314810482934487305381303718192133213616751143713579842900337417904866265332342060207932073920505360240559705605463160123043595876416490857290359192803814707686162426181713747221234012488784132188566761889958071082379824215304433552899960524421478024460491439960012209139069789842311795862648588518001677299290006693886327363257272138856155580176842611470001808824944606160643243955619124731039792699568509285178262001287609736042346279342495962211087230894390694603897434844155700935954820098199448103663928839867805121487712726434986134488368028926623079922415546419849026039467433408360715897921906387458486135710794613485595142770012772598020186854743080391447233758961864543036005508162369428407156465953388282551943240716923314744292902196415911667519139170032921441060310129900136319980092514102205339802759647014826279182462075315045274506346289836480650681654666788349388154459873358340880390054212559656380342697948125727365780332892919316703322455067353999214297298194094610878974114455347424687001133968452792102464616633949737129593160889813172153584879871284540961824333461567526640976960490764579325515961671940079853651246990415012842445866527275466520261843631114103421757122895605560051014540812957997517438148837184131113000711106485757576260321333264109188065352687048745950663258543848757392053921701375585273903452541915095867360627901769471574463073166871761366637151691426853891817080600763847810769072643668829035459810811008747299817112829951764261791666537892453671012590083202774469406322881767969694156319538584336080318162907136239977873120492877738018819813412126571790965867656678202233207410842888089932398771237500132793382891198439101328291123944097372434239802724600007118853676685267030989752796917141705424029355319543341594976954365505858937476248103876060156532864470661867197650428617691686848359185868677750118399176559837584447060441536465147108227914687008155139822364935956165484343706742098788250446010139467200839819888506186532942648594949132070365050170938097926679016609334233293949683977050872834376511352317376610688649020760897015148940967239970511414416849625259738437616125373341731669370671871831525479964574414446757040209351514050757714951672879789914367575081954665154831740871273306542985753140898368314136187020929694046057493593659342396346912711301204867292371127202745313542860891705810216943362809045620782022285301328354660339015319978016645496991384584064405704477774775905812499933578754177648521092563821382540996792252789584882155180473833989334070478156798133975617945410899811015768703320495647221448111665148892003744593300455959443867213209983150721220571224174200937110852353538047231091984474660717538635744047834275351405441432322280993632224023415199645315682187544491805958033856059123780874064839466060399783293065270435512504821745825680915671321829054351420454311600027123663375842857113791391225283903666331352347683942891957752336049164208485761087010122888633270337946451672030056796080205318849158638260609518545477642441180779199360116691420200072399099019809787151979188633280418852857007254148942520712499135248308463293619086548982903548597247689392796710374785665398134076672967252115295887486196776651846308270866604071930066613774442657461083611616561446203409021487721113671188996700340342509007607654240192177455317729429778228476611398862759023312355317109611170904451989492920755072364890009071483525179175334409107047190903532513123422364505947947700317670588407902508240883837870199446008638901440812910433375942016403885127503978407733160743004526068186349873468357380959393015518049357060285893554406143982692122924719335024480124993966142281801584327493012141916022829245584791842521355032379641197173341796852849558719309740035893479741907412681742040075164306888043426789801331047654614525759626367899921867987804150338673310360901473095598511153434693280742965964262437658611106450608917434666205404959724926664941184207844851551617242402303215840101026695226390887562424566254935671975187465490558011808330914420235525979592662693792332470098343412907518672436782759612671105800017042361953637982179387750605344125152746548379946149672500706182334788491901634098772866773882546503609932105972347507684414838106581532818796853224931768319346028459352625550734293724802415997842093358105010431757935763242179793804643780124714039378824091720043768354645091442949602320770278750908062275323856929717866054334558632943568235528140475378739885131479229652323894217454232208823216968773269226161851978789734976041663847725066931300808610229370824788826877065721754889360324165723963145147711556663045958478974866842772811143097751323966368272019482919810765648577335921000184089425068864865969270434812230472664481255959435920420954274273832524252533127182306954738453669937138411637215318824249542754240028982418415516795421299044037178044226468462866843572394151308894227729843385696739057499414550274115049919469139115104970868810925326287200258231284212334981085799002185385518229939785935589128132313486631597767072229387975408429804185506237728236853251445284501711792091956795920438998729901587794300415728836660755011178810155611261039085236086640255277110934958172211026240961378963967891221393749518238616779220134188300154627035736536110052034093458384756174043803118562080866638045679141897253124113123302541894213397142774839061253044255218496340020530264214387146151406328820366909901736881081222531313608886738037042621122301736935054128826393723744881445200779144666008230525549617641243711557886261998499438826125694399267561540688196783279362558665802502927647339126122485524506111542503562165783992519225363245644244790819300927669966469477756170824145241541135154061824296012557535370630150886182372014904524206201850170376025475681010974737664100340181763739492138502272751936486604707049932063482213837022877360210248501642464508948195117938821048805002904572691034075206958209654688106936974482925063723481416187824951638806232736890141990655255076317738943462303074815117850772995058899720112594649353426361161905530854501064331258823676808996707311878136068103712121380021819202322867661572658589763103357684544840954311743917767342832284645784145886493763611933444600412690282018919596954258843127729863230269589837289655007423572200039112927308600579768898792074726994775914448379378380708311091495568632926836252882848400677959246917344985246917561626749267039927592092997656845281232943458460536493581606256107354282407940432015003676163949684899648243817898403117448021004108063430939035013345648469283251616605107182589216503295100109941739210793878090226932202600876223902009392306176370285451227385346920545255615505575018378015238181457731202330352952271514391611842268425348843381230865548770367256916083467195774826622791379038602157369198817217137791375993768261476080701143990873652871501036377478719119965781162315104813932498339162623615364731009440269791042285034026394554712293180570899318425866571161723734379775541586324463245550727225105401796961438492830330792085516804485637258533536499788830984262826415468216944927012292100272716458273063934784593065494321428747873739246274643763171615960616257650391385373012304703315611951965841602043995321689157861069990264194570915574336125504527610024212293190659001271920642881374410743794552268281641751317940237006443983706030773477212505990096282934365378358222904652982135449920819133538442280326733076048534332581060205237114552448682368846147637348387583434912001753976634861899536121022401991795258678026642630595565532941412241348735454698313253964738466880320674387137509031119770290747613315961300002631221903419233851530782153382534464771214239976535666610536788238412279195597606694180740546758685311375205195604724265156857578283676168087422619743273407321687179316398820448586136961492625237510208725120032364798824960357880944988272335120286161378351137835005566815309902139765742043448476912605969005579749128146042979930226706106119596065750812170462686932347689629918379253002876866850939926479489377400263358034159761946273941295538657576924109562134279095760441933931588928033002777838422322369211006007100393931398523171084202445649824698309359590203291538323367133974510595279853415529125466764201263023369355911642755300975929581174011145268817759382761686614732399713309780497473968934967259219224077971256459768512576041676941822091447411198420210459896038459184898526492564146861375780283672290224660638467561109043980226655456865189332848917326080690887762111835661968398184581302468292296022784786260142600711902832587638495229096147127008559672367337736510991659230632586834206630910022600409741496942427993886836082173061383920334720389414466201295612115312169470629244243651342676723439005758979826954938571583865245454394196920815734596794721757112268150351916491415634586595302516685382009900285145458451800460614820587625025028348263039336070036095915735701543238246635811556137501012143270914233118124861918787144097242097095072100637958633278467343452053682451641837385630183413268520589135549071517244584740933273465089391343719241244400766897188356406843277723118537680862353103568921872348995963184469145209504062822539364731637118384893462454899718688810554349144835178070023447344747133025143294820995496981698956203734674334405701163380656534846491019838238421570901829841594367689630314148091783017440360383154288271458396156721257970374125659282432259971309402158280842469299465926432513263568577536684818297272641418711551416466162107875209196654819678043718532178103064462635707407960991850316415406044415131335915251402224597181856461179539271278880722027318228654977698035910815454262711693516377122376412138733207801869621360371246612054520890164228754862655113550798395224977721197887585090461497552379859527457825499188197063838146671466783370086321768437082888033806059036773500335772496996813711123679572683702272071739759359730025939741960021766641605513881869834171419742953979443360409083367223148436545815305795082149249947825021621586297671740926188098466165614273861181446669250168460459395814356001688484251230862121609708130980692415995679820603813205665336828638951261496834693184353397581856261754158277751925624352846805442022394622962261227943291529200046725637296001922215111562988072193441807131442400881049776990020346279393334304350613399484679083667960289614708513514110922092291221108734251809216919016423033888752795667508556037591469278738183388102597957989942797547801968613285187382187844936474404461706226145281703658780807976189366002266618281947008916989641125317368293594354720268095944829490220925739682362838315842486804662827239735085011774604668143284971337051605855698500952785484579053286441020202225088374754041053860700669568147387148472316066986121341668782040535734632806601095997126222020257479947245991149975665644965780390701617595969639667477211111032258960704001546232668013829824616584585374862954253147438720703199994447153264794589830194316988551911444889662853005537679817566599413382807452304694707338711063868035213292072730764988252286843601351794415955597727157924217082375122608825076988466593771417282765449461539894501422904249045644495845091888682562367183529077142961297375642483270255980589558082661799101308065167734910120602605222253360515926655556451984678927564390204086546554208672639371292574956230461685473956056375469201798784268994897867213332785796880669005375308667088395149826038189036628017914202686649965635338380127915558378859393547551060349820796464183973021028712208691835227854263179829008587873802090145596618472455911041167152882593767221906986647315527598200368351657898375478953322552406698178819994554002137190633001875763531471007554080972832219398851087835544611686600437448317984985018441365377343228931168437713981922360383755885052143966073682664253188816412246632468033035105657999200438767802502827065410991939035779833245167188927292319571558356745308639533591265870235319536140183251328081433765036808952615942598092360425100373425692236926423163580657928103629260903556920144222492547028455061950374568662492771859131015694744197432306052195887664243287051812404897207799155775912187433051776209226233336265048414969123228909399746275821574290840135534244554457235680488844011208689689730855346870386699688842856981260673191196058143132236939631860377102626199729734484731549162179367235279838241247685621334165504993133296584199856655304545884407955248418725859771645975359137379386996399344527627204926629654176528173905354337264279447497567038970931889862161224859862305767452638096065940206974965725917119392221423523050462724096328268964775734190738007556707650310193348810554072174852726777301349535910101152673159436684170248166609514349912304994477744715421964888726430717949779885383172775907952717703718294354369235684711645700955266658960278060848742770199924612514309289130254865551125041139814649089038149486247288470236523327875612401935180903089016038274866180976334452427664145920428594853622912302537162463362686510088097145885936106990541968590021680898619372299873748505602132320668679076680452249482028416043643595741834801479258496986902102639843233234387412349971134844968307710388098566663994383771624882510447197490624144235324607713671036036486675569502737198293225458680955291063092653347648426016060930473011681373862699500240291970280401678002701924658559673660791565155737114559825850738453240250138527911166787544504697147713885095641943277713902769975588854178260527340680772128107581800313624344628617261172978688308599971927686542249573183505331100709556421150052838231843451346788036457404155064497793596202060750936636115538847563421138419003344958973592095296344256685531575521093384108636204118603983112876547050927478287130733465094421399082916898694124862522804199732797881368213980893058707439373832071513015851129845253421073843382506026710916868812768724973855694707338058400930519294766401700346753263024894884854097449610633038948282506188620307275428415976907847928542867802705609301918236042521320326090268079559490444512966866312072969507007980200107530321425823020046409695835186532304156902009371870573745456412786990435660896297885127088567235309068880202136336765441961293777703422089995381191782986624613619291017597098302214142328337830940249754627657382703153262991579838361375792123482380772794307904950444823227928740340635216333777210187200826003659379293489484095183280505475708288845124968205184726016755226389147531618098881942497992762713432158971058795696126638965637856569027962895371800111835695003084652874902357504376113204458367462031842982542951101736053881713017357674212691873162554456229103545709210258334853453446054652057621763686042725543050627264430290616336596096615124692242696564213060037566302622549338407601408569822723849894724613928745232165724764076987440415848925180703706463495402615845063276591260239427036184245408508853969036268260205047855992955688093033555767201095292431422417722669635806098375174681505876077621781004493187686689638754941939781526526807745555088965183059901472138226213053328160733369406739391984694147152202375076339839861373621510884549347532668807736674087405324492275222994022476187108909240020668174170936826457786357328471805718165869225483360792506155362115826381636499927776326638549310849056900155203456310970173162264151193901265602377888951911557589809440042781383597484358403918834774987161494006380340203014635533336733397242722964897944421143926385990593934792371224304783990926767209318523328675643095005730277940154558686301324125164965339859576256193163190239776806876560515610946099389767332196323530897372342108778499963061375114191733061786347705349870261827298137870062771685708561866043885657023355218325840487590308883973397631216548558530004504586906657851590207299881598932649680007624126822748802082849933031311531514906163734121107889473825437052739773707935440451297800786277970111683256874634182069710552975003541710971748938783003984994851703811234452923256002089617120668640321756140919692675294134357473129811445655744787508725712439829548656233062659058662009032440156758329535981527158214428675161583892816715546325508415165452622376385962759965897911650428628458231116340051714664256912819402473576529719512423226028180208053871860583823273505168216689536393858099476911504549517962790876948423081616540974270335974293013876155518008456973953268574122555537832165737583717495871343882911491965733141023627037187777073515035850756173032569493171523965396161339291239289286520030329353152882807303628444588206384843988156623615891775763822480197696877305024767641350725364116946401275925162296803069246963870012248884539923643232294691292735802501432189323963469158469139201597977139513781993387354407305840502065437786902174603804325112685089129219597298782386209360299128241909855991960829856451426718016963826015593378754761882107600814049112686255513789380545211353127231962186351225087105116576338834169568867978686129843141281512634184844169995549005771618169295490449675825802218076290329160404223200371283324996748092119333367710560890229602648232621287383997993250089572852081172765002243798169494824100451096514064464068659751284272285107790244777530828098108073162948230687664989914620485775374859977084271933836211316632621200853039836988381579948616830166088120548846213124727234750598073947686595425321927792182811580276148490609946143076807416180101288884850050159853866410361186942334636411923722007608134996244523798352990766098332849807031537688061491125202439971031983360799537411029737307763290978616002529585383774224249571886828021266493931186801328894629221877763408463149822635025893023633250204546338654436253362405995893656170950231803840788532505169916988314419372738535355581602186578310023737448448411329718237613666859291459870246709600323117256141420152183888583837354557498000111498027942810246083349467476549835077208918877669656756751845088259999806214878683762693799217746095777998388650664987573937095713516622924178119603398725037085922325303086318971730931862171341412526314674928029860969187554570771973261624923363006519116228140830783134817874902982138330126026451259535661940058399408756368918278081489318150804076502084642443703301923014388059695675983141471046661918756718339476826258297060922758168720275491503673026215692702556566510151882512772247269376224337948477197441701463627447065010380872840382568003243459600838636893686857337438399009175655099979924439340213210459854751966916406137797305401343434652171185944147583114358899237486579280419772882203927146178364654063675727948202703409428238020018507248618218473341500219684747596525850675753270353657571443904573047072927791893490914095103946117432526883912533332174340749423912448665426777531008625657707694141928384364680992615223903333652982955339716696423179074818331056790440167955304921537413158873140482997654056316237898986250661870642668042701271525692565121169483105917209235007826484438915218539419915918206086581593434437607327788702092037572931277003573255699887481878015771454676099896092596617205380772544774190694477374037822662762643670865854100664114113023748884628833838471943368594144923199959376459726157255990138410305152043659239854830915837963825807127010991190618912785292837285966886496514705785294243595981532124303155614933152230781316125118643043369349340910686858038176714836711937436503478068317602377500998521224418528769815847262850003021641056450308339134127839340024866333815059155666918818005120669579429468715587308671413745727717281193097438714715891759265617198365347575215981543924582544741243902675646572253207217389451041333556501698995554201108811089815915322694579488470022647234949270567656864016190861095629367028998343669393067462951525263740288682167044258132355789859580540268101156332583355675045932261838514565797129285494103159536345264536441830601539578859151142477729160593861619192205974200392831646785234531452996401717053752919839345997282436887286591317842469965651394641621453112870549741346900460556923679035417512763793199403663384959842984168920159520584629527360832516519451557029370658947147461627878466641840620840057525414115716675802836068344494843116068884120538536477066816832287149642821922708517351001443225998373670333943100336113565473737096910324046743434162340504493312721703040781263120390858576532743489761333969752922835676668006361813244279625478404211927375429336300273925083706260827806351562826686269815275448373504802830004470868063556544957584180975784621988232865855283406392392133054800345972304413573361069008510456568918293114155819785775572988323080583985263784973762863667432931596918307114997819374548918267875760134012335458984659273198627046468388672839950721409257280523339436946919018928060109771149823444770052149384281472264823180494319278749158033217224050013075459728158220762917575360342003312324318102951277228867989960862253243909352606325388144683187107363445117489278744875223765207722895386301478591403709092523300278248711740130871140117492730014715893698769123386023122356888285024802267853043078189770612107278089004498350845522929796005442279411722163555598536585001497647682521032655901604878986745056401235484163482329186955599082875777233362058018623334250157049770360015399886733189765232062516760390889534650431597168464715727348736789456717290410158449672281834978168709310404031184380467267329848830430408320208472798464266038313233801311053690917683006286086421039454211704544585032499437622019617703910700435007487193187798254687175232286299172983410782362285212791382273648425246406252192170867492760432073472857215966504606752370773337120996686168995770097483562949194152779882276642839424971295610593250708144337384319214066206413743455997055139470503571807253130309450534969528724716639463688408028237230164984377117498323064397901923678898705088937701710298900828554748403866452702640675766786833048750015942516493165494910022589283682986321034627649972048097833912077783854575537049066686840429625086232821341552655375319006808399712849526085690302368245856671060863447036472294593750655150849517250850060195440349976274611324374149043618095519375401478994042564425748084654280760711815188012268176416140431314138495618264182613263728008753697324503772644799467435518943518588115077305545723155802736200353148055399865319070142543046829629225488363429273653148074628511320433135845472151872725152562246134958924180603682781666027447702524682655111439033688456359125149901394964134003956251154080082232865146385983226890546460896448503501763522141557404242194061936931712034466899000717133114862773730340587653436323309358074250661413517665343558210895186187291534890147173404586940728800158086476936596101085164426802900682242890500671439862158987431390783362247716203401746055124972265615862179546015680299563320004964824742328422055260275656453455137464338987204192987020113630942103949591871621919442003161385498583214898244446142597154758874076594021304702366400300434012915441148436155413755297877551041935619396704016304407103379800721804884362831924427087680359703453514017216761286788963996372338360383435882141697238290616366106304353210608212797650912141710591936210188448102862211562337934932893399800272220227994197607475253267486620759212420199332776392949023178815556449992399120844485548989248910996207494486823854143076325126148310876707082290933430660276404167984440955754725076360527537440590508849173639675994711012190991396527561180048938778896315460321424764907501069925861232097209700251381545765103278223304606765218810217808252020168613395587789971348796339313742236126691526466742947966305195125604603830090757431018463674488181407980180118473541197822110070379012953805926858568224166409603055168639057961953796376433826710512399630166885925933550954534528629944099903652177913940877331432148535726096159038375389363971506357170498133410767958452958510709169305981579006004638962565217384056617324413614603787408126107916881180315127438759411846110097562428375417038263696875039633713150002678970984110139176049302650511594108320164815169690221657543588783688116055667539652160390673673936793324922202674705291043399380904314061632188327101324989524515233012304256448403772978814312949353069327846763412709134787626712410658825003615387892776903099234023905835522711210684819286302948659897264368126373335189819634811076689005781673213937318171821151204825399743258416690172792085617353930782535948667006752464424815793225539846581762747658607552730748381275516096827789523676060733493365913662587171088786655709300910031997314106129204803473094312742813176590705356960723655490110357394974917941608421025795030838355933306595552665911443677784283800448925414844403628064036117625473619955196760121280835320970808348605083980665460510165126582506838813253718473157573573673839936597918881509307814311225086007155860146702305797301445476166198383848748100688515431480864294766651368849836893736197483924584423294868119891788865029732774455353279290789366945522208683298558920557126809786740758882939995717640605468336403353699143377275681626800227928854702437873658663125364275939305139576029158080503196967088083135500141879680203704732409969154138244886700219062601534121606532757305406919206635192049100632074883588312939494279908323289294687629494250283341998348618917077991835934741716752847240266608481074460779503131360992766110323538237678230064197563784813221262936743040156152246736156960822265059413001436968652526895591416934018260696040985374977247693483297229313527857547557545531995184960179019736665186124541031308012160801555482998933638720605377033221435531740029950403578458398319852568945657625535910552013612840522010427355904107141338539042840690436929365539370133111221097646969618420488279450880094987811369342270456989091308819246422708754019413171024360894568139631962807640064657312181778484830070744402674402058899442107927577763085390646518862771347623490403856264991951811822124605364175858921239356455188212012650284032328701749412092662852474730805311114058798110861216655773078726979620302861302554617741424774677221123115733914216366666879287859453650581339398011684873527891171546781231925160332381176455497532441961927745549441276369645065912612215792729849161230463744677101067848003370774001041705509830995596386641240520977211423945363698367368538907187857720381276128114478849317129326968249962819733943081139013653484163522427065835030165997092625663973107983846919185012267258773144599263627457234615665888582540274007392567052508163638878424594854926787912977167647464045929865506154967516464835703092204743615529330350460777032181052207024735013124996754341845509179746307929394848835704544941861564749000171502743040788091314166301005022691755758311774805258307438717105862130910070029025283136163089569288696419797888773976663443246571843664957443301629583558985829815639736961626769455809574684144021658603680396340974533471041738808343300957716150067138623076934054978769005816429099363637029316319838111542521251348794972934559254137493389398632099784621372370884340933493554783667512475792309742059662994723679137895256019661564636484599437210083164732471961370712717279774749321788140515112096382202968971295374778137427424407830934658829759467266753546046759980659577257897493012011356130565129702518395242489762943161193030567611714655615410397278315708751186930380075298687537495240794285229155812298122961642136502800372828948575180282807569944720482530652489332385793767305914339470292560777322543108818190797614722614427736018313184164897105258884166673076648806253557235331206182478804996771824215466797382149390266672318925654113713763752104369144756906396086060662047285764468449424518974758208116683166361689640821098971809906303878251385037325287108249596575990096849365464072863584229946626749049765973806579701371782018798273888535482860202282830533813944174973299014529668386712005454344914504911544597668868156828530483346590707386349582101551709270664105258759996545743462342583788768177510925497152728679966781076255040413950952048342759887064748044263196794241581704627188885216146426221993719361397546990150449058862396760476885469136148324279378946103971002029997018368381006368370712160888431754168167420540996542038547793492988628276577952633199565502780004216818480126981631072741325408245836352786280594401862471378401263027854619457663060198730287971284273406569325891472688994779406092563612358402746066194508337057669650146610452772492836922523179239907471669525488505272319380253982237413375933739398658568531915586208587896345564573187329769786587495959051227035344857901263980354893617804441669210689334422997663201313851923218451167134104820838808849978151508649675660905039906160468312750371035232868951303198923940336926193314109831509792340048963402159116576027667787583396933964981959664474576368500556145087797761338899773234040213583833454218702081388434566772926593160573618368392273931566065551256260372539806946067379174395823264179090535009715896809757108418194240213097038469263302681774522727815763993276220977995411928862960969178141546933519997874087904687210368930737789660978053025350441481835324284919011143788479171578923282442994512949554529787225802996958195281299655610250174116093956257059286508026627469483942152740249039762513565754263628948702017470238630407485469394810373254758039636316650213012333191441727672957835768965082000093161010573690733464824467098485480902624614043218917643361002078908876916354023176220998839312142341872555476668287975247180483529880960391194270590782733972046220111832533959720230415090531447102038570164777845750048593244351034751705121274124292167436693506564004291297594979816542632463749247935769166079233429637377906844897128679078785372176266763851040194443864850692205690003612267939269726876922581270593439238850933012806096382395566881912637013882376996710583566274371320657489515476996474932554322058470044090898020057493314166589429202374553751321820259846468131661282392666783777220722729522164673865876113145722086656605576975999954547795449329953805556050412237812623096891160400357328094453844555922219466251816308718450545846026531522879249337661281917735113237123386820537912858890509884592308198130561035774387365490075752664253426060396153977069140070537464240897412194362568740306131690063726565003853662228140800691897884621699535303994846421218124337999632651611827659347141387211468483989384545311510283237519891688604300114325973295087040996011868326884260444722664991612410335381332978247067093015309182858397599854683525303304526823114264938734894264245791323420591728216093618674062295258466861389305135555404850252638473063403828723722544124795796848910311370292165165410377987554950612382341937248963272374098282230910059542167315847480678688864096215854104334377591898095780273578955337765261498100815988742955597557225738848166734412069337571275973291968784084862605722062584608960971225179945280154375159959805687018840498471426748164318601958999023210052784190686042040354220603833163998232832873560468260119201282001249201805912933531771688923480921574218172372732466298496453140126584321966278390430510460388081637635082687282573885373052171210698401096173243503501695151754565252694145781514182802941496018515279711167687310680975715145812664535759258813201198154982729875769572632860620888825888242613262846835918814878210345312118588933187630576637216628940254416048530192342346331322125732857026097088032915174320600842604318558752618096554852519911075802197311775768992445469841814594358275907055884924465624171613088373721862253752299607143953037220892497879235063900097295045868265466865865641813782796022036164909132641823617650779108673792010692808002213993678213377933240747464874306528107244950985108109566765101551348779516621224111502289601574339620467198365239586009720496339927632405540848694385218999934260745808253381200440074972578729550060011241370289273115870806181581472120526457427339105723451685272639007542127245302954257784560270628207519472526431017135242077797733551893225638156042932324335689849080959660139109052693830422426063453401273671631673997553593731412385807752966954133088865747740964967058819992470294250584986276020576704135714314726240835172608482700529976857347208166473052132661781162055129623839336466353415406424302706714594390989688091557408418469193621084786238174594046370918292313407683953065893331121798090139960546292105167141757921245909706692996556530551900913548425189017092629487564416288915703149729068656880398317931653097769874415655870858773252610870864499892807039262323201992942057665207170444136486059602128479749022695706519348456620454436571137716073742355640785737882656283158751500616505139520343288177975228720994857080019783708152834838998942932295393202445531786460356989790240294015532701339025962044665379872870192095405987133538181568503904417895487065001025137097710433441795061287632872436897658511307930200564489598896614143788716951325145576750533330276590370924947708325192589302325625103713390614654186568966014471852305507160883310209706136060389085413617355451900103511719119921341849251742241980842295377805952779470375772166650710184892534233912617650597667348691614741355552045132120939426995655370317982557849357320025694821537718063039728329961463589336238168436758895560972311192886827816048688808124573325301572729438505478421040975195732412743148627194304942797647894455873321558061953508614034226914156267927295283146067504001861009983432429660495839762379690189981647666410871374769634742562128471282459503767399829763235349339816498192264992579489445173116345949088534693206206372197925599438346874745592050305393064077878298724879632657344097623891768919070869014065303625451984651984653461461856225989955392218101074372719092057179444261234420227683277137809560766916073773808739590531593694648818788232415425880771103463339150476536514787066266284514146847610272027966582880676399929360698754299621563644202804791816575510751446431012604064979725763477443391674103542107318775284191062936096130778407272143248848214664060090983415571645365719142285467117393251464143932993617475390436767514273270445437417884410458430862072680589040932989305475840918382055314987723044565228703834928825652341619042535244276078937176906407101550661313513578703108777393981613126450784247196206123228787074959501565162607062393013541056708551360395712942540625507653247109264059501102528470652768469150069162080443600528299247686204892861169929107091458239406946700320412418511783947570567001401637692338606116811949659407092770495877795839486796949614455686333208163276484512434568968792667981006146183063787627074368507153503017054536424763256496522538397020520950777853234568665423480608250575828948751832992711670860190610270843660471036265348415250636562360743474441384581689567615229941667132312774283966861317024875532837496618551354876063842265870885649229105918758237730798407525979273603448681787642512737104830099616754451905294978297694317393628316211929347966377306902724412573071996021053572004726578676422457901429140958379787810169237834598027920004007331232052865356978868466057145553228199845352569225741923437726625553290467893808506821713176078923100526055992465532308925799168067989805442025326619689098441245128617653667684942400378875487581739181091881077039127986862572323556264360851124525432428983120883334645148611678567546449248011855486227872634696859972818131754169889281580414137561460469150498855160543800144642205682932622280330475515426680208431034875390412826235718883319805562575895634203799987284603957128660210416472409493858864278050403847084055177536130658134521001987291606151338898868657922906090532555528416623439436394941174851968203379986959005551929393602540218137782936555368701552349723656413895487753863307458852512180655036879697340748908581419073270011176439953354575392929890041639242968929307893275347396738565399776776606546034567146110640448389228605672848565110070230569752751251322731411280524467555470180924157730828364795767911985836402366580328402844608890317699158469559450161804396648871337010345922259406632715366548038960387332439963471796344926720577025293683215473262781357922101041714133710394385788588579984717835822822546267435483335466637017917090613734679257762201778255094724949577254977163117181919575057656598483524429161114146274305609436877980944877494072028964449090605633059890288940012247554949941150459383574166713391009251914170213969032662187665837610049887209013516549988668590422895688210368368866250046498081461179702350079278124245819277401057148818733284196233049769952186260868345243999569969208237054287895196152704267933716087919177828476272155244575991608245994747289810751201338037065803958413248297814160898093047526612138039375378783238924141641909860213175171228148489098473767423737623808158594201974847128628997263899606972573156337962122828942324168981747163465656209764438679236429977760444618811079810800712276108629496819385495159319044785717180309825412022852163626973783810907885822155036444152022733700321286130888207069379982493789755282096475075452544023228476761220902256077039006454429068548655477039294138964974912140169575848859111101678213826552067304677890067366247311996134015160831725893858450723159241577340342843721379624617837725517324396609388046207822705477442544339928438473647490330220739724047389990964000723400361934395141009028105366496512253825258769023295805426684809380481304617884316062114018255147980612021725203999434308932967957258814611538344105420705037177961443037023672400137770107012857153041903044492718656636223356597621607145100311675906538652762671367635981251923076777485032645706862350899854866314311798595889450384047193260464354027110565941475887228156296244490312975099828819788724366860579843890415781099949744989528797259544966420254037255200353774067238007349891186011132948289763853096485599227638146273455540911667775934886434181406823102927431193817129584165973508726576583548469846984122826654275748939147787169149387446188813982363194598397710898230259957898900786410192098999984858356988227013490425520522710820619768379828908978984175937973313497431485204784950879091089910931077282308159344859758801815133022846375928644003008998490970255565791582024632549773562328910687562179560495261306812116148953207553637912356476094660458348282169263572859121413842650141837649966791018126500632077178669621314917254663906010524677550836807419313788630371785862584841617451296731220151797500382570770469115120921134386163116366630119364307718613031172933979738179202115313880688528179513901691848543538403204791950956629027427058611818215816204633706837017529497283231347325028621649278587007987589045070661986980139196063765345550192049390181701441882124430345511589100060976012907362689941716376111398234889575902586259343112367852566488935764380287558067938044553290891491149731434010965121988291468047867223585799161182523632222322248078112739226988628952989198136520280040968472109659521626187788235822463288464799991032315454740522623760404337463804579187562296865117154048778391121480416473442033548618150499472467335366721041614283097660762279257361159274517916613362363806201140780860440426787387034479849740881219284001312897058962171797576283421841648203447386920794880748489036780260065681116898696450924078962100757656998021327190536613130798137163439559655351362185804083987129349229557794115517793673437786729640359087831813100827313543495183521491944122894597866685544020170803458240243732194318605963538372365120367521629409926258397440596719460069117590752038822328482540723848029086884703704733595438175005003181120984707986966458481809870249090271596680915520283221691475837212212744412446532089061307040961647076150012314895653651393155775767310563348386130360890938768523009628981029265056576054446745645949472921402223727050738465593758973803368785322056500171530092035314944894729203849023725991589180415171652588519700925374391536841216009481818588500643699302360633990096864465481589104233544144270005577718364317142973209807735586045600571907092956524600236656488626186937332630466570372025520162307675537602621850255218026561267092648943303757787784442542012747976277365205726675060984856858187733971255802449021853177006142930003899332142470703544516831856122486728169609148631913411155303848833525589556431467395523617040966660685982081493912948655972467422414354929636106142094021953861612439120195287405526794593936657460358706696713234075438240965187329695268616487954489128798915616437870681667414135166877527215491191593104000809394728639111160969563021929536352828546190201517237633503393774571870944063023753479420810584307472272786444532549772431690652557214757102785934728388121247413463494011007742693365989574794878794622118602765894993462941056960695934284268742809459859446136141520315085102152435156455774167564676701921378733301568810064743259052381668383431699981344829203009942026956043680501778897997347525843546327585851390876687759949954814927881334075187567803999606557167903542779334191939330386788656698111996894850237358499144035802809873135970966001004298959889104986047288702776499564270805774526999637545954005596348753591517087818442220104376288231211186951410475317264780878309744015636385611552686940732171921996561046893619277924031530534395427968701891395706026544275193942101682810186437682729925828996818545288548916814221311967584416782208034482918668971233584392905865394666367215913616866428073483408505931880302823388463824535180743851849242931324576169872083733214458192160572074459735674608952168400285167647913625651099449380157286456322470520182152979753800575712255584125073859505661003729527569846853402051959340154133522587174140437037162076532004121731888763678602683817589426081104711733548500076881094171216997265565237299584485751011514806751587118069902631882676004038161812926417623945489801931268394263575321423500049209336557064243047590101046144728190253398821308131051552885394287427086815737303885343435130411002102310924545148683557765623209955598148395638702516888668579078676279303891681730708142675088222490747978152111544690969004900431963270851662133649781919321835359537391674076616759819926215054902386135260516187546643238327872263989704189110109962217780012952012454459222458665837373414767070121389945894210107812053912495605842929532527334792883507658060746982853789989397021591412457407208089712074033389390450358584076362333957519214275209353952855343641819212945194109748275902285531585347000379284677946747646092358698992637104281420609351007895102974178773749477154531120989900128691681394274243047887326230370851734001857795332691772478299939790847365255805020061958189690568891529889304726766337648800810537130599888679637716972951198380188871778885517137897426344401297984764134448396084156091020454433626415080109030385733121382829385564008409320672767195370706076690492312134742348045472043249896501372718614688531627802073081952405635056185667508204975605510604630910187746028786785960831521781576245389809604344627925255928501481105346419508050780289362383769057124124714756662553752053429967271588790893405065721471326587303012102320948985015439450751303210573127617145081852836897741713565944624213137933760534811068613637664961182920736282744267253349374663879130395290396140276505880982890839100296538187373494457923200012845104286953120752309091353675759442677172181269983984013511617187616166885920273245333894938041372099403064468589369417100030500817078734738256007233154107040384689087411231043927600629572695682678727733607886870918795735686497280683572305959981359505882826151775488600691509222734930428536781702644266354377348501577260111141604823358957088247840851340839344216778184543367658557227822252660716378999607985990902354955132799524208125217158849797395685760773364493370020191156995770558511374005115163164811915238551867581796798685933541118567670261091391816018625108803365075130193871298031146405680057233413917714427266285837960720394865589743976812712245599184975040461768876936984333469607964716246920802277362168679900307903592698037004362837741128171247899390762128203385598018323336738897145170546576191005120991360706352973324038315950915182001210316390765260790083022326003344961720707950093571937529681756162236352319761182658430404913988515198552563675071823393816036034339664982236279572825211214667270408466190050675336820323133620189186824475393343557382116175322006454140346637658583164997957564103285330233236642389184365060747413289088193376623566856956876119250154711586003476169474781013026963526592108639115327008030848400797741842118346565607501034971607879264595696298177334285082781951386220226728840353749615191422641010067258223638069344432264972732145511799906025684276124740191931029766192319238324875811259070796065020035366836620199196868276660497222288886104935549094034069789207520783647969361033928390631145264123318904846943848151393868836085368732810281362588051575991147160852165005783400601015889934282258810955635206281181824502259369578166083501584010306199780808960950963734938709464582934629845454678671103891254885316456663240189116768968687822950562779360683369969922241238927208530029433103712708914474992001787520076945585427189268784227100227623217473961167480245251079147821351160586469604436052412345519982023841618497863744557210913675611327529857067397963002300920659771337624891892619530634072021254099846611626665112319253339874695311682362326654351500065554274930267073890357441108117441973004405460209610022187841804166868660445038448046518501289697249627557286570876649454534368938862175231133251801955644990911405676548648023779310059550396873475809712419170197567387237162124637824918912324753001812351011683559855177500652761687493466981920849658973700488214417386778327768216285101674919984415849746301369994407196735700159967635183791800112216370232668274784539738293964594252720810358394931181698446228825749646852851983435572356188126919662131743674848638059943265544008001313059274807580814019941124363080924997701849980837673813544627353467295551227910324982690254501915497581470981503041527328337908979467868574876083857733275367889636353182017826420089474621830028717539755567149583706939708328055770419486430140951163782313637023258509437258544764994225760635529282778995750926271694509291893885336278042066789940229695263668459952432352687065599793342433507088081305180444234641481847566709657798138334696825565486692385727027260211699765984119002949154940894810558267267455639395618172483177679346144388289991669417962607677154788098010118763555582270702051836933935513245682386644714358960232666134786258151505167043900159976606058072717288425952077843298235564503591429699111987342299356370222236893335381729171065824714229374675896783997458610223212604594460868381145476511965384435872671133274474212128237120052693191740410908396083130277287454390601779013346607434833664516413769202333293316693189427271816619692657225750879124847154305768832932806941731547129144145276473619596805832988001656648716850791254476569642351435568415726434303607056144072474168870004295242860040813557020404680780027807808429071380304551664615582901333745224794621877978654767766377572798438319527843105174819772678671100145412686409400713319847613510622609096955507949446795872534409278852483162476846579267961079985775353842936335855841270194590891401810399057252884321834643035853638296931525187199761793705771209459572643154441747870282767729360850337713315960662464176154594463356185753413177206574898100018148240442369879394942907884186503725679622626512541168187538447480635116314875001662211459289033029084679484640620914118120462751686406854380545916641503395789881832952786432634966268904256019960060158104288926671526497189054602473481016788493858998086156739475987390892365297218225559214959392400544414264534468267180638743555172599048707901758376284552829289253009819948745895021922635378290230800721581570754950138638204236970365463927393542204573438997657597274054769623305608144765318532094513046971637036927928836076281642677207355951981197121063187350902200256410277854134400340622766640323290511219226604190254894938704923809241709519518764355359945106712596849318142992976194457530105209802077316618673271985632043541471898324493530548642432143726165172705197406565213885183271414014950449220102393148541277154747529188708864761672572790944625037551449492598150458985909022038407965287566901753618202918489105535536553896392657462934035976887034166395358862359596695203421348315012723155370520011686552073019372008162186178685140241465086793852561435254929611116803655597461741324406461884951289999734121297177918563405784645948215955483953870334377012889692875391471359452992440367258774679750833486714775414133269561107597942297337941924234733258206394384634905801206327884121327066967154727505047821976325594930595949944530890675895213629737784617124542356285005527738781055559960782792152930741446408176819407726871202520934994413879218208543012134962325013995631918302188585390900133751480285322590899163457056207191330270272666478970025871332932125695417345064443956585180484336396540854301748200062947500911891391273279473047727016461007796685651181285477478151367229541521753789979225879840411900119289427151487465903875759000334777497872013114979969358417031134972826283179726332938393776376051367906288366122214313106987956146430486835778474212737777311744450373643641588353929762468197570165914474696831787432396401140688672821940577939964893421686493421415754318899727240281204232299234326259447083057833874853352119560072258958147865128317520477335327112652956960045163252731591243778513423842756491689481708651979818493804869711958849951449246189425801861229410118602397125082934512934834262123062737220537821329818901419955600607919252305008309921179816496734891245625003719694879628323048562583125417750939593968102526693195753071200383749201870707389049356475504636285445181326226371949978874644142033346301768515986595664485107943572903098073319096127251740311484575150046437384623828194354548946817767544666983818710421388557915702209862676823499973333744320612139707544107642968420328170758222204589375258110922547372281532681169291094616141670693879515634748550181630253172643710452274127047485385506527894537444877644982553419665336985654756344747081723708166960894129488943138134485565094142295183774347109724171024819651967302109440086394756911447143633706998649224885473977030406321220359518503465944739858558240956646684483587287750228108545156181911830833863529941835254043628929498370278507234158970847361810892568856732384317974207729680588125712509000608155880084481299959032586771014916036380826137338717143438699999735570578477308522333097715440403356769382583104126558292768386411901881201889311175149786624254549236646399556337965748594185342207329664524119705898766342410263684533294677805727011168829784067177463836392559619461501806411180958232165648882986698543710857840550658750124295022421053305462202563760622385796221415519091632390387237552078200597080363883631486476437380753645001590060338445634623874674987454859248242589950105885916717893923446957043618919193324850339390482753051766873008931133321140939801235984781177522910270621256019880461085104605275522168071292674103165723337049812312668341310058767251523099537545284419463826043635145875719492556994121548536856274228159391896036718628990070368406603304779344888132539917413560342197121100528554352091600812644323522434328014205079954448812372558921753459581347179793122805990448061141718090319712534903543113137741030212486047811950518301077405117180492921588817210349164738949819293013141827704716022931091576919092772968936645475593826387828160150906675523308005333467704698327833164826117466971715578361218583616258148885250747067560407569747669589674852256509002811512071580403959476147018595381347233281321374555971968332087400213131033806201272731954799971817564538145227353984513465481833283504907940438319916837745372399236724202751816935733085530622681862878416665991142456522797235915258180700008783143352808853990678364058936216525460225778962502476259735586447823553094243906933745275311254146080141769129928727651059011700047868090014390261915790881824445200472877080901800403083311905324076971494254154859313487726242168863154038599067250374052769652633729829645249447833550891852637703693884732745233535553852791602326560102722457608340957094927059907671125684822459460956996691582109060119961853459533264499322867958000666724452945217571839734520417642517710162978361288724847158983541988815353907444589832936511100540829695593256001666088946035489801229279530181250549698010416096516426593722713954362752546147507418460217788781385260886917675438707259887901276562983751507217964110079048504953858368851702517610208379982958156946918808270507351505106812643599627612753070761511220958589366556365711604535471624889819548773751739116286439007500061641140474850873776785707262293197272983366165405293954378220470031701995398722241472660961023625404028220107319831885604657928462642744347683057447981805048453867955629296574184010553205922027426801446287404453516344205549012508273772404215589124767826344907356105584792368936855112956024459248992358027971017619821700506804142513780233186732482262726251582048437361346516745406045646161259595299807937147552139623423578100823695704653283949203385990548980674425288320959315845260454562703188072767366616254961788268261876643531956620724690796276116223041687557584414069786288574553851125228060046580137318712578361817432705371308316413421304730552091641895801387177875926623443231897908463972081837415639277847619333632788270085793013340256904302095007173541093081020146393537513474630671449825718406366999490331288818979681536632097367434128181056716712405639894894519135725604494942037446439635771821892300468613389532766413629556049379843060107603729441230993912275700550593625290413143536318633787594449238930964251853101080577888899169297282000111494384511319322570206229493703485326411766746808745548611006952239222036694745000754021221900367043776279509186740000027188198393134825840290210826332191632967248675298650114236757821641461113190617424967220749767409137278336654402842272149167344167224974806032788723123187858029733031283394523386382760390756481815908416092493478855176856472078207783494433600895060333156175147113837110644683071653723995381498015448764252699120289820428158097347953830486477111843016089671605284744861757075550460142297266339470889367582093684438490946674589403377647874730067999761465637142191307661856164658521670082450497005655649111311125105166260685140346705440285420439272067090674958206887293516497089799265107214557696515769618795485504610293232286124651974601614370387829548253291074094483283931566812245186730665530478907518234180690960602722550760331853789731815964963694386287573828291167059528772225716122803056191071984560711421568988678238407986261173428709304845047049490931365244477581033407948213387407715326579329795630493884640056890671483833685402415357996076869084955039819113122052017461784546463154292152160275363940974842293243483780017937363428698461563422435768008852272881380873586016667235879461546581950241786293096353350041626450348907867498871880613855153529236512258119749684593883671254728322579850677923911273054031048926045771697757955740845709191135064513153387518101658188762117983687202122958186109881189311490803155096915738743254940319626357181864571968855589880664614636314474798757803071467354717914554677236877961761084292198484932749654334261252994672560566616009137023468746411256742622779014042461087678049109351389068453072367693265261825192157058457052881230678736023300607247681388079992549253011794349238767070298502956733342706213637252475229947030172747898139159130298113842682132379444624716089976692625125872315303645643986552606324502987279037852812581065608198128695424689943518666187947804350831658758308888769595274656753411885751526182637319846861222189220912938773175447449172039136820080087725968603545135283105759611770867286728066754347579551487786324309654805007404141873592087677137539270673880235349188649945369322263753630425977026508066258422262349215255280067907867694684031723785869909788060589246870014950977706660234453862126353707137696437043174108913122183351463888554195735285988785813423232338581869863233498773778488421165362781488163064388258155231590213805043957122111682278730580862024154863817619304996652727845608544522540052947960782091802893622055663849744165627288506629129163430191360332900640108364219152005521651941908957112188507907126014606423816253783917286631597223991329288012988688233257670262485246626691579499152679671690178345985905469232183874822758100579282534108004110962021890924756432972215096729813672884504378647479092635665102708481321284872406151594553641741341765856137083446242325251465862334468883069118718379018700687534572838318792068699034702862028631148461960950559638622808628039281328187670138642412597603149768990348323584730929902977333612274355705088604421614908896137190750827794540399496845656930792506245150729611548279155175497549297683110007667484837661748764177954673391492241412716708805154845997969046806697172552072689032395678140187114066544904035106912883442429822053370619476101583202396544255070724415279406983793520332012199777533914694961774049014987825608613343420014306776008555187165910599073802902646922836184204303181658371399048075361602608216217612717463095484762929809680932786276787818874281238765391031348894082986572209535498909517059277759668796588317282150061200760025240512731142860948799126264363845487259063139063518573212104497860181296879955991532634322589786130427360697890429867647589036448397285845959157918664724592158411783229822363569395829779208742319765683924072611462070852588107780729323416225688715109090382903257485180406408264669930371325959842354259432946828810115739223699146736049618515873381479368048733274521234702375044304875800726071555837801509847793590915196255593683782067802031434358273094916535825509854153140724065553185891621400092468122682033966484606680494477772916654599254391795251692010686627541657736340056147641707372208893026363282153324435037281463398042182166601611364593225391361138587689817745828079634473619416663579324227666080602648367700962298291617926609707732419120521327087174067624641512792968785016304986502256230532396074563856516415244720248594358739453295680026740367419591938651093513727908161830325987420713253843675684912139353114977571263956725524860367428438999538945823973586070326524531488542172366065570509274595273537526449655515869267553757219861458707869563643432728735525024573767402301030156627481900421902550922954122715309073885664235255950982291929003923103009122644472692224025655754642088261559681946587973058357555496661799531495264303575923744834263583367560867480410464664811931590843069454080239423371965440761366407181214539315639264739575002212310945364997922688797619511919145467710362094095203849636075965581541833739504136210592310934074384278027809270763253181058496881268053925803598428668224099566590889562582044076037926522281375002607635497852366361437522829224743356190045438850090999958527940322804170224963191494532718328109591605728938389692430722624726044839304129045006586530650563433082559783286735889544668325250708572426389293789883616711907915612326999538436788688382964698244927337376706926751038970264843766376833760378915642107825396118741618094131350510270908408362151460870675767893164910974923797813588116500109310646615580534228709563450111583289348301916252001608637861656093068405253117244740715602309058987227165067591888878329242657681088519263023748474258065517320072129189950303894797949194484727875306522775052651118838846972807140411465892715198746518974318349271348444394284373493025510827512103688643832899881048030065519039596754662827076571961416762083668213345209782616588794200179459929983325104137416851156178213728844177968579929160860728039459781912144991942247222877005584192229840430476412179063667405553622096632969423221868368570282799141067721673579024263624255333051818253761221626242328398642868513049997604129163332307400823243819723519784817273353650826048114920746313258397083548128961138601555717025883970064620818106313850646805463508764338631850700599701586708589089517101963772418896335491285990293974839297858201420654922483258796797153975119907003248227078027681790342921484625795017252492499793951181582101530046596983434442180156462030799270753928686302828073394961517007451136518635335736055261173545342963071853678033452790546714836889385440929453709570043147659570087436164684553018938851521170780767361894104306204809591182356977140682572883271506158975987216923405359139089048938559149396783569286767490306401294557370565765902729541285829219865893751846329734391028279289572630789686525693448021488454139716089857808056497883635564998793850005225785971328447378719665909012140693565025470836728000891208432135705577103237829101246313822931601572419861952837214228828499681456044391138153948594848590628898793228912491854390658256196150511506396053577219396292496324657877237034736167413351952008012831118280920368737183466872040868527026346557262543833808962007615871937056968898055303531034326300263974372687451864118313579007390630163604751800055829076169392276931659384361804355662743779501633179602414993343564017162561614333219887997243273284606132888717273660999047178145747779917879058668160708335859743515185518187468883288393983932583834098918473231826084170475151287274912930578372696610530387749634883754316728349477915064583381382469412270886134850999683211834203542331799702424389420424341925818940393259605960334105096960237315862876084075677066764615016413008867229851393162380446705034565485465972967912636464304691823365422612423073191308260533451265794857067367127511250031210222359101911986107704990780031788082936252030346160783668410730252537042262678991686502621271821761363861997432278187556242590108508110282562941736008032920947741570675149345046343848100760890336481192654496065799342277581623307414377242885032439727437925176937874608503053834573877215598692071053993704578351190733470309656459968317120793079841485681829800150682110736436409859786808995333393175379301355126429392799143294990712127176434800468632851993107260877404615055215283182886198093210228626469828044608963271613300560108364829943782033893070164540241579805586632564700177220476049790630294620719986638361428419607118094630289173391969164959491145131998490277208047971540794734532288979458666494527898430639519820271918023933234296003293533505377406541760002931538206037716576898033057732118391628467616492128226560376087725201181862128308911383025286490441245691867447429754309720522304561583593546017373937566607972251781075432517504821051175479588796226874842418418370697116655750928020148403487908161402846144620793792919028183557471899086731124369375004710413218631848526193446097986661624657893470829166967916474909927735728144247185334586412874547596379311187480920540876713458277738185821428938883654034881572431696062833607173961132715483951568138190972513503938713515623886873974703960190091716847891189772940986510259539504376640090553280913044635828760849070921680568119828993873193607391326904035907652315000560871333780730316560903141670795053232276738433513990458420349609418388216467144414312957485418655204967850252010384813387454625806981124940518828093836648538711769376773446917050036035667412734099687331144475455303922112412796863490140676256754934244219636663459350084989355558038555460516562991549789412455082689751981159517595029870583238268116537749295390618996260817958648594738936991228415219279337120558573364570444598653722199245017492219731468071561107566897702115031938976206711386963216734457435213138288303591855772623763721837843819865370885947553909464848257040498888549053744388058540949865164503642775811988159761157793460638949040473518687467792948598178167327451911087351385514224988399699739329212453817844693115230660353728420202169627422433776178875063380797469439685543220591362680133346553803669334554697771126601899246339622724526881733861742712712075890119695505985042961103982924074792721545720367445773888302205679973471216756643273209900541345482479245811407932867979927705052181343365805175964049202965570484452370820998035293966774392926468483864237838973596439060084291503815715213030043171724385665133832154518487650369206466104887099477459087412942062706549438641420879366772872456526415299594442777720645596093712981611084660526808699345505229482468885986057272496907194206740456358052222165578174666688183378958075007594073088924861115052531756064717149802381962714996951350593581375234475978020779900759709182377324569603223902404650571348107131484430229310851655857678478953733118517722957995352571468177577575543773643690571673384592703761573167822503317428603982069811641847433357692789152314770784840015841696121056287675389981355354608964465254962561246992914516988153130841722346422822607170376991939501914344847757717218832931751818241800866200040638679316833146134454483302718757746706230898969736662065509410344848133550854998627719716422869452144724201279286169890832270967241073013571020380835766384183599942475192075597327744226031976620607095558868378682969839965240627053120474012524194228818645912841601661382647538986171240598916664320274057171712573164187364998835447490041527876977286487152118787436534765522354355704229103915900465902038928625454767537302124076801313497238952529770960080767777232600188307893340998921745848619421174827831182814101877823355702589025684066947334269110790210673474679534514810320726086746919030227369519879660203466357177985204738871193362155806856637131201955650494371910234560505608935840481428229954504933137074863957479254723081424886563671203596416722788465337805163034056607573278485686076025691220717310267665703277218068024132935016554795117353004807515569294069019715043426182230060478302634417111720932137998005163563614018233645663311938106682844813092090650305078575514825423572560203084589512486166759391033122466134361688136186209189336889091224183301215409345779251175544006363413026458577006434828261338096037707650548495598871639163267788387736416337733161445013620511546515961772584546180536139305546136240084441257681558838920538400731133202276440603822875025423587402842951168160403756548489129149805922541549711967556860016631068018946055488319894341017526195454553980175603566031346903642169643915699148946692906513943443508982122619184706618843979662328322784779452337108195369659827930117422634046167039309627400785051760537143787204794650736149119022649389107071953331946205374659920483304728900583510033438123341268071339662281809275190716599740879068643660216262978374260669160083294883779587834058986399186142875905109445452438512270779263976535719019387877844290516939624952045670861336217021322976490967376618262911239641642783760983959565316080667602752343628809440789009211698009667171731903534577191178905595593944479769449903479789653291121107962023092410759406562396836625669559944570954035777207402515761189369444174514756132712344088578420798462869623519428829505739465528802801162414012461950527180792825022386596453558662932086698453105791072321645547653464202220244007260093733759292983097341563407708591665379398605419058963070205626228330907681310573221968980686643395380773764767785578667530958698424196433501503366434975996680843256602894251899037114457065153516668943558787796510131586110829811415739992896841151165773333656409693484524338199813182784181676625166194732839510786305409475830730033731199481285125198344621477957953660138967236219319625882537188570709057799919283355168431619936550691927055133991138878633821233501604279109527454810886080973915597686677269776859906561385654413428997906060011801556345069215195577839170132892225286950402600129001780739846696166758403096880659079547913344396498778495430144731009819703107321031643869615494837628491593953668385608640828592064775248625947116290376134903450953039257932594481754158232159691908458842844174511618392504484714122775713524497530809171476795625854773406706238480639058876120207613548975331386494519187622654809840017044781498048849018750362822718398251918809159890220360237065501282751162982009367361744245240785982096991666870317758546672580085734860314336597748834413883215865365100139357088299539367088066810596113973799366898177669655685324073822947198354164922183005360631350582801429796506205069624503832542218296561249988699292837768110049175286316982248981353449037549515922900513676533835965016028737887998448825444570439292768306971511774454984313320879985170866359574355538867576288550234142023864706410827632351734017907420070050495701619215413725170831809930792178055449456516086081062865073735107222664776822360149037524720992015169526454376830242690408810977294220570803371424719200825656529871148714778590605506744793867818380736028913539149461758176680507645707729193512527965835999234584190875191845565594696578040801712083711517858476219584521849494070858671366664610216943488775383011685050405974969392067177564039531234346732645717566201579010130774208440383749680146843566659010614752274646887188401683564930377117514933457594285684877945930481135765040592099939444618168529894289850328921353889252432107989904953853925722938679201486144137692324098177552277446574481083883082008790060929857185678470696189699459964068617933432822829686312455984052312256331248644216709426564406527677357591597804821912052476446407178576961019093272356161464892864620846324773392343767512549212771919961257766507805938705153183307575595844195207828188136396552849305490063954442926483573344997255019102456546880751234669221281705679477866546994899961382025387748154880280635083140885089734154946697257243413270465585808350498369721156803677633948365614611275494858337902462018531843466947549765007944364518554952841219031341734829156358013342673469392036820986151077313120095148294052403044261628428091605546170018306828416760480487706699466051184633649240397318415649341582528393327314256421091978925125893768013283115709836948914046195400528347669894029957208978083648145189463497627782269176845752437623376224598006003995373673236247813967929316853898959157553723799951458584190819144115316174612283091280975494343463656210718169329222662848554859729467424108222120871356333795169127278301996723589582249328531050180423842162629634728444078512798132016244730881948432331064952834841447532219833240006780483953188694600796197289234497611856725068607077739762923743436388682394602670036942476352641661716505530009770960014913522172895163513960943768157159700545255943654967261136236125824427197590787979765876237499698278283951149350828617130233693317048997023748065592240700036120833542471431593706131383598919684257866070320461078789145997045254865554246129742250612503285660098381132882582648823360214634077174410331459717766142728256104343267536485422878582109919925006789206211726655647384955037625271159239451876493863584676162904520571160350632550385034194797046096312213648468295850154943271976548352175324628516378059034249987183922691144172616838459289515864292922474384494446299046558744863409081607015438912405243473143109009166386190847659676270139854934485139376856980037007273240027892214810437245241783888586299549638744658438592328152972532128997174902840918392805528636325094639905065719369963163389372917724678953639787349359100257884310792757773266668196032254285824243161517071161292309707422077882394474223691211249546720408201238864279664828389677107782498173213001169604993910893129340915188987029576103476497226222268322480061725137859075246637097509586268739182278270990328724547463395763273292917155404873470446093133185004418635388326341226261949412494801598330326719220226741935451026656148182829828373025379249656594356370268034979591564997788266469288205648730857301106015507877761382882606067270092533171229005806674099370363948373647747771885490718994137410549735265847287679949057053939046643704004130084323460252836599858244410948488321233500974222027389291314778677663761305685013221912112087745948602539597612796522735593447700004796618793572067341219499287518236381752052168299005253386390813107939383857922690682482774307645889070207784312738093366122844837967629134873928962758605115555287044051298138966535268459513273745783219160270056126905348372783743384278772316744325401469147596070779438097393922896489640852496183375254373322078889264243886827847600350297335786500234458909025868829975875314914969440231252492335244126422127327494324881888778591366172417657742823996751853625185581398965331917923817357036299347720678786835676737982883319865709527069408672798745476136668455154353438424550571690898126560274840388051859306895313149857325145410856282660724388507887267027888550727556456641299539793802310322755296936903385745729686909348472436105866500668311582972553297719473051865229958276151986838637762718579789192543632769537983475474896087120584219218927739893589974078212865177842989460285353592067136631259152912315121712265434321313599577932751827633047306086460706832618215386398243748353109836056270431222031062549241492404215285476973231472907681824058270830888565175736323365910018089197697785579540385858885235640840131912280103644001416137737901588190216246322775787455323248540038974101122673529267905696717582494746830027776040318540680263696857368453663372465943753159561971044780705736926644065846703117677119687842149682534836786723090931998592366140864046555775265580351381586676575567385931953961299072543016990373195820945240869333465893217035513244092462609608165300061976089943720175095846787721006546919960155016096360349365938438975223734755713766313583197478599745050431153765395025403144355025482041027173238548264614276453183344945695481209033816265769644489203673243448749149388420850520723487489784272311439789494293991789886040256355406209605608218489586087263980716138996066236973567243943755911620036328446333038402705280651894050645673406903716015481736051241614255712537209524064129090457936485345570535381173046462848987127136739979308519675145196583919403845510233445436821897098684329281407588784573049340113462935588882612393785393026410202649446208360277914832615747948098461349411918574764712634056545371176149287273079556649614060463755937326957286918752848656033329594118466386953120449717153994775900939052892976203485487340378989783220000113958933800163703193042206060664967099652289537636772303911947264647052392769072398669017311579564815443891822713293194464055704610550220300344792911512343226812815400529019937356258648921097367936711216752994422377757351499888130925759464653818585947169697312264403023800106035644283551951343196324298133003465625143585915602790866640363622941119323950183552117316550321558050852920006788022589558927574266800583076376173103422511251461890921643719323681466330162481493512705620135794115298475298954382204770105682278883523277289445368878377501662180211199432469818120634562467897974568560563976258302271215812310331549966920427399853147670033426219589261040635896648709870696457033304940967577676375720383406643301300230448857505455003929556182114634364108300423857538640338777367722901413956038831730971029727252570847599420787034675362627582537174499889612482418805054521435118649755730431657056657413751720113137383263259596005796249707903535923915367852699557084701576505985008976893114742036473536127521960545011313096908386808797707312967931171626758399363960931623130297620995728562414161372758186745806055346114134694037516893663081166885422195355191114299837010576561466029048923359737510987671569809128383194255170275776244579887935429079472197401064779489932148974342082099339661782871987060740920811397111078683765862392580123054531608652169273579333529927094507573574633756919035404692564316724051569973711030399576203379648947995819415999012608041440566510956591119095151674491896078349790668025530356019568724849110804343366322681052171544551799365662990657422363203018429348611930419985461364169071213854211177254981742949685362664058579706853081623060213902937708509310857371028371498903731504021611741860631293824287859705187780804194719299742639322451842549051411437165205276128259372615030064229148339879657136853552645261003894276866636830840363995175315600376954128642068194958445096615580211466138435954117840720370382790106182363357190230050479377584178957120447046825433271138610980961343387208813613718430509984536843497531987840550646549703212416693726776905786079237558682493593329117958340053374452862885623876093604887248334553694059467884530207447494872466055917436837009151911236372331024543347129133853611131087659150489372890258272271609092031922656103469436187677421808477110896498104537444668700664884693319323436815549707825142663221413202835235622056256241281829450266656669325770570777142705535354093694975432815272100752317895537879050887894345024743733527584684440912439584446966677090860425368635504628527351868113216364037204619309751158379699497444108279913896871347904063581681210501066067651702287243778036666906075574336852895733439521256192858970872051281345775701504458466044380781191276280876012020234766466068034115966095217111699391596343502251128892796391134150085977539368195639459557812105283703366506654229176004045178058193198165906691599602751072649084939926587655932070898565252371410579299147122818884780112722120261529340658371588285924440108327502298391125034295134761436940293385302072717846344125082548267848763223638720396822916363264936779407404718607300047534791801997708510819315884670626630260123581574968624370666283608029855474009226186649331499222539309042476379933912428720679666024070877926608065144361947110481124610054060963738033873654546793431591875557863473293278031830578557219626756141645632290819193346657035451283700205775833878999151374462477016631974738891018060172369336184889016155895966851071527570411743435882918717865655218448270944551453715068684645622138858181944865028186114831640273203857720059178389817290911949804332679765354273314899499685913167968796887956793373591771677383963218662541686488466577116303915786609050513443476229388149207309365450260736202095205774850968944865667391850395076650738129476246928633093169371320198470058396289591581241225467056763577714168245653582334288978296412147212868930503599388725144658611683098317669830847762708721461632328697114118576254476449703088566055853439165804481323026726840827019923653879264316226320806276456201994194004758790187337969580232754066245814128971251676475403763139391318798006732069165543488257102940122614278011822255313943546747022713399467648982912093069464877029734496052864909576706093661726963439237456895197000577345818929272305083879249288586588476133130988344919671502234445814361501798784212862924321117624147666115402548975726158985054793546813786212710734115595243661152694063570213370132788758234528100170936371205213510728028275387591098213043062280513258873285898217330447689958760408033455860960097439282172401730701958001310833837136134652546884493079432909095399080108103715945446541531747807965340012185753941141861760960444280475899649998558379183629856703749758767469457935034767861314733768784069420196248688909732965703042142330159465377033845493005917122186239353134951104521397729199806352664931453307528340302294006125736866433657265462228795474822770886535478475663689458391558328779416762905133504092237620062918867324484703900885135467110425810768104205189951579043905373582372182569291267355265610143540465145666518910006814836741180182659615617260874368786523121077080792869870109976003544776374246365571992295802431319391256826721186106739174308269514418833876028576027369180967565800602659424436397128507743744098599363981997686624487300507199549447057318763207740692173163376468947625607629232271909999731800319936327824535519175384324595986507750586043768753209476960899677101340235890285179596085021424253314541294521791730850836721620859448107878579872661836782574377803653130992531463732709420214429314083127389767323947665479742155893285572947196458355717002263318138802995071607987324341307359959070278275247632242942126365718995399369292860467456535601690342676422926985235922362637768950621627515517457129029214335174904929347367747513564225418252681732999643554033390090993678140709180142402312510512943832802859593073327911373520419228273018585880677086713817231845467595778926903771516172521699887506973761843099860491748584050579464848262827665266165942320516330920937678772673180366168973804316460748273758968767151013577559471763961760973455349990974052068209910606845879976604781587171955578759621523479099627676637596050264635885060574383805791173378279114050800733638410102443239596693665621152998002877805463795690088349963807091152034959463941873404058779689386644125047577639151217651778869904995243714382060305306122222407453326941530326735470381775224410241960995518091623797409419879591733423561749830154687982419804598394812089105101698680457292818231884746722721292359267402597056594325152419262276075325661586736143295467335137329294539888339861797518413088581553284946218058271709509895778664613690864452661096587777165779828664585035682957632745767836131068658691033638617125722373897433291772564013398436995998698314001609070712747698771587973256984774218687191644260057868742660948440255654755726920972990321377656844997152608678725767025594267602981502653504107957386214883595633175114935387423904868556591631344139441831358881322706014572366376581784628437563258057014918382013053568619040235218053826601362127645705578267710082566541278420035120428145766491990087503162883799082158960043725219281813983824467799493600303966473378686114477682104677183638568466532101771900979022385946751855142746768728279748217314652987431085292820430999041157618105643929627432697076694315359500767947029071829531796320272901378891935380629949591515373362593523728759569344510480169095214953620545875755099035479343714556319515449833398594405212006505876363951762793237350156166448979850803157872606322334836117020354084404517665123198239223350262615919988416631119513038608273857626023646073796263517249475464408294765019591760824807258681852194863431503000286243359035317152452073204994899512577521360836118473901617677347298263308510088856909484733727198393030896833485763923748813492769444674414685925165972641349816922805347838512339486017402360959475293439319925314574664389073092472108603253179095401267141931387589954275256513045333460590969886494152497610551570464352631699280556281594246195028110549040164099071288398998405959207377461990425102143120014340219422720560576192594949046528627522915098890524415688320426456984267597817647019437129623560751639072137865570772630500952836106617585644262101780545383367435788244029847989245593531725935610620280570690687374633777297928957825831264995429515054645825706647402321224320173445562444439208830204499645050464371769610618443576722863602499582628123848309639761452232740273995972214488872268215927427166914432868113288455304165712577762085959416729038537080155601675129211698432273223255880007409566584118334109957435668048332446387988779126826979726663030044085080643080423785622710910129978655371025715378369659106993060562445086788867298059353680501738796988096536097048777526832275627611868920459259862596048684769249985798963382885324032035503184257219455259465066123796272893398776621395097530007541412700506885085334364951039526451184649597651610729196982631328862295485582193788810800126665083364010419697984320028796650643672665237201974180533255401222051688978150601954786792599390706813029647560863401448213759467830284564575183875787707782131708868665685835759539770739746658396636870626239517441362855453257508338445607613529270826467580968125356877858105461344396734890610219071428800831070001833537969662559741765862193159467339156902746551548904171018685973705985878753846090110616674949154311606260021305731564008574126672226446145994474987834157021545198372200961675369193808270727038007454908810004838381062754138929243502520532649268993127760776938287145946423433652599765251319402575422906850854428869762188696862047140859315401437821707472155429473031708094029701175910052968603340691701376907408288367031557706178569117300609349003130299423117182509774267062818551120121792662496185735472570853284160935900784503732750075858186485117430021338798901806923956875819778010815402581164187978905214509289746126379768219130588846672287729450170785839106479328266244029082892725432376094634635416190105401242935321132410486414976135162473871324410500150610891670849235328952630950284279225035052788484280894228479858562214088522347742299165025010549789042237260833159472147341988192045376350134496229275362569983207905722760994036008129846929655017586662661541944927848969288601769432091727083614761568014473725008213725786074917236163174386541540186147688406703417762125380493303916479048499807948735735750268840629878803555419133658588689540428893185254845331630119986948505705310891013272102218789865680534892469911481178305341440600148888431287785982293263650220595498882452625221957277080081974732508793954160003378122095817460394605621642241354187745132554069206112580563961672360851489918963220624527282751283317172916009087565998246260069134126215562259833383062212411770237378406558954252853361913830312426733593967771243573730322514627306234705281315576282154826267332708726945702901252682331402617348528919027509888741362954421092685785704695786250597744033442408074947774473162483827740983913106889818795197163420135544041775822580482038459615077665563076597757302407422220921711564581641576990859475566865993310868778928589236827939611305016472128201390944682725288342890526491845265103969615286419958606843345747063728263635397332342729810088117310099043785124713349042348843790738472579074174349761348951279151939150583751269902396936484383660071519398226642774364026090850454783598776279199151912175908845414191685472411011133243079835057617317570550210119603397748574031732327166640736575439743454184625905795120406056202590344758996296314513645665753725235640169456199339480454960499850361183589521552438039765184140998804748438697936540938197508644731016076911177053495834325496906156506662247197990854273315112598640256203226993192466517403522941950558359498256949753341616129729613565088179588474564368438344825987234877118050617187445332376986800594818608584133847792026552927669389715686160814653865497660034900810353943045469332875794952211415657189818064287178986077298271396511761562907436286694975350040047664011702933614924854477708754332958503937929443005263851984588415867322125317093316995719022876394003593311402937171862311712117940220612702534470632350347760348003398628066533365989647357327757489012302390436301655062784082047250153816058022060823289094227197649834059882253549979242765141288606749784313353255971709964502500227621050453880478117789293051953529844321340084676180836726339612761086600533581459602417283698373846162934374285923858895607382152526937406250147009537923620332350269100339300125763379516181214942915983135226705670710864132784043124113874278404193821346712362195019509518691355671147210919935935919941533210621143457430954370016289557342087156517324101705340178474367307009331052033614327431038001567534361598013748586044210483746695808920380095760918680295210396132407046477684621556024884385970146567352955643994521071364391906482745247131089474225102604660642886701787992443784784583822240284520703923360084636829203657971013243275806321085829043957810536960784688067625857238924880014553362796737809442532153704238993852202295478459307336671028278704388684623158070487678966175316531425658434554987946817272329702307804467993689393206872841335731974751660962528584006712179147443830450568305142393987929913872599179257131547039171500908669847940353614149874472466316671462686569127028714741669697888551835125180872251253017628037912828888008073048330711103300717322274174891117292589047301972973984630340532518119467241712401880274473772889180131992992301010027453122507291227086595141560630303696459853942580129000931298260950962960617680219088269571509245037301600332011965419127241447673618989495647637508678467413275842886866190633403434757783768970828552607474290289360672969657849823667375300476575492431713541272336079394205426352150603704167260424522477645579543929200256183093823872527161564228330826500131652348141486694768199537338056388424965085379682811829340331461311948045634615451239098853999695985661772750012121053751428435002305459872737513048561135235844328503415497116265238749650352051378715639726088930544608606890535302806852747747416383803583906513889060846413593471292441166712381530164102023197265236779523874921692549118716866465850199665724578525915474364529790210242486827623068610706596433626679041132845405801629188693749496702224190352767564900213086772539911869246332420293632758463283123696830059788203594750720871791694237356535668777667571217919520822537323185344614675422017652790784034949456674300813186555954680408447929970598061343593528918122391160345118520228963235436610752637572801181216284723928900190537200753236357836588457739320576311366678126690490044613371418440487571166708767172564671098969967733027005513920301509357852652130376801478628176629376281900183225151347632040020203443445604635949364619176562865780749975598918894609888903337685716031562325453568985061918877183379139333635318098369103516644856422695968655451436183028138150156531095226727483032480120179537100748050465990234399262247504998338252075438702862736682836876004773474767442152521946014084188577823390516901262642852101703439510701621098242829222372176611320741342238796543271921753078793453215787075343983682408171115370326637554387039529629572733219241398566282497466601191478995558783782914737042103897868088056257228715847485237087957933126429636586044642230664318256864829634990919409361576471725574737716084458377930832975655111939769781062860568173218783192510086971799369436415615474622699751438634945837120807557747702700692194353188522853234527857931405797784883262148939066700500449921515064280790226162867466349012719398899305327111913659508579172331254906867998251526194877736976063860953186839954653104177066677958661972234242087266582779788626661593660270788678499176068127524382995695232677114981905838927759075718176221793937045133322950686602893926694357793283274220666371197693505945060356558085069315069973088047102545989024968146549213891448184942176090326912880554049965764012019374939494731456827076035827967989213416733488285463753308638287290736392540637912797634709881202637654005117752767308921830105281025187676706239657294978836941288752824503697070547269547498649939762560212139048999690268630725031977153272878226191402284384534778411005423673587288558856718643775099509645405525222331009983357903466816893947905581188758904133857847731362546878719762021197700304724040697302735876402979398799808081524247656685341983619562313660263794187327598504343258762680876874556711240147046815150738607270066440498969684685212200759788115638296613155987178270378870700887107624308361120554804541340012725835051475574872070921500779993954815116740090489684370366903136825270438935150981448740962910022725551566191875951299072283569659331907657686239743589044192251086060905838700021391493175733769298613500941745962660738960116272217386237567637758026508685515372198139044473967395957456537462520481095414529751504262315744875892488698335588983021841869418986047420962052827407230064291379270940502011903006507377799770549932661396336469833433966629274094876449735622137763347273311001928630435353344856824811081021688536579383451388980633248626627831918741317247051418652547573420900220043846087189869955102541089400345074139066851085774135832280305629642634258694339668487384993914012704696972667642651788236194108086899477099788046111673989267927653580518569202992582861120081105772180413568170792570770494818567998662108720693851740012188796207795074778151077597354474007931333281531373168706085135338169063028457140021134445418024661692123580711028577455017245285691803500046170487491375883517023259377090644101597046521581920512074029794840956088336522760207895270990636898101935494584131387718158961521268366163651057287477401470611932895879249789202769299096018633643653969463656914078512229620413358550055155713632979631089604264619148578772817558974934069978956209464901086822480151675530108451492175854899760966468947074259762996084294250161612876441980157255425993009906377889508423229697402727369283649256808387630686237866521426763471069078850797084991743009867891978528624259366418832458098105670759405711086928298013890393353098778989700625201814057313912468517782418212072078656662352376739602490866306007975084760906691480115824435634885927101255940237937261203226363145444997698397834501756933020754179591821431847161263366939286178543999268624156475907353901848198397885469064590188447078569854996554898252042102126782939913421772490725908960781007017075625068094947348357743066311836532640047125390380799271713658011169491680880655043980674963315740619036418135457356699015255194496876401740130575560022149936598508290684144682424834751544287679121463659081747555494970868841421082434538214595406497991306290709349984601557291299982032610566739377419106339857169567176861912672100328993560747896261124071814422879166669734340947028222250788036968612101788581184250442712144224818467705876816487720265411119754574177617918555603529047803848833109312394721428956617958006073195895451477731508898563579703034779010495518284149987557269308359466532315523958548296008070058309064965310806776554417593483051462364341008242362065130875460668656391055144736347881495872209912363663110187850421559725427439843332794093883866215889028734947382633044090921558711950892951903866568001112831685392518777347280426243905539246850191673985141318705479621698178260124716573625778707169900696660272436980206231527729633365098275814716960112763404407090908765793889135463492980918025059788621690527532709202051614308782329147042740573607184350349778357205259107188431489938407773219243651949724069484932359420710076614789738258957758848761278835152611809518609923240134611970347020979146635971703768010900680222912607407547600710479126697841031420212080272694073508985984569377565932188725351416972050508494021026832581074672373697385675569563895583144320759309467088925856988100515253994753936215806459146649356109915870430220787427631897783268351422308500047640134984749765527687991678863890761724209881811142895170919205890688764369785225742656890013871439225052678474030315420333707688618157367775138107883142067272349384243909284421756774869344095362567297355979870339228048160595479410083575451076150880083673013399588123401568902430482357208483664349782267472958029456550196089533646345145423381726703069970972488838111909045974005354265764354245638439040211348478782520709298878028176707255580490741453365217187592925261652314186466596223114805585927809835331637544817375721353973842466482329551111001627619239761040311049874291588557875195705395823035356461289656851935422244757801062404383131097209086943691511909080664803339163487390431109204761063834375678327297216060389399543747535632967748412527998468477441668619517643122342057507112967725599047915609761966302029621942179516526947108285419603749209400321210057358666669078959510564403094163613783004714446457723082437023141785980126982723311565177438700822942127698137475397629332567395836041746519629672751937407727015261967555773262820227956281633497830548061244224601755325807148273032340220109611814010248825434506045501347609135400994782763673189765617756393440183762905653023836939946972008168323115815673857898469428425936247504536637046341672820588902122660998451791575109931374711991553097046507688694737303106505416789352000216867884034550270079612778474768060802342891551883702276041987106033939032936110479773058532630290747175516023801131159493158018439437228465461629865630221927708239345171674806411880085266832631503545154945242082291892161414213540499211384575851300341395611637444545615079292709588374175422669655940459201781829202909620188870603647640017880604662633973985945715686366290294678504208948775580667034630622141244983435260467271263681611037114015110202130792352400774033076373966814677041797067331963642087680877237885389352889547357976303395724314955909700499589694231477317746204051381813097160622510527430309252504922865256418761725873748472976523787846375897267511621891561651667038329368376812549354729373693070486338574061908894647521119947640039450843568402416172428167275477609055731369831371626359263683495223589364782994613504008007107839997869405891986930020248618020088982413731494858885707729816665933293577790569059213905689748091081392165240264606709326762545374372651158363552935020959050038652142085010971808283673796808862969996850334388820478197135667666588531633082367488456757555594109405663847459057140046435063604776542156304745093804710323919613998472608558569891914312335827357624750774654422958754608010453540191344755223275752177872323481216924095148038945780793696921770460986408026124271639570844741064194873530064521048337519560696833827418824581693697607798689028378961378820743203955200016850290688781913495089391087896620581307564289042701569058260978846619421769127959124310737369345303820834856803373874973749613533400536679014733213061056486943951459930770845915830430633279325131446114869652166696210906976301804604360554019837528704852024343595762021610375955514379557658115670118261243069064191902159881655203278569281003846313384866858560597750023668444587399954327259656014530442023998254363286702163425860570262936633872010870559144924673172050875617985948808230086348110172330967681125076523345586246807547970963817676088936986075570572270770266062154993617031531079947219409450366309665200674299753610601253707542991154626218904018560498964245479450897804814048665445346660235514961601938953955699358480250771243474515128132870067792837295762472429258104493506054452101920209710018005627243539605433035189298366527307487915941996913799320019934210354600124349639554457055378424172888993485045284467791576997512666460297450450628614570501477017769452763291825837895341113645210607475373980248597176916464829125243032273435938987463186046656598940691850142450097566047756983014799993685361780983580053974785319488540330808273785887900573611039529552049777000956590040845810568865985379075540796737313416007647929404094685968702700722612273154129473110195744283964385984278156893733575903422424185287226643464285655729623374304156626926457350355807954465298847588241237685293633796787301007690255155696619621313797535304339429405405890669582269492647435832380154650432093303045173423253652328404385745853925375618653690973088238185927009565237151039608983190509165952426432223580445217037075608987402024086121252054050376022274576238716783601012995664834298933596921219773196317302556380098095148818041845388863758019006512901327471569517699818604680290926361362313031594208592475152396312159130380903315069867144129266173792619570685440410986334722942554005568343394642652203009355580924352243724010287264142752806080335497641656011179325736045387312409530783318712136240347352654277868762654376981021209442647146452796765472772862831103510505683164386759501363253131932704193962140783158722847051583395486028866733791890678536684922269418665576493393390730863174041305637005541676157523836468598928775928775648179492583079287312054310598395138768692725224611029085339147905626915800859858556800412635747506413628835531557761349329999975337582549130779745037818345299098001758144759030708665173693568937415539660329435134061613125723633758790179575887501861448067915094186247854331841388367467426613342530298672632234169430827263770759131313102952990295780421647182661166704859550847820550280444710269985129525822749698845160499904996929753802140379596955450905909667068876619966397086153254657189663779723459314135570267900706956701434561024745175580147208173712943581279790421331541629298204120939198053464995484597074434533195524627840029008277635577037791302428967544487112106022269438307285944331284618341006714704862215113713198191910820039621008308792276890896946512063033316303037605742678732946809034255445785918147311070006888787945185161751153890157493621288162372118853958834199571390396839068338469159335055668367387063209825460365457888865506459437498791504157372078666463065239525619528168551773342618097895843642426829031385733480463636612515792659281892449409188209470983211705137098969914339605365253081646145027817973173378755068575350633878446037626137496571415271852824356616480992164870150479957913206003261305126967594258467882388123882864641151541399260517504160376747009397829202254230530733157439371619419107132114698064234665271693676354052490535289214536364533637074050245293997003621345514228396778823039155675013920784453077942285585277138585669220797770919023600540791436129097544479278574115601604990156157123027935574453401057329065305045519569531476501478990590797424046518522557890062359312015823331611161432565681857365210127100972784015307205959257189711179829598376610312705473617816667781349197477058413470732760279306350932914917040539685315539382556258311320181618520677858270746681358782395998652998476917544393441110436954120328118728118162289797027187496990608493411301817413453450432438047002237078375752176915506223159709791023824875527125947333597848629897116278980995627212304354493765227365410349115254788474289587063923827417916952203315612185556203643298305177227067894044374614205033564918336533409444922566105408301566457750834827392496671893385427462424577926554160405633351231084003247195649922660487894332727721836339902532609574886113899407871118046134047851916630926463108733068412910449567057381622712917948409734457677115930991484416502716376599476601782083229201494112104866447942709546531192891100244299786625559878432297691216894770522334203922989272738992577817313624037699401420049797282116943523637373440501637754536031718266297668467427290886076559220855554657078126591340621961856001534340947227101619911321714913177690230896439108072919679159921542283473748136576524665080570293536316216266025269486101491687467609174477359629016099500077953694303603643980789337713513162800137355009874987208739611343136649793430668743088098578993284731944805663333573917641485095706285542278719343710170630768153349120490592039803744410204467680936053160582039995366049555911143983459578355678388175045374956698824681138996386033506693551212503171716771640649441587846674998449334778063710839470554791532008080726251172528312246238574363062123638230597462065441347948999818404258483169126987622798527496406266394571604936000322314818991084348426822442313415433758392724300554620744375406189744234218393687419109241906460577326158866545985951542127722499654860628828772563549899969456677939893551856832714457460129083409527680230560125286558487394590076465958913111337930056287511937443350512949457337645969163785401486257835360628934682444694168612014484303407066730670679018977692239624161196255563862055606449240989626550394567079374772666622329650101744866174890985968108255833480538848539378915090475323958051286138070493897607869219856650835367010901831912327470940110328354194534674155891557120940507683402705100457520018164653907106452205138661670687801923034611513417796055510922661017943177543499288157565471476587126579104325879863740529470455041578907351182679025244695475670403041314970584821381202119399861602366281108857674602690313648040163206483875961140342049273838856315346137669899177519040063502888898549303233187289110093604078070020309094110552206483684525588080368288801333188902989270857381831614348876050366304719221421957489609555157917313516697736394939092254638451393771273182473863233318041412428168599850232662899135239307379384076823445126072648318332670234988622275549588298940949162823041853167484009843593868923706218594850661221450537318102722494124186172915829613790583012337122677935259049044664822368045689284548629738405732587907404460795637686734876393050184145889041342318841254591192347269738901586185751804888674819513932308850207395657403651909490825465118914798848002655959121022387775338268232662338790059620332626843361923164225452781677622508739807142343530627593206096197298202860000979127865443355025796552819059950348829631691238116974949322326309839324066398248221368859127777642629405572718519417170467482577264231601466885340712216890909944169202111734946221246275045047513760998330191327353724790021680683800610925035363879306537800916595395584170063818456199033678850081460463001488941821550790825194467133579450076094899569392133368209721858414520254002064442566302267635856465832445673514325183957579101438221974067186100564684102307980411870332204307601068629635937604831241681043059317214615167612036725733270654705922397858694553455931129416288989157565244659141414419049289614366901350144798406410965265580742505690705034111198857389363148807071108399385376741329315815980737341972256024978274128088448160288019562576389907563208767962606191145865181756125673257829524309675172189419560027412096427693184811081160942243963556019578733908784773726454351361952865800849636191389377627208820933110741302587913100770653479496293069968200463450726791029069227819818219756144193268667954919752380983224013369134902562445692696297721335266167343781504769480919756111813570073162688975922970213968836843345733134518106998384124492477303131975191139315718850898272023738719371584817529786875274767730938112056106199223278057720449391262750216836738348809589898588769055815471270043404370764143765780272108651439989736621583980108017159108258535052660625710537037336192373845106873451400663011628280474180687272170958824512979964370757738696156619449507308252764525540694361342297959847586450431591272525855564923196386139014878799541963378399057539333670299726752366154053569840953026340206288863088065194286176610444163201644392637980753117452278928630201621800017236174385159747185495199163853248346842881643164178490505401139615680613210587034742143960910476641062565737172822817019137576137452232780948358158558471514230878407754622121155116610579430887821970693771588501199626760253324824088648248229730304253258067682364335710588715809656244655403871298432569544796619381678598438818768060407300708677042595658265907504867044925844028676485280178463277663439214397358141576953535461789288212029736940244542892431626526201145434402487825939917237983005216461970524732228214707397344042835952868429097739172804463763510179222738020127913246086426266939729944543282098870120847024772947074053296653774565803596011092916708274242981133951147587549744455845282871951870657735665742266061907141860067776526922878009534903255735959848796856516289665411742682434193137217947995266770411845493970476849371118674555473990947550231261982756596411512651576832634557989829647141999282408757199508132809969699467853205333611946429500497642891604235410780045885240877482355990377669115975230688879076404656229767993298869352039756918923596124224392212493266921669190386942194793563008568298735885250270776506902985610323279328509206125580679477640300572264302180685225393689949468727007133968030346940420656736032949668509698189598157740806831974270354242992872603902301319131759091257452863202063970584803480037984520797712848740169591852011142770137842379534807064812772487660087312171648894172760396351688932685604139229034615622099786706242044190768298702292326332281269797036828162566411301490694569415748700504673431615497451777942781615161726660021576251144225597964342428598025711710741343229643896678565137070128707399258002308797933250985844946288690652005067693526162358536880292105929451537061251513913079232461824205586293799841348322458562333259526511575061708844845423994847003353901306522276081312048533959563588257734573663420062462620616803349718244295880132477512260394315867071021548255787260819281363969098662991491692240411445902275605601607993852863052889360488985814381957992164604853491167553493038301544462710992731781963400899303402383725940076521168060023653392268771923394412243086058496132962661554984895570830898248092111675973192314415638809744842607378713983975339473326280115245519466751022203308469770689253687051970280453364342712325014427830342129453203392782678213080422575910291517157961286927500736471193147178173965653411062105274246989237265145118523201597021134035421391482527596078859579015198272018533046444816356293437690003576640454999903888571405229066041426608794022120067863407161379057719843642728344843548259685066001292036968272818490919665072658269685197220705433316875762191991879878098923398851550678266066262351773143609078718671833087689013026988989775038496043254415778619827496792884399069049471845359720154904531708292185818302881672192783723303109109184522253887694719787716010236290671064899174422885878998115123637128540794907841482958072030191058788360299731722963615028025302841676306446305480756611798979786679893398422788269950542245379340862049917284658343502284223051953912792979229691848955322242646382040172878974088841721001030631202870866047753425083424713993946036261767356435472654697336101817762250001652185216339120079495298777751200163550282975317054102908288266457213414202513390672410987413808235266751882893600733053207720571182841836607094044084458594039796522706268907531773084913624114666735595409069179576859019209213057591092288980240061477359578116401878485785458533141984403841621686745147974895852912138566064506856692334132547314924689257600135882121702240022131539138524624345350428149025781740610950448765518224500190291202164006070648665747664116122569778578967904400859697476705883417980417014211942478509728533183475318864803894327147444010228308579980066007586774562589105636430188959929863717242397691165016036504201517377426016350534413303771873439541170448384904145625237802751362579693974214630600409022146443684771631260384652213896753763744363226373729006153281577949566150627138083471712776454209275305853709874462050265152790156018476628232835921128134851506551708123332466472000689990828633278081241844464309424989561213900362536491863883766377858255931922583848149280712846313372823910673420482696983247229983934168302379458607539032046087362460535812344486340323397083814167594918596551986903155984746840298676723845656698230624253673014450117759618582706492000099445166856501970164635324419436151651741292131236859939209805749686896782202139164636900079515981626368493100961477654521146349317198794384551730720394167280201647244975330791128792744553174921746256169205487594774987692808114468038321307921352064270619916281363247373284854814930474919442607918281647041832595150711849332348181894564552248356131541957457259675530019433007474624178664573317451107988897503105989786742873390211356186992027242795950211501731364643989307417344475175545522985757218208410678214879252334645632060987637142460072034597440650996526021269165434542952939664908127242184201045141941025513078807963282398632266172151843591352261000322351318405478971640863217970101705309933992131081058599440977642611364636591463931854199368454468441694479578398163654547913241729400325134988864954067484287562672851729423739086484699015541863492921215346702637864929139763729030343949699812804208073925483021366246045556574848801922430099277138285031652121525527581110103121825124175938504519963336635894516747540947958991096163822766786434699545783036287276117437853502210757758199076318359939308735553141541827756143971525119370103605266716573345893443417372492642680565990559526422512103048266425181559864456369555810742991635183485925268515160449957244506383269007211331497950041294465188443394010708114802207640762878106874476072689117523975800970690861356153830352420192869169157346108595433662258698303455439639325865053920230874747502592