
-1589262274310180868577184101841122803754270864123939242111795405416943631273003193578566250670182068353619595189736233624506311824740902008804105039377235747873828498454027510018426822199020084581614816079671570035736493789966173163256337528002642318925497846564523683947954823478312236934568268801171183467585600167114211870053679218908248836328167398509814618355736833820371980301753564451943507752608527820205496988151599637187949844539881816886209380857212850343434481038497886964825769246196969260164687103346053805393803978140020117886091878186073827468007555077701371914091928367470071499520752768173470449097589773742549120200551707556826587720584761920813665163075957797074090138691457396875200564746403843178690691995061148106195392602890056341718757082961515701689543461587666542446438355822248799212693844987232628599814983642062044979171132180117552302989331405489693612648995843613115887479463192615536948793780516002079742067916246033508364279082549633462399617853055106440993084475625492103842116874992627853229590831665668140934679909378403028551526319227380431828185901971475250093163701574459894511919747014304833166443081111952527718789577435856828776971320131191822215862048276522638733308161462064824877835437183193140738518469339751118825242034139093212698692425750432187518663835902391125101683897545366874403564405286512106916736247731916660659879113360640409620621049813925526024874151309962117959600486364261135060054518123176224905681710033094422286535319591237061862487039129017278415810613994296293636529504734130921263129763513775649461231471198172680614494788440929564739270300971890652801654600213307097918718648825368841350687407425402392957926512653546820420148559681236933989572073272693243106573259534095752487095419198711722115746030387224521575880382432162997412466461915685909659345812962286834282520385160712572520796320853919906454694701876642711555225906744966794776991087062911158438148678751406770867352766373918924583903482141331037510507673001191669297932724113676530313428149622722026374471123810510619157426171620636885531432706017448573708723482176295800384466045806356125366324466735407609340973566953388037019493225445865889158383846938150601080056503314944555292797508092159477304324552868027985460932263110297900630960443348456332429788483007993748450672979911034293404750211441431006310586766904790838080701880723577166366867323076474504303244440572002543525720756439197809875730057305634042437348600278593452492820164052314944912454030168235558821922599739055916614475783754721028094269401143976988714646832024205293504375307026120820884767796649593797160723093008774451387459541768803642504870966658698991360359585324224452544254944337058712756928391892252915572078846555793031176123819513716172271432269574196489051980864257238673252060852497605965309142632586298522762566976260135938626454699116668132066258401386187344597657922980156580542026769287015406855386890917033859955463537424750995882587744767746413020219310228343054801838532567730047794911841314032004432019269478250000967307690875900868898031280392676084365962234076024210346359127036224885351461706167606481217959801289265147276329076676723369391627746371455454112534843678855235545432322286252238535034507267512990399224112842551147310717890408981352344576758476701727615211974718299344544572861095583788666929446400715961401304730271949274361206603464047794836701567373872002817211472684559353111542281379654403006360229487982401850992960625386964460035258713944518420435523780814478068449400229403916924560903359862049017912790836768349205454036519132510115004889980809344914817972566948949113760095802154405098757166370885211008353716835699929794175821203238131932498941699334872648017698296410312244467709351536317046621443220889141685937721424360608308223990197288368687190121302448360029920554427990972187661761991320241177024027903381107434549553206255492379276145540835045652363437562244341047570209519783327268907667948548651597260567009845583096973277937179126251683063182056617223698974880936725240040580215613163518894428817536404853726988641398283739136636005586388370231019326585295424326822146314386151416580080957936170380590738968400574334767844277482111969038641840519787821974771278973953444708223030830779876191844652085087792336473500690554099787549196353343642079748732430847527696572056032112339981936134912098488552304142654626869851747943224157527994833706874971112817462028070457780149416276556091121925248582229170782353769875342456382621679741649903065645619960436604935320770647449413257378147548341402032792408145200094051016896148365006289921598100798335752589843758206661782156184328705096011521320275310415837300507462404944479665463413788340642849953353413817256587936876956098805194969856881686575655971448447799223851866807702299575049659147991239690235457091692529564927322723898884227785790964414036693233271234687113294056783321716358592632771833925480859184795470059941901491787424925471181727951765289018641488559059545444836192768420607196343944195845759011117367102265127046442212272915851120793159600897877560527774039393780467862577235499929113506957189835162722955854275586443540670459865039997553810616656226476120379766791157844986138320923026710491784058722645356039639524496027547982222398135632468965690428694658265181061010612103740656702311783623282074391055154709280985462418340524538524910933090439963897948885010386350141828006464516070438020695479783460604192855706835973745239217160857809745376527354390187545142718278345418772445927741385624932927599036960830952170117096503136824865799534177048839344186558210867271543811462570236870232546878229383655572202491866087812973758074947978293380421066422254253982713122126853843037850917971942901238750830595967709869903115326651511366814180595657026242002501041267438575582284633064977787875466242482125285246923148246553362702644613187494840615778346103342375610431742355043572910417477539824621066865351041697974563390213873263916777377557510025745397296461455089540172511392659366732685471176658278166727255999107048037874348931573061343626779026818391275081225409504377499134618984012444362393227515275409975046255565876882161556048155391404624030999174706632082152301802128143568979294077070957319680137428976707836509009993877378477066214508737024983341954936241427689916036593717372396731695236149707026089640992371718759749647239801417922904771159460216772025212626277164239930874903793234824614788460594769877807774266331835293782983801473087935497929970141510652724738461059475237942378747711049931899158286433859641429366995655888586529430789084679253344847746160789999370783640647684876129372015645561101745279708169093694561238274270668748200430089751677590161504758671259957975103792697992897018774279093736518081096011258393387718858533790847317857889424854679737052002946975172541343157812984773283003280844802919585578726902770884087396630233350978898117372721438073420657254179614361909293477008831303131283283600032096390785601179220418388309848110803994282252269486980542922844543774806883034128976439374151941861737344004753478357200241076666502760568553474214134200103266601904866274692479584558491674598096803824822410272252867899024239137880948341340048172553759302680672149687532283617200187195184132511423807549700721828970272514972073031481055603023153424010196955791788013299869073243374850173698845583283232726115848035187686186139815349962051315878679032800346724330205254130756209031473509811357929200875815386290752765672065915179994104459336604271542997232920438167589528183880092075386836863423916510641597116765002640667155781364375625208609017179105338509160232943584963404970478367364645781750557885733149506673783589642389463862362037449190212749844810787207820890041933957712797932908040465767708241139319034142773711673716404970848826410204217364756046116731043215094205706981391110613214702558941563800431243106365519470509261501168838970201956013930061997620868005683458028441310923345116660360382655563532016235346652938593289163715338038013319490482128119494004055521544538684550232299742699158519430579682662862302126681899822783039353784412558216402515932167957616757505508982855758884857488132223859914226594212449645259161904030063372020848527131334097677753978660118029602273102689994775027788096244472398961733273293835235861712926020961854759675521767397233867861406916868925856096841024876593321107807097499751071109483960963796053695365477081095238972580221116485630277514480158958833916339675583614163233625749501320432954048625086378292731819265665412665532366384281737508837136735291542755366938708072913366076597095056663181075474709776974095189028280080927433428276482546133069946031185780773137687270172878115553700375739372891623145653334526668851496825342754745585446752523831880145040439158898946605817423775140981603735627907430261512121419412498548863687864839449874311753596515579953603424042795895773564114496726577583487425569846595408575100481959937768937903366221096552412932950505215885489628472643664656787652568018821833065410378651214170153445728918717906062023787881565413232480833739236283441519245308206891021298515137675018389955982789547346268444684267890855715554101048124790136624875210655973696494095831474966467030905086568228360883806872016840511757080786287017293368438909881506770647541710240814458935410241073263742419621009940215991733769760128847538624507004401428651142812165431761716201122118194688998847720123273098970183501466752155660786519892138734784021106427061630695229007104611281802968826751618033522876757578027848425711541805514240021947996470190347241677143637123208071392780044726353999327974692423167507700594486667119320071255615950615763030231422990488392026984701312875118259327454264991775070659649844865265058209812836327033331349472126620097045605200290204445465089392222972616585510647967841039856097583587156932768077433834111133888029361067066204812017328860567717101087144528959597750069410639970354208676124761386985543438602069592400333929963102536690359749370855541158400495334592061324055610572826105925844081942036834642410806430927580570315133006808364363167042007528677051445860777505406767653761977692950611177570170477539153410475449201127647762302023798728978265092149980313054478031094273112039776700415225932452880474542996312375101557055444998570488972455080862587067552606718465661292350184551388742763278510988269805944865726342059333783393600645653773636208605461256856748267599359553920341064955235097694791311231328988766523555042345762133041057388868915922666109756202521742283552658706754203887967999926250792305744851721883321778403894925709151599117606867252449116161433585913494284953494681813182734812024938259880589719965949148383338276244317960108889103224226500502428284339607220220893773847876949369051461512192480355163627099344423727925568739822377741175260688904916252461284508741758509721179749092821699125961330956544801300521220834676600799214758823827199646901080653099665507661118177360514799106683613462772758187834691470324284992142065737218215973431202869741706288626098134179665545927697177810472806312574285306121331855354466050409648211776801987819777234306906314802088589670804556028763633572750045420927380407351566990127855406186106002119359865847016822962750663758778102340969802635273673993581904533416670450873877895592207133125178269294383910379264763495094477219047483387129494846202795947586777337475718625535525888227705931044831258221379510414918950713207369500466847542192437036688176554784196027599431962662026028045507349984822177059616427203716840634835361881506971636077310470791162562970810680057333250335993408452685120692485092535853715661742988483890877130488089789424536668508036540864333089831360056903626383193253541245226364488139083981090195066215437007328414933323949677871389045035301155649630873148971764211677156875522605609776694481446587962671928959732407971072425024903352095816093122082962143514077844763815342176152254281777822215211095730833574536575876323526867329826160133654696117836086206908526451029659130380023346148161599365253451517323341054220768239670714746233209654849070760051020589517329223805389781742266812947288207425121213133281064126085794139534167939641428707565606646773215208924444580816588598417218956283438965674417422574733295888920987859420666625757525949592056981541201517963015697655386508594185591857530969759733207739147505830548468746310298229044032978150486694645258504089063494973912273290800271982273662093502011094836817887577101664012544205049423447796552689051140559914634261618503096793972453946956158656175058948274030682937808508325424816507299008039616337580856566921107874589135905917153081789251840649653354188724763646019248904528991158045242259581887714576628925530069146950676515413389394542389833796902654677578206648345753000153887839863031276017768689343475282293120849175200447688383521983327297666874404070854030786213452791895488661843891108062830638008382795843401355031210705197887043933550817718973448944016737589082740082617897100563096847472730350255846712978913674369412842170131186335800786424394202096305182081088832708674724220589438725179065129845271679501861377894425662376344709173123683138103992493387156424956902368446668372689288286622433965706829683772105311523526545094219698425392681674354484878573723955726141642274128907239241090388864516610741978340640525731259024840988981363447727140639121723561122465839273546537729813780234105368209066301923765040589394244033882179928753284221476639556248878145765850402186135459895328524531094617387429985539245540132030324808689174353650201979620397155508401562641912950078083562716421835376565145172556302084561979205381282635162749540360136170251260871822887963327445501367344412078167849599619302631859622935133445888165419161238127161712323363652702923619952274650466350450309780521309267331801843736845677073870023560268222132508880423824784199038685545540686680357088890639923834288032498970010629736774576980042690216869778953575950948809970896737052031009722368443147333810341952033895647337896960832658995842778995526797610027351266691557957908003907502837271878683232129187677334963738764120013991917802392142999527058222951685625520761935949807347673069845110158494691324315751205837724805582933354894735618580390749473688626666171799399779291753926159898839083346767734667554273247565783602597596549693823850858107463074701389152367132098925005231639158523070296640929453800138121574894369409662751044408230520860868274756671527319997173511757973724933897636092679272438379357842120352421416772869905807412601987788807514143832119167815637649152414810025123439370006740448548975725243698362830898366249568007341058908127816472796032415897485118915514533706958943400138183427478773207124774613007421637597751066891816302439682632821164200651019895560549817182677920238543720463601182815234640681053804999040178239019521350425188512476159374667058658813090109160443303506956755194250321622188265590298794266562186636405532617177767744750102245513205278228946861812372188111565296495349322181543026406846149294503197600884656056301265455361936524309413578233631911695592894450382371998060763442138764509584336441275773410839916646117350719262016009326440731461954366833097578472347978701529626278531571365581894013071216739539652727772819069307522222003941865652893549587686705015246020840542576754790467829896685687198826677935936998970153051540086178550812236234294314486121700881549118745401230463476479174209329543109697407911885013668950477605364496308352534933414493994886745614589565150691762756815597380835166306262905523293115751063381400986003720467827681981516777999975729016138457672577248793350923851154267071613081461823638236601147471346899687233364295682110732179494494500291918762642217975799619556201768924550777481276950471536444917791521450920190740854731119797285277050922630513530878064963099529218437312967055278784303232495719249351041580665484265703647502647289837740752224119299403735687209244076914305941044005500212331738653227274633470819381549479295895669007608885567341424069244776965066535842885090576549452476780160328275950975042018449182794121865704116247812720014343339922284436208381354404700449770244126722176278638854060377059541416413885182966393418428138024723030387544739455681005155650415451445159564252176341985000148806689213521694136849189663354045140353977905683063158045865234477255384406906252357348323040383812986773516043282015687675942723589770583305435602081119794448589746205996045689016787177690192296364635131915485306659502033015350451483228376275913968214623726447055033997109201642718991166147312342759259723269391205656007832861850136245534755758462037430768990331582356041594334941243313171687104227410805097904624175205584720801589635663386286969982872032269201631777740465831792042293049484676665912503498593826948650880542946064087942529468024509472252853018263727903003549753787908699641330960444616887961076954447880046175050638393843310330985017253119435109109374224380113956863466491126628520737427155200571048431454933115464971709176125473030905214669564087639346973610246225725038264231545033209772018061971066173624259044313861969361144468084906059425862558251100810183465682405083871895693535829754126689899596987631915187157538924060617735128504520032078322370566915705134366650249117756637416990014306135325230508278273568945691684582946580130098420726857673850482682214104349245483887201338599037360443235534255416333249693223073351325373133023440017021332450661098352384608349406884468700541610167287464392480339595282195454511396912680402167563667311586365238507943922773840446630941401994455874057668117224324208444558799014611104121486495337290075530658237627816431006942483899414019889471298532649066878639615735849892998597985326291572599481610618582417836220956072092116014965235145030925281925920977505720806511026015428715634426197044477891949418082320043440806748210343212296633244851657212572099077469830677924259385134517658618929658144915728163066653185308198910747530530941926202556809690803888169563708662649683474736141986339391438684637225439430141464245561223289883360639923135722156421593770358558189257076759775678257645414182448369898768280006064879707037853829761364215723622446457199592270892881220876668063637689775868007756628377151692526399771324305012481409268035640059685402878636497142364334625400803140387595158703279570839955694264836259102276230062455410845842182769267193654750870537804301152308306522874871096436975597009421766140845345352903073582770480243423144901072824714215590884496192522310157296420983134486334643792798342626833555276440197134757960948910899417222444375715204931982566396972409675790584572362770051669922288175465288454669949983245171929050447656786987872074553343969062994526797576075986495029153508441708529150675726703442793163359036818685259629109224112980671404593674142967170581211724553018507448080197650806011986645896601872190266135423444208289348540202111142904905464849495240991603032743806439426119583902147998396859330052171859186426046669010687403264707031700150004952865020933326259865177422910768128518090139473244625264585741580739526751305209123380068505187199029341405417437601440917533338076483998859614384398568933440011503122678704535997279024328055732819828776681716079877781633380545675877223134099178735389362376770106722482365034417282695553522196509141771669428009637409768960356041577529626470919886657885270618019115878751952997007994083382349985227678657770998554569292026730218455039304726379551389189880290946207523009932864647185930632269932340371465600694768104895357145537003249413587762738900697180558681419012795136952020184770703480543839957866343197449856501023700847830134233735450359748313038895088860600881568241610752225690792717729656639346719695033057311569287946784177611955921621119867964925420987416204123474887781560865688527993414530949425126128699713091089905518543811804477704328070837363690416131008532563867036999607511627939857561783970819811949819068200272473253119252080036513143812434351741301612083518400580388904153693715659512916151030030170729818757790376238929284658631329487086674905885946046892263143007113374006933541505391933411961476032893097360169727813116472136443045500040844886280856246561857623338051519469269467077330158617794858312143594925327215631523247576315383410718285321619285343220538682299381041938517164226593850571082150879291380829758470951907343780806153192201310234826595293004115717819047423174515238930132725739789963135798184787956890601753056607241263293113074399963171442395191075868190841550278236367219879814847679877924191281113570893338008711115904720575231458179604933397347035451673782707730135929307354139834237723577783002725697877127273011810479802075520761663500974769587551754445443862332924920674843934985508571047438853877807862803568024386571059348057235710773411574360502005492526836761996727682259018509359963498318371702890681053961624063597313209044466141275070651415113351974071388239833577413483595988441506999951345835905986424113239685194481012402071329047372755721662087716636459654353061825117399946749862203708044023579895620469089607373372865434251783246260867834400581139051433962636217540186468645341143631542507353549006558636272742351651471883346104359836350204040910916076277539674284566914913205717686074616719764055025018046820117465509816943126389578357639709100137892387873285352893641373638527879385499118346469357400574052738924645625836574772999105569066428087382312758051315160907229118100047535381584574411283440504278196871543959837260134166840859300460824688420873680740848278149773017317025253746293593480609715466575897309542607160720420912459750617564901458155804150186668453735949350422266919300728250005991604157445984626057705017136593978907499987534449690028200986147689378845856607818249591854966020674893441705467634964810539778745466411708577127157138501899265487143829680717812535305913245032420014560923441481644733134783805151541897885331873983663359768646348989068497156232171490056777121523134317732612275271348673347427065525664990242540625639287008481439806156251345003819708288526357744328509360428450569197280176056467028642309126566998490916552058752671059014233206627438506848622941060285606164102196234035453686605036922874884370792164999192509807741841997889883002576495051667526583935344761570721124905203439816410627939943781267593516020484082241206055887988720831523886842570361078115567982719933257599251784571971260282971911805535861243379774576040378165333722956904102297935032712584733694814414338317176014336817606534049832175321333872769597204099125475648113993763544797585206971086344403641382184375506296902833963526191585980140564166675831402862823003296351525772970122600695020760549816158516164753395029166202733225298441442465412958844597969969625012487933924816570152991263631145974919966857746530355897364321472062446916167466747592451747527860127710301062810962818609305070017371334875299787900995325310185090914215507638210333921673030044610424760024231779808580938581816261575214673951883364378252368104684664866452243202933577429509980042496847328145174763158179255790580588916814984212074386295592912874012430762890464919403502224296338882130401333390099732220416662175171604480405054405849372176226459976813806469532673764296018408854794374580842708980052848459684854335836835714767021802892981280136674744870081509603255932260458297656498166991396962576982287212698300748625888672444169964789696943793969648443062666455814319115988998203687808665907776140473737477849901043649086521617343587092679464276859175101883839353047381762445840161919619783024270223804649379644842914611616405804050751504109018062963141247252527607668073663268097010886699019881034831462017805976615666559197561108778596360827901570323866694121038149786515959664436424807944389965778587521925778757827028770146532062690660063383990742188174570750458476199235359426049929118271203904509768639437688215186816618440607061840869331151592215045882867491183921132471659033879959804325520347477489213548243680368203923158139432288338356875104152886221293711775428316405416852857059301884258989054651297190751978117410752557425208114832814057101483099261062496711508771048314019181109710438501176045408824050025223994211881532887083107806992833719620981352203325035500173586021434236742681557834284689512710483306863186345215481119738858179776387459233406113409071918184952545853838050221616670751023794300601791795715274416587670923215393240693660753672270226483133285499838669619797931705527656396560139841936983926593644069224853277229371685231554654560119531268178595980973162910211268150411461468588014531495764137531681850142898080834398392058938407165782451760034597309879323452767514871701486094567533347946072573804370593334296640975071859367347342747837944960511830869156433085069217585291376284016181789788801525771266628436219065702636629458777735249741556324641759179433874162405479708869413642138009818395032697245509153033268378090227036209800354521196509207081615422576539182757118968154326840384847411508836779757200808367095809435567050346195379051817047696600649546134634053435392876224416538177736002117006482097929529686406274257258506067962626779851431267998887878912160196951528571955426475796731604019515483524667422306057810372567250956283679780357617321180161683656972270697548970676519914881400709875474817145298855557643721561219219085260245100659647913996912530729667245497587124055899578072619522491890340833602467426076512207988471017737387436767184192242248114925615779566576136515820182116904790609843687754287646875236970068581365490180230286904593942299211717822683974661298505039627875971012956409897565755470353486486542574680012279417097402098512351071891981945864390694656903262529871293693173508870201909229781328100557544148014967028816946158926042660539856573203402603689306314830008634836588205880298386023429514766198345667485950108076675847968754483856769042868383160576527949674378599557061945402459818908654567608547474601970581928115426769413160414520717860709853763833160179352029560465542519816774959475448502797467170934561859665246786887763118386286248349888915082871252090746024566640511290700748307638997456339688140127559545401341558798082808895606450174998214227130468251336693820088254358498886724282605588955940411024154461286381526419125413140848085128945296272089597680105616402571697239434790271077638216502686107203818548129927555364853691128881321246264743062685647375504518310798602503967449134081110912931681174439082823008417301570940804420094289941192639263906611546462732293425961032959485037912614894295803176792626797408091583539501837185909903838550863426552285735273971770430270766756634075435162053171359546955972418685648129681716263047203992576769398812724889961024070024967452270141599000733533571954754805204429711541583759991653716717600452215308138412390022809649915126547269333893300958972888584824009525853267304963122025597441169689274850783015035400399944191646128353415074345100352157400950186297826056691969714693548466850147341835960670339337928574225882206418827091975852580510573007171497743571267517824289355651072735752469656582894522378284326904985236858400984514236599041514870980852809024337259576559417377825181502228301722490488746900035409573693786294985139891358250311886776734556962076073119572853283389249784399576154219220936673912519184708229594857310663589495232833733934337364978778023130453367396349467288810213501701581754426378491402273265904865844254768287616056627010596270105388819672537022166876304651953739258422280218785972836572423186460214072254094707748628519281776223319285702877777466053241962562415803414553706088669388181457069362908742724903774601262474219288519613023133309897364384555419250666150113744395143744503901164971001522709295652064303921852190732303097497027035489190977301173241057474966454065228752634369005429717227214033106504799153174141371074367655455764884641807860709971342890505950280839964348576826199433732067473054002747751357238242766027161248050281810637598914190405530546168592799862308861187867968614766883685499528755748560472607177372104843454809751566764314131780116598919249829596142064686648136843909612235481478558785472691680166260271624081421120175603236727108477147076114174026989694204282768506702315809207987831705188811731666292017831959273446643683614653722113053825772041395180142003846111348090754798323340268133436992005023987875308775803054864432827124461037513802204480156158322412526648079668964319824647319139968851048057059706211264317793557020989678730365266576965510115398721430815257127393649361167971225594752803917082885090877674493845094265273663984648571114353182940653953486844003349364565587260221061657583627779260024570357939769813183849690855467138801522057472230606436599455524692976746234487723782421334025821260259376706590731828451839436518230038977746710163840481028948256116359507672078845028546059792577591573193605900790285298761987974998692905965550104404949734135425211986376240444835884021134716119140652257626420200018445993686554622475750660436142850349407107421298984903398370903457045069521762700034106263596196127287212631422813970233521269652816586032381793760683250117990633210577192439827547719759436949540120447695839233396247684731623954475818536749327888881369518194928939160766051604224353656368084850588277390526118616159409146590340111136042499074663966020697306105353859456006456338861371170242673535586931123778411273681510466580672079944787230212543087372657628240126233358455663938720566657299933019485916370000769237024159591798130182677922175549853673755172580350724554064136479676204235386007753249215369622926727026233727478959933006447637080491199075377766274098969643921434390319877725356569814915048887303966835676211111621923494629005369972249910768079176546776480284213296405902821255998603521219113815252693422394872764579559796242123023564006165617905036753590961898131736160008559313595912841721017129173029501605024429858785947349366071842559530109245432310802966084294254868117392297320591754601794603912466963534682081088149395614225070359691960898972124046318289269333963246634261815386488556563827313713103213031131969001179562417901170421886290633314078318730133513761975117490362257968853124789637937687730943640357581864352655068926247707465237563656090587149750609307382067140475944622557786775583986835096805040710626222042737899620745711801535399061120998311271380314711784139360993602349506748298916363552989686218126159149735428104941897248698171099223848199328387732968508800133921933586623517833275058720039521769814921869379953360207497766099470960643913030663826250767836065476318525046364590058404681893043577365133253456681875438747552724209410248814636360685549376926306414899368884723995691618882078169862759820189208140047091973435688756914396545329926412053146633389090916635049673668635739119905421917213402206148996146523083714539721754016347311415693676348476561921601211552469517537641877065523784536916722385286944035777052693819113208076876527437649009558624947908188450100626119683290231889383791641266554745625416691440023682311373057147119227035028538621631845542836630028759278074858225858160623195919468783671228267220045821397246860099701013189679531165593897353230243269815026318987269525330063559449415498992780053376595513607902719744264312067142080724769575821127826487376481846211811826271928266873510220156750765398916359649782847318445867367299885195343084786875069400214109860501251167098488797538919983478227549472077566707895462850803061167516544911530933361383449041429712221464385285512392742686998521932169592192099395477691579367662380287340252598717695325998438696395783843822285267666970055500033770024604344790381218214246070063765148829063270811715581550026791045001966318726731502347389256361640380538339198643043494544623423756236870999853445255499357449821411981798970135829591179606665732484232264420819095207707595566304183386517436895950757013617168325423031468830346138176153458088134721316753673509266576208039148493058544460500473642968379555147070718900368015032027640198155758382338027624320406819180730997343613961223630877538780423209245321206621092044235420834802880095382274283534525780468646372641888415532678111284461362617959311166204976863954151078015433732749671282930456424367309080816429939368858234997335821178149471582777182656967177689150445064876734584819146274250560189918242089597246970732943347445636799257301557622429311732918578498489935587420340187203100488854328149881764135425716457544684426534041227062607160922524498573784011130875696851302298322937191711840296564528802811204655871876230138607418706081357252147255139357875334269334463237053020377862738214058650636217273971709535691006000688651370195722002248657069688119595413630660004871458177147300024437225161946983392297354867593935470122951972174439449317496387651213784402791358698301193230777546061960329872861399711689051080982590642269238134444597760005177665463377383472479859028249808920288150578635512857155816212048098468059937876483265996098979537976173765621065190848569079160922180109034859187680593726893778080079855429718740747286056071323230398539350893728495589871259659912894373670143883959654911480911370339655489606420661808026928693418511806014107467284025220248516166275682773916721382044008731060016494931802575623777376527109433095066439692439794367548618655539578469218524218256657969732324543565046069240714705371099554296398385778536438706937030842379431654816052962159260014983376533026707691563222849307892117841861286702622899182964307571809193626269452146154277960297026735389258325665441449807176738811976623532860838328095793223752656071832906828163782599550806452413608768385392313369030948981568878220866763166317065982260102818167201155968676178235063263009502229122282500210995207042455786167585587768464640074196381420063260983943274825276716695939253123711842848435235141502075662277736859724765029980849137124900290168201797846728225787849297140446810273777001994400276971220048425758160950038538627637457678573893158699646227650653262540320242696734222726934195618218094772669842655914138773458094092332458741030875585340976396319122650221282861794747083059239876430856626218315900711592470861427959813041559864407439158649680386385399277762862950657182266844356602290989180470797703476521209495951650674863430369174354242981162659596476488994695579457939537542718056439064314978205437736865720604520781205821179811203490217883282487262983853898889397170127408285436172071003166645097932244590726499230660401506779326812327101046477844851138469595715677990019064166191881542751535735253142203471125401657097907265538360985233302702257989243307603750814343029237147354796148495956886481435550956384155017523800627810126269250252887773958023723073982660734454025019468299258478143030273412109417545347717891218018527738614137353520345197488847151292562050981452833733723401200602359611952237151096049941388803579691147708048167236207874607382993675852337880255127869379800888438223013857632301554702875254675069377323050898623839585776752405412114131328039657744922893710852371321722788629085732781797124774097196386171973252318788939050728139854978499492417068933399060753379752315164493687814394280178780111358738917517216724112997053208092052762385561862878366774512077615912958921891936377059597691326127216985970130982053773326228095088279751423380300997211943145113245464974229280099316174691600708452094793931705092645647495966339884010843127196960145713420637948364741795483172250838993935134360128542836587409477668801027432913529413609806276118084055276549062182490280016115342485063410378166130875428593651290266959743839030020897901995806907298492915646022912851784469583613186580305437671631428382575707558872856123982961793540903066740007133703830348876057126858683272947066647497365878001137498304428196783519792349659605575997663134172470301506849278669652918909909448562460317203103247999728360391950776780459447838657854360155788524299434997164117814775155157111840532633234660748840634085701281411716913299342217882055153407201907797091941677678773530838617013141604919913208728158462081068747031383909974879503326567963057192158633365326028732247456122279484765118378136430616973436984594335619020515233798542818959698278714616650407312511165853780340126907424160864136554667972419395343646572602083471445722667249639281508896147883319396324763197876766935541022550279428233074771030851550633290978386801556104340882356452877899001137179652234925206390064899657915937274919367179165875525629850485408048601869376179896810046388244769830741424257303128625065744229558550792766376756580213822016100420453367154705473095703068648666498890259014083358390962090648477978754597598947851332550723679920921326214022520383867488901615267157225116262603280237938809688159991989609020588065860856572274735799163154965186313882648033846617220378270225539435304324378433016555409940302103190953271442845421040527621733344015809016802736619306506895591792361720791752987655414466716792711902097743044544941922296941051628599073329259075463222922232943010821940860517210195057613061110739834007112930012503969192347354989989644525698389780155455559239215220653420547459976494540974863059917793593324852792420026605906280429130701574862723405286594628618735042326059883361270156508753627959625932911268591320563225978616350024785393963199444024745693957898020368344285573152357924540511719600630662683515085400429938658851809198118858481377080556925992156226417388365490690479800972962193030622476552765933827219589371533933225053397086803562709882868144215536020119605513522171748928668721851484119553907012562941170662010226449426295396440649917980619193293320720655624541995556630943674130088618422985019303614857215805641631700291992486334030275857248929219299958533458857637692579725147010713919192994824423753281361177193220039486203928565152405400802710110686951367175531945753478350179325976477080994333392723039549999287917782313595092133117267760789874082017524326939072002423225917771216278900708421665609962350663381567797673276467600891872418370338984464575742345527245963039985918061393171825321744974656234417326272988496325618828280494729692170509532071700889384659637092030123666702788047621681260795297076452375766062319839151872534919104509087796916513353986866732068764169797662947888815073456222214789503205500469485442127832439626645298730453518788414300248143130293589187899272429107355415535992018517285861345954050248445804573813903906241606752123869028097600841174640656992579135064855376870348131005493699218023117909854656002079120789283799962220828833136063171489396097093587904114986363742843902924426996300137585242381049737479366432772343848002297795079779085565922616685121291793607377966067355710883279520235668427491980881252053560015443562989714038038252790330581215710259617432992878067633178267146158120723316960953786095479144272932392152487602586711321060132053719074581867336798668876521446259799368606075181830822585857867823473536103569227697144676775857129770929494804959396961034124587209887263721962951934148573860854776489427468099511762793939083948632592582454243198649153348175162787577898358225337093235571815822998659105084971061885889293630629116536927438198872378461003283800561606549768381835041816128739982859222001380010464682219187794216541605279928632469388823936447403756274337033568161941716584215366531087328678430010332686173318114002046783974750007836537655051892887711568885061513610457050446900280311128101704021121512791188565175652000810293817324684433170269148390370720852266583807602845926263403525206579516997130188577926961897268768147295563156239638973657561618765289553091993858599592811292321235881515052572033221938201737714517396548096855609161339874013814518334845984450070959498848042963353817937593199198513734344705937324313259859010230489542962878620420516567787096754112623710689605349045549573009628483843737633742741117926149247946752978934230043149517722168057656417359914817358018571632085432841149218498665146893826772846892279398557737651504041208583880257225340881763241152513554407148337211409155574736372546246659271920401123298089376658709024268708576947640105346466125866626132321393702317962077751170683325400586628098898920626503936009944209548840336109499976603706369783912940562348928770445429993255287145770823274048875012652578566737880221105328833540339890827613059377087942383771152681732916765121851785651790064998520611828948393919399124402751792465653487399765128829985442639531923624247355488825505322948951687727119779349746632863323525693718061626580980431004115774957915902002567032623702754873149618252339870801877952036420374888876061522756697945910284923209217550333266299335983731186481171622840051062190239169371157702151920234582001402967138887285995678495114652985605666860659732796791895518531481715811678504676802691938008270254673007291947385687231574922692606865149399421562866667170509641718251528187818493705300536729760919995161014999560151662339802653540893717995890945303302376511536975203912352564740056374878707402183424840661076767599220782783188749805491298635409732795716292811669496859461009265641512061206849630682691420339239011992177768241692499391798554296851318516720057962836732191656585761409343558097525013171742236898558410332313357878645736970498462196817061593810352417180572217966223020996827858275615776048580997642474119572011413802643416204132139712066833408063141634394512682502441520695547814125146912427301737159770592382295000345177580432339264263045186005361389773900819869381458471601677979442201852993788733988113283593021596955127120476048865701389880578095876967446315057596596237197221712565049190539671568627505563472761701001068101940196727341553032224963000867605233374468777077435057257812166442282031990956662865110394983526427085264180472394629333061896967801262965295324923235911725196065932775783515429481554078697468702057798138670995140102655587363059115116414491361906885746726970716295645420557536471913659681124433101428861359425842522684828792386942740171293677653762078828875600466224603126428933841602199079781250161411812542373262956369369012135920300182073353357157622763737499013600535929612572447365293023462699095817687613264773499828236196179267151567910307021043626128107391366918968800627880958143767037042295568646425376256772637539902919273220232296222276638189156197234294849151660474480874031857352334196061174858264795569497158092314448468526611962277121687872961096680795335851745510025515890051774772057228567734387828289835711138252394275289514256107810498074753828872189526295962303456440418073659557751292294687413205788488880835053091668178269433347386613268073624430151892689250316278150267730323984278148234470364988279739276987594706215718295351145769175915610471169991059167347267510413688604514646553592796864419657350011303345842419195135751468948351105748388937224984562307362696880089802415130047940091553092879671150288722960550065870023122454478667400635325601865894332699698292721993532733584216529467787422301125965080488937040372682243745678631084062111922412839262218447938256145605231691955726781505258923259178387229301625617725728211636865521171644770328182172674795052440989532817512259004967947779188561970672823050804462166358071811861176193957089298013720772276071212963497944312259120386092654805961808260804830198441074332806929076888828518629775856938702449201004337228334331452285856032800527933815229458693402255185468413377177736377466479814797362414147881036132948309699923546195830825572803650777136756698601007582782659851437446680485040894010669365596029127887213588663600386443042425456737287918753529939531647326231775312006790376476838517818148045585213975915412200439504306268362065468058522091848528759120044421465292732269516550656907881028508973810400309891135854191455232012551814105155406663635393730607676691361384245753522629955282488837559915965108791214760806370201479274702358713058244875111644024042205960463228033867681210873028992074362827741404241641725309939911781225811493987822423459900850242641862318193256745987779254221580706207885577980613417630839110652530679208990628536759566430757874264897456578111237345053855943952724764223978211956597690497391055056192781972843202110353350717983845463052258985170818394767671119866038337081257258675981961758552955879125949427736922225323191284132027005493778468132859496924006450154612598818096523735067414699371468934719886481704187520359381593246605864450343507637520502273075129450886343887053110705037641738300893098040670249481615094862329716617784472249373399273410371629437836779907798436501517944277777890106221837347353304718940589227079097293114709719622430562188335573944691725815296005048409977020617959536329914477334155712995446141361759826911277618356627622171680169229038427366763611637405483236758457876993609703094410840604015648300717747879636449755456605457430216771516146384121623976470206272088111711459723693247276702630754856564404556810780896674189448170499370005340842942322381837406673817805522357782947504454782306176868138085273055763173117036929031745613096714797941940708795443536831738069186330848080775040819993454106149870087187833150459054031448005169641753526278510865820347998750973824697140496369807429995082247575051071927467976578036253850545632207011767051927628483715410065754228076009831622283637147866945407324826035605679548096947877325915921347506480966448743240179410880063361992230048998040747966340226487010325924881614222354097637280311563649127503329343232632840352050530185112745161759785955082715878247805471325442214599412376252085137768524158094526799740002709787194637975272922650239655710164368794737330297802903870392175342687409249202962142968702975080463745485385554832435435321416341099039060349208350148816082545222175790872747838801515905864471870106535754838127764772837335273981996359480056350758871365525583811738120548456521980524327558805293737466006103128879236251313591799019714137375970238846791349564110593894874016419352333144958178741301884660657858945524548204951314484732866831197996861003606059831284512631609680859202762524904269331265483368993263205939741891440155057589110753076909406255610314215736454990483350818034127718734085002427286553276500506648071914397321412327458909350277260010939497902007168376180275526857414450028387056183233766434811942196883795261909478214024777556529966415356462008127875075135954799250816016446444465706384889484862394736469997316905924892506452881267068079678026544102603596841130254299254368104720015175040322059320482368310274831716813074453794901702995251424424344800601760017592908138716317492059719820218167100432424289162769285590301079494551479662324087989300919191165822832689251722342545708432937387367766807944783385572162026252283481062696589415190520257448702460719094775992138216754943432456853237768511706605978829137922756223781754376796912029934199249857368117879824492548354022551926545248739449365381480719131884957857700203959475360793117637625352429131053452305668437842525239682287078849415707349926017763847317224380126510736799341069629903918744974124650227234978780356636992944575148765563397154571987616017214850680426655030704542935039822954570857623596353092537558674031556317691284902639453578984943007426645003981717370030435560213301073638623905157447437042228442808844965343725282632805165009871986295585418914618388127683572356734000393374053294013081460732584357448320582099499167105423017182925294029283330712928565383719880744457154933245244041015121018238766123530892534780964709685321095881549362898059200369241448944931740256280740236529433142018524776563174462279039557868911475478782243913446283459003438609842865942517233990257438716850647274532630294793207537066125509288018434205376506640506292213604973085987369092454892715032558435168341187865726805724996746486664429043638446931890213835185078286601094052939096845610416867794469306483544833859510223311280334300260601442450898686018984876122427301053135893148695395643141655487993636790325458836220433522482835063619743565064704922562645510430845348262535627751687353669108401977070237541465712907324986091401337630708611722778209766860998846094354954488481953114300581830176410984673848425391798174761969471155123692983770876322772333195424971965735741444774753449270710809283611627993260222936925691298682178708671677493575296843726088847318873066106948240673116848702633485661835925047634257605694906919740131035033218558655463954781371537059921950802213720736248994114636642048510596100265295238211056395906795726086056832123558920881294469960314009052388803959862595990914560208417614364052524666807441462256553600582335620534381467392862243945227154861386989452339776228006530984956959855507873942944432295085275607560089909542088363379574652281505209857290171804547844853240775518705470786397747962962576489781434629881183307851077273250678136590064459887556528760651227326547489730753133597732253570822806322842233480192579910675796605464537613575297320890343737755131182233823728526545681563947060475429207893472842763632043746357577754404839228314243785160716988582785208043850226011166876898670266899843493526441710367636539022572116104273227274316677474830597744883408472016705196884763494705950056501781986309884177872656507808399258505463042529113853665115785802175583107065662756044901853957256876278429969602249237309146459036950045384693300397400484076072824713785540387016751890508737775404241121597880506609093639733854485845793869343742071529546401843724698322478652806457042962892056094632674666245825919906213072079155155490120057862990336111484461584139003215359918848999558651322838030276900173398671288462266170623105264092687192335897221366957169490650244352309165088076758431439853931129906294646056326856162621560438078972631131743634830870686647741250309539664588537454633843241056856970373028495059175471223095896950390172915871249812066465183120840043177733609175165008767608279269876235058421908838270448188658887367542438796007323930305885533033388904469982741163447980162814378860009963551502033191299078192013974084890329856958247587982511062960533586825344558161674308378246072288151618207781303803788100659933540578439453247045667932460665060610942715511149093162804019922057298258614615180365043745977941431536085743904166067965383937292052201894722495398650936694940341262832124820374728268919491067464783368934749470685775282532813342075423084060727213646163883218021063984713994835977142831205095368416958107244866882927524520815331764070285502851678783529228617828694535430325064531149697381944103255927668364436763434984194361205800476447880946668281958257772311171754901195014928215190907396897278312353219097483653565628520497935713757392656892382123311618209608667071334512361322156405562365410737513895529812826978046262943687537942832249332993849477012991912049781313248140711746898634748262821373966965250692234230348034060874788506531581071460879811635888276515534425368931535814206013440034882278521383465139499165960558526934017286452058547185435093656894943379136295118513388592369463347495975987124313971883015813938669028635814961519145356238863114471576394796874298624590977503504566338426814357013365759883122605207805559932183549552975846795090952298696272647926811211582004884657535133403341130100443412537151557451796084361562823898542208275723719593544791090819342181521411474827660970978996191956396241407398074128256575880414481220037841262529082828389711436435962714394947038329359817280612254855062179049555277762519784965809149694878805032221754405476601761206071933189544886715583480321819550841868858096927462368056500161838338678535558956264170114329235248420545286376522149890671792762822021763871235860030738375211245918478313286155554023996661224049349951814779226032953580430596561532937857144342795606445126171912977953880080583035266910519712147681339192732847345381521828305065094917083337255608857131397298747603947442675303331209678657611938056076590561370679635376450215918220449543555595596195221290854022999179370549697851567971543635625694962688258510523358228789023916663935685550065652995949932569099676030742200510268032703965883119261602111415253324548155504603944053703783340530705543829398700653107956109787328591167250553893678312513304015064034019508296801198833325336486450937029186698221694166326726358062547416301347248040048875782062815877764678000210663794426130984702867410937934507716088437320616393371622693184157597896920878622072772591286945409371962262978840221223827744061963589037229043336275044868416440383968985293500449642490391986897444840660690331435183764426045540958120252811748034288045969717825163321862480625971219636411288006226666027040039369257783759939414342930127734047968159979122137743769617710822509309412361259880157440464000614808662835261564091248484841313034332475296365108463344039038509540500943733805042622464714048819048809547698922864056163245216218143286885921899920584568590864830560369222103018630144548529019551027644928481557273400543058342076705933957241128373606740257167115505434847594456934258910608464240402444134396875696829767981540054422039674316304062766713133579303729837490206603393893762672394622161489621694180534362506122514815402878893857227594554908362961585646076102663695193801875076104416427995846060097123315686219915658256864752222582427822330453874623691730703420078416741641276706618373171403902893944250586490495672408052730828319740158863500735244851633494290277283441524314757847417787168353719288150554640521646496379977491062856324310570928982061359704565691389070613125204190575008113511367992446152364326825696810406383458551757569049459798727157951614346763279429605331771025837735891265206865649659475388658346972284006869600072690620862383520905686681384936310776876804699188414505680921376078271874756828381827178980338027701755663679021032013895240153181518320282860966789984942421374866465443182276055746556413210784361803906615090543119110772406094470271032152322775663363598513251271091963519881047001573075842231837547301689513705020801838961440179558140781677283009230253199383437352035639390958388840044284857678319679448880056943389461914077126332762275502824415757585896568452020097650302485965090545502173783277801096011404348079330357868870563303729933556292116486397406231714034829954343907210064421803253032294719122234162474249339430295868212506730999211644419689743938844696555901448963743742964631145702176287474345061531136412138469237905814586337031912110877167641177304815649168758863963606729057338846374713438443193300089384466118438153229290842538006370267568809728713068995098460576551425433764474616387573702300018780497556230167921777624361392729993535430236080799248291193135165340478600583163116407868755156598282616308559326505524885506372003530606613105711492808190327640357498738748492468320630127746585635840772296534724547797850888331222363315204668934534299568567316529600292950446777200247444836639211832841600872685830408078523150734521089649776686057951770151039166077858117834068342834867086384520279152275425439776333161482925825258054370770020111558185104791544653619350439588457762647028749758035631078194227441016322012454668010185053419238620307164349486485010626775414554626424390511071936284166570021161902357745733470688114921437092381256069329286945986791563991953357048942238954565777234551918516702261335747334657816880422031520700618928369311022780778967416507758753036882623514680549077517775673317559212341191563627417790747056955018933194186322851661378948345403821250481726415569991804267061631471686022329815235429730528265911040697697896549559235697918770842771267852060055921028723707981206262656489357249712118223884141222022484389007581874689233233069382744521027341079344072567037555472894854445271405934520712787494200803636507484134313787208485079274211447475852006965707122988920974952587865060494139718230218600296654053850974909263943772070165731453637821380497972748628991632290439338508377185753744285346391900573915358849670318365865284143210893215063637607708698220740872711179969632160015981300940518349926234042724409223016026046674738362280332419297783348129019302368498393397752632470619819855767135130603402472673240465835102626342820724502809058203065056959569226095094460267362257633085787493457829495580622630106015904469436619097665118383783367283045028118930549099462738425852421554368861740531414653593742504963797776432107957865305084648155901005529224405076314939093558066522130622161075741214993853111089840913545275249004292620773804254027347323968361436946682899603361090854664631615182141958189731282612351292976562321420507873110483783910690998308597884621200588419480020422812380094937958071450641195310483060180372679422508410889420154964564252796541332326731952159885176802999989712130794351136637302539294241837143454047497220965817271135678741950152729372103826141138154162691430373589953726778543476719060099002607655217002451771364644887551137587176567153357106396550254048143762219292916835906942924390669374756114768043819767384769274258410992370769622393609759733020267131450151600977659872335971846355414724905813187669116561386215807825563443011622855443121644265320222158533647160980852757231185720642104217244101794873920321247556227864732561429897045407274508706371471347021115527321985991300526440679686687137108500438159869331616527637788316042863665471541514222133421969677718386978025158504219729264093923299418142107300299268964763923255596602822685629008896266731148744784822418131683010676270770635588167303188619165685744990871260354239570507549568543488919990033708971385986141244878365908550329618479193579909093695861368987680807665039052188017233123181754329605516095629588298775910043082747057591827662563547808855174799946778860794272747820243397179800963025749016132533264216261651774705136004244452536418191402484612717087634053796622816454246414708926593957578063719914531571455994953203591252664590608940728736686470616527165918226908819431339763130643783259663457157749100164610870396889367104095238965201070890420511969092267427581753710686049388194810598784944229795714868863617035572538548692305554837707305361071205015900834763283539533003165230244953251861590170536311092735275910761033114134873080817561672769958738606286543358079917390930529616169690144663657994058220032879606260776490387654780055551781524988369106505072957297232423189737958119462467964073416376884459731925447199087509543005209660317811539964241915897086660221000154276734721860452086919566689861280563323896560942687889888701155841076348876998747989551812650956662703506517861499235807958530506771523271174908660484559430103882986885218173614618901972542453690355113193697159301260263863507633345370073126414129727068643363664496224346408523237311437613946078970180621397007021260772721584865567773072200677541875261761064004976903298370153243070400133592703083248284890150648609990288272897450732002919325143096948515743758183065750612245642806508069281909390618864381163587177363258112477809318515128340122297655377586068760395626702627124691034673046578671613647487919771706151413072628613388340373137217355044919910452709316787005514532689271130335911661804169848137818189360644122811843827208910148700031886993253265601806177103566848883579544215621065231288610925367300595228029441836613933453620363879847843194348563501131628657858110339626101957908437766940743117520494788411894976140510207485824838823959731784658460455496057338906885258659791785746852029230685745004117712838548544987276107153440942977193790318271996978451088219289526674164583896014967990364039462310346181551952006543717153231119612194189163408606051520770736309308597484358018179267128112070850795732262158232677627787019427333534711344636806016598610481494045134576865632094306388573184584689256564700767878538316382845989270469846546896295789965340481562662406595484116423190838550934080159876982816934142844650986649671136028172870117840073935363952326956138109738949954530750584462166319721656880488734857777862500129507096525414589058748735667009175589640666063410897832195140212542575161506017030648514728890223425216877141719288086447412219275385477897672734198347576677547443895361327274673040028995237747728488648443821801903545958642171217329969236261393259367657599130685770370642361569624084514938872257340629165575264642221570803455879395272763080497842678226479122127233503858767050248284144514379191391815962287267432594118922507836354928337312654577079346750783373189098775225642268290102364601938756404682674462806064159989674691685115022137192341416558155536948086935884489395849643013118364186548412492301492887334224970210145758965223704056151101325673455502472387626526963080029432556770280526041928405618021939327040252347573653548874954851644591804688473199404316367429984238217413653192328173050550173482630934412464068539295339686331274953711900459018455538076690901770479151118829918045976237693851163745464656352012607898102541270683026734175584320176212244503634701352365294700236171575959034046696495023218358573870938669943740124222248305854762913194621925790470700775592659005331640737822849997179281914380328420868142896607395692101532704905104146158489261723841152643121154114283737172580252698442549562924165424923841002426106087478567515968668488692905651307629443516232146704957400216302204605647587417845657899160565001536682148911240763707412559914471231870565954377317569567950486056801537455349538282424516269155200805248755119435889750817870684153481717033310075317139649380804190551185826043992224540293361699256839149510317472485910529795617042697596762799964966021277064717905608414406802481376645256076631242246812608290471353535664353919031598418320815451589279282078407160588685396333232642468605333391988295292479069310983226577183673022092408800120954379606436196462481939292098546035255594578086252384226431931525008452233788769890998038213498555898980572877492174930331364947104016280637138743125116272512906595159955262375454270719123108484486834130556162771568701481593661336061902368300025264813919231702930779743623953046218746288382323713747496010997469661843228922792208166094247046174517840426159456889235187232138592215720898957353198876043025652269448261642113761075860048511017637328038436724642681170794815943714448726506930531842553684662207032432201567591711433318946759879592025638046098249508722928157005871415329314255071273572893512025314956760785048354923368125609022508530050363271833717640918981616861812027824107125977067143733529060172998881396484376149819624167823018945914964011538001430808927356546209762694272098802333224922932811330901946075786894681734918804612736186252980236257121525049416851851442271494396797376885562819409445086552303701840396781426060399665278179989694786075004065221043146860862345658016764939960295430621939701047195278994295932048285085521015768198342874383785936862981122879805919036310860224575863609818114420528514041220879533906536072139614234789121067487678183087637510725162894341778212758733589623636269464183731717987152090499760869499357376019229065148509534507028426822299231276030728124101300851519136829902866526641732416328881874603583113090289066455870620176854282536086696046866352667790225677366541534538243980007329306146673137724850553717585063457150564391406509279620489959818831766038163562632308206102306323178153477251104514269840519289221909683862135975084997465495679266699065340070155244528797586616992125494133884906046483492202836614064166973919483527965229966949465219974114700700193549442525613292245400502003596952487400835022808639469186027849011365688961274295065412082635451281221583331699631992253569809880365939620973903240241167981691194300724115071532500077129158641761924381340440126413040432266333812701905462019123236013863327526789267312659726996599368562665638921687670407800056368613529577210901653976836094990069817055105072429704326773560022727634631573014689418156900416239081878276289718274737416315412654126016128630519810171897892013595979236560187591243065512406275760714878595485067275643303676039876871684159167799665138353996703653984339840084530605905384567003387306999976180522740477497471889434427183437915843423990540184968353574088081004149352922090054870384183786628588339139133095357492558539653857432741322233387943479625396391478336124011781869512794113059214863723992842336879907593603458060037200517297684470178573803499718651347269715762977932810929771822193999825554045832885613644478205337227211738094748365085147246855077478554165071001375953956382590559351886599432424903329522909943573347706552782347093926238845878525998838455818963679674362944964668381445995692077141979768387402832968167251451697267203723290492291327990537274868561793002387694677752717601083016622013384481329941492281986853725080757211880407125554431063028122975377508046285360100863677770436165765800392984412846574167462024277604583545038495810568834994330494958740104645104861936411717091865166306489291249307457039204742955046131531416936718253946676428094621119326770934678941251593885222505771088866329559566903486620541253473481660940531374592278875212906231760924666966615773250954828252618419550646582790539040078258240034903293938541011384251730492443537631748046325624035432972601844575160942366802898525419347593009291213906232179471705615608768233535140626329324533277514928779238103612766934940485352365997753559694200973271472864775928868041753345143209743201450869724008063103138912743167206724258588172933634799743672402591530282739979227037951540753946040607219651632567314542640609980883174933002715625673803060573878646499177736467599375591371949193880480964633828100198296134582737459945136406506260485023522533084082556999088877086748339335967497237861501995225669667221633678752327568041379588724260168999479763133940212845826007218442038503591691147488834120664823690773235139234028826277903224090439677175978642758881435523846085250301510544584612786282711174470593729602794793247233379155583094263509102086642479188263169169994534022541328587972937007896684048013401366695330047314598220449085014749959500423154399835471155616148947412480720184695283444008605727280815674239363592163910829827232991879707099378970567788849286407526392259689719038858700337042982307305537665121955712263032821780639843668843160522207778686018862749533317678123879611116498661557109362534634387621078389461128727142146087985968286998768154253139562868562604603706406358174400588222251337704274270985617028729984772882824909174197021174198440412858849103831149852945382224811660939364083358424343127153374541387516638346220734477557138664557166718902229429578323953931425582468987584425310387238188757481705313848079052904200029036625040802343603731542502599316020510840227379187527851420819491212471925524718415999305708650535244706844663566527474854678033794515995666180772325368130284720917306142228569026866896200648318154151187231091654215531885800728648622910943508155876489070481770634973823659929099718407885793112025025416789827440071613305200795536021357756835277710369127235334144531938942111076408542637823673679009598011601715138887267715828111528572337009040747453683910644823845918117335290660693357803287689859755058764711568691483780601538378397459418524067038133345093378927326266929808435376695661471391066902141689466064302756712579440145524649172909796360289844142925574704577364566424118089393851098685442286593028762257696145579456083632114755011797240258765049419447465718817906570920411824845313356590774566124335431083683409301283063215272533734937279019824500384806644994636182090699354523138490888200109866873710251255959880966978822697757906745083231667982999341373091876382142025181896851731345055373344276503243034262267560304645014358446702319661255368960711440286967984107746552958914756594463951414048843982698830056853757815561785516671969289763407922747788091364618204400497127814386571632810410157251429451928321290831060548027061296169755046659264528264350259920374093124196934772204873309876590052782870540994317618758086183531191657822750961223510586566457217258341126482337809408621143018205433610932497370321725268306490478548861475611506045134248162739527405688946709146345026748597282955531035565254242802247689355402126787147639171362577957729678694135425972010604025010178406675618250743417293993603817945963719107057542257058090034313453828724184056776741231139924616515179698743706917115711958777269632830122408186541203279771183653963335620366444691015805204634626692934458628462751848606694464305066067824414047818062324610259203544699504662157522341923481826234967113255316937609167449983588992227163268681575258300289718882155749700492179716034369438158524335117848963746755870686265335020813376786306352932600464572678199550266370563415502825633726148982405261246931911145203788462993510427813552371249168182842090158505628126886037448430689689991101466174472523395677193412399918273660001786978248877574763776944696851402462763748025296869522464634404244630029919736910379248058605639287650423717765388351942795467922427231137388938425142261520368810090103533870896200930454195590012195295535007198059521798983609619624277737879588658327235972836433058755996765243450330657150633957408878572323110018716822463127795359830932723609598389629494653649142802710023670256051280529160197190908750942100008915414510268739962336872780991063610336614508448881651737178368164416382877581313198057788212432589725507912944550721051922906152665132196334979910227691055770781703174826294857591383528727526331022914450608478800163444327228101764167509142517709197805093485243318093235107166730766663963020855899619063580699552608752644965186177965562062726847332142403407758003383287836960822627061117362708375105256562101634685581996696624724285442295586231672508763378828902213748678044597300044816532146304046045058733150122887823598305961518297670658377448193451230515775584315995032422308333939384510576205617243076025886205338935537583092652210696787995725258032648991902808606983527371798407712659005868288383931031312841690485695668153464551774617384817895175158014306240680387273024391608786364384476460225197390940944982882524080859743405489737358548251048920431095232823479162761801941582287566205067292072373762936008492418755819742800203774454998516691816766502620040070040281272583041450936175716874126846856156703689475131503723540400648951444123852379835049497595060559342363828011886951411034399380975398473083790969357216587978188260184614330548650395418458337786923844728869370465339337070463887498722129529820525867437047574264684626299201415113941652151069250687581342853248597715433310877356542329016757988620670670594948898365635818272413825565997222429169031190702197344568488777320576008222623646990480666022111683516893423429801007740517673076160119339289341603628530570320070159264144812586556267355064777631258027129605290552267034224109389591915751089777285945864878804474557635719734483356064867385865853153195636566493061273328397568971204174507807128641414471136415953888673273965062270860079696986365813776972641778049208185028142276038322873319265603273126909125631648024036625942056775637825761187736014370060587520144821401917436467025498966051653409203281856461083505266201528602396972879389324505257367747693961617983753630395608029587307860239953074673934921469059108649988446377816607521678707200893008938864373361605781795876346498002741067190567935516035560306343002527132964930625386794980703777729187117297499250422191830313227970656124435440123713153691306698244071688524887615697959654684317720598652157541609283767518549457726259721500994229625281513192072796656997380158886060689792627076363108501188890122456577976853951596385237841591100592755680579153149482475385917067661204576468466717551538592286333017714578246857083415752899214791079387635828123402628734246635660858824732887437227418333086268686549313979199909969339720179425440689358580258169549065952166051593253640676604145970693585643208984263584733042991822345295443544171631044106538726264426666079394663612794413162633221661336807045147531919224267563025110090472182105235596301199954477726992387394921759890608982632847148668711011588183492468423519631644551742495543818138610620391051787544840878390599973592933313069168563108206267711754165018277342695334798789986601598425825834072287697151363036039399783619570501827475501919035989561485480821132706191150057180848758787377064594968580831265254245690938067200473180303244405538077087392974653696253080537975729948160049428688114889953569366007938369598434036468417094689294078355406579626212627878259478577423054013186770815642812749922975941937421178039270748355116153672513324002990706445557653954167292016001236458082170669539207419718677582088683429831820022068809658227895965478957990372606672906607647350067667331495536379718486961642683383725600071272542975107828312723944670422902740798062919194581442270060292280136847123359949459419940781598632106192162239807352081482285551195716026616618731483425047236284233677689039929285146627506013014305912761325447245184107005807422190363728086262634842126300804142622214449560561750022049477208678502821754209868462275723819786451052237892515644844825467628248473989443452350951664117917503694649887803986133923668157318887830273012427375218015493947206495631893389230723867821766869700547142141611355566733206257787287156324443297405210436982841132105113692695167008487459288565604612932483239669240559747461199942852248475498469352339097726505091881859766492558343858595815717789435628517888458290730370978520342861485304473235748997812828148959562008836670548872736197177043400194920144271086719144973367536013302457406600477607078717026028480746366190999341754409430497176543256082200339484024145993605875481346673252850596969077532158717548145130190827447620351118912232765811375175243493800631022472825444750834406773542657443273605236614623785066892909928306916720040689138958298347190136240167714016664683881332134320337156722652482360807656802698502214775789460321335929401114329753178322170301020801293746602672646419049730455777828316615921488087956997219773812975333988105674457359153845023011256094949498554443069236225871002789729859068462919964678652845844234039851156779444257320116926558800991398936799753791590063143761843782601219581594120993304711225543564509795485790535039465851438451221109494630283057802405648124065026710959334383996037501757541938805946034892793110500858071733883915367028747907215029547377101803225087084387755611962937189952538021009824792057868154242518209587370993908231797406121913709197536720808779945280460314723711625420264709493459610223355973320212433373290712218594366100601119847715492646167249829752339007103062937904912977981188343947513832028086503882734708435540200989577686186748439266221526651403018715238937742707638286089813430487156755272210476340653928749252609747669963620924726886781707201973833231845203397242635064225991496263095031753732927786845860940019749852085602371392465365921631671214415805919963897659085360562703183234238060665088316561384560973139219766285564720338631076151681050095549770949660621590156687547451724115366019668516252138340261728730013006726195046463707734130595721025338236340667670294935410977192742457767781879971178018020836866059612607309585188242306731988588708021272256343971188997689584375160196356720439401444934562001718103865529193685126747062976187184717544744114440902813229627266496274102913463764071662684770485664464731098627492314573943531258957554687452148592892007966909574333247537281924816717670883006642725626461852197189921321549815186458421415024593402801736407136384006483960040774913632704296889109298510449412073553458144569500564155697067798917970373831435775712321980436833845765225961325335655636569734140247452947441297156742917923280531142128030094355489728051548353873915602762485091609085227688977027769050805184232347477297815862473777807177285039706827389285723838921418738525693718825178768319169152029249376890590703796337215690605657858068850803479690855279431562400348253835557211961152624953575761629610339599418450868897379413492151657316523090463728302305041114185847382052901271460247739124368841006564972161593220933311812413966473825967781336728701672456105405401866543842423827695363628973483445453239476182793239214299017842972766239942675190070825996914122901840848675125335959331493790041453249868634114198081970718475398757727039402656148505610700120200447021888018668744179245700913452600745002216742435252368026084869611540030696604240227389683580025641788819777869548232799797169212013016075437229614241995698753236399739025477620207807295523737704584647005339131810355891745219725346093961251942803359943007597651441517240879967948514169350562200147918957635934654565740518973648414275591520079417628963509907607923632346182101988305517777960135001679316376753338348910593033436373837332900496649701677407248261237858186420010988943090624554843568646490626176338827521306712205857432512149796160348349748610457165852430922379397939668640303585763855492117999605186264849464071966860907078141732173756013677786999665738421365402304129415906860993896967380752430871237489874246487029432793080163031337172559041583236753060851311834458702889835205055714479876671480628603504573039253807034143055271902918070464728042773300507460714736738351392506599685759726412922336426070681437203389689553678174163697073972896713696939743134904722400745830940274738090045583965665241188666847945309970722720635576773618423655892775726807365117307228878184211278975541989744847824826557273815857006863375949379285691667540612959767637152884620146386798772244207786082688850977751697722525608594934751243650912849832660849948194419682596377196355769140239401229316244504949409971602563954731557232920629540919779681184824964446165260374919247514106732505364855664487555200677760798456755563814319173919574696116040231332990457804739536333488609713914760450718421029048841209843814669293330550219264227332204569601347343534728895113386986332526534597402958178261488420373740919767545152188060755608881301734300318591648359711523919232409295305257376337540712368510760157079939579494898814905862358126323964800998521935560354741610268666488841390868157599118874457863119759588344962434159582742064675814574810581301007554194837432921804821551563756055815952527338936073235858147566198822061510229120735957582175171486142622782115071745760273028471491854867645131028390596463744308119884349734017585691798256230182631100520882920963335184949188808719568159265380741591669151851869691167237190581825945302957521354180253063423591876357701494831847466899251720163621555542468286206973734450838936479500569678407230711495205664465048884003036873097169212670881593369008276497542033131353226981010398570555670680107045947547644214971888879361502108218565805523323009153609491122402714502327528637153671316760467224842321218890444401807271092140654927206491380697339314376626360406471667686478572725944711877965945620961660059518857839679030115472367025379645815263857379096365178507671394288482603480167887392577128191128698543325143293578935603681303991388074698212987574626088117345573707780324171903744732026762158906770558818740908819316899542771645804215571193726581726016347509147716335681651190439116937886602631677989289933210310295714854746801028027825767516011850583747306854830202640486440481283508578035996658453729366708572528336204744675218495271928425439950150729805435476822899360704781481326088679854833692562500086356491426806139618983219285621635049046407261216861949064735455621656215831503776780553891706338216036750930046865743249719502488408406367795477726414601643909445922759746869261638020747001583065865908754586304640092562732208224213507929464285109611228948527664082319144755161475983073776646280624709919813896061252254858263942844710089335570306570823541083887481078863164843616149720886986103161952988047071870103710128740905688015480550794022962899043775399711841892767460790242935599172638572402310908635237639296905366534468376114991144204308900724098518922791686115211095853776886190236102154041868864802665243434728668476236023711460850761686828724086400370084902177799272898955663348464036535432836801194782013163552874874803185187981326341150048826487428744365909434370534932155254129068533038201333797767748749337986079522294435418514611170188892126415925170780024980248664355106428486377414719968047517504406798948629024656634424126162259475469266637419247948195691859000238374232711389851027632111076377045069935329025642740721521915848828143847929313884069214468363474122434317023492035644219641689805773989934501699486715100585717296094249892735360336037016129594690536564748088456783431163938763610649960056156475247262320104740913384249687304783830809430013069908184239489445161420020289319253706429892474624146342458756307669541738164756304683115430637452290627724519547289656639868513634772631152943380568365134298264884185687145654685216835044516071363468221428241550366834842483835225767955229266392193063401802876520701263300067681729644920078318904250333286526477182594822172876509524540691268693894329039908371467508617272804892841702957101797325324463856979548284453095987632626388151268753045527352556380583599231985406404317191382158318274111446668467665124773236341849708821317616453351478767855973800236941414076023018893484694514031591104531669919670059490451494884248711504248791502277127774530296412501980318757845268931155321040110167715082956193585522272634091297487569273942077828021084074673956706090657290518701399886386576420005032295980923871287636937984467969502733629629814681730432545632279184899713273522235375199653244002749133110986290205506164714033932941682113986547444844706546114787449289400002085651635059363617171566373975234973347930878967265958250126868730838947989338498925158467413540992614242260974787929486544265623444773200111013928375234422136760420156438239362573870578689432351574462552010828482424690177187519260008584256309066067288904651685134575102974669881108949174041204573766315725739464029401243224427042677848069972784963510806505352567862988601065572536684011522716018158359107267500778852264542392066827752063293492463695193972332700024243339075313354210283933004700523584053260834678174546496652473655068184354707017706045662584861351009646194644528535771923678430053523796690447408099591912670039203295735918724009217292800056157651525500870359206079979803628489136124579120306069404558812105221754148189009620313072906605755692137747784117816279346598792022472597730093484022731289149471622495563738924677046174072588509062360162662429428701304513889773662076042515869476459529396028766160206076725104583048658156924983929849326337392050659008460792562307861746074767494198117653095249944632372577494306525582054422150990431689523975959151374539585515980604819014508604565489673937570768501530870925858428515233112700490377779867755259426303920162880760301498657460625813746032638466009580805405103948905822402838405225453334377688943568758267654562960516684458180975045414275886856742540701580597636664088605917914773569430857338149463507490251222124802027894667617286608299654596096868305700502920672154542119159799455070561513978052345124142880055965242133239654375103593790830726595943351313966816976165414175991812207052935065381199031291548077074910133178192219359425577485336363811754001256706208099509372840813750098870329393257614504745506189293093476944445253581977801832343036928416329945664642351761443616836960181931461522007717028448159979083177509912208019375337000797824319246163872736676803704439666390320453727109540512018443827838768185320851925993875693436470106388711163992606074219610395652752889206591062973035324496437484436120065019886897602254054763652456514488289456689133690044583745603193581279124663350708293985339067742325552861605139031433092394041386171335129304761557333396741352632254758370554446590066028660331505890797876230820392369390608385337946078725750503964847303257906958768013656901863331197032871807495131713152778896666066897976038679203803254180367501505369407211304871843304946306936257092210306952195686864378013638573911590514268450635255757131621700584653487422645008462717511886370122358666293373081635968246196706920593889658262316413444703737658107035636030732086434456739616334313125392264738001831080099533314296350158780019527977067654748512030018860746974201699672933982120577454616513778498766755149178856735888998145930489741851937083597776087090442638900952712616896159896849848769403300229202907595555982415043948140647760447118257429221560159230300397117389795818380055833262728129450942615689111691440857966915015587944381890144168897379908208706961809244200016770816251843521115202646310961883161542943360118029610979552902375701062097932184583401065141409817590984749852666699710589269175381923321178434129777787427080913476705656298236519573151587784798733608770797827921524953711304193527317816869041664723612248550724624860607885257825861551741810663639291099684852617742490930283860468662246958889101875585080337078858529729640788775374987101951317448686200156619296290448517086450054756456972174022096988822810763765652914470823781488225321679980496589270064114918493855485160919238047008150905811033324658204007616861515771550213115122375006275757596499956540322328898403254551288688082098005952066400757977295092755057805801875475743965892145126978473108724078515384423966676216409307554918361592034312318600062055573036221145700234280267571317579708378508261636982121123992537838962938169017606772990049272148373328867232237896864673698749811449026247784990144876841141503505813435112971948199254589082352300953585328976017075943952010986864376826928274331851536240358226755053977522968799789840284686578658469911985642779238903956605784425695738988371047934728886303823856496252526802894105396179343223224763719342592837782018060298580243966012984435703207564489594054798070325110783070445226571268645725689987591088923568045581179933345579500659619811656428258068534117574493966233360136434107105917751664019619521646481061324673701057720842181376611209882436692290360139265298370204861332553627146473751685442964167186968872221810451770633710691048788835279142863291036209947122373286718773213496144053267345159061570151485711369018773853047749903875980966801616074124357289425914700480436297855739989903881790811088669662945149133573656845639138805688929727194808456935175945263056383538162659722481665642481207522816670522074363928552109809845262786700475228868683101074959207792835280325681487036263721981151506892818553818055665298443254060784397420753660366617357164645680617224963001679742649405377436535668046786290413361184156292086918742015609719194907753790926952559059016246304697922554064898671410727477474556318141665337938890561307896503892899125775662876868053782216752229631521720160966789446404571381942713308152443663144410007955750416705953814735717150237889940064595459872164850107906058829153849571826905645386182259630543395935167744468899046867787086804945913305990226716309979502333483069406041785384598098287741319545732851417023426730968227053481822083169609644233502033607575072146475137629690092566541342965356941854308068945973512579945716696506711272220546323460733498205579992607531064102919358042406527825884123842774629933634816910868207476821850556526678550047235643109598554031775413157855747627864156677220331074228475794235534832665602359387306455360041579365168988421975404806320059852814357302605786622789108742369812971354376948133434093031058063030727632246135880582325311055675868923826081827146684223481006115274152177196231438789070460883198244609354084359021651289390937902748631286591764399630455026233934738259123109839300853857727773194381589083214771550175005198927173815344927863032102511765598093312292587132093201413787463801841181528484326369352887415124481137145724495382734681860533423611639676039864522263591141394726458399085254918482180141664078860007835612573026531694411544835188446589700768779800666718281096262365434734349923899910270339529780192985891829344693609261153920884798039136234679542166095560704130008818184031784258558403811626553747984244862593786291406780772781052708363635881962380307144439808899410784290635852729522825080053752578584690457862000585941610958523254048430175485365931411763698557039036117654412556281939300348220009368821520781776159755060917110716621976746391555023100239839781533922899972628387542066070612240379993483468919540969936261142664957254977431190577166090978022468059462299946010291350643335935498632509811429283279989900617650265149030504073121535387953141986799176274385017868833524504863747515614919618762440840481880506758957065305442500641786688593008298385415444664344503240738218080655693552596093139466167122015687080459226244118139088762540101768268024113858251975680801322874901412431606333638241765646298394907765960571758666224075919415050578920880576240492285610654473030498573726376037414147793962258338944795242603518735500879784879434116333707462763056368046669912976524277156146949839030204804531694574849831192376631950433125606782618052137270908857837428138181460759826234901923986341759153049583908143657428752032418851170049776544181951462715955750779191553042315356850599500695657722070373030134117945422395670951457508881605043759429942051443671484762884909760932580355457514872764102964204620093789284371176422173610484380904357382434334347072921468046842352423677432640704418702635033624729270215217365041857693116716653072916880597485021944132642702730964134604203924528997053652511584916790795998931561311305546296976485241576316774090681832098610548071900793290297104885617220477392824572868716440578049868820952290735854360176802267663523436486445191129278416472840534722125384403046952410179330240520608976241020420152212158575001075223349503733063526797251667439330220402340444876591839033916773015404911079795409489753322421797753009654899236078773112942079121695659509044614495864517194323329605673889763267714064517332858614034180613684576407529098606095511049781424230428866660573548731567478096772080338831335020522800843851627086724100367846430418949417912436033936666209290230981396387094425778166934507426027707809557839377293430287350442394211939647691514516140801198586031556825867926507467133460060510834815523630798867796215703529254495985472810432068907008407096050762792289637070009920450792925274947053787756440573363445931875577084501959235550356085658446373550546506894264536506837232634865451139140929970903429402487790270075823758978820366093734743866137987787786786407403019603643514076085271275913546661687395289300331434664006695969391790051486680595365728634364177110842742160775535113263613449138264530879542492927113545330757849202366380415624240839756922603934150044695344404402933732536226211461511063798147207210366245670822141006176252279820736023295644358508442407776344847517235671870391535019971350362751984366384585881449333156365359762106829468242453839655618647058111289838712393973880446904229585064294900307218966191572656740679460043528178537916229353011277580782856908936382037278949279209869184392321476991991487288381012781419135731214387307721142202318987501345643919200952941950134773490939209124990258181989883089015931399419072883663055760245919868360192039846459147481767600288323101916659063106316009211814287304477876670204977671909419419426933721298384012599955509575903278869941989978301620785554919176002918446735093960108884419254179796729830455106348476309669358446556407080297263692856709712024655519019627978072552760480938994328861384896156180294551725153226277264684909902521041217213713041274949151260722535551560638330553258457067052400108359176634776397018714356282750463328645208266077645296147786893776747993961926048021631566405072493374898263072884326266922521332678678146196040488567226228973242028759364269337644867357865226794500342819464924039997443444581729411348898068055345500448949306932093818025614665222701489402283267289376210739083143563880920628099441634724221865413008063619435506897521956271566539919936474497456156366475417682964563097485342910337248695532440447530380726723109957595017246864709672552827359983857326405895581671273966054302376066389571698894216613425820457047088892573825760490295899764456304204995960885456262831857135411778450835165379140110891838775205676906759991483881398797276301555659653343777538769885642564629814888656627052994228399689377156117351811783945403801617544930079224947806069233027570613135264631673451418549090022151825235157451321914314307743732225539902504500984843334532175043630010911269644467344351191024625024763692055032114652073720707936038906117894807443210425424421892244056923680832879597955378617049985227903365694342383941507540147038502569569194331301006541833153377772062493675880835172103725457499527866051415089085720820866285926400804109617295544455467689632239342198921036776163415757182884418452336260131498683531428722622519336425341391812342767911162431556030590012239443339271987847748672267305592063030610472863076102939396903128881132921516919935341161386154037486558775903337948770497439520649101035961164567285121416536626481758604068655413340579490004437449455254502838132338646121732277719614477532696441050450121371589421747925645291568748804820802193781527318887202325759325697155551686440272934023327193037835293249225909205941101018355751641993371043544891596521815476477595254945909625598514941431769485526230673834347918382503068044450470212081749962728774093736906748036095456086291816142141164089097532813608378107045080733422388250174571088521567144345096097983598020383469091408766655915189425681203144640080587775019532269253487568008493930987136435613190959776048386658258713111325370074540236360697888569309736862623847428721908806756096041839189978422631616623172381957458968722133863153585957772730948155349605999019777875182538525759948225348618798108158526051290847111924320139678607342809379828230906415495857542715154801060157500539333887938040832721674321676007169248391954528373542759160411769471721539137309549633577045988108044765051138699303719495838342750435506643828923805897775522475237791760444480836339464707757745853844405631565327951475348493723995784374778412764791454477574409271346633038660404581531389512040553661087475688809928544166812852954173622117504383207488739205689769127279124215975006093594801830656714777866977616949569505237046251250204754519153169341537569881565433831397336385769105001301865383641794200483104520949426922352435418415546815550417224111397743652004462215850365626318379049629391764783399449184764548984588381151403476033949225317409055815176595142296443990131822688382456317848612952973816854255780974290614248778771048986771671418911538918642496078397689380858693676775900967046121696279574346031736436209569078399177196574013019979538090487506657306041708084833395631473221340846729685976793776212487373723872763252022398199356315800039832393597213023539068509596699177900543547911724991738484189997163637292499378819400434550940859849519502361976170358851488013531510185209985153843507847595219366903910304819826379248816558721147541574350055678815153198646434255567273792909227577786676412030159059482389380408704208160046719839235221024131513685544263315399968726334686991873866449105488803199672284003883433445736612232714896533685832452528457277498356172603239394228452477567485391181835215687088730367842149074155750657740770821855987028376727833679830686523152406077638681555363469780835763777943006467489555998592347388234219117953979759770341315645165175801701581499531472114529068007120817508585804569381521869066368647613453849757865512677061890904583697402427865699636452526491985474258883272947594681120623788003605771987940966066511622378776160877518951712033130452865367236411598520895018363056987669819376494161449684214815877906054232749226341947620047143475767117841715194891181673537434081816246148259832412328523712641045584227001079416511939924424432406614167335590918755949653194049698551491522220911099882016697988016491290363718296254838277040444138727924944832704887689220053866728401665067674481569048717436631163771888831482997381917320424854697144435599615475245848013154583289306212736002892403439910717851070515135334055702875034224393974009263913392453713436725944587608305111332499647794973471543621980197714989359758328949653273291473335335749333290325528967512353316420158428106026566002741595712551254056490988498292439900091570368004728651789526736688352066314710815044623442306074436394571228556050952929288096187869917075670479343655357211574412204480885833792553789081197427590985171974646918156225674007965513176904259772766948287902288265248652184839913101980039403338450647916116495618944977343458889836556878664568828179272661700385321624202085050857491224696915343770626171921369066526552086623070095949488864863241900255890781554844935805427112725884531101633835195116973308213362268428063168063784337998168649889249679155125680939682271305116478525444567470708855193166504619562602205093475395551421307737794215090094430685629868441514516422233764272874023441205005983368285037880427983931381055234310928325017676646798967700292006725495768497789177117171553732323778981858525574418199714261477011545277593149454098229806848652471037215352187627328068486400755843035304651787081291106833069722183723079431874159131219866043655273793937876287173803420640875427752525449589610183392879252316036377692215098093999450720326417936471468360781908797598132279516397825169163210054525138024583251067766887942882768540093477577074903892593979497679449735674753401510263960596319499980367138585402142008886270057882191703480815006631014439582512379189152443920514743397412155189872136515622629477266909333285479438731552328558386383263957083777369824555619210441576126130517357655014659270427430827109951541518763577337367040521882336816272397633190285531643376706882355040281554735035534917785432610730699263035146154071231518945635632466041516262056429687666325926002822066356252240067955463588444613825769886803700561277360802712500882237661979152903388153585973307311125232750256975228145887113254620680362894591696919430175960444884189497966630794257185968449004644278705765927356242859172370609335308952748041894895948583971416159501790333935965973380492737863110568334856881311320797110054283858392905980385611096401611110365986607037311007425577043697315339369759357220071538706747172445878807586498714606987710300224565421340940929136038743177184649197515858965632966216632858786368472559674702443134057284680703414277262848317928359461493269660016945762130594472996697467031903111492351556435761201207896343677523034466240917213309404819930165459614215663636271240416633173505927176415298955641247037198701030045841824343859386379368171264961340117671898514254697076840900572539612566142563577372488457500150668795845049067780013891476682691832574963011127142671516759065616431948307688199765911385885359057451085389826143906459280403905120363473132619630815297202723320938689510691226287309452847410268388430299759210509714748555342977749956975637006186786587514288518035116457039322824006541441896581078973889430687769741633500094669730943341814402709136546130517492887221583757500169940529594627562606886349192378037100790782789639673191946388803579754705449774983487589182517707768768211397229188868831808332229644591562161161631112226095553244934557899782691551837358836676257316002824353861752450756144889843788267889727320915252342455239133898638989893116499745488330696605933869603384735645500870160611611027323694139104329334862154052823223892316362301662838137757733281376806698943039039883312426701525880255795663543624143705679970464207025622621641296660983693297049565029510667450537408169015435584201712814690818177009470431072764608332516736821579229254329920618828903659644979660342462617393519112190571538536917379848447283270565304851327156550542423418733370867742000740919164087410062772289878635558591214309756356353104963414543257263274464777281810490162796309067662188495139393348941671846013866996075016603882460497912505250382372762097716404833633110403470971397084822143431691958232661438537593247141137566135362617559625080514276874776876362265107493129592465293272380877653804961225269299351694182724805008098980554647329290147868023555109680375279406183911093749198149687397890875169713908540236325000912006455304442231624772635860266748279173009986359257140652970208563320572277176504588654268516141220635538866216666104694543748703344683630013991967990207523044318835733462713995311074843834925240853822052369397838513019538118290133022886668494096614969932355160183819361400978603079251614318638728396142090414499354343839075812418469629526135711724958711947260745982788052176634863930383166550767140646549627138749906919428078136458148748158199069124473855564708286616297430098093758893605842921035637431202663780087159421476249103163804809798797590749440653932945075039907877149090190864608247188368728193773003678220699915025127275563880138647122459833900114085398888118660248779217038512598252199052725639921737448297364006897211347744664085578107624471879641959336344658568155601071864298719090374331985301578838267851369069419487907020914683567692022647138907697711611880440663513361217903084007161849325962060992544416499386750666237410673653192553761255346432496316280919108996153385948445438252228428852681108461418177345502466175267749638967644004519513666374714492847595756519888619630666853820268299313897485827674284126002477850496571305718010195396066614416570611927307632692761950599540709575733019182063227984839587623406327913974828733837055464617216776797493424051313501562982763370635883218971262758155675801721697207467177725662518441111161164490525749925346916636818485415880700844075606354533479066190820965868753019251993954025179684137844796920046213432094506566386770650537069224286439347399687105908620523538535630317177339124530965922891996459624469751116142350966786821553714106921877854094058800187642463845969514703462367021713276128967795551378055175948084608953638744261694909188839283660405459949669195729250996907888831936105338850083544027586797644998293442174759136681953733671879195657797043730102939217797592933764308147146320847679689432747390964728803538988020497387712479388640541639605227664557185880854484659923165853525136450677193928380567674230999167550849784359206691354087202335480093170997946345563417949627662820427736095499274120200818549725490799390360571583919562440112971170455795243741131104721075851970881057863759748797564453006673153320038884928176708438476703891417954530638235102785639796538413596868939782566747993570813620353484384663221984988781745260384096529344311259784976963874989887510831768444194649264775138836841859141323278071166966163944224160581994411544539770649196048786740653121314844895940723151394411922322707885815097283528633961772351245653369601973354794267148960552220052530971903935770453595273519612418886767369682657492014607450543795550015342984175878448625180784640525603092938151194225359796322464351367639927445813794830002634681832351233778541501737273782730729845152417695931600252761344102441831762276083037108822017964726133294913304232141383936419527794545637487822430420112729505860637614592837200275480669759400039267714387737364829197142299097110833197108160274572768373048271301607430329968541053079822570842372761258211557922602722363441106492700968783343086298777952259391713711361206586753526237062596174764473901896928218064238342957235534077717612870673820627454816504817955965398828454412671532016306971629932433626807301112234886677460383966710987239680699521294291869640882020263772221324286359884469052681720791846982226245765381491438479251159405125708904241513118500664811960553752142148750576605945763025800778486940865571283538533803604112199345128256258112392389642573918596049454762375043114656010223957656572299520891715162963995636139885266422389159772175903512259048450533620817812726545522184610064113318940967937143650771507454775721752778138102012266882902131465916619370187716471883955430428778636006478792845986882900740340681123088275442832127974315281499130754042149220150892525294107771315649388652905107874082975684604153440182514458056794366057738364034368992527071082746379113676067348566613648769580079493538305518103055468891323030251965325462978311114588223292028944728978908146099365846813493544609492805051990901755906247898101146611534611690108638531616471573394115870592860626310831431293699481924556970401309996946104633582067231727670072398617692466593992122506159542872602805515527390341196273814461430486096658106524609368514660236869623611526541586447393589913067245888865777505113723858555776897813809573038057992427282520109732465549190878502442441048923135333173766853088141632676849528488259699790521880749970579632749789594855823002636460456488622358563290852973570881678747647967439241838857227241881243020441876657573737662709486855909650262706724217515267792687142133106786809913676796227692467483794027501055213912185292046156397991638534764428694552884389557784231589694790441523359433910217189382999263724391823291779418596651079251071329015457895118879404210120416445516325539334798101593555786102609200105383034896952956520643020866880560570090326061414037517577304809268634354660650930568619217857378834987486572597508980204987161940191859208728983937496312029132858050792126674845341667352017093038616609337518518705006638020996577047330006359815537997551068716623614474912680129084692336709713567019676071238088480379260422494638749315101265596794872151132344712602908422712085942087671614895857907016170327219376265428149154729270718700132404280585155700797358560799818589571150223204712464697265248034040176081179951158787449631367129548164416571140153381993394402719563226403411191760737497151905968481965230784120568219070677611822418309415122506999448176337862741893514644762244147352090250526174711129929942330973200687192557981849518907817211164183080486843692831661195303003166075150490614181074946866400205038218216850912313188009438120441823166380692004070671273220955078829468113759642190383425403360092634480419824018245860472113062504757846788116673315818445176145193225028248301830281330125090212316205276855420880399494056986136889925629761260014091902842731535040364049282403363314439956750302960660933929871403385519584235041147854473521520469370244623843410954563869638055591540271573994564909090749820515710230194872043917174871341581267846767177477346873320377473059876959595400149205608462986521955865357437537466776900486664049010183454793901219092499668492543288489238589001652630339499273351228496137804823921957141828308928565827108616804188567494774055635499152060810519239306089385926033623184981653543455088302138857407681781243802242681347261447405355718350491227231934325998781840730139708997401609370930239505851896931637866616517367857741420963774935123134115775453412188349728978944453972410127141462166576836582611172107528498138238013839014734055344532576017892248926952456972903000810298668935086073635203397134142745842702655001402260253325962507159468960973644656388508886005302262702126518411142364700628290299404183792349015869671153561154124437995694113045282775882198770805835160726145078352174375822790707166918190941708728317899874090384413807336365871560801903522462702253441287952631633066221346410644700241412385659658611816430049313247121774441204526429615963545613421973326508679323789401943626126243378181869752058868638948633794451112051096148803868329412500032887082899922934558825456555577212125330765628070021995109264783720089686631742299289384718625362134375011013766025905553345086425371028991954628982131943220176831286597729433745392633979343115528939647030455429000114220784402120432414288659656399053077245352018445017702616875223497339179831267347303782920514990186455007610464014947147655340146236151265862678251318135838493122289226609538226802487744273348215435099558382542814546434241273381540497693424015071940793829457215561028648980181685350673922961546716863896740238535538221011518760802930135449269626878949851892978063141157298728269679659989686337363647357945531148389171397205448863812128777167510604156597676337972797925503163103348267312883578104660663499879665493011837714832852587713009695105268448691401406148158215604140331654005991277205493039835263369657313981815968843337117112227013930470813969833700700039714255797752129049284019468476524683841405120952134411056639119581119323299136024705670253144398822558177875208746998043111399224387658210195572737475688509105587744102613660381648692409781972975589409667404763152643029872828263875645830446709994092055588438349099816324795410126280290847944555727685960640388963353723623338314605826963770503112773169561296941648763662107244044034397783469193935053320533070145533034359643904347809319388320709457355212997776679907884844074118074742772213118628769222799405388355157794798260864123082737957234495005557824755742627172520318232548583914354799535297748217133701165880475917122986749855214602012568960258449523296903099502586881518747552751985534321297007156894012942945763825254419750209598267208915894067986210699853927740275150637671621924813124435451889084241974452360159664449582556086803224634068782395062072522474766294431217425555991036283882257068462392349016220331674383805069501009111216591513337222715644963449716263078037105936403820556947304527708007689678689083236040525184612850820175787659191737710052709992097092793922157828657169498499968720805618809070556372798733914730523777424644925573677243718016284904919269164337344945331277286184825956853211226578420964690423867187316191302593099899229529302615055748805196239835562846768552006252317199044589750201046565738935360815045915284696324250015072882303829703430331815272253375313424674369016153050407960497919002486514447406909994603337245082737829953793358144082639968177132597259263919511235278614248557104876533981644752739398362290920601027646690834066211263741124615380596818380565888782818853620294497340601673989803549978504441757036397140033471922781261829566243056955875295282490976056772930611799579036654943363454496508385492592071230740520413164312343167683923023794740983494480360136288292923936809588610692841587474908633358785391296126202774610457377398955130093857985681550862605239837972255104711821433092418945940930520045166343106659002255083411778553645631133803550068919637999826049480147977721382925306159880221666775661408316002807523680345685047928323460172605486998791848612802045142764421310292172912630252577209271180417131202361402714898786154850898201339706812659893269130920108872418997594493511323289882729687986271776849635986826476819131795684308060092441671041809866739883699030637344605083906375963306502082108502284162615661578499209013963608270846524225126921898106116582482491169514674658166036716599342586876381525094033035254259302188793296620447786336305949012854419008011530555359422095338475972562027402877035575978567981569630258830995005217679190444162429007743717262208057477492977197172782725636328951084602234637902227448057608160293436758117803643812763381327566796655960736742085785874655060288134527813616502429324371203717581286830036016215953250798298364591469762350477960598075395148036313535893546366974440474187183468663001194966764275700700253635496950672469714087129795679332307203146825545999552529868896650272070322729376737471329965686315457199720824942750677422857503039528363507916523781329364944965527875897820421716180836764767323632344234800883877122890552393547627775245035543264877311058310913745257671376090568271342080661512319611005739076932402066889792829787339428517845941431801916612232394106869656428459188907751371694556954783716647919085313714213873514227276217767046620685626876549315144351780853779824629122299484591717242825196358565604965737654562091567204462147504486121189669088364152005966838014269049139498421676113103674172073193359712850744409506281560003102767404009177839282235280113453998067852602760944956618463695384693474093511138819711505471012366950045262331450213705490672911755470722396355641163444135881395366275575896675535024410252077309231792192136447555168283219166099773112856099194147007034242573920628873506993901134728385372715225972852958511517043822348118366814274669102424464883589511019424301148571232106677592548861174679966444554319550470562896572978463083868693786945883965129035646077819436239671983506241533139208458409637044644704709996408648631846220642863823067930633864583515131744947180089813250698927283107111664466211167060943187406322275702915340539148899680673644630001000846279522912397200477729587269788417480156265219787301061795305633714630751567449793193172467560248304533859999787343768601832741717207157566231253968467084711692164986794962293876725099175844738374908978005917738542405626878467593128865569549263837967876309134148878789213864206836031013148054963944742740084717705694289857574506978700757011492195737721060510818332703371601711439315548261606310865132100199052708562189459312795501724597239749275795719951908875597766185996663569237720087388823854155403965318401764775234664751160307625089347474247518471563620285711953422637874310053272089510504524089246039258920933381170925889182600213284709674813121815343879446861137649298664516344288044222595215183165721095583983958302971287057947805040337814696678498642294670279293330795106686773776419673466473215442022976676703403322460554591547902685563389445550233104550262996001574130789346887689671585671470846881568200128925510419798955235523299168860866249597453348742837768795734323278730081593018151179081277064977309202673617093422787558460810343256382470562412539610433991605064123407379221484869214316058061662046839593512845654041100084721764323043967050217074745952449898021508552805139479245570059047016547440486933519094045286094039398974654437978515333913341933571374104015061127079943689416559175876651048419140204327284459154593683068101271632256952895524101017040863680217083173355621919600834479235015363446715305268530471821542761544425940898910760621788200010608572848808983130119475216807723081365951465054861099216761011776299769702571831725233979566211126290831345945931990868045767112840842009817217258692686378392578615598286805648323759298748148750670431768096095730756788955592073055858431618903525947121340031268509743344955156016252029065037734571562715039356649444495518871135071443373752523939588902213935210695209513108424377794820606410368610166992296024593094417885501999388365493231621311841798509527325350377662964837450117114853066748400161829151954243162420044057813366155749245141182051905794565371376358123588649403717196464526692165572379619820606014483504699194226334774775193506130652024385865022756288085956903302224620526771552437690755601316683190390723262255499445817159768694160056774982022614187276848498497438154918614245932932092576187055726172217352806152840163544953491930637756038073993642789206521619858125919115552449621022450080148017493690379946928444211185005288618769711788287403216093359970091560738538945075363452147111209379865405553543345387954093106255721712592747668356124097643296600786525425457385971072958405109914522382603858193281804478924309503048057485006045156101602794018316321642888294683516930483435041785153751913974485450672580802688085657147056046675083912380164625435733108037650726933103848461082746323256169891918659541626106973485119384228141275114784880583241716368068021276416555517516355933095713977506262377180014389540205176905157998821355465087166771269106943721019777221780146937552300901704326633640758823585896117273721185198922635326184039450327709409479453011498514368830051592057522819167595747689021612418832699997825263453949093412916120136120200594885759626559994708568742552101874325169708174993442927286678019653227144662697937405530516635220501415380755074960809991526456872131262921921680948909399090573424509049581935354069360530388732636756618551231410847044519077437713942450767713496589877795664400798952634609734742578355054379136928512026817462833984488828018204688433298217405742008976771373630796588622166416774644597613421738516532491221631937090337670613653867622086202282436623718410341452405336954072640444088243782014963458278138539464113282895890504402655048918719472108682048423414251557240503542007414478240471012039402703215075259518105136698247558193016346789397114162577299130812305794269265603680557737535760518129183280490317211817854663672681896420920250216925936042168090636695866676514106317335183573322160457238404622501534816745478364412386947478985656207155684111755122418199502268451105036437530767013570403683809480104800995061754198161926884063726785407726653519806093356344033052111187079665350635141450263848722117138222261460795417190734528193494174104410543102552465629981924518362555570937947425533476259696939063200002645511304479418241036907844030625424212161347258787064803386642855382068154148211284758740309734909698730901235932879563459872302649784257015267082866272272069928628319474824384956921981590985781330928252784753462354825770599158117880582455289263527034074740824014831912307944814069471733783317677086886125245336760663920689762046972027052097066136190689717148462443871019029708469533227452580958536769991956627377611797445690208350797486465245583117116991938807813902308043318230899658860562585045515458521819868047179327111831405518928905155010629164124159944062952115965581014206703224664979340363249260155855979785049972504501227286528577239592203724734303211816118744426042636173393917145202225737162740126320910102667100246279452513128523101519110556041170529050809567682999692409499860668251190024163527298340948838833690110229334367266986576962038669024216674920672774143220978263819949043402514552564683330198207972377683478547263902902933325963912826807922918201908423676209446546121035880646663179331375347911955859157380608947683150000419902978295722075806420641000184763752968256850653240342873186255070613354219188820102485852497598044319130917501154690170797837346360667118898844268987791145095065882705080127260633435052863775943585985075496592639925172485480987082427931629931629266063796230445561181571910034741041575553169509956610941450675226208999697600679040299662037240425828600233681501303330344966811843468473366464501489979167555335967316035422089177535753428977916313847573772894631911945562800486117298134115113554046367090174303505436616866036172851394459481679247891081740534990773308582688578388826685441367845435697352586602871338910324091825960752872398189978412868305324214055533204364302757689913862238745913196659106274192577467488282560008892223442704918255721079141613718202238134035088771468191108914881164962412538578500218496464157915398629084479648220208899570420436823151557835210855113222131348565484886281318424565211316663547069386918540246291317027152891248001041224849576656356060827366003529447536184577524410518700901948231640963889823043563703849747934654895556825132914898463002185141731945733186286190966868170019868987853401816185150864009214941664357249572477979837430973513818055190968383911035119117305949068204188904808968615038060168545885067756776274868347940173572739887427988729788920954393616916362020745157046698137276846177873450629765924176313604780163086883609574354846377011377779556890907972555765246096797986916810618277094874278047485173318546573147787189822468022036325290803237553671147329909089804388439330990104461766555802861949234300707926331455477395563039521052974658928531698270905488220944765128398919780691920013074394725760492871330241732192699508147529419449359770050533527338262328636635900167486714208572269985471631564971966300617490458248587937602792189313166892881308163915679429320638231046174848404347002926053335851832589824063364365835575827934902326504732046064174967050675283103192772337854678906336901803264531671279617840111649731146936270047426787727697312801976277290706741959541437659536544411651767060206481424481145839107295210786949562184340400900603803720306084215748629863524431575537232541374489452807169538195405466907141619449214803534680547516089893784633724260169484679018513092824468120081174836512939122052035615544545293897025759753380125035516749791212485625482031206497191838888773901481721335313183508661655742983648323441148018606495255120998083274536973503872470108604495197507050485173865226544095986406309107096471799780225569668594709830917023528769010636263615496187050614044512873971122825990836935298749213051130124748096146946311359466925195726552722943691052197448992760559478330346762523171965829399558363654369093547882175746683256878726237894160755643346775767772122335857562017161323640996081198415341556931948670888948174516629424592030657040308006264737770204378639146789865764841859001345765449641277775277464129713672375886652260551846917540925117249509214071422674201065154344081344836313898980812105898227187334496673270482129542279408789309081832505759363261145223116043594323083039848742957656111096153919349014101511623123489131202468381023666889541280767360805095664500048870482088354651099867082274414162189642501748875683824831151219300499014727906724096125004739391851921774329357806997574507389650025859485167982619313977314549537118653257424934626431311988975172785334706226739180001848915975266436061758652265506051774318086782389165414090556266072894777326437234391681085834765002177987584237453331312055521852110232560804753497228723682428447756984169612157529304980664766296318792386144763901145816854070909528911802676765206558184529842117446108338416729253528464589126657577289987596329933564918419586677982251208156135178027956007861708994593050499010161594537124130581326027477789773801909381655323928967520680528412696275789880333254829756032263282798888220607914430420849931914629028558007053954193981050974350893384750697810450111209539304330229575747351735288214960527915689381647634086912751826782024739915929223067269098023627195028508424343269180263398386510896237645878212153266378091622457233832830132188664749201101025453566315866098611719399081244371484235628341601547050806311715377998374169714757107120635728230919142311909642791075965892957821287236458459266746987455394690470834353148926958903624102210393562002673021598239192317306493651660014560541782297907700594927159951257658334794721824408552448193776202396424869405550076971000831405222432176164496924465983720189852838655151616109037110737855716690358567642257330906388301648438892246965494240904457643376014449750351171330445646251338789465837441218261471959946031449640847580474569289146313752665495873629161835708770670201480873696730815968978128666802669961254454691679250371888822121109480052962955373109201559090590700650714059915556549288123521036496280829208800779951856507733752882210472456215817920619255357976898358721089149428959430648493756952041568678500059506608804041460962649057081089258780301852788247192945301008067133725305978256755923885396229706731905404483278829381260928979806740732751499072642489320861580209196690428152641730011561698692516595296646098416487985073043214358263879052862423457847011869727950026606114401681004201608749558327649226480864166111015831956726784614185899667823389594582624732723121141460336324017355430808374994464084590609243790771090561691669223436794406099916032147247160772508528793150696288057357805134367634397758026704563209834976636470642270548652512000855490357847882141330587720660306711302178515974986968763727242231459217232281476716740379842867466987542433497516450999534754449999632992736597726222643865529463917596685309481877382828221877264787245337144572629708886669067836801112902897138507784740228759994717635861872214220350867583545139678555718043034819048576822115112297056209088250177804523828905917227282425321185770341611567577434965143294067109886787302135327239863946054534297700830353599075050209976015154839210433377064406196918294705429882967251746103348655170051885264458658425918034502164563853112518998813574990710294506642190757703899578949837917218082454480189661087407657536908812140741540527145029813525816073635450481637923900251146833255570771574951867864839957606987858497114266215852271288697976221424956450524378809328810769848303212549934978704142052862065288811472961953486368522262339847535062920564003783967627217165083794029242600862687349243473934906358482172285179227909912625380334615283162406382180198124265859762767320287999096923123065896487931221430130229832707661096590770235195944599098940921722877941789735084146875912718470642384042248625301733835372613888718129212984261061733245649366540065372598700660107131951845249547480762939026467809816730119878990583660470534575023757247801028280990098887986091768474155764561845709848451266483801447239296367837921480082109327206038726113044669624734581191267972055000744701851231416720687891910025226866476803818802392671069855215181215548071360110375166128779701747644793347728971591946788743784920968704117384458489914389139174038717901268464606113045606908915456260135522797932370320534530418497138623802481689556657444275549218365418897820065482571030883106464201062136183394439383047822808822169689417058081894966927441110875955933508157978112735193106336140779971610009942584308311701768059842206569457531587810094754318589497975173378652341128408258849708049646773392569003823385124223562273652594190744622063469478507093007632054600053137503291885628965845039378086490385657394038536541763771673139564445585242605354908289435818506669037076586344697548344350416187944216163130841404862596251874539977822487458052013921985929099822115970742644792598590744750358929741532794683200673830877046129401779274859885443729984714665862760818650657847265384971581043056781826762427033290160675046573773599653262549085162026092453343108895626247890529973394066817235991699935867582957660824658506529474975271877517955562760551494587146016624790389233730057127558334958147226844570770008977709534324726876390736474811060562283539747389852339733798996383968766295128910383451230041183299579112867988931064715474071849184301679904571186290803034249977048305940688108373504332063808085873866341278578747468917866232046277688815605924273686328978223411062387286889787362590505087207443278720039767749217416479459941097583843484378513770626554864007284829299282025853255188055841211743826550912994327180111012175519880886922189813268907100789022091605862695504837769001219912294229491074559322165817731765461803511048741104688036639115093580999375323772068171702489856304670299706503869953294288087851411600278895241103053207551816300496887886018789209170006389779518903308606646397840316070521376254056414330414412660648777743071961466560566571417337136179240451554578420177586460856578690464373303596750456040002633965664122290149220176146077594251190485224845416037117919724653598198613182004928287043824986469559471619872042305602859043974319497170270578728051734110634235069688458341422468812283235561993333221222857050142473661471765935915173177454944539304089017252302907290587979063255669502208386938581443225804007793732398920730411344540885301356332576052274035827398914691671470338004987318730163255726917199926185813478781398200168595110682360474169779717601836251004266061426442259752335937672190756466058651539328360991696430201944518765321458624454005126977880338930883137263006040918485161534603459471679242058876164501233360785232396741987014424133284947508284274096678323778363298293040101169352866300557724778763127483853816025074519330619469205705264873191814017862802098273827224581025723701460113098838902178858013552643873455748496260445957596674326384468184503122192981017704160297482980326142543231511315892336564547042487116867125496662983559403725556511838756451344416203181838362840149639312089262523684383037276897548912680611527476605701867419115727082515720109771296920378548212498880969358189648619228471449477418570606691511436448061387330938567249082871352514417668982033881368645287612113817088791967182458302715964616581574454677083176588053889603574317874946792611023619342615638303754111875402775757846547790964452576024394295846649772675666330584651140996464614648117990492449893177903124509659821474553277813569121762478914428636775616387009754010164338691414031260335416349518151106504679861398803550441134756348886026148364557638844828356151709971937470309098805222469394532281074555834671534917433309893427824576954126709019161548515507036474008148528324967463972313370227189264071776288218184253934398202179271571717601996074794593569788678883697312054579833067029988987734238943798806743244648700367631139065626586672755987628910206460109308735408291656438185188792675155161563403424930334636705000824875260052301204242465698526229002397510922169789924630204675476525218270910860853570935901541859093283021690123433268165961566038615901872800451331537204390790007905300944552438856318521563538757082280417319635068163177430068341153596129719720776561810745954483998271415790659141412791677661701793707823448517351722260283208153936469512096781730768002098160328080458286560127205911195590823946071446932872460942667772723824841025621462624249651948201380619493043834050809696766695142167758755121036461153281757878725370418287926298933413435515313484749090287545887680059391097399529110208833989667149960114039072258315808294809529353424955539621243426775466157143141267632926064391368615514634052481505625843501630648674284641120869175973659582238368264192956352942235720413202778711276710665381122429870639930626881749414688544121778284436798419382542510307779568207193829311701667529656331480819163690530072187967064577782136473147564807987164335838470427169573570710292403546492800189456080344573944139235501762947043232458282380967983262098269164211186455736720029745575519476995338355783859721997677952344128809163894997040750545177242456120949398355394523923662983185461939640966310114657233388324832233217914021469403457049897289138004019031489012405220460992200265364408448307982971276208469277646804787056423434275209552909838606894025257104846651784351500488300702912223954436264804888313044152046140065370325284417625871852580107381684191430310572083024225146599163157140958280152415733811962771504742282285899364031907024705671447893672009452835371656382220129741554121607573729859427071891969725451992564243208887210348934392218376949947346713014688353637732011900485035942355551710917019268322262620380302798351332266537515050943036448703790639855836743826673862351245159940466457328149368424854137093554716103931381717124667094237762536620091780033268088834871836203054110721690503806715764367992799245944469086938054235629129152831032517870504030763618661386601905868656400855354936396507521363296583437329090170986527191876223443049720607997331860764353665076660512947837482962177350389415233040085108021707451773733942533430104478401405320478636873661564813282765262438388951662797406980506037106577594195724187440811317595808911182955719338661623228381911278413004866371136870762206906651321826650357395609489406545025475539078404463119816075206446829745149638994447634381433212132273727011016345816991062511528861311797383225439156655733990745528777453553004150177046712918929710190960910668758169813498810038431233718479266130278580742428708693894549960051520533989941276655765429524792942900234051692015844605801337436822284549499316004294770645744591756649528590757425181640346208165557905408962266777429327012774280817942229123710677447380209400437259214753636947486574873498151658389619025707013527813293933914533893334963315308147684835348748764643994323442078519607487389880871239695330823642023799784355173964813731676546463542492775166566872847009067374228454260534038287745027578427030198001241654890034018540911851267197801703395859973385399087880787852883926079834453158625313908396432521345478287360121364163708293754595947743517829751579494963386033029928133036748154000229408885853946283458081424707313857776841796386373927673945362366440623260472877460697797539788138258228804981370559939360685646641298474690735633723172779157392717934466497120527716599519959168490362057375347783972390482652421213744695926007970642182055677161965871676182186034756832584436396795005897047518940569899544460102290693655156202318290066355102112390869822949638691274643614766447140642053962187033456020449809430370318119407766330377397593923780098464693663186818672142516389626339073410375936974844741655056399975098593273740517818995760020215791761215851435385437686112671799623320950868685475889743318886461018092539469816136363091624379142920404606344353306579926712740253817541897339971871767862332993119632069383723105909508322992423858378376375444228125785410428756729275587586740742368426962544119868514438235358428330942549295539480450615219869457828037199056575496327170052906399535956927370182232791054350331402362563393928106696056038227564891953990796363540483555516684615293813150023790742481432607207124802396710919146442152370118974553114109475861531573955221719305227803382827656800618081390685121690304678581064097341788987933962241759627937540978367126359675135150940717575387508535467555973042300647998646504595820876364514757001655226089154432610871160549152478786876520651928108713971585737407854718217031170620033658982392841231195873195845081877531693514848409489349026465304645781714487756416966201270544707378793052415164962977973529073482672358970357031978715260028728089891810192999603279651728990848002648263992817389244249805479159744688270031522844609972866196447015164952207081767965468712300592495741533375700804408964030879964048820796653466594975753737343821529003729684423121583929476061325214673014291742496781327269818425298373932240663194055137503095200596523087565130798592593532674794985878690072733071944705514759407975879792740036688597834881715565506388368928298392443403582029270408150155080269238211593978505709946473244916204353436314976886760570633770820903142671052636474497094770152570101260927338074628980069446030674025628604138332167221325611102274052303524390951570310879776505705240902656731400991738742139021438672564214292070335409834787472857464392582823416954125010187030271040084029299651103600418291236624745332427892144214534210899834781279093603308262196301698787637466289264761580591448270654663738682257762079583402180904298171314298090371541857470606277195681705130861460484989741906556188763487980004354907067328215299842013276539337728009010179532700818493774190579390667780818572582939586168151076179490061433063787673610918346807533004789285478023671773397276737861576973002117229994008027425899005235427224310695224539145744221965961478720792969921574914449790654823841912834958142766847085206827485946471879774696935972938563731974083132124950162622700769590982086879210435054448854627196876689935841267086343785891582494064844239776428626640193526299651338671956301296620038111619917625140484708915292305389811905945475087923049658087247904281677959270044824297915736667647380228990003762926417878763612620746814884219238964089181033988881393698922065361720289805631341989313214859431233330616834211524102306648350542540286766734522045528063079206907583706876388095476157375766051450651460167151550773708686067548839869516419312004955554532264469665091324474408047274277550191807165707233744402147011880343091619901651969032478454979252607755146478303927063047701568717115239955059351886128272391413444167223411123642325011885878691955094588507074503599372436885349200290490565058404352007182791362281500051962842160722269307059797206305187159506045086076234869052293058486052985764112331774190310748904610337781284513877435703123779208199935206758721608050988410998528670129705011076917103360981074244205683972712043213562607057205386334205819987768602194850519895922419023196818847409038266365012313534522263163411568199289415354189077815367707466600876367609582711468428446781664369865267372382891419916802801396867319270544540642735161395154577539739828768859847651789803824187308807982902943001489406305165896650116168500418061072340579116830047568350764440782830227146041408461349169716861535410246995308286941633537959650432377923926739721542885351664332462288193191586572550107345782848766403928056884400527018402633665453958599635460495573529561181924764010920803977985854443444081806168571387744720172599548134130437913816751193897411984830278752652931035646452156561298562890599443858760606222331644161935089822769379792546664587070504600224492951204670511328592865798357462612544352217886261258999451753790589109606037643316151014888617042390551150786285577299208962402473947560836586492039620572716431948857360300125612470433052135244732733980177607821232916108246206733251082475649892678480935986170461594064336021402038444501406705611028420721001953692992418786426889484833231097706399757403276231283893763468672447128337630378782991403654301751696076952045845618898194082695654862885318329191167418192594266531820300071708763213661845463869252499724524979315370124326996294528320422867322137749246264713364057336977076310066872775788469948830427939336745907308158024870769850674170926847658213288918336291188397021842624273061144916795768639562063201559981168256621078864236243687883905885930821912004632518480523983709315045544780725156214206820490378776445561926215694558368739443288056745760099808670391804729878560743230994043235754653260302872390924569858537229130878376262762957303679009545491402037991334425670849159654908470785793801915038676525770898680867885248485267886398817724180424906285628940317921481741921624723860999278517802607022424579117786475040409401782543743186232547485086231908855720230911367629429248060448133319951148330033093625125326812205550674497830711115105253985898472025857411690853949144919614349897036490849981115028013867856715094573033742012128608778789349586203877911564505409261813477455446850054585997204692912361581485340387671381855503279575490366363367053725597543617121635300944636185905964911550096189725978390441077750754643497112333904778124274437616621175634834793131048570935811868214664506518291165006085425923977882823603067735587204120557597953916110927586418672486778161811131517465629219316955590241242734157418313843724621609245283353966015027321534130439422478688193175065792592764486587878047136121052704944695562193729322308591361473732448177802392903022281263993467061708917665130568361481685204060933857431971710262444409079863313318611072367932932848552823676863368395392068779041459789629586481232907666303820340277311694688366663658318732471678413925392089980615525285599175425639484370899940396969669916402026071342381601835700270774173462007334047279263772147763632435144678407546840340132603827300836105688432865890712258335159292862341454944898801467043063143271535063466319493851732113525306128787182070491056403215144314167760493916823602325459436792811130658869407941326944498096106601868245967349104997411893809543024559097503993485756239620036085423143063717448664097521593905399508542718765674076862999517002916800886317165113453908058024774013041096157730874854126275441323380970460854964835291313897647341987585163237612527167893553959858455173626972988342469884739888346466370753931289827572092681361567328436933369535393058951742381511108928743649695226761194179217288246712370642850338576814439251973495198707389429193332591550667336765969791901624601440920036577584908483795293989419141873771666000098320648020939396733989332496233696973290394221547064613508243472931878124504638986948865410785440673292829709946911204758103960088684627077909104042416720380187662820698309953040929360099629815040409208059956549610367838662841728828611695799412760811294143485522850628267724884573064364858427201958643757435662803774115296135432451112982299626954984423362928639740561836056807399745811233794806200344490792190238964991787937473218062064436868251916120584284980360114968126955957740060652699529325322640064113969307830405408870692153390270424378903589870090079607493163932508287651684363816286570037549837942575783128055215473352207707359006978536472156421769625756083251422255944143268760168985088885703831786498899075775113784499954375014941930966991849357590009160124847285272780354581595957348440407085881644194113023796994173400596817634689477551253555252289373879082934523972858519644801852160007237010857134154298333443949189880590706850292586100449232344020505508365680786960736559940652327819876582058214855267838204384041987047952087864861387162209796045209839610556409236581391921280604536823798315351969662178163415948401164092823934311598735384471702180966760209170755640019966731580219574678206140673374408252900963449758060286954020963826977038197933956209982678639783915482131471039673311495687909386117810231917596240912148352936466227515135286503806499274210791794222177477224074841614794740761681441676686892299548679547539780982115955213892765685285483635604461461330315163105382643158034712107126556862858625717849085441951795563020520628638607021378211631910077212447393997755715107714534126190573335446661792410146513231641013922733133575034629867931600405269509559027123703428745083866212591256734470711186420173805497364113212585288295975300061956033648556837129334587911951165853313510264625859264333315633611392203795923894212984853258259893575350739889614313575300424723691557082392444808158513055005478276196934323744283915924560636498543800110734005471755296969282324615797667077519846234451080317460010020421004515636443963442707945500386413632667319199820627275987425921390045195870216471623870778108415108730264265136783571203317112596273082638529768146670057602697001665232940402216341834968846390670591783918051806642414854314724642295820391852605142446073961288248041453942352254174721392333111576710272322479642955737719289565018002143385244518921968467130124662457916215197864299682210492809595863091595328707479245855979415420604748513937279925940161248853812547272985110605774878962637199365940276602198940305818852698447468609802450297226409921166666443774343469549516629136323920510969120185901115729942630686210672770409695532242659386861355381537257422922686134332251986872898469379876205631340774945541948987006210232256661880057542113411005626840181100770236638730808112567492411378677557076653769985777357248552254090347487022728040370003482792139907146176249619520350088356430257732541114084531634651599770836741967553798774108376945734498008051125839804313485711351265267665870772175940750901707140408142306449558452906040023934922147153184429089555710509131594876466426355564704185468921384405368957782757640576962292603655888085298389642217405020399296349135502276878929437998121704221974113473060735530156488779275544498808274144424057411622236481010483741807491680608494040777739144183603672889284159877832740317448073528669430925229300621778868322463058390445240122993945875603757739683247127392675368762556743175350169096087460233299483700468786966470764169251449744597582986912468821138716294613312652083925288556291431522185515549753948106966007253210383064875299838608241463111846068575181309320007621680749560334146823617168193612468624444069720610664863465003548880764692170881597976216991693842144119994379523474273154644222881130318040977631925490333072431112882641356762227081605691395354183881887194667877814489420547821625316095881219791278691556906242493183532534687081164568448411474571207221046300541978936646986880093343608269304992160909665364642237225189365961064759937535438459288464140341099027848636414378576993901391755387273307083824602813597449023683910775316841855084173045263854519694593588885852662075839314803583624586741987925053430586961863833927697068030790051354152970048285199939277360543094574559831411765244479020501423143345938841312902464392077964313967248093888107033015745044510106677964287318460248105915333720912613311040527237283784078670816584044344466680065796776164677812655468382757123032693518376731591342836503516654611636211704662030520276237705160125867923732762837052402173575082802785371805099544789163075280764465972202510163740397318459952002837220526303276466978903402004711407407696802891476134588384302852176752150735746469555687880016862899146195953002749966499355410382455724836048996447678732923360254448553613342109000188646580270038106760547149401659994849567038151858393629086786349208561838129759308291959282422881808978704646064803608097206622032336303505915750501428880213049488823862840410414875898544114856747205567708356114065634745942693741719430950258349247291403276026783255183596862707901299385408260061608073503027188312566507812819174196984693698360305442237140852887716139307035097112360768885505711606358299984236531561907256618045943085326798371018226145583070845596113942229767892742394400167002370286380402619255378088767844411357019752379765950488658827700207093360380865136949295074477210233027982310657299222650872054769666950848136824264319515285232259788238212261948333947853080739213120306789059801639885079008819594175958786079927507481366210942206472799654763612926767011947411205888955473850803119736757202536402963899466426149385610076902756878654567121442103367622538323228158969473475883503617535370604512261411101313668208000954271539371781784618092756528998738586620141067923264037802356728077655084416123368415080585519790578888745923532527430262417992899499760139560562424266704539257118097533297231385165416057565511834378023862005977441192487316560414308780866057797525600869544316241408648120656174406541813016376141013408715018836301740159721641043983465358738479793066760960665480950761821091198299551886526575032857118568245744305823681770355886138530016033666114135769102347304579993861534355100655107210426380575656395851607957950798197720143934955594999881748575403129490685890974567667631286872604810366247581300238902542809555431422502641625820445266501839583381000580215528519344581314732481760870075582842711821668166314248843176973262707990269205596712477061333253492209088715050661342598537574943367321452064726342853916160462469121823490976092632643918044622334335496693176865265507134297201889581179019934214914323868496209824628938840332060024902616026932702877670637363616085330427780668335029402123203112053049136736710979893247952881515725037220311808675698421237987999417462735494952307784740762485126457769074817326797500161967623733623181217379576040225406779303267136168867043941304737831350613252870069612486423089672845602092640672874782190153432811331363257668936522576723313786857008873136530477634794176636853324136199349062567897257133917083655680312160706554195861552901883922506664625100909829764079304808183618891971812409859618034802747706496278884372990746650160684984350153732059069647598151126337760204566768686697620686168613937980965234191689547505651669958985953337195355018893298092713071727493475813985586937776811879992307970942843363534729868520009622288641429660122395699584553163474269142739203717338684199724296392168063469891883872559708946959223253472153012621992493426699790749849098521821268092099285470115591026962571471702377662259763907934934988460221419194252214012977276794607877479021600219656500042260090675342214201089185691959731990973324820338149626030914117049858588335939494048596723815752396026236418890674957714807544370826663678907921391066559263247888427277042318736214200419502454413100170282970541071423504473254659050220983683806936199321820806189181794657290877134774370349567230357293091383158698480448020910569019720207081207388824745234545344553823030120929589179793758620707521775879944176760807515392874221627432424949502349183425365177069806248898831448431105969934351831224493209778069225852253494245855246221669974105233155897108733847091890564776669186368984473274937717966768367628016923467903106778135355778352095071888493519711751767559880940171250035474679876627989586313142795685039327943024846389134433502821895040333429142644180501229832122021215467465265548869706709228415031473176996102413137448384960885453369844680658494806728430006691059030429626337489589407398837438900810806291639831746564078188074984977334541824175848771749358871987805196935886474925180538722156120736906588582712067237183169821163280292518228097071132206652841266467334417530132159173944638401777862038216801267305394131742592295192680204542064041213184910879950968278620390768573447809421317784868228421594012158623726897132594634111631660744171629070491693558739796851523094524592992382913227262324824169330079422530013361768173992266117045694166630698154685718063754112896686982587516250169129489807818216926197728159833411724086814254754072494053651502969463876688146870675986039381067793026375942627457068227410790278879619449963464011994371510270056753180286897554386870415189789953207894343333968862937628928906446553692293239909473772366933499153618586724499874833605844805347997814706146575297009912065093317806490241222068744654325033271326740149353794302460187065802730048905256474334323958910135457942267808025137609907479450019638882614140537837322950374370636110584434767595220415156951949233553213500271227355184312437424290808529813140904898145566836937050303455812337057600694296968474170436947275916981191638263611936055997504328736844720203021084814789745105461516473176213994289813164278988805587476616912671542800192061518866082171076000928214192926342290796775890788054838414204303641813576445623820626058092702832018594334225142753681010621904816101105794984613832526003955271488984382090631528571324174821874699372685943035411805817064186285217582714689689801042824892175455157737225311003453829857989406305281735844698269656382669365824223752458388378960104447796337518707597909810845669238316044755584072890699272642749200747550459092548491218176461459133604138377696657734588478537111541163997828311964803763024739034132191145714783647879600162135590576674939164830049705421675981371873040339913197963532012764950877935127938539229444690830967791821506299667364417524701063662759050915924464908676559641777167735832897491812511820013054247624488003113515896683423476518116553640352922669222703280606482503526859887469527721001174723838254854981927530841391540586901290570772145949518448765351777318554729485343239161201062689599803726378664086251225227882054214878896901603614340138950417460713498033965706928436507426305572933576319632504229429834883555963912759978781963518463400382383420826136730467545891510340397384183999743974221792022004187095717515987142511806250003867506339475629645452821786984096407798168769830381039483470867025658986049204007360854654910158756477082458289124233895102829673942078659091659923239228469268963138451177847912201815541333373340937013371536830196955754374776379205782325376789557763350778534230147585038371522338650190734185919247177918785833845315672793698633973008383384201789921646758331470732289685790930452610082756912596785900950923248798274608348424357806729485199329949518534567840759732227625789463730426565899517839568103384152065133714818140962158523215880108255293470427043659084316828104228205459309172565497796351828260296944417539923313403323345762645657532742243645456162891955573779502385138695809987679755458017707568388364178888049055299891287995176175486929052482651454917818958917179976307482705158294446312055161867928546321753656140277110259041509973114660597401268906797183002765825493964803844452847935386550290704881748258629100764697276767052220995828746154956050487740552991152920307164489521931279050922364694904001375526138302601368266966850940737399440908999292699469364926057295617525706370711955686749060645382949388265601157821706839134704885619681536510797078914121686278685285803150333610135953722322975687701074030212271979593149625402667528213047968757434409320512687285323531518920775371475620365238853700586432826233826203782398364410121730657729533293682456083514356395909939718455729466810519451082077340585883012159485134158552277164390407655376780662873860136861378921129619225113270149817534482170614238054621284974948851661605058791962834390885872769930779979685206169624915653943094530788230897270233851693382971874356290684136006233862393508581727685268508002800492120942980437192261594638676033273493225038839994731613548485410412523695914988139923278970736300770800324588597586744090387001778449974165122059625969561019908698896548042251213798653491924515638268411865000463166218986545345721370035717394030753562216026930594871126477359559032697771699144810388995860427292984430903781447679535161178030179860488828102103296302506610517734690925836867640597170024818884050788688198691891405973611805602042601889596400998601456522056112173065455474197252058530383357802928920049114219858501829177421883591949439550171864110131087121783852477230136723442209598969173269354953053191181051293566005282553916450807738802346708130894614578482784002383128472013463677976370796818075502052147841950816898516328917562052912260423465290975357596704820435121140888096156321473316176828576457332321126439941996733161547960485528244658587413805551310433442245235308164885133137581810126474356062722735623763510390111836049653425203289593905565179199892023798247823410192306920154163939952258912381207966205899123036063597931527178927076906918116751792787759582690754661568456855378770286125844266568234165471351105098806393049691410277508448892335985139724311507309418519525581782482310645477926597589147156394805578793913369787498788020636029897766708371052817143036284363490214031575730211662606225446859253673060520285459273361483452597808666550074939223371654265871135415065670527485827780278175212514056805128327380134123563794822975251157184183130855945513822556188589477844724905183291637069135882345473644915651192125927935258670240173835404797619489685518677441794799413407018240235052844863160289581275266765810751862911952834408073204950318312882006411169545947248902308973992025712859829399205832940831763929896268073841697451124821303455693530413746175699458357760521256956498077349657962157543841779332576073394061423578345954005371788789453181417913717763040082080830066342339261667498586893697878530892089152278499643586009547191897801104732276128883898904383465777247209372987946145974397169243504818375692461854567881736183640533277679327364203835053000715357477168778145313346358325345522898917487498868177120557013558514950327545143140684047598679076906469158855897750372888909228941282366009016076926565302631690473815307598629599845658154495737840602861156765471681643086406542293849719867184839653248197739870054221816482005869592810925219258300872506799641133828134247435914568798381515528062091870929754474565811890498010835069487979216610569254999831371311358876674741922090161567773002364375957624167055236721291382414711465657258849945122671771199767356376624499103721253225513352161642860256445683340540638492402381076569567595741867827778419880111209793870951155859692243808071229844887278373179163478306852080738906832528823744531013516323005164982201193247386196560719835370226942274234741573391297997622240188297017976210917175966724181380763211920361090877269215858932636091840457158855803913518769373568928081927762210614807015135295300916775520956748161094893247310964194529744901163705484231918896259398882309712202335896919055985983663733662057727776481167397938749512258823844378778393469470669259538797127132090516649304954089803537642829482185104815323008787811857947914129043801146613565163501621445567463230764883408208885643740738492295377396991780698662477505170032404955120956465833343279610070012552663275901640115349124150204391552355839432395983209476216773797832761035744306609902202176039145467610904890555349005196166635156066029563359688428221036806621047912935437890180474249348655788644037319844438971133049492561780356244435032592953774824413245720516278096790410352501101411824511855742580147119009010933585930578737541001928630235515623045607220952442023127812414172199814160928910589589073426780775054896005746018159348724189279623478334330550316157459986965686337888795008345521189330613921755330845087961696465891669083976693716343206947835540700946710992523696556964183998815021587092920314388233670150480226171472404885151730705371189966981299918196042267217471693307158073661407337902841662345261268270305293104374159047160089557452270011922251902907984217170257793401829529630650970076115243419224318458439080381202791886764885422879670175990473326502544038390955597497186497939909739064726404470023740544643701899722781188130497945806665372822007634414558989164091470324253111299328177494680379060346327123348823652815196282844021063423812492284072783852111897338062381480869440180051615041737659012767670447472134738558983079395650089709476110973084012583810811857551307610669815535568633868174785860423783257930541591282797719720868540555405464855835937710169112796818710244343927463286987808815264927245167397721544961857805157894924805505511862266604313600527983274781076680394946370722608228103919490932423805497527263345383179246546813914351238256536810540452095465393229904920715964080043377403263252525423335525050871700668559080813693074349045063114903802728649772437018992858835022771087893114302006265061588278771176013658647685692520688539488578590465671735690204695937279118856428125841483613855942053124079461581605634114606129075723409225284010250445300267238221068466127605691972931882633806187880078412444984539269392637012885493067612035908280382708126379846929273533144646579742217382486705967568176049005409973496906351762068671176903138964049520385597372323073745956422104165901671772704690326550147989099616479135369186070586047003286812570043546466427298693020728900541379199583189496415899320856523819744806662622220062381098554813350739712418588483199838460107111245758785230543142535819341495899004995582864063557687651297263603675268368334063097861870258816685054163059753304297873930853986758101449491251691494560013644040493521768980243886540330129030493507879405017454582502570970807947876588014351215198078281308876383767811235597020208091625950475719556539238359059359345548278536180996804283078884650418949969771987134204464704892850689430411390052099777681221495742930508084227444493857275066870528854311407613511489402790929008416119629431995046222837520094113624118424910456903927744300102882349107962933564024792270306980483510839304105696798472715326907560454353636660981859759289185513009689926470048963001375918768320227964977832536220561764286990571896270651416857360073609028341678339928529885760717372389042770938666943079669430665887674300153708210398076823964107951457115625534045402378934948276992828705244785419193671816640314483284083757172393326697998917953847879943929300922749086623432828902885872488795276030901825566058946855280299293008835827377764860556924923823864808747336035738064226436938380763357510235939461127638380284596218884551498456962514742253315469700986536009199391481985319161854721762173559184989896829677413655121801238170461300083011007809409308910546378562530233989790928282323140198722160128085661271805620652585865904640301697537615001559391121274365861233575533634712958313504912169853796359177598883947030955380552943842479458915447446265593028777571806164702465698505693395951974849990876978936234953520392445459381823109578599675554367597751363128037935486093007924972926319320049624988376456841002222665500216556508619321344024408745766288356928078567101798654945307153858750196002488216624293196478399083012445166762491871774448751219462512208598853671025195719699283566475462701057774799690504504563416749726152941242411952298265605179804239522189986359955380717931801417345471256849753068738288218744942162042585882190551812437513258049223545214164951407810190459972725035477130632021866069393418785019647237086853996972054093447030615618917953882329840957401554175526165366987836366726838624826247256521570318634304441330477460165302955353315593055209902132478434059983433457386468856895393067117467856187155757937113492541768414170437064387013563571778967663924027528166840533317503787057869301238748722468387911042832056958794236877707728239037456299189504834148047420753126549278277344809780832092378667612805528005081158940136587258256342078103299317923130334372507671556651302575226906891397861483716451885593148616653490759498742829345061337130091617646595454008741789229439137592825339564034854815048693971776202630390093065499014796716564935679034182774608094852096269897709513181460379069206769591024586713840708917407345111342447524289245283343996168241783372331571427137591994088632104625342594073926960490658276410917380198427956641520349164734772187006666297116492022738964440628955432683606769710850191132715904559957750765079510882290148254586308067393996946367842373648653122017484880795619760428614724958652132652297085191018126863259210187691515355434597890455370046997547101858394202052773707003788800500845398244663047124201692031764185508716677628743942370094701304507934852441041120010289414666706075347740523087480765645153782821669134117983455350663391853954443651146414423631785394714724653903385035673402236358639967518584827643846027709985859391819488939324065479523688732305969510463954177466662040111084301315188329910663734744625150086985885109509505269404581276646106639383902492858032016808716251766799062415827223560179144139139255622385328426566653583940614987945065412455391160897858544767918420168669806259151992870550082482270613715993986884051393342602392592930279193552475212431989273998553470359037009796297207092655880596729125793926789207610522252614843495132841075649240233404608292104178089091602823028660652204936586784376303504564972112416276382273047169628140445598016354355550753155448068046201634566589111397210293023473598907881269992869271296325400735608577109553042723862021345684288500230020456258096540340989118228556334678339723762487958771115141471985780337487112188750671175407710187995984985083454191801180667532263893476964974588669863014461855889839801940816224675548699954554515966204263645928178705484585237759691510954531790172489547617214896855861283091013507410322130219475734456359185934879159595936913420879177946018407011326388851799772460376001584867680633033744048346598462294233096043736517340579406182262265795151084527931750658133826138659289134929052548789395891609413518460001179138572066555211571953274440954937713444722150810326197307157142793417479543702365080194232461258170187929105862280092918021654843870874651260362489046385528930452815985442146551914159997507351773183621445587089979393324436281941984765961560055257565551843211688022404764050988253810730561072650024235977895139300147589055905886853006792261387508326463996990857120838966677621745490010492032151514433938737348181526135029251650961680507508718409427124739861202618665288852384267635878500066324880559783721563765044198923229284258474598252976195027611032327959463254392864426194283193987219316416392115220375018269830984311209663327481609960866280505298977116990470377249212201966524429308632659325807085242809977099839409398989725254948122639908519223305320252330933458470805041511360049122711123721046306090311630755015350124292375240068488889519461599217114986581369411445776200022119306110975317803731181978930286128064790973668385579876529177376516892715858471166426622378746414804382153580827385359549358871460602787578281049866283445385347307979994045409857531034100450409345130194920005369283147203408821959469293142053520346936445922714060198761582883581587406395162478409734673475737796957958288960686505665802245563271456239419083580275250112998803666187806541875289950610958258016343997677914054598604598492103883734384629596035881175141416139744191676584078828140811459194524593764484687554509134622673331022362275072377586863681320636737146555901861740797844766025507992288527918938852786953059949676890720095189952382903800221594733058458046822076483142988039218110715089527660139104671638925095046055696063505020240172464136277355944515938476801632668818467430387992122694366467506703032895745991147043482021667112230676357974710044374906632019812404567153673018958165108150013731219723266092475943221470011981552710645134682491215465395158751828634269629105783077396594624386677878458773248001807779381014322169932943729576355613171373350240631078948550838171641662291186776452860809751108921419797980744640159103870243414794081009358289200763915311570314476956048608555850889580342952746612913560724229483668584181689268377876228562386984370425318256896719109090617659737124904016159282864439207777853354369989876235574660464226364697580794600118919504070140000678841152061781229217702578017054546507062335438826284010104523281979359912972388426028204166629772040324204323110381895583062139461904673872910052642396378056018446667802621035124279855515432077986972390473226287174062927760226586382370288464835374847413623962231047583863764327917379336247171703923110626323110792636320495482622165427016871003822434601134953724878438884956491471299895838350055052682284077212651511032027253475634463131764009542968569071213024715841797886897939302610413241875449883394064491770624556182772546670273744561281034922199841000073094291979022241063226883365254357012527510860409369275824175201323163119413750198416570630455165570404862913573979526363223026532547149252448296668551724228599861118501739530526355356965915170804060153033831102296954362974549383276284997044512740743514094854670363586080114175089798913696383130115201522179632340488837450025552416892194942943582824627690762880328882449406277489840917951557433833993475522684381258372397668909742785285509371312595596260191836447448251673396502508167807692662450613210619225410842056850103594661725609009310246365700685356622046130086550596817009709027948667992316490553800935099301465471103587297580060696422169481425553175145435179598245593880381287676487564534533271211480963641957724521731806316130884816490424843012980706017257542600582841832465792378042404924460256694634530401092105057828251647257656051774531170467772386873014257957036858899298455915084649888157007984757759493599825747599589822387886185170477620017767713098980718318908826643641627479240382485905785015988826784854053865730794018189299317769412716595329855599858566964474775717086982125347185916512526905641286642184917486421566056920178376686981589831164024863524530997322605785183853105211817911327568309324198760792859062802796714227687028555274618609908299599180707681764380131203926324030185647513418123060838841268073944308421157423456167194167050635670564321436289007469905755254217634082350095948093163369689683770483125842479969452571880007544318343429014400503357149510721423132425916464746516128707904645735237765352050170678556446720581917042747588875364334752760721446285422685377225034246164127714580651355194486727964580464242017118548358160268574174037539113288087147211771630309597539107333081411492925674721133595327445664989201570751020814788094965980496188617653114030790177543645111322181251496319012850049654643982838040810287778897140448693746590458808012574479072635344786471310597239735049084897231727093418854684843981438642265373433090268797990698705885433221668322581318636491035347269047680475798407127260653820590871924001549026823085620142391194532690286777015935125532488016954463229589888457073499181280929795991586669205709495352735227458480816601371446944978773702554913842471225523992372730049740109351568453461634231835872457487814004205557296327478971169020919009470572877227901507404821597003068875485741540537726922041738171782695434475711251806943555992322464940276181647831686868427837420529221886208302344373224547782124602188772630844863114570999129647746437264085622958222706628767421379043025409011616814338271666959838797234793357024569953698971578811391630858344209350899831829253386006736795046300985752545110695907237448127463113814549640788943648190111678181075949695788445906863584315998300087482141495332186142881641712476581824141249130574944250228941484006313334207158492432539324903058224713711341474678846888412835394570329639783038848810739623671689907467146484004099970902476542050774595954209318570211609132880004738847668211432935999598194728734964660571937851184755199196943751677986836365180219470889942032272738921936833502010690986158703635540255123860542956163303096157568889003754402807488055249983151413581151575586462377746946520775958715134193267487385320640764392638949542421732965364783091029246483071222311332005806654396602791209991016072129836656067339217421237887600737287648821415842503125639004054819164454935921385174325839401943823903540847721424998292753261504756337024801182267635423097803961923988752624915438793334692055267616538237836126360562402604398470579663462666170763238469455439711315954806991865624322529349230631915654542245046825747943096195126464562410362128530981154296232556031672792791705312876706597963621019977672586416051068481789969408895058344365802634644214354049968088925951993824839571766040667750636195635517435172447013914271994438209239475788816525651617613548926526814094774362295454360508748539257760537956310974093921762858734985329221417763480319946619678306384258930748995178251895211677684779099156586252263962972321085383014861051045351702445981428687624887876159016437864675927436580192441635001432139213602840389229436078256411005446767237262053372712692659333634563259179288138049271026183818926656912457570040705022131691239339981670912191976546282325266264354880958946717391679287855911899951947652510970732453306634840667413963089542025742202208352548388769507998281428941441301228443013889724386420198362329512060561101980729683126457413593438747791824166697831191555990753654812422902440269246284430538591900330687852515016024608144043446948449188056852954459145325379978162383646148730477737782431342665124552565105605465300476042397444428386428483712460306066610595601971607236525367184104013600876048976016895964209299904788206304717100702509122792052498762384767108993966331719980532859676643877842826953652484907566982093583511661282108825275744963060342332329246472478292458805711077556935720529949673734592682612683550191618502920108512832033839832242071171819722424131776449510011706533398215973371528534766762490751983149709846333103225375325600844448291736967717766749877712367974724964232617522366172897186441951240946076272375246306227592179982467838305352755334493223515520492502112157284963487475474323043010722247751111622561089656935917377187670433354685646945121710477202061979878338910990178542073185737644682134208859804664653092951032194386450328043864849310967257126144155811264828433355786385252168943210644755347376211901250255118518858065425875182510965419302847215817629672899860848854207885462590663692165323930915821763828462239415419815485238511576001813721468023106849310233630995649486877573347716950391967491324154349686110114431406283023860993495418019327265239175583784710536527474808462909968810575010849657140682569598879226349601613316115647310995828875018577499285885017021305409996610495291819100186284271174769515348782794409773684604568576952479679548781829700130847685291236880639933913567779305762909442179172173875928298261027279540694286714939704226405946670352690312803326744506196563376108853690006937348618762878415470143842225984625433153250015304282893481641649141068825826145041153343388180400385495389409353365837485509296982897021240619280532999505479054011693918126137957863663317858751319293563719739344881368284860116273824132471890411782167301908054485742041491647254473891578268041445348685128692410806257729998640470620740152418355706034760660360805917194883190274855944416457631522293047859157306915160142157318392287994890314013053235988634620997511599874999440144724042076549395613539344508777721988577673106137156539732056264711706093632507762007528356656925879250877770049775420779624322191792595074754542351691090541392759691554649629017020535747606127808328885696172297208076463566485796557439345068139757417795265238157170766457219763170941964863149362573827810833643592250236630381057519175513675206708489019246888610898618504823479132139601394420849261260139494859490376100577837405457054455081323940775283485275550837206353403100316613712441937822303913736868852820533275431383495148157513933477076708808378615418465687088578467543842033900890688909602424204024526796759323681604521134935093611559878553829588329148590698413870551882277957486495299092925503543347056340726055884349850178887094193262524270219649201332682635907922598587499778118530007816325333943924778489533522615473116634695359342227599956762130649042191975621487413812340927524007005055038947793880270659975103422385766141920783502478177703685111229600299790867094631157115020156284886274251324809751994800990957961856763574624982497932339381991240484199993047656557052650734859732188007762180472906795620236972291844740596854489001002020671282122220835762545741098819576105647411684333077169516147083014997660087852264042271789536572311436015138949754591986848717881008689540005680403922859233067741455817705897597178054689234007151462902906589428185165592367383386541810249806830846588166241245812178707626885182641379643651977738024154030116888994118777964099329344730971234288862086490085106137033225977577194656524587611627034716416426757754045526671643014006209969936745995430458171552755229754911019275173523764983818647296701849343485115215758801535382125786920170199266144117111699461542359135581802247811553533918707067609777206316771271846818117/2338224387510
Time: CPU 2.45 s, Wall: 2.51 s
